org.broadleafcommerce.core.offer.service.processor
Class OrderOfferProcessorImpl
java.lang.Object
org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
- All Implemented Interfaces:
- BaseProcessor, OrderOfferProcessor
- Direct Known Subclasses:
- FulfillmentGroupOfferProcessorImpl, ItemOfferProcessorImpl
@Service(value="blOrderOfferProcessor")
public class OrderOfferProcessorImpl
- extends AbstractBaseProcessor
- implements OrderOfferProcessor
- Author:
- jfischer
|
Method Summary |
boolean |
applyAllOrderOffers(List<PromotableCandidateOrderOffer> orderOffers,
PromotableOrder order)
Takes a list of sorted CandidateOrderOffers and determines if each offer can be
applied based on the restrictions (stackable and/or combinable) on that offer. |
protected void |
applyOrderOffer(PromotableOrder order,
PromotableCandidateOrderOffer orderOffer)
Private method used by applyAllOrderOffers to create an OrderAdjustment from a CandidateOrderOffer
and associates the OrderAdjustment to the Order. |
protected boolean |
compareAndAdjustOrderAndItemOffers(PromotableOrder order,
boolean orderOffersApplied)
|
void |
compileOrderTotal(PromotableOrder order)
|
boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder order)
Executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup. |
protected boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder order,
PromotableFulfillmentGroup fulfillmentGroup)
Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup. |
protected boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder order,
PromotableOrderItem discreteOrderItem)
Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup. |
protected boolean |
couldOfferApplyToOrder(Offer offer,
PromotableOrder order,
PromotableOrderItem discreteOrderItem,
PromotableFulfillmentGroup fulfillmentGroup)
Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup. |
protected PromotableCandidateOrderOffer |
createCandidateOrderOffer(PromotableOrder order,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
Offer offer)
|
void |
filterOrderLevelOffer(PromotableOrder order,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
Offer offer)
|
OfferDao |
getOfferDao()
|
OrderItemMergeService |
getOrderItemMergeService()
|
PromotableItemFactory |
getPromotableItemFactory()
|
List<PromotableCandidateOrderOffer> |
removeTrailingNotCombinableOrderOffers(List<PromotableCandidateOrderOffer> candidateOffers)
|
void |
setOfferDao(OfferDao offerDao)
|
void |
setOrderItemMergeService(OrderItemMergeService orderItemMergeService)
|
void |
setPromotableItemFactory(PromotableItemFactory promotableItemFactory)
|
| Methods inherited from class org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor |
checkForItemRequirements, clearAllNonFinalizedQuantities, clearOffersandAdjustments, couldOfferApplyToCustomer, couldOfferApplyToOrderItems, couldOrderItemMeetOfferRequirement, executeExpression, filterOffers, finalizeQuantities, meetsItemQualifierSubtotal, removeInvalidCustomerOffers, removeOutOfDateOffers |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
offerDao
protected OfferDao offerDao
promotableItemFactory
protected PromotableItemFactory promotableItemFactory
orderItemMergeService
protected OrderItemMergeService orderItemMergeService
OrderOfferProcessorImpl
public OrderOfferProcessorImpl()
filterOrderLevelOffer
public void filterOrderLevelOffer(PromotableOrder order,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
Offer offer)
- Specified by:
filterOrderLevelOffer in interface OrderOfferProcessor
couldOfferApplyToOrder
public boolean couldOfferApplyToOrder(Offer offer,
PromotableOrder order)
- Description copied from interface:
OrderOfferProcessor
- Executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
- Specified by:
couldOfferApplyToOrder in interface OrderOfferProcessor
- Returns:
- true if offer can be applied, otherwise false
couldOfferApplyToOrder
protected boolean couldOfferApplyToOrder(Offer offer,
PromotableOrder order,
PromotableOrderItem discreteOrderItem)
- Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
- Parameters:
offer - order - discreteOrderItem -
- Returns:
- true if offer can be applied, otherwise false
couldOfferApplyToOrder
protected boolean couldOfferApplyToOrder(Offer offer,
PromotableOrder order,
PromotableFulfillmentGroup fulfillmentGroup)
- Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
- Parameters:
offer - order - fulfillmentGroup -
- Returns:
- true if offer can be applied, otherwise false
couldOfferApplyToOrder
protected boolean couldOfferApplyToOrder(Offer offer,
PromotableOrder order,
PromotableOrderItem discreteOrderItem,
PromotableFulfillmentGroup fulfillmentGroup)
- Private method which executes the appliesToOrderRules in the Offer to determine if this offer
can be applied to the Order, OrderItem, or FulfillmentGroup.
- Parameters:
offer - order - discreteOrderItem - fulfillmentGroup -
- Returns:
- true if offer can be applied, otherwise false
createCandidateOrderOffer
protected PromotableCandidateOrderOffer createCandidateOrderOffer(PromotableOrder order,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
Offer offer)
removeTrailingNotCombinableOrderOffers
public List<PromotableCandidateOrderOffer> removeTrailingNotCombinableOrderOffers(List<PromotableCandidateOrderOffer> candidateOffers)
- Specified by:
removeTrailingNotCombinableOrderOffers in interface OrderOfferProcessor
applyAllOrderOffers
public boolean applyAllOrderOffers(List<PromotableCandidateOrderOffer> orderOffers,
PromotableOrder order)
- Description copied from interface:
OrderOfferProcessor
- Takes a list of sorted CandidateOrderOffers and determines if each offer can be
applied based on the restrictions (stackable and/or combinable) on that offer. OrderAdjustments
are create on the Order for each applied CandidateOrderOffer. An offer with stackable equals false
cannot be applied to an Order that already contains an OrderAdjustment. An offer with combinable
equals false cannot be applied to the Order if the Order already contains an OrderAdjustment.
- Specified by:
applyAllOrderOffers in interface OrderOfferProcessor
- Parameters:
orderOffers - a sorted list of CandidateOrderOfferorder - the Order to apply the CandidateOrderOffers
- Returns:
- true if order offer applied; otherwise false
compareAndAdjustOrderAndItemOffers
protected boolean compareAndAdjustOrderAndItemOffers(PromotableOrder order,
boolean orderOffersApplied)
applyOrderOffer
protected void applyOrderOffer(PromotableOrder order,
PromotableCandidateOrderOffer orderOffer)
- Private method used by applyAllOrderOffers to create an OrderAdjustment from a CandidateOrderOffer
and associates the OrderAdjustment to the Order.
- Parameters:
orderOffer - a CandidateOrderOffer to apply to an Order
compileOrderTotal
public void compileOrderTotal(PromotableOrder order)
- Specified by:
compileOrderTotal in interface OrderOfferProcessor
getOfferDao
public OfferDao getOfferDao()
- Specified by:
getOfferDao in interface OrderOfferProcessor
setOfferDao
public void setOfferDao(OfferDao offerDao)
- Specified by:
setOfferDao in interface OrderOfferProcessor
getPromotableItemFactory
public PromotableItemFactory getPromotableItemFactory()
- Specified by:
getPromotableItemFactory in interface OrderOfferProcessor
setPromotableItemFactory
public void setPromotableItemFactory(PromotableItemFactory promotableItemFactory)
- Specified by:
setPromotableItemFactory in interface OrderOfferProcessor
getOrderItemMergeService
public OrderItemMergeService getOrderItemMergeService()
- Specified by:
getOrderItemMergeService in interface OrderOfferProcessor
setOrderItemMergeService
public void setOrderItemMergeService(OrderItemMergeService orderItemMergeService)
- Specified by:
setOrderItemMergeService in interface OrderOfferProcessor
Copyright © 2012. All Rights Reserved.