Uses of Class
com.broadleafcommerce.promotion.offer.service.dto.CandidateItemOffer
Package
Description
-
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.service.dto
Modifier and TypeMethodDescriptionCandidateOffers.getCandidateFulfillmentItemOffers()
List of candidate offers targetingfulfillment items
.OfferProcessingContext.getCandidateFulfillmentItemOffers()
CandidateOffers.getCandidateOrderItemOffers()
List of candidate offers targetingorder items
.OfferProcessingContext.getCandidateOrderItemOffers()
Modifier and TypeMethodDescriptionvoid
CandidateOffers.setCandidateFulfillmentItemOffers
(List<CandidateItemOffer> candidateFulfillmentItemOffers) List of candidate offers targetingfulfillment items
.void
CandidateOffers.setCandidateOrderItemOffers
(List<CandidateItemOffer> candidateOrderItemOffers) List of candidate offers targetingorder items
. -
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.service.dto.comparator
Modifier and TypeMethodDescriptionint
CandidateItemOfferComparator.compare
(CandidateItemOffer p1, CandidateItemOffer p2) int
ItemOfferQtyOneComparator.compare
(CandidateItemOffer p1, CandidateItemOffer p2) int
ItemOfferWeightedPercentSavedComparator.compare
(CandidateItemOffer p1, CandidateItemOffer p2) -
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.service.engine.application.processor
Modifier and TypeMethodDescriptionprotected List<List<CandidateItemOffer>>
DefaultItemOfferProcessor.expandPermutations
(List<CandidateItemOffer> itemOffers) This method takes a list of item offers that are compatible with each other and share the same combinability characteristics with other types like order offers and builds additional permutations that influence the order that the offers will be run.protected Optional<List<CandidateItemOffer>>
DefaultItemOfferProcessor.findBestPermutation
(EnhancedOrder order, List<List<CandidateItemOffer>> permutations) Determines the best permutation by comparing the resulting total discounts of each permutations.protected List<CandidateItemOffer>
DefaultItemOfferProcessor.getCandidateItemOffers
(OfferProcessingContext context) protected List<CandidateItemOffer>
DefaultItemOfferProcessor.getPermutationByComparator
(List<CandidateItemOffer> rootPremutation, Comparator<CandidateItemOffer> comparator) Uses aComparator
to sortcandidate offers
.Modifier and TypeMethodDescriptionprotected void
DefaultItemOfferProcessor.applyAdjustments
(EnhancedOrder order, CandidateItemOffer itemOffer) protected void
DefaultItemOfferProcessor.applyFreeGift
(EnhancedOrder order, CandidateItemOffer itemOffer) Builds and adds aFreeGiftItem
toEnhancedOrder.getFreeGiftItems()
based ongetCandidateQualifiersMap()
if the givenitemOffer
is a free gift offer.protected void
DefaultItemOfferProcessor.applyItemOffer
(EnhancedOrder order, CandidateItemOffer itemOffer) protected void
DefaultItemOfferProcessor.applyItemQualifiersAndTargets
(EnhancedOrder order, CandidateItemOffer itemOffer) protected void
DefaultItemOfferProcessor.applyLineItemAdjustment
(@NonNull CandidateItemOffer itemOffer, @NonNull LineItemOfferDetail offerDetail, @NonNull OfferDiscount offerDiscount) Adds anItemOfferAdjustment
to the givenLineItemOfferDetail
.protected com.broadleafcommerce.promotion.offer.client.web.context.info.Adjustment
DefaultItemOfferProcessor.buildAdjustmentForFreeGift
(EnhancedOrder order, CandidateItemOffer itemOffer) Builds anAdjustment
for aFreeGiftItem
.protected javax.money.MonetaryAmount
DefaultItemOfferProcessor.calculatePartialSavingsAmountForDiscount
(CandidateItemOffer itemOffer, OfferDiscount discount) protected boolean
DefaultItemOfferProcessor.canOfferBeApplied
(EnhancedOrder order, CandidateItemOffer itemOffer, List<LineItemOfferDetail> itemDetails) Deprecated.protected boolean
DefaultItemOfferProcessor.canOfferBeApplied
(EnhancedOrder order, CandidateItemOffer itemOffer, List<LineItemOfferDetail> itemDetails, ItemOfferPermutationResult result) Determines whether theOffer
can be applied by making sure it is the order meets the total requirements.protected javax.money.MonetaryAmount
DefaultItemOfferProcessor.computeSaleAdjustmentValue
(CandidateItemOffer itemOffer, LineItemOfferDetail offerDetail) protected javax.money.MonetaryAmount
DefaultItemOfferProcessor.computeStandardAdjustmentValue
(CandidateItemOffer itemOffer, LineItemOfferDetail offerDetail) protected com.broadleafcommerce.promotion.offer.client.web.context.info.OfferItemDetail
DefaultItemOfferProcessor.createOfferItemDetail
(CandidateItemOffer itemOffer, String itemId, int quantityPerUsage) Creates anOfferItemDetail
based on the given fields.protected com.broadleafcommerce.promotion.offer.client.web.context.info.OfferItemDetail
DefaultItemOfferProcessor.createOfferItemDetailAndDetermineQualifierQuantity
(@NonNull CandidateItemOffer itemOffer, @NonNull EnhancedLineItem lineItem, OfferDiscount offerDiscount, int quantityPerUsage) Creates anOfferItemDetail
based on the given fields.protected int
DefaultItemOfferProcessor.getFreeGiftQuantityToAdd
(CandidateItemOffer itemOffer) Gets the quantity of the free gift items to be added from the givenCandidateItemOffer
.protected List<com.broadleafcommerce.promotion.offer.client.web.context.info.OfferItemDetail>
DefaultItemOfferProcessor.getQualifierDetails
(@NonNull CandidateItemOffer itemOffer, OfferDiscount offerDiscount) Gets a list ofOfferItemDetails
representing qualifiers.protected boolean
DefaultItemOfferProcessor.isAdjustmentGoodEnough
(CandidateItemOffer itemOffer, LineItemOfferDetail detail) Checking to make sure that an offer's adjustment to an item's price is actually better than the original price, especially if the item is on sale since not all offers can apply to a sale price.protected boolean
DefaultItemOfferProcessor.itemHasQualifierOfferDetails
(@NonNull EnhancedLineItem item, @NonNull CandidateItemOffer itemOffer, OfferDiscount offerDiscount) Determines whether the givenEnhancedLineItem
has anyOfferItemDetails
that has anyOfferQualifiers
matching the givenCandidateItemOffer
.protected void
DefaultItemOfferProcessor.splitDetailsIfNecessary
(List<LineItemOfferDetail> offerDetails, CandidateItemOffer itemOffer) Checks if the discount quantity matches the detail quantity.Modifier and TypeMethodDescriptionprotected void
DefaultItemOfferProcessor.applyCandidateOffers
(EnhancedOrder order, List<CandidateItemOffer> candidateOffers) Deprecated.protected void
DefaultItemOfferProcessor.applyCandidateOffers
(EnhancedOrder order, List<CandidateItemOffer> candidateOffers, ItemOfferPermutationResult result) protected void
DefaultItemOfferProcessor.calculatePotentialSavings
(EnhancedOrder order, List<CandidateItemOffer> candidateItemOffers) protected void
DefaultItemOfferProcessor.clearStateBetweenPermutations
(EnhancedOrder order, List<CandidateItemOffer> candidateOffers) protected ItemOfferPermutationResult
DefaultItemOfferProcessor.computeOfferPermutationValue
(OfferProcessingContext context, List<CandidateItemOffer> candidateItemOffers, OrderTotals orderTotals) protected List<List<CandidateItemOffer>>
DefaultItemOfferProcessor.expandPermutations
(List<CandidateItemOffer> itemOffers) This method takes a list of item offers that are compatible with each other and share the same combinability characteristics with other types like order offers and builds additional permutations that influence the order that the offers will be run.protected Optional<List<CandidateItemOffer>>
DefaultItemOfferProcessor.findBestPermutation
(EnhancedOrder order, List<List<CandidateItemOffer>> permutations) Determines the best permutation by comparing the resulting total discounts of each permutations.protected List<CandidateItemOffer>
DefaultItemOfferProcessor.getPermutationByComparator
(List<CandidateItemOffer> rootPremutation, Comparator<CandidateItemOffer> comparator) Uses aComparator
to sortcandidate offers
.protected List<CandidateItemOffer>
DefaultItemOfferProcessor.getPermutationByComparator
(List<CandidateItemOffer> rootPremutation, Comparator<CandidateItemOffer> comparator) Uses aComparator
to sortcandidate offers
.void
DefaultItemOfferProcessor.prepareForItemOfferProcessing
(EnhancedOrder order, List<CandidateItemOffer> candidateItemOffers) void
ItemOfferProcessor.prepareForItemOfferProcessing
(EnhancedOrder order, List<CandidateItemOffer> candidateItemOffers) Item offer processing can benefit from setup activities that are used by all of the permutations.protected void
DefaultItemOfferProcessor.removeDuplicatePermutations
(List<List<CandidateItemOffer>> permutations) A duplicate permutation means that the permutations have the same offers in the same order.protected void
DefaultItemOfferProcessor.setCandidateItemOffers
(CandidateOffers candidateOffers, List<CandidateItemOffer> candidateItemOffers) protected void
DefaultItemOfferProcessor.sort
(List<CandidateItemOffer> candidateItemOffers) The default based on theCandidateItemOfferComparator
-
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.service.engine.application.processor.helper
Modifier and TypeMethodDescriptionboolean
DefaultOrderAndItemOfferHelper.orderMeetsTargetTotalRequirements
(CandidateItemOffer itemOffer) boolean
OrderAndItemOfferHelper.orderMeetsTargetTotalRequirements
(CandidateItemOffer itemOffer) As offers are applied, recheck to ensure that the next offer in the collection of candidates can be applied based on the total of target item prices. -
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.service.engine.application.processor.helper.item
Modifier and TypeMethodDescriptionprotected void
DefaultPotentialSavingsCalculator.assertCandidateOfferNotNull
(CandidateItemOffer candidateOffer) protected void
DefaultQualifierAndTargetMarker.assertCandidateOfferNotNull
(CandidateItemOffer candidateOffer) protected void
DefaultPotentialSavingsCalculator.assertCommonParamsNotNull
(EnhancedOrder order, CandidateItemOffer candidateOffer) protected void
DefaultQualifierAndTargetMarker.assertCommonParamsNotNull
(EnhancedOrder order, CandidateItemOffer candidateOffer) javax.money.MonetaryAmount
DefaultPotentialSavingsCalculator.calculateDiscountForItem
(CandidateItemOffer itemOffer, EnhancedLineItem item, int quantityToReceiveDiscount) javax.money.MonetaryAmount
PotentialSavingsCalculator.calculateDiscountForItem
(CandidateItemOffer itemOffer, EnhancedLineItem item, int quantityToReceiveDiscount) Calculates the potential discount of aCandidateItemOffer
for anEnhancedLineItem
.protected javax.money.MonetaryAmount
DefaultQualifierAndTargetMarker.calculateEstimatedSavingsForIteration
(CandidateItemOffer itemOffer) DefaultPotentialSavingsCalculator.calculatePotentialSavingsForOffer
(EnhancedOrder order, CandidateItemOffer itemOffer, boolean isForFulfillment) PotentialSavingsCalculator.calculatePotentialSavingsForOffer
(EnhancedOrder order, CandidateItemOffer itemOffer, boolean isForFulfillment) Calculates theTotalPotentialSavings
for all of the givenEnhancedOrder.getOrderLineItems()
order's order line items} if the givenCandidateItemOffer
was applied.javax.money.MonetaryAmount
DefaultPotentialSavingsCalculator.computeAdjustmentValue
(javax.money.MonetaryAmount currentPrice, CandidateItemOffer itemOffer) javax.money.MonetaryAmount
DefaultPotentialSavingsCalculator.computeAdjustmentValue
(javax.money.MonetaryAmount currentPrice, CandidateItemOffer itemOffer, double prorationAmount) javax.money.MonetaryAmount
PotentialSavingsCalculator.computeAdjustmentValue
(javax.money.MonetaryAmount currentPrice, CandidateItemOffer itemOffer) CallsPotentialSavingsCalculator.computeAdjustmentValue(javax.money.MonetaryAmount, com.broadleafcommerce.promotion.offer.service.dto.CandidateItemOffer, double)
with a proration amount of 1 meaning no proration.}javax.money.MonetaryAmount
PotentialSavingsCalculator.computeAdjustmentValue
(javax.money.MonetaryAmount currentPrice, CandidateItemOffer itemOffer, double prorationAmount) Computes the adjustment value of aCandidateItemOffer
for a targetedEnhancedLineItem
.protected Optional<DiscountTier>
DefaultPotentialSavingsCalculator.determineMaxTier
(CandidateItemOffer itemOffer, List<DiscountTier> discountTiers) protected DiscountParameters
DefaultPotentialSavingsCalculator.determineOfferDiscountParameters
(CandidateItemOffer itemOffer) Determines thediscount method type
and discount amount for thecandidate offer
, accounting forOffer.getDiscountTiers()
.void
DefaultPotentialSavingsCalculator.finalizePotentialSavingsOnOffer
(CandidateItemOffer itemOffer, TotalPotentialSavings totalPotentialSavings) void
PotentialSavingsCalculator.finalizePotentialSavingsOnOffer
(CandidateItemOffer itemOffer, TotalPotentialSavings totalPotentialSavings) Saves the finalBaseCandidateOffer.getPotentialSavings()
andgetWeightedPercentSaved()
for all of anEnhancedOrder.getOrderLineItems()
order's order items} if the givenCandidateItemOffer
was applied.protected DiscountTier
DefaultPotentialSavingsCalculator.getMaxTierForTieredItemQty
(CandidateItemOffer itemOffer, List<DiscountTier> discountTiers, int quantityForTierOffer) protected DiscountTier
DefaultPotentialSavingsCalculator.getMaxTierForTieredItemSubtotal
(CandidateItemOffer itemOffer, List<DiscountTier> discountTiers, BigDecimal amountForTierOffer) protected Optional<javax.money.MonetaryAmount>
DefaultQualifierAndTargetMarker.handleMaxItemSavingsPerOrder
(CandidateItemOffer itemOffer, EnhancedOrder order, boolean isForFulfillment, javax.money.MonetaryAmount runningAdjustmentsTotal) Calculates the currentIterationSavings.protected boolean
DefaultQualifierAndTargetMarker.markAllQualifiers
(CandidateItemOffer itemOffer) Marks which items are qualifiers for eachOffer.getItemQualifierCriteria()
protected boolean
DefaultQualifierAndTargetMarker.markAllTargets
(CandidateItemOffer itemOffer, EnhancedLineItem relatedQualifier, boolean checkOnly) Marks all the items that match aOffer.getTargetItemCriteria()
.void
DefaultQualifierAndTargetMarker.markQualifiersAndTargets
(EnhancedOrder order, CandidateItemOffer itemOffer, boolean isForFulfillment) void
QualifierAndTargetMarker.markQualifiersAndTargets
(EnhancedOrder order, CandidateItemOffer itemOffer, boolean isForFulfillment) MarksEnhancedOrder.getOrderLineItems()
as either targets or qualifiers for a givenCandidateItemOffer
.protected int
DefaultQualifierAndTargetMarker.markQualifiersForSingleCriteria
(CandidateItemOffer itemOffer, ItemCriteriaRule itemCriteria, Collection<? extends EnhancedLineItem> orderLineItems) Marks all the qualifiers for a singleOffer.getItemQualifierCriteria()
.protected boolean
DefaultQualifierAndTargetMarker.markRelatedQualifiersAndTargets
(CandidateItemOffer itemOffer) Marks item qualifiers and the target items they qualify for anoffer's
discount to ensure that all qualifiers have targets and vice versa.protected org.apache.commons.lang3.tuple.Pair<EnhancedLineItem,
Integer> DefaultQualifierAndTargetMarker.markRelatedQualifiersAndTargetsForItemCriteria
(CandidateItemOffer itemOffer, ItemCriteriaRule qualifierCriteria, Collection<? extends EnhancedLineItem> orderLineItems) Marks item qualifiers and the target items they qualify for a singleOffer.getItemQualifierCriteria()
to ensure that all qualifiers have targets and vice versa.protected int
DefaultQualifierAndTargetMarker.markSingleTargetForItemCriteria
(LineItemOfferDetail offerDetail, CandidateItemOffer itemOffer, ItemCriteriaRule targetCriteria, int targetQtyNeeded, boolean checkOnly) Marks a single item as a target of a singleOffer.getTargetItemCriteria()
protected int
DefaultQualifierAndTargetMarker.markTargetsForCriteria
(CandidateItemOffer itemOffer, EnhancedLineItem relatedQualifier, boolean checkOnly, ItemCriteriaRule targetCriteria, Collection<? extends EnhancedLineItem> orderLineItems) Marks the targets related to the provideditem qualifier
(relatedQualifier
) to ensure that there are enough to use for the qualifier'sOffer
.protected void
DefaultPotentialSavingsCalculator.setPotentialSavings
(CandidateItemOffer itemOffer, javax.money.MonetaryAmount potentialSavings) protected void
DefaultPotentialSavingsCalculator.setWeightedDiscountPercent
(CandidateItemOffer itemOffer, BigDecimal weightedDiscountPercent) protected void
DefaultQualifierAndTargetMarker.storeNonFinalizedQuantities
(List<LineItemOfferDetail> lineItemOfferDetails, CandidateItemOffer itemOffer) protected void
DefaultQualifierAndTargetMarker.updateReasonResponses
(EnhancedOrder order, CandidateItemOffer itemOffer, boolean qualifiersFound) -
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.service.engine.candidate
Modifier and TypeMethodDescriptionCandidateOfferUtility.createCandidateFulfillmentItemOffer
(EnhancedOrder order, Offer offer) Creates aCandidateItemOffer
for the given order and offer.DefaultCandidateOfferUtility.createCandidateFulfillmentItemOffer
(EnhancedOrder order, Offer offer) CandidateOfferUtility.createCandidateOrderItemOffer
(EnhancedOrder order, Offer offer) Creates aCandidateItemOffer
for the given order and offer.DefaultCandidateOfferUtility.createCandidateOrderItemOffer
(EnhancedOrder order, Offer offer) Modifier and TypeMethodDescriptionDefaultOfferCandidateService.populateOrRemoveOffersByFulfillmentItemQualifiers
(@NonNull List<CandidateItemOffer> candidateOfferSet, @NonNull EnhancedOrder order) OfferCandidateService.populateOrRemoveOffersByFulfillmentItemQualifiers
(List<CandidateItemOffer> candidateOfferSet, EnhancedOrder order) Filter the provided offer set based on if the fulfillment items of the provided order match as qualifiers.DefaultOfferCandidateService.populateOrRemoveOffersByFulfillmentItemTargets
(@NonNull List<CandidateItemOffer> candidateOfferSet, @NonNull EnhancedOrder order) OfferCandidateService.populateOrRemoveOffersByFulfillmentItemTargets
(List<CandidateItemOffer> candidateOfferSet, EnhancedOrder order) Filter the provided offer set based on if the provided fulfillment items of the order match as shipping targets.DefaultOfferCandidateService.populateOrRemoveOffersByItemTargets
(@NonNull List<CandidateItemOffer> candidateOfferSet, @NonNull EnhancedOrder order) OfferCandidateService.populateOrRemoveOffersByItemTargets
(List<CandidateItemOffer> candidateOfferSet, EnhancedOrder order) Filter the provided offer set based on if the items of the provided order match as targets.Modifier and TypeMethodDescriptionprotected javax.money.MonetaryAmount
DefaultOfferCandidateService.calculateStandardPriceSavings
(EnhancedOrderLineItem item, CandidateItemOffer itemOffer) Modifier and TypeMethodDescriptionDefaultOfferCandidateService.populateOrRemoveOffersByFulfillmentItemQualifiers
(@NonNull List<CandidateItemOffer> candidateOfferSet, @NonNull EnhancedOrder order) OfferCandidateService.populateOrRemoveOffersByFulfillmentItemQualifiers
(List<CandidateItemOffer> candidateOfferSet, EnhancedOrder order) Filter the provided offer set based on if the fulfillment items of the provided order match as qualifiers.DefaultOfferCandidateService.populateOrRemoveOffersByFulfillmentItemTargets
(@NonNull List<CandidateItemOffer> candidateOfferSet, @NonNull EnhancedOrder order) OfferCandidateService.populateOrRemoveOffersByFulfillmentItemTargets
(List<CandidateItemOffer> candidateOfferSet, EnhancedOrder order) Filter the provided offer set based on if the provided fulfillment items of the order match as shipping targets.DefaultOfferCandidateService.populateOrRemoveOffersByItemTargets
(@NonNull List<CandidateItemOffer> candidateOfferSet, @NonNull EnhancedOrder order) OfferCandidateService.populateOrRemoveOffersByItemTargets
(List<CandidateItemOffer> candidateOfferSet, EnhancedOrder order) Filter the provided offer set based on if the items of the provided order match as targets. -
Uses of CandidateItemOffer in com.broadleafcommerce.promotion.offer.web.context.info
Modifier and TypeMethodDescriptionItemOfferAdjustment.getCandidateItemOffer()
TheCandidateItemOffer
DTO related toItemOfferAdjustment.offer
.OfferDiscount.getCandidateItemOffer()
TheCandidateItemOffer
DTO related toOfferDiscount.offer
.Modifier and TypeMethodDescriptionprotected OfferQualifier
LineItemOfferDetail.addNewQualifierAndGet
(com.broadleafcommerce.common.extension.TypeFactory offerFactory, CandidateItemOffer itemOffer) protected OfferDiscount
LineItemOfferDetail.addNewTargetAndGet
(com.broadleafcommerce.common.extension.TypeFactory offerFactory, CandidateItemOffer itemOffer) LineItemOfferDetail.addOrUpdateMatchingOfferQualifier
(CandidateItemOffer itemOffer, ItemCriteriaRule qualifierCriteria, int qtyToMarkAsQualifier, com.broadleafcommerce.common.extension.TypeFactory offerFactory) Either creates a newOfferQualifier
or updates a preexisting one for the givenCandidateItemOffer
, marking the quantity of to reserve for use as qualifiers for the givenItemCriteriaRule
.void
LineItemOfferDetail.addOrUpdateMatchingOfferTarget
(CandidateItemOffer itemOffer, ItemCriteriaRule targetCriteria, int qtyToMarkAsTarget, com.broadleafcommerce.common.extension.TypeFactory offerFactory) Either creates a newOfferDiscount
or updates a preexisting one for the givenCandidateItemOffer
, marking the quantity of to reserve for use as targets for the givenItemCriteriaRule
.protected int
LineItemOfferDetail.getQtyAvailableToBeUsed
(CandidateItemOffer offer, boolean isForQualifierQty) Calculates the number oforder items
not already exclusively used as targets or qualifiers either by this offer or any other and, therefore, are available to be used as qualifiers or targets by the givenOffer
.int
LineItemOfferDetail.getQtyAvailableToUseAsQualifier
(CandidateItemOffer offer) Calculates the number oforder items
available to be used as qualifiers for the providedOffer
.int
LineItemOfferDetail.getQtyAvailableToUseAsTarget
(CandidateItemOffer offer) Calculates the number oforder items
available to be used as targets for the providedOffer
.protected int
LineItemOfferDetail.getQuantityOfItemsExclusivelyUsedAsQualifiers
(CandidateItemOffer thisOffer, Set<OfferQualifier> offerQualifiers, boolean isForQualifierQty) Calculates the number oforder items
already exclusively used as qualifiers.protected int
LineItemOfferDetail.getQuantityOfItemsExclusivelyUsedAsTargets
(CandidateItemOffer thisOffer, Set<OfferDiscount> offerDiscounts, boolean isForQualifierQty) Calculates the number oforder items
already exclusively used as targets.protected Optional<OfferQualifier>
LineItemOfferDetail.lookupOfferQualifierByOffer
(CandidateItemOffer itemOffer) protected Optional<OfferDiscount>
LineItemOfferDetail.lookupOfferTargetByOffer
(CandidateItemOffer itemOffer) void
ItemOfferAdjustment.setCandidateItemOffer
(CandidateItemOffer candidateItemOffer) TheCandidateItemOffer
DTO related toItemOfferAdjustment.offer
.void
OfferDiscount.setCandidateItemOffer
(CandidateItemOffer candidateItemOffer) TheCandidateItemOffer
DTO related toOfferDiscount.offer
.
DefaultItemOfferProcessor.canOfferBeApplied(EnhancedOrder, CandidateItemOffer, List, ItemOfferPermutationResult)