|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
org.broadleafcommerce.core.offer.service.processor.ItemOfferProcessorImpl
@Service(value="blItemOfferProcessor") public class ItemOfferProcessorImpl
Filter and apply order item offers.
| Field Summary |
|---|
| Fields inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl |
|---|
offerDao, orderItemMergeService, promotableItemFactory |
| Constructor Summary | |
|---|---|
ItemOfferProcessorImpl()
|
|
| Method Summary | |
|---|---|
protected int |
applyAdjustments(PromotableOrder order,
int appliedItemOffersCount,
PromotableCandidateItemOffer itemOffer,
int beforeCount)
|
boolean |
applyAllItemOffers(List<PromotableCandidateItemOffer> itemOffers,
PromotableOrder order)
Private method that takes a list of sorted CandidateItemOffers and determines if each offer can be applied based on the restrictions (stackable and/or combinable) on that offer. |
void |
applyAndCompareOrderAndItemOffers(PromotableOrder order,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
List<PromotableCandidateItemOffer> qualifiedItemOffers)
|
protected void |
applyItemQualifiersAndTargets(PromotableCandidateItemOffer itemOffer,
PromotableOrder order)
|
protected int |
applyLegacyAdjustments(int appliedItemOffersCount,
PromotableCandidateItemOffer itemOffer,
int beforeCount,
PromotableOrderItem orderItem)
|
protected void |
applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer,
PromotableOrderItem orderItem)
Private method used by applyAllItemOffers to create an OrderItemAdjustment from a CandidateItemOffer and associates the OrderItemAdjustment to the OrderItem. |
protected int |
checkAdjustments(PromotableOrder order,
int appliedItemOffersCount)
|
protected int |
checkLegacyAdjustments(List<PromotableOrderItem> discreteOrderItems,
int appliedItemOffersCount)
|
protected PromotableCandidateItemOffer |
createCandidateItemOffer(List<PromotableCandidateItemOffer> qualifiedItemOffers,
Offer offer,
PromotableOrderItem promotableOrderItem)
Create a candidate item offer based on the offer in question and a specific order item |
void |
filterItemLevelOffer(PromotableOrder order,
List<PromotableCandidateItemOffer> qualifiedItemOffers,
Offer offer)
Review an item level offer against the list of discountable items from the order. |
void |
filterOffers(PromotableOrder order,
List<Offer> filteredOffers,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
List<PromotableCandidateItemOffer> qualifiedItemOffers)
|
protected Comparator<PromotableOrderItem> |
getQualifierItemComparator(boolean applyToSalePrice)
Used in applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder) allow for customized
sorting for which qualifier items should be attempted to be used first for a promotion. |
protected Comparator<PromotableOrderItem> |
getTargetItemComparator(boolean applyToSalePrice)
Used in applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder) allow for customized
sorting for which target items the promotion should be attempted to be applied to first. |
protected boolean |
skipOfferIfSubtotalRequirementNotMet(PromotableOrder order,
PromotableCandidateItemOffer itemOffer)
|
| Methods inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl |
|---|
applyAllOrderOffers, applyOrderOffer, compareAndAdjustOrderAndItemOffers, compileOrderTotal, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, createCandidateOrderOffer, filterOrderLevelOffer, getOfferDao, getOrderItemMergeService, getPromotableItemFactory, removeTrailingNotCombinableOrderOffers, setOfferDao, setOrderItemMergeService, setPromotableItemFactory |
| 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 |
| Methods inherited from interface org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessor |
|---|
applyAllOrderOffers, compileOrderTotal, couldOfferApplyToOrder, executeExpression, filterOrderLevelOffer, getOfferDao, getOrderItemMergeService, getPromotableItemFactory, removeTrailingNotCombinableOrderOffers, setOfferDao, setOrderItemMergeService, setPromotableItemFactory |
| Methods inherited from interface org.broadleafcommerce.core.offer.service.processor.BaseProcessor |
|---|
clearOffersandAdjustments, filterOffers |
| Constructor Detail |
|---|
public ItemOfferProcessorImpl()
| Method Detail |
|---|
public void filterItemLevelOffer(PromotableOrder order,
List<PromotableCandidateItemOffer> qualifiedItemOffers,
Offer offer)
ItemOfferProcessor
filterItemLevelOffer in interface ItemOfferProcessororder - the BLC orderqualifiedItemOffers - the container list for any qualified offersoffer - the offer in question
protected PromotableCandidateItemOffer createCandidateItemOffer(List<PromotableCandidateItemOffer> qualifiedItemOffers,
Offer offer,
PromotableOrderItem promotableOrderItem)
qualifiedItemOffers - the container list for candidate item offersoffer - the offer in questionpromotableOrderItem - the specific order item
public boolean applyAllItemOffers(List<PromotableCandidateItemOffer> itemOffers,
PromotableOrder order)
ItemOfferProcessor
applyAllItemOffers in interface ItemOfferProcessoritemOffers - a sorted list of CandidateItemOffer
protected boolean skipOfferIfSubtotalRequirementNotMet(PromotableOrder order,
PromotableCandidateItemOffer itemOffer)
protected int applyAdjustments(PromotableOrder order,
int appliedItemOffersCount,
PromotableCandidateItemOffer itemOffer,
int beforeCount)
protected int checkAdjustments(PromotableOrder order,
int appliedItemOffersCount)
protected int checkLegacyAdjustments(List<PromotableOrderItem> discreteOrderItems,
int appliedItemOffersCount)
protected int applyLegacyAdjustments(int appliedItemOffersCount,
PromotableCandidateItemOffer itemOffer,
int beforeCount,
PromotableOrderItem orderItem)
protected void applyItemQualifiersAndTargets(PromotableCandidateItemOffer itemOffer,
PromotableOrder order)
protected Comparator<PromotableOrderItem> getQualifierItemComparator(boolean applyToSalePrice)
applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder) allow for customized
sorting for which qualifier items should be attempted to be used first for a promotion. Default behavior
is to sort descending, so higher-value items are attempted to be qualified first.
applyToSalePrice - - whether or not the Comparator should use the sale price for comparison
protected Comparator<PromotableOrderItem> getTargetItemComparator(boolean applyToSalePrice)
Used in applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder) allow for customized
sorting for which target items the promotion should be attempted to be applied to first. Default behavior is to
sort descending, so higher-value items get the promotion over lesser-valued items.
Note: By default, both the getQualifierItemComparator(boolean) and this target comparator are sorted
in descending order. This means that higher-valued items can be paired with higher-valued items and lower-valued
items can be paired with lower-valued items. This also ensures that you will not have the scenario where 2 lower-valued
items can be used to qualify a higher-valued target.
applyToSalePrice - - whether or not the Comparator should use the sale price for comparison
protected void applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer,
PromotableOrderItem orderItem)
itemOffer - a CandidateItemOffer to apply to an OrderItem
public void filterOffers(PromotableOrder order,
List<Offer> filteredOffers,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
List<PromotableCandidateItemOffer> qualifiedItemOffers)
filterOffers in interface ItemOfferProcessor
public void applyAndCompareOrderAndItemOffers(PromotableOrder order,
List<PromotableCandidateOrderOffer> qualifiedOrderOffers,
List<PromotableCandidateItemOffer> qualifiedItemOffers)
applyAndCompareOrderAndItemOffers in interface ItemOfferProcessor
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||