org.broadleafcommerce.core.offer.service
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
 void applyAdjustmentsForItemPriceDetails(PromotableCandidateItemOffer itemOffer, List<PromotableOrderItemPriceDetail> itemPriceDetails)
          Takes in a list of PromotableOrderItemPriceDetails and applies adjustments for all of the discounts that match the passed in offer.
 void applyOrderItemAdjustment(PromotableCandidateItemOffer itemOffer, PromotableOrderItemPriceDetail itemPriceDetail)
          Used by applyAdjustments to create an OrderItemAdjustment from a CandidateOrderOffer and associates the OrderItemAdjustment to the OrderItem.
 Map<Long,OrderItemPriceDetailAdjustment> buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail)
          Builds a map from itemDetails for adjustment processing.
 List<OrderItem> 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.
 Map<OrderItem,PromotableOrderItem> buildPromotableItemMap(PromotableOrder promotableOrder)
          Builds a map from orderItem to promotableOrderItem.
 OrderItem findRelatedQualifierRoot(OrderItem relatedQualifier)
          Given an orderItem, finds the top most parent order item.
 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.
 int markQualifiersForCriteria(PromotableCandidateItemOffer itemOffer, OfferItemCriteria itemCriteria, List<PromotableOrderItemPriceDetail> priceDetails)
          Returns the number of qualifiers marked for the passed in itemCriteria
 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
 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
 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.
 void removeUnmatchedQualifiers(Map<Long,? extends OrderItemQualifier> unmatchedQualifiersMap, Iterator<? extends OrderItemQualifier> qIterator)
          Removes qualifiers from the iterator that are contained in the passed in map.
 void sortQualifierItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice)
          Used in ItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder) Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion.
 void sortTargetItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails, boolean applyToSalePrice)
          Used in ItemOfferProcessorImpl.applyItemQualifiersAndTargets(PromotableCandidateItemOffer, PromotableOrder) Allow for customized sorting for which qualifier items should be attempted to be used first for a promotion.
 void updatePriceDetail(OrderItemPriceDetail itemDetail, PromotableOrderItemPriceDetail promotableDetail)
          Updates the passed in price detail and its associated adjustments.
 

Method Detail

sortTargetItemDetails

void sortTargetItemDetails(List<PromotableOrderItemPriceDetail> itemPriceDetails,
                           boolean applyToSalePrice)
Used in ItemOfferProcessorImpl.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 in ItemOfferProcessorImpl.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

OrderItem findRelatedQualifierRoot(OrderItem relatedQualifier)
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:

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 of PromotableOrderItemPriceDetails and applies adjustments for all of the discounts that match the passed in offer.

Parameters:
itemOffer -
itemPriceDetails -

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:
orderOffer - a CandidateOrderOffer to apply to an Order

buildOrderItemList

List<OrderItem> 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.

Parameters:
order -
Returns:

buildPromotableItemMap

Map<OrderItem,PromotableOrderItem> buildPromotableItemMap(PromotableOrder promotableOrder)
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 -


Copyright © 2013. All Rights Reserved.