@Service(value="blOfferService") public class OfferServiceImpl extends Object implements OfferService
| Modifier and Type | Field and Description |
|---|---|
protected CustomerOfferDao |
customerOfferDao |
protected EntityDuplicator |
duplicator |
protected javax.persistence.EntityManager |
em |
protected OfferServiceExtensionManager |
extensionManager |
protected FulfillmentGroupOfferProcessor |
fulfillmentGroupOfferProcessor |
protected ItemOfferProcessor |
itemOfferProcessor |
protected OfferAuditService |
offerAuditService |
protected OfferCodeDao |
offerCodeDao |
protected OfferDao |
offerDao |
protected EntityDuplicateModifier<Offer> |
offerDuplicateModifier |
protected OrderOfferProcessor |
orderOfferProcessor |
protected OrderService |
orderService |
protected PromotableItemFactory |
promotableItemFactory |
protected SandBoxHelper |
sandBoxHelper |
protected StreamingTransactionCapableUtil |
transUtil |
| Constructor and Description |
|---|
OfferServiceImpl() |
| Modifier and Type | Method and Description |
|---|---|
Order |
applyAndSaveFulfillmentGroupOffersToOrder(List<Offer> offers,
Order order) |
Order |
applyAndSaveOffersToOrder(List<Offer> offers,
Order order)
Apply offers to order.
|
void |
applyFulfillmentGroupOffersToOrder(List<Offer> offers,
Order order)
Deprecated.
|
void |
applyOffersToOrder(List<Offer> offers,
Order order)
Deprecated.
|
List<OfferCode> |
buildOfferCodeListForCustomer(Customer customer)
Deprecated.
|
List<OfferCode> |
buildOfferCodeListForCustomer(Order order)
Attempts to resolve a list of offer codes associated explicitly with the customer.
|
List<Offer> |
buildOfferListForOrder(Order order)
Creates a list of offers that applies to this order.
|
Boolean |
deleteOfferCode(OfferCode code) |
Offer |
duplicate(Long originalOfferId)
Make a production copy of an offer.
|
List<Offer> |
findAllOffers()
Returns all offers
|
Offer |
findOfferById(Long offerId) |
OfferCode |
findOfferCodeById(Long id)
Lookup an OfferCode by its id
|
List<OfferCode> |
findOfferCodesByIds(Collection<Long> ids) |
CustomerOfferDao |
getCustomerOfferDao() |
FulfillmentGroupOfferProcessor |
getFulfillmentGroupOfferProcessor() |
ItemOfferProcessor |
getItemOfferProcessor() |
OfferCodeDao |
getOfferCodeDao() |
OfferDao |
getOfferDao() |
Map<Offer,OfferCode> |
getOffersRetrievedFromCodes(List<OfferCode> codes,
Set<Offer> appliedOffers)
Given a list of offer codes and a set of offers, return a map of of offer codes that are keyed by the offer that was
applied to the order
|
Map<Offer,OfferCode> |
getOffersRetrievedFromCodes(Order order)
|
OrderOfferProcessor |
getOrderOfferProcessor() |
OrderService |
getOrderService() |
PromotableItemFactory |
getPromotableItemFactory() |
Set<Offer> |
getUniqueOffersFromOrder(Order order)
Returns a set of offers that have been used for this order by checking adjustments on the different levels like
FulfillmentGroups and OrderItems.
|
List<OfferCode> |
lookupAllOfferCodesByCode(String code)
Lookup all OfferCodes by code.
|
List<Offer> |
lookupAllOffersByCode(String code)
Lookup all offers by code.
|
protected List<Offer> |
lookupAutomaticDeliveryOffers()
Private method used to retrieve all offers with automaticallyAdded set to true
|
Offer |
lookupOfferByCode(String code)
Creates a list of offers that applies to this order.
|
OfferCode |
lookupOfferCodeByCode(String code)
Lookup OfferCode by code.
|
protected List<CustomerOffer> |
lookupOfferCustomerByCustomer(Customer customer)
Private method used to retrieve all offers assigned to this customer.
|
protected List<OfferCode> |
refreshOfferCodesIfApplicable(Order order)
For enterprise installations, this will refresh any OfferCodes found to be out-of-date with
current sandbox status.
|
protected List<OfferCode> |
removeOutOfDateOfferCodes(List<OfferCode> offerCodes)
Removes all out of date offerCodes based on the offerCode and its offer's start and end
date.
|
Offer |
save(Offer offer)
Save a new offer or updates an existing offer
|
OfferCode |
saveOfferCode(OfferCode offerCode)
Saves a new Offer or updates an existing Offer that belongs to an OfferCode, then saves or updates the OfferCode
|
void |
setCustomerOfferDao(CustomerOfferDao customerOfferDao) |
void |
setFulfillmentGroupOfferProcessor(FulfillmentGroupOfferProcessor fulfillmentGroupOfferProcessor) |
void |
setItemOfferProcessor(ItemOfferProcessor itemOfferProcessor) |
void |
setOfferCodeDao(OfferCodeDao offerCodeDao) |
void |
setOfferDao(OfferDao offerDao) |
void |
setOrderOfferProcessor(OrderOfferProcessor orderOfferProcessor) |
void |
setOrderService(OrderService orderService) |
void |
setPromotableItemFactory(PromotableItemFactory promotableItemFactory) |
protected boolean |
verifyAdjustments(Order order,
boolean beforeSave) |
boolean |
verifyMaxCustomerUsageThreshold(Customer customer,
Offer offer)
Deprecated.
|
boolean |
verifyMaxCustomerUsageThreshold(Customer customer,
OfferCode code)
Deprecated.
|
boolean |
verifyMaxCustomerUsageThreshold(Order order,
Offer offer)
Validates that the Customer to whom an Order belongs has not exceeded the max uses for the
passed in offer.
|
boolean |
verifyMaxCustomerUsageThreshold(Order order,
OfferCode code)
Validates that the given OfferCode has not reached its maximum number of usages.
|
protected CustomerOfferDao customerOfferDao
protected OfferCodeDao offerCodeDao
protected OfferAuditService offerAuditService
protected OfferDao offerDao
protected OrderOfferProcessor orderOfferProcessor
protected ItemOfferProcessor itemOfferProcessor
protected FulfillmentGroupOfferProcessor fulfillmentGroupOfferProcessor
protected PromotableItemFactory promotableItemFactory
protected OfferServiceExtensionManager extensionManager
protected OrderService orderService
protected SandBoxHelper sandBoxHelper
protected javax.persistence.EntityManager em
protected StreamingTransactionCapableUtil transUtil
protected EntityDuplicator duplicator
protected EntityDuplicateModifier<Offer> offerDuplicateModifier
public List<Offer> findAllOffers()
OfferServicefindAllOffers in interface OfferService@Transactional(value="blTransactionManager") public Offer save(Offer offer)
OfferServicesave in interface OfferService@Transactional(value="blTransactionManager") public OfferCode saveOfferCode(OfferCode offerCode)
OfferServicesaveOfferCode in interface OfferServicepublic Offer lookupOfferByCode(String code)
lookupOfferByCode in interface OfferServicecode - public OfferCode lookupOfferCodeByCode(String code)
OfferServicelookupOfferCodeByCode in interface OfferServicecode - the codepublic List<Offer> lookupAllOffersByCode(String code)
OfferServicelookupAllOffersByCode in interface OfferServicecode - the codepublic List<OfferCode> lookupAllOfferCodesByCode(String code)
OfferServicelookupAllOfferCodesByCode in interface OfferServicecode - the codepublic List<Offer> buildOfferListForOrder(Order order)
buildOfferListForOrder in interface OfferServiceorder - public List<OfferCode> buildOfferCodeListForCustomer(Order order)
OfferServicebuildOfferCodeListForCustomer in interface OfferService@Deprecated public List<OfferCode> buildOfferCodeListForCustomer(Customer customer)
OfferServicebuildOfferCodeListForCustomer in interface OfferServiceprotected List<CustomerOffer> lookupOfferCustomerByCustomer(Customer customer)
customer - protected List<Offer> lookupAutomaticDeliveryOffers()
protected List<OfferCode> removeOutOfDateOfferCodes(List<OfferCode> offerCodes)
offerCodes - protected List<OfferCode> refreshOfferCodesIfApplicable(Order order)
order - the order to check@Transactional(value="blTransactionManager") public Order applyAndSaveOffersToOrder(List<Offer> offers, Order order) throws PricingException
OfferServiceapplyAndSaveOffersToOrder in interface OfferServiceoffers - the offersorder - the orderPricingExceptionprotected boolean verifyAdjustments(Order order, boolean beforeSave)
@Transactional(value="blTransactionManager") @Deprecated public void applyOffersToOrder(List<Offer> offers, Order order) throws PricingException
OfferServiceapplyOffersToOrder in interface OfferServicePricingException@Transactional(value="blTransactionManager") @Deprecated public void applyFulfillmentGroupOffersToOrder(List<Offer> offers, Order order) throws PricingException
applyFulfillmentGroupOffersToOrder in interface OfferServicePricingException@Transactional(value="blTransactionManager") public Order applyAndSaveFulfillmentGroupOffersToOrder(List<Offer> offers, Order order) throws PricingException
applyAndSaveFulfillmentGroupOffersToOrder in interface OfferServicePricingExceptionpublic boolean verifyMaxCustomerUsageThreshold(Order order, Offer offer)
OfferServiceValidates that the Customer to whom an Order belongs has not exceeded the max uses for the passed in offer. This method will take into account if the Offer has already been applied to the Order so as not to prevent the Offer from applying to new items added to the Order by a CRS.
This condition could pass if the system allows two concurrent carts for the same customer.
The condition will fail at order submission time when the VerifyCustomerMaxOfferUsesActivity
runs (if that activity is configured as part of the checkout workflow.)
This method only checks offers who have a max_customer_uses value that is greater than zero. By default offers can be used as many times as the customer's order qualifies.
This method offers no protection against systems that allow customers to create multiple ids in the system.
verifyMaxCustomerUsageThreshold in interface OfferServiceorder - the order the offer is to be applied tooffer - the offer to check@Deprecated public boolean verifyMaxCustomerUsageThreshold(Customer customer, Offer offer)
OfferServiceValidates that the passed in customer has not exceeded the max uses for the passed in offer.
This condition could pass if the system allows two concurrent carts for the same customer.
The condition will fail at order submission time when the VerifyCustomerMaxOfferUsesActivity
runs (if that activity is configured as part of the checkout workflow.)
This method only checks offers who have a max_customer_uses value that is greater than zero. By default offers can be used as many times as the customer's order qualifies.
This method offers no protection against systems that allow customers to create multiple ids in the system.
verifyMaxCustomerUsageThreshold in interface OfferServicecustomer - the customer attempting to use the offeroffer - the offer to checkpublic boolean verifyMaxCustomerUsageThreshold(Order order, OfferCode code)
OfferServiceValidates that the given OfferCode has not reached its maximum number of usages.
This method will also delegate to OfferService.verifyMaxCustomerUsageThreshold(Order, Offer)
for the code's Offer and the passed in Order's Customer.
verifyMaxCustomerUsageThreshold in interface OfferServiceorder - the order the offer is to be applied tocode - the code to check@Deprecated public boolean verifyMaxCustomerUsageThreshold(Customer customer, OfferCode code)
OfferServiceValidates that the given OfferCode has not reached its maximum number of usages. This method will also delegate to
OfferService.verifyMaxCustomerUsageThreshold(Order, Offer) for the code's Offer and the passed in Customer.
verifyMaxCustomerUsageThreshold in interface OfferServicecustomer - the customer attempting to use the codecode - the code to checkpublic Set<Offer> getUniqueOffersFromOrder(Order order)
OfferServicegetUniqueOffersFromOrder in interface OfferServicepublic Map<Offer,OfferCode> getOffersRetrievedFromCodes(Order order)
OfferServiceOffers that were retrieved from OfferCodes. More explicitly,
this will look at all of the offers that have been used by looking at a given Order's adjustments and then
match those up with the codes from Order.getAddedOfferCodes().getOffersRetrievedFromCodes in interface OfferServiceOffer to the OfferCode that was used to obtain itpublic Map<Offer,OfferCode> getOffersRetrievedFromCodes(List<OfferCode> codes, Set<Offer> appliedOffers)
OfferServicegetOffersRetrievedFromCodes in interface OfferService@Transactional(value="blTransactionManager") public Boolean deleteOfferCode(OfferCode code)
deleteOfferCode in interface OfferService@Transactional(value="blTransactionManager") public Offer duplicate(Long originalOfferId)
OfferServiceduplicate in interface OfferServicepublic CustomerOfferDao getCustomerOfferDao()
getCustomerOfferDao in interface OfferServicepublic void setCustomerOfferDao(CustomerOfferDao customerOfferDao)
setCustomerOfferDao in interface OfferServicepublic OfferCodeDao getOfferCodeDao()
getOfferCodeDao in interface OfferServicepublic void setOfferCodeDao(OfferCodeDao offerCodeDao)
setOfferCodeDao in interface OfferServicepublic OfferDao getOfferDao()
getOfferDao in interface OfferServicepublic void setOfferDao(OfferDao offerDao)
setOfferDao in interface OfferServicepublic OrderOfferProcessor getOrderOfferProcessor()
getOrderOfferProcessor in interface OfferServicepublic void setOrderOfferProcessor(OrderOfferProcessor orderOfferProcessor)
setOrderOfferProcessor in interface OfferServicepublic ItemOfferProcessor getItemOfferProcessor()
getItemOfferProcessor in interface OfferServicepublic void setItemOfferProcessor(ItemOfferProcessor itemOfferProcessor)
setItemOfferProcessor in interface OfferServicepublic FulfillmentGroupOfferProcessor getFulfillmentGroupOfferProcessor()
getFulfillmentGroupOfferProcessor in interface OfferServicepublic void setFulfillmentGroupOfferProcessor(FulfillmentGroupOfferProcessor fulfillmentGroupOfferProcessor)
setFulfillmentGroupOfferProcessor in interface OfferServicepublic PromotableItemFactory getPromotableItemFactory()
getPromotableItemFactory in interface OfferServicepublic void setPromotableItemFactory(PromotableItemFactory promotableItemFactory)
setPromotableItemFactory in interface OfferServicepublic OfferCode findOfferCodeById(Long id)
OfferServicefindOfferCodeById in interface OfferServiceid - the offer idpublic List<OfferCode> findOfferCodesByIds(Collection<Long> ids)
findOfferCodesByIds in interface OfferServicepublic OrderService getOrderService()
getOrderService in interface OfferServicepublic void setOrderService(OrderService orderService)
setOrderService in interface OfferServicepublic Offer findOfferById(Long offerId)
findOfferById in interface OfferServiceCopyright © 2019. All rights reserved.