Interface OfferServiceUtilities
- All Known Implementing Classes:
OfferServiceUtilitiesImpl
public interface OfferServiceUtilities
This class serves to allow reuse of logic between the core offer service and related offer service extensions.
Changes here likely affect other modules including advanced offer and subscription.
- Author:
- bpolster
-
Method Summary
Modifier and TypeMethodDescriptionvoidapplyAdjustmentsForItemPriceDetails(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> itemPriceDetails) Takes in a list ofPromotableOrderItemPriceDetails and applies adjustments for all of the discounts that match the passed in offer.voidapplyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail itemPriceDetail) Used by applyAdjustments to create an OrderItemAdjustment from a CandidateOrderOffer and associates the OrderItemAdjustment to the OrderItem.buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail) Builds a map from itemDetails for adjustment processing.buildOrderItemList(Order order) Builds the list of order-items at the level they are being priced which includes splitting bundles that are being priced at the item level.buildPromotableItemMap(PromotableOrder promotableOrder) Builds a map from orderItem to promotableOrderItem.findRelatedQualifierRoot(OrderItem relatedQualifier) Given an orderItem, finds the top most parent order item.booleanisAddOnOrderItem(OrderItem orderItem) Determines whether or not theOrderItemwas added by a Product Add-OnbooleanitemOfferCanBeApplied(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> details) Return false if a totalitarian or non-combinable offer has already been applied or if this offer is totalitarian or non-combinable and this order already has adjustments applied.intmarkQualifiersForCriteria(PromotableCandidateItemOffer itemOffer, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails) Returns the number of qualifiers marked for the passed in itemCriteriaintmarkRelatedQualifiersAndTargetsForItemCriteria(PromotableCandidateItemOffer itemOffer, PromotableOrder order, OrderItemHolder orderItemHolder, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, ItemOfferMarkTargets itemOfferMarkTargets) Returns the number of targets marked for the passed in itemCriteriaintmarkTargetsForCriteria(PromotableCandidateItemOffer itemOffer, OrderItem relatedQualifier, boolean checkOnly, Offer promotion, OrderItem relatedQualifierRoot, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, int targetQtyNeeded) Returns the number of targets marked for the passed in itemCriteriabooleanmarkTargetsForOfferPriceData(PromotableCandidateItemOffer itemOffer, OrderItem relatedQualifier, boolean checkOnly, Offer promotion, OrderItem relatedQualifierRoot, OfferPriceData offerPriceData, List<PromotableOrderItemPriceDetail> priceDetails) booleanorderMeetsQualifyingSubtotalRequirements(PromotableOrder order, Offer offer, HashMap<OfferItemCriteria, List<PromotableOrderItem>> qualifiersMap) Determines whether or not anPromotableOrdermeets the qualifying subtotal requirement of anOfferbooleanorderMeetsSubtotalRequirements(PromotableOrder order, Offer offer) Determines whether or not anPromotableOrdermeets the subtotal requirement of anOfferbooleanorderMeetsTargetSubtotalRequirements(PromotableOrder order, Offer offer, HashMap<OfferItemCriteria, List<PromotableOrderItem>> targetsMap) Determines whether or not anPromotableOrdermeets the target subtotal requirement of anOffervoidremoveUnmatchedPriceDetails(Map<Long, ? extends OrderItemPriceDetail> unmatchedDetailsMap, Iterator<? extends OrderItemPriceDetail> pdIterator) Removes price details from the iterator that are contained in the passed in map.voidremoveUnmatchedQualifiers(Map<Long, ? extends OrderItemQualifier> unmatchedQualifiersMap, Iterator<? extends OrderItemQualifier> qIterator) Removes qualifiers from the iterator that are contained in the passed in map.voidsortQualifierItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice) Used inItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder)Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion.voidsortTargetItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice) Used inItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder)Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion.voidupdatePriceDetail(OrderItemPriceDetail itemDetail, PromotableOrderItemPriceDetail promotableDetail) Updates the passed in price detail and its associated adjustments.
-
Method Details
-
sortTargetItemDetails
void sortTargetItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice) Used inItemOfferProcessorImpl.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 discounted first.
-
sortQualifierItemDetails
void sortQualifierItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice) Used inItemOfferProcessorImpl.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.
-
findRelatedQualifierRoot
Given an orderItem, finds the top most parent order item.- Parameters:
relatedQualifier-- Returns:
-
itemOfferCanBeApplied
boolean itemOfferCanBeApplied(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> details) Return false if a totalitarian or non-combinable offer has already been applied or if this offer is totalitarian or non-combinable and this order already has adjustments applied.- Parameters:
order-details-- Returns:
-
markQualifiersForCriteria
int markQualifiersForCriteria(PromotableCandidateItemOffer itemOffer, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails) Returns the number of qualifiers marked for the passed in itemCriteria- Parameters:
itemOffer-itemCriteria-priceDetails-- Returns:
-
markTargetsForCriteria
int markTargetsForCriteria(PromotableCandidateItemOffer itemOffer, OrderItem relatedQualifier, boolean checkOnly, Offer promotion, OrderItem relatedQualifierRoot, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, int targetQtyNeeded) Returns the number of targets marked for the passed in itemCriteria- Parameters:
itemOffer-relatedQualifier-checkOnly-promotion-relatedQualifierRoot-itemCriteria-priceDetails-targetQtyNeeded-- Returns:
-
markTargetsForOfferPriceData
boolean markTargetsForOfferPriceData(PromotableCandidateItemOffer itemOffer, OrderItem relatedQualifier, boolean checkOnly, Offer promotion, OrderItem relatedQualifierRoot, OfferPriceData offerPriceData, List<PromotableOrderItemPriceDetail> priceDetails) -
markRelatedQualifiersAndTargetsForItemCriteria
int markRelatedQualifiersAndTargetsForItemCriteria(PromotableCandidateItemOffer itemOffer, PromotableOrder order, OrderItemHolder orderItemHolder, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails, ItemOfferMarkTargets itemOfferMarkTargets) Returns the number of targets marked for the passed in itemCriteria- Parameters:
itemOffer-order-orderItemHolder-itemCriteria-priceDetails-- Returns:
-
applyAdjustmentsForItemPriceDetails
void applyAdjustmentsForItemPriceDetails(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> itemPriceDetails) Takes in a list ofPromotableOrderItemPriceDetails and applies adjustments for all of the discounts that match the passed in offer.- Parameters:
itemOffer-itemPriceDetails-
-
isAddOnOrderItem
Determines whether or not theOrderItemwas added by a Product Add-On- Parameters:
orderItem-- Returns:
-
applyOrderItemAdjustment
void applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail itemPriceDetail) Used by applyAdjustments to create an OrderItemAdjustment from a CandidateOrderOffer and associates the OrderItemAdjustment to the OrderItem.- Parameters:
itemOffer- a CandidateOrderOffer to apply to an Order
-
buildOrderItemList
Builds the list of order-items at the level they are being priced which includes splitting bundles that are being priced at the item level.- Parameters:
order-- Returns:
-
buildPromotableItemMap
Builds a map from orderItem to promotableOrderItem.- Parameters:
promotableOrder-- Returns:
-
buildItemDetailAdjustmentMap
Map<Long,OrderItemPriceDetailAdjustment> buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail) Builds a map from itemDetails for adjustment processing.- Parameters:
itemDetail-- Returns:
-
updatePriceDetail
void updatePriceDetail(OrderItemPriceDetail itemDetail, PromotableOrderItemPriceDetail promotableDetail) Updates the passed in price detail and its associated adjustments.- Parameters:
itemDetail-promotableDetail-
-
removeUnmatchedPriceDetails
void removeUnmatchedPriceDetails(Map<Long, ? extends OrderItemPriceDetail> unmatchedDetailsMap, Iterator<? extends OrderItemPriceDetail> pdIterator) Removes price details from the iterator that are contained in the passed in map.- Parameters:
unmatchedDetailsMap-pdIterator-
-
removeUnmatchedQualifiers
void removeUnmatchedQualifiers(Map<Long, ? extends OrderItemQualifier> unmatchedQualifiersMap, Iterator<? extends OrderItemQualifier> qIterator) Removes qualifiers from the iterator that are contained in the passed in map.- Parameters:
unmatchedQualifiersMap-qIterator-
-
orderMeetsQualifyingSubtotalRequirements
boolean orderMeetsQualifyingSubtotalRequirements(PromotableOrder order, Offer offer, HashMap<OfferItemCriteria, List<PromotableOrderItem>> qualifiersMap) Determines whether or not anPromotableOrdermeets the qualifying subtotal requirement of anOffer- Parameters:
order-offer-qualifiersMap-- Returns:
- boolean
-
orderMeetsTargetSubtotalRequirements
boolean orderMeetsTargetSubtotalRequirements(PromotableOrder order, Offer offer, HashMap<OfferItemCriteria, List<PromotableOrderItem>> targetsMap) Determines whether or not anPromotableOrdermeets the target subtotal requirement of anOffer- Parameters:
order-offer-targetsMap-- Returns:
-
orderMeetsSubtotalRequirements
Determines whether or not anPromotableOrdermeets the subtotal requirement of anOffer- Parameters:
order-offer-- Returns:
- boolean
-