Class FulfillmentGroupOfferProcessorImpl
java.lang.Object
org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
org.broadleafcommerce.core.offer.service.processor.FulfillmentGroupOfferProcessorImpl
- All Implemented Interfaces:
BaseProcessor,FulfillmentGroupOfferProcessor,OrderOfferProcessor
@Service("blFulfillmentGroupOfferProcessor")
public class FulfillmentGroupOfferProcessorImpl
extends OrderOfferProcessorImpl
implements FulfillmentGroupOfferProcessor
- Author:
- jfischer
-
Field Summary
Fields inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
entityService, offerDao, offerServiceUtilities, orderItemDao, promotableItemFactoryFields inherited from class org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
extensionManager, offerTimeZoneProcessor, promotableOfferUtility -
Constructor Summary
ConstructorsConstructorDescriptionFulfillmentGroupOfferProcessorImpl(PromotableOfferUtility promotableOfferUtility) -
Method Summary
Modifier and TypeMethodDescriptionbooleanapplyAllFulfillmentGroupOffers(List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, PromotableOrder order) Private method that 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 voidapplyFulfillmentGroupOffer(PromotableFulfillmentGroup promotableFulfillmentGroup, PromotableCandidateFulfillmentGroupOffer fulfillmentGroupOffer) voidprotected booleancompareAndAdjustFulfillmentGroupOffers(PromotableOrder order, boolean fgOfferApplied) protected booleancouldOfferApplyToFulfillmentGroup(Offer offer, PromotableFulfillmentGroup fulfillmentGroup) protected PromotableCandidateFulfillmentGroupOffercreateCandidateFulfillmentGroupOffer(Offer offer, List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, PromotableFulfillmentGroup fulfillmentGroup) voidfilterFulfillmentGroupLevelOffer(PromotableOrder order, List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, Offer offer) protected voidfilterOffersByQualifyingAndSubtotalRequirements(PromotableOrder order, List<PromotableCandidateFulfillmentGroupOffer> fgOffers) protected booleanWhether or not items across the entire order should be considered in item-level qualifiers for the given fulfillment group.protected booleanorderMeetsQualifyingSubtotalRequirements(PromotableOrder order, PromotableCandidateFulfillmentGroupOffer fgOffer) protected booleanorderMeetsSubtotalRequirements(PromotableOrder order, PromotableCandidateFulfillmentGroupOffer fgOffer) removeTrailingNotCombinableFulfillmentGroupOffers(List<FulfillmentGroupOfferPotential> candidateOffers) Methods inherited from class org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessorImpl
applyAllOrderOffers, applyOrderOffer, buildItemPriceDetailKey, buildPromFulfillmentAdjMap, buildPromotableDetailsMap, buildPromotableFulfillmentGroupMap, buildPromotableOrderAdjustmentsMap, buildPromotableQualifiersMap, compareAndAdjustOrderAndItemOffers, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, couldOfferApplyToOrder, createCandidateOrderOffer, fgContainsFutureCreditAdjustment, filterOrderLevelOffer, getOfferServiceUtilities, getPromotableItemFactory, orderMeetsQualifyingSubtotalRequirements, orderMeetsSubtotalRequirements, processMatchingDetails, removeTrailingNotCombinableOrderOffers, setOfferDao, setOfferServiceUtilities, setOrderItemDao, setPromotableItemFactory, syncFulfillmentPrice, synchronizeAdjustmentsAndPrices, synchronizeFulfillmentGroupAdjustments, synchronizeFulfillmentGroups, synchronizeItemPriceDetails, synchronizeItemQualifiers, synchronizeOrderAdjustments, synchronizeOrderItems, updateAdjustmentIfChangesDetectedMethods inherited from class org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor
addChildOrderItemsToCandidates, checkForItemRequirements, clearAllNonFinalizedQuantities, couldOfferApplyToCustomer, couldOfferApplyToOrderItems, couldOfferApplyToRequestDTO, couldOfferApplyToTimePeriod, couldOrderItemMeetOfferRequirement, dateToCalendar, executeExpression, filterOffers, finalizeQuantities, findQualifyingItemForPriceData, getOfferTimeZoneProcessor, hasPositiveValue, isEmpty, meetsItemQualifierSubtotal, removeInvalidCustomerOffers, removeInvalidRequestOffers, removeOutOfDateOffers, removeTimePeriodOffers, setOfferTimeZoneProcessor, splitDetailsIfNecessary, usePriceBeforeAdjustmentsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.broadleafcommerce.core.offer.service.processor.BaseProcessor
filterOffersMethods inherited from interface org.broadleafcommerce.core.offer.service.processor.OrderOfferProcessor
applyAllOrderOffers, couldOfferApplyToOrder, executeExpression, filterOrderLevelOffer, getPromotableItemFactory, removeTrailingNotCombinableOrderOffers, setOfferDao, setOrderItemDao, setPromotableItemFactory, synchronizeAdjustmentsAndPrices
-
Constructor Details
-
FulfillmentGroupOfferProcessorImpl
-
-
Method Details
-
filterFulfillmentGroupLevelOffer
public void filterFulfillmentGroupLevelOffer(PromotableOrder order, List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, Offer offer) - Specified by:
filterFulfillmentGroupLevelOfferin interfaceFulfillmentGroupOfferProcessor
-
getQualifyGroupAcrossAllOrderItems
Whether or not items across the entire order should be considered in item-level qualifiers for the given fulfillment group. Default behavior is to use only the items within the fulfillment group for the item-level qualifiers.- Parameters:
fg- the fulfillment group that we are attempting to apply item-level qualifiers to- Returns:
-
calculateFulfillmentGroupTotal
- Specified by:
calculateFulfillmentGroupTotalin interfaceFulfillmentGroupOfferProcessor
-
couldOfferApplyToFulfillmentGroup
protected boolean couldOfferApplyToFulfillmentGroup(Offer offer, PromotableFulfillmentGroup fulfillmentGroup) -
createCandidateFulfillmentGroupOffer
protected PromotableCandidateFulfillmentGroupOffer createCandidateFulfillmentGroupOffer(Offer offer, List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, PromotableFulfillmentGroup fulfillmentGroup) -
applyAllFulfillmentGroupOffers
public boolean applyAllFulfillmentGroupOffers(List<PromotableCandidateFulfillmentGroupOffer> qualifiedFGOffers, PromotableOrder order) Description copied from interface:FulfillmentGroupOfferProcessorPrivate method that 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:
applyAllFulfillmentGroupOffersin interfaceFulfillmentGroupOfferProcessor- Parameters:
qualifiedFGOffers- a sorted list of CandidateOrderOfferorder- the Order to apply the CandidateOrderOffers- Returns:
- true if order offer applied; otherwise false
-
filterOffersByQualifyingAndSubtotalRequirements
protected void filterOffersByQualifyingAndSubtotalRequirements(PromotableOrder order, List<PromotableCandidateFulfillmentGroupOffer> fgOffers) -
orderMeetsQualifyingSubtotalRequirements
protected boolean orderMeetsQualifyingSubtotalRequirements(PromotableOrder order, PromotableCandidateFulfillmentGroupOffer fgOffer) -
orderMeetsSubtotalRequirements
protected boolean orderMeetsSubtotalRequirements(PromotableOrder order, PromotableCandidateFulfillmentGroupOffer fgOffer) -
compareAndAdjustFulfillmentGroupOffers
protected boolean compareAndAdjustFulfillmentGroupOffers(PromotableOrder order, boolean fgOfferApplied) -
applyFulfillmentGroupOffer
protected void applyFulfillmentGroupOffer(PromotableFulfillmentGroup promotableFulfillmentGroup, PromotableCandidateFulfillmentGroupOffer fulfillmentGroupOffer) -
removeTrailingNotCombinableFulfillmentGroupOffers
public List<FulfillmentGroupOfferPotential> removeTrailingNotCombinableFulfillmentGroupOffers(List<FulfillmentGroupOfferPotential> candidateOffers) - Specified by:
removeTrailingNotCombinableFulfillmentGroupOffersin interfaceFulfillmentGroupOfferProcessor
-