public class PricingTools extends SourceSinkTemplate
 The pricing engines themselves are not tasked with assigning prices to a given CommerceItem.
 ShippingGroup or Order. They generate "quotes" whose price info objects can then be associated
 with the objects. The pricing methods in this class are designed to perform that association
 for the developer automatically. For example, if one invokes the priceOrderTotal
 method that will execute the Item Pricing Engine, assign each ItemPriceInfo to
 each CommerceItem, then execute the Shipping Pricing Engine, and assign all shipping costs
 to the ShippingGroups, calculate the order subtotal through the Order Pricing Engine, and
 determine the amount of taxes owed through the Tax Pricing Engine. Finally it takes the
 shipping and tax totals and assigns those into the OrderPriceInfo object of the
 order supplied.
 
The other methods follow the same methodology, where they generate a quote from a pricing engine and then assign that new price to the object.
There are three main ways one can supply pricing models for pricing. Each type of pricing has overloaded methods which perform these three different styles.
Properties:
| Modifier and Type | Field and Description | 
|---|---|
static java.lang.String | 
ALL_BY_GROUP  | 
static java.lang.String | 
CLASS_VERSION
Class version string 
 | 
static java.lang.String | 
DEFAULT_DECIMAL_PLACES  | 
static java.lang.String | 
DETAILED_ITEM_PRICE_AMOUNT_PROPERTY  | 
static java.lang.String | 
DETAILED_ITEM_PRICE_ORDER_DISCOUNT_SHARE_PROPERTY  | 
static java.lang.String | 
DETAILED_ITEM_PRICE_ORDER_MANUAL_ADJUSTMENT_SHARE_PROPERTY  | 
static java.lang.String | 
ERR_CANNOT_GET_PROD_ITEM  | 
static java.lang.String | 
ERR_CANNOT_PARSE_DECIMAL_PLACES_NUMBER  | 
static java.lang.String | 
ERR_CANT_GET_PRICE_FOR_PROD  | 
static java.lang.String | 
ERR_CANT_SEND_MESSAGE  | 
static java.lang.String | 
ERR_PASSED_NULL_PRICE_INFO  | 
static java.lang.String | 
ERR_PRICELIST_REQUIRED  | 
static java.lang.String | 
ERR_PRICELISTMANAGER_NOT_CONFIGURED  | 
static java.lang.String | 
ERR_PRODUCT_REQUIRED  | 
static java.lang.String | 
ERR_PROFILE_REQUIRED  | 
static java.lang.String | 
ERR_PROMOTION_ANALYSIS_MODEL_HOLDER_NOT_FOUND  | 
static java.lang.String | 
ERR_SKU_REQUIRED  | 
static java.lang.String | 
GROUP_INDEX  | 
static java.lang.String | 
GROUP_ONLY  | 
static java.lang.String | 
GROUP_PRICING_MODEL  | 
static java.lang.String | 
INF_MSG_NULL_PROFILE  | 
static java.lang.String | 
LIST_PRICE  | 
static java.lang.String | 
LIST_VOLUME_PRICE  | 
protected ItemPriceSourceHandler[] | 
mItemPriceSourceHandlers  | 
protected boolean | 
mUsingPriceLists  | 
protected static java.lang.String | 
MY_RESOURCE_NAME  | 
static java.lang.String | 
ON_SALE  | 
static java.lang.String | 
PRICE_MAX  | 
static java.lang.String | 
PRICE_MIN  | 
static java.lang.String | 
PRICE_RANGE  | 
static java.lang.String | 
PRICING_TOOLS_COMPONENT_PATH  | 
static java.lang.String | 
SALE_PRICE  | 
static java.lang.String | 
SALE_VOLUME_PRICE  | 
static java.lang.String | 
SKU_PRICES  | 
static java.lang.String | 
SKUID  | 
protected static PricingTools | 
sPricingTools
Nucleas resolved pricing tools component 
 | 
static java.lang.String | 
WRN_NO_PRICELIST_FOR_LOCALE  | 
static java.lang.String | 
WRN_PARAMS_INVALID_PRICELIST  | 
static java.lang.String | 
WRN_PARAMS_INVALID_PRICELIST_NAME  | 
SERVICE_INFO_KEYDEFAULT_LOG_TRACE_STATUSDEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS| Constructor and Description | 
|---|
PricingTools()
Constructs an instanceof PricingTools 
 | 
| Modifier and Type | Method and Description | 
|---|---|
java.util.Map | 
addBypassPromotionVetoersParameter(java.util.Map pExtraParameters)
Adds the extra parameter that disables the promotion vetoers
 during pricing 
 | 
java.util.Map | 
addDisableAutoGWPParameter(java.util.Map pExtraParameters)
Adds the extra parameter that disables the auto add and remove
 feature of gift with purchase promotions 
 | 
java.util.Map | 
addDisableGWPMessaging(java.util.Map pExtraParameters)
Adds the extra parameter that disables the GWP messaging 
 | 
java.util.Map | 
addDisableMaxCouponsPerOrderProcessingParameter(java.util.Map pExtraParameters)
Adds the extra parameter that disables "maximum coupons per order" evaluation/procesing
 during pricing. 
 | 
java.util.Map | 
addDisableStackingRuleProcessingParameter(java.util.Map pExtraParameters)
Adds the extra parameter that disables stacking rule procesing during 
 pricing. 
 | 
java.util.Map | 
addDiscountableMapParameter(java.util.Map pExtraParameters,
                           java.util.Map pDiscountable)
Adds the pricing extra parameter for specifying a Map of discountable
 flag overrides for product and sku combinations. 
 | 
java.util.Map | 
addItemPriceSourceParameter(java.util.Map pExtraParameters,
                           java.util.List pPricingOverrides)
Adds the pricing extra parameter for the given list of ItemPriceSource 
 | 
protected void | 
addPriceBean(DetailedItemPriceInfo pInfo,
            java.util.List pBeans,
            CommerceItem pItem,
            java.util.Map pExtraPriceBeanInfo)
Add a unit price bean to the stipulated list of beans for the detailed item price info,
 commerce item and map of extra information passed in. 
 | 
protected void | 
addPriceBeanForInfo(DetailedItemPriceInfo pInfo,
                   java.util.List pBeans)
Given a DetailedItemPrice info, check the list of beans to see if one has
 the same unit price and pricing model adjusters. 
 | 
double | 
calculateItemsOrderManualAdjustmentShare(CommerceItem pCommerceItem)
Adds up the manual adjustment share from the item's detailedItemPriceInfos 
 | 
ItemPriceInfo | 
calculatePrice(RepositoryItem pProduct,
              RepositoryItem pSku,
              double pQuantityWithFraction)
Return a price for the given quantity of the product and sku. 
 | 
ItemPriceInfo | 
calculatePrice(RepositoryItem pProduct,
              RepositoryItem pSku,
              double pQuantityWithFraction,
              boolean pIgnorePromotions,
              RepositoryItem pProfile,
              java.util.Locale pLocale,
              java.util.Map pExtraParameters)
Return a price for the given quantity of the product and sku 
 | 
ItemPriceInfo | 
calculatePrice(RepositoryItem pProduct,
              RepositoryItem pSku,
              long pQuantity)
Return a price for the given quantity of the product and sku. 
 | 
ItemPriceInfo | 
calculatePrice(RepositoryItem pProduct,
              RepositoryItem pSku,
              long pQuantity,
              boolean pIgnorePromotions,
              RepositoryItem pProfile,
              java.util.Locale pLocale,
              java.util.Map pExtraParameters)
Return a price for the given quantity of the product and sku 
 | 
ItemPriceInfo | 
calculatePrice(RepositoryItem pProduct,
              RepositoryItem pSku,
              long pQuantity,
              double pQuantityWithFraction)
Return a price for the given quantity of the product and sku. 
 | 
ItemPriceInfo | 
calculatePrice(RepositoryItem pProduct,
              RepositoryItem pSku,
              long pQuantity,
              double pQuantityWithFraction,
              boolean pIgnorePromotions,
              RepositoryItem pProfile,
              java.util.Locale pLocale,
              java.util.Map pExtraParameters)
Return a price for the given quantity of the product and sku 
 | 
double | 
calculateTaxableAmount(CommerceItem pItem,
                      Order pOrder,
                      java.util.Locale pLocale,
                      RepositoryItem pProfile,
                      java.util.Map pExtraParameters)
Calculates the taxable amount of an item. 
 | 
double | 
calculateTaxableAmount(ShippingGroupCommerceItemRelationship pRelationship,
                      Order pOrder,
                      java.util.Locale pLocale,
                      RepositoryItem pProfile,
                      java.util.Map pExtraParameters)
Calculates the taxable amount of an relationship. 
 | 
double | 
calculateTaxableAmountByAverage(CommerceItemRelationship pRelationship,
                               Order pOrder,
                               java.util.Locale pLocale,
                               RepositoryItem pProfile,
                               java.util.Map pExtraParameters)
This method does the same thing as  
calcualteTaxableAmount except the 
 an average amount is used for the items rather than the actual amount. | 
double | 
calculateTaxableAmountByAverage(ShippingGroupCommerceItemRelationship pRelationship,
                               Order pOrder,
                               java.util.Locale pLocale,
                               RepositoryItem pProfile,
                               java.util.Map pExtraParameters)
This method does the same thing as  
calcualteTaxableAmount except the 
 an average amount is used for the items rather than the actual amount. | 
void | 
clearMessageTools(java.util.Map pExtraParameters)
Method to clear the slots to clean in the message tools component used for pricing
 application messages. 
 | 
protected void | 
clearPromotionAnalysisData(Order pOrder,
                          java.util.Map pExtraParameters)
Tidy up stale promotion analysis data. 
 | 
void | 
compareClosenessQualifiers(java.util.List pClosenessQualifiers1,
                          java.util.List pClosenessQualifiers2,
                          java.lang.String pJMSType,
                          Order pOrder,
                          RepositoryItem pProfile)
Checks to see if the closenessQualifiers in the pClosenessQualifiers1 parameter
 are contained in pClosenessQualifiers2. 
 | 
protected void | 
compareQualifiers(AmountInfo pOldPriceInfo,
                 AmountInfo pNewPriceInfo,
                 Order pOrder,
                 RepositoryItem pProfile)  | 
DetailedItemPriceInfo | 
createDetailedItemPriceInfo()
Returns a new instance of the of the class defined through the
  
detailedItemPriceInfoClass property. | 
DetailedItemPriceInfo | 
createDetailedItemPriceInfo(DetailedItemPriceInfo pDetailedItemPriceInfo)
Returns a new instance of the of the class defined through the
  
detailedItemPriceInfoClass property. | 
protected DetailedItemPriceInfo | 
createInitialSubSkuDetailedPriceInfo(double pTotalPrice,
                                    ItemPriceInfo pPriceQuote,
                                    CommerceItem pItem,
                                    RepositoryItem pPricingModel,
                                    java.util.Locale pLocale,
                                    RepositoryItem pProfile,
                                    java.util.Map pExtraParameters,
                                    java.lang.String pAdjustmentDescription,
                                    atg.core.util.Range pRange)
Create the initial DetailedItemPriceInfos with the given price for the given range 
 | 
ItemPriceSource | 
createItemPriceSource(CommerceItem pCommerceItem,
                     CommerceItem pParentCommerceItem,
                     java.lang.String pCurrencyCode)
Creates a new ItemPriceSource object based on the given item and parent
 item. 
 | 
ItemPriceSource | 
createItemPriceSource(java.lang.String pProductId,
                     java.lang.String pSkuId,
                     java.lang.String pParentSkuId,
                     java.lang.String pCommerceItemType,
                     java.lang.String pCurrencyCode)
Instantiates a new ItemPriceSource object with the given parameters. 
 | 
OrderPriceInfo | 
createOrderPriceInfo()
Returns a new instance of the class defined through the  
OrderTools.defaultOrderPriceInfoClass
 property. | 
PriceChanged | 
createPriceChangedEvent(Order pOrder,
                       RepositoryItem pProfile,
                       CommerceIdentifier pRepricedObject,
                       AmountInfo pOldPrice)
This method will create a PriceChanged event and send it. 
 | 
CommerceItem | 
createPricingCommerceItem(java.lang.String pCatalogRefId,
                         java.lang.String pProductId,
                         double pQuantityWithFraction)
Creates a temporary commerceItem object for pricing 
 | 
CommerceItem | 
createPricingCommerceItem(java.lang.String pCatalogRefId,
                         java.lang.String pProductId,
                         long pQuantity)
Creates a temporary commerceItem object for pricing 
 | 
CommerceItem | 
createPricingCommerceItem(java.lang.String pCatalogRefId,
                         java.lang.String pProductId,
                         long pQuantity,
                         double pQuantityWithFraction)
Creates a temporary commerceItem object for pricing 
 | 
protected CommerceItem | 
createPricingCommerceItem(java.lang.String pCatalogRefId,
                         java.lang.String pProductId,
                         long pQuantity,
                         double pQuantityWithFraction,
                         boolean pUseCachedItem)
Creates the given commerceItem object for pricing. 
 | 
protected AmountInfo | 
createSubSkuPriceInfo()
Returns a new instance of the class defined through the  
subSkuPriceInfoClass
 property. | 
CommerceItem | 
createUncachedPricingCommerceItem(java.lang.String pCatalogRefId,
                                 java.lang.String pProductId,
                                 long pQuantity,
                                 double pQuantityWithFraction)
Creates a new commerceItem object for pricing. 
 | 
void | 
deriveUsingPriceLists()
Figure out if the system is configured to use price lists or not. 
 | 
boolean | 
doesOrderContainPriceLists(Order pOrder)
Returns true if the order contains any price lists on 
 the commerce item price info objects 
 | 
void | 
doStartService()
Derives some property values based on configuration settings 
 | 
java.util.List | 
findAdjustmentsByDescription(ItemPriceInfo pItemPriceInfo,
                            java.lang.String pDescription)
Returns all the  
PricingAdjustments found in
 the price info's adjustments property whose description
 matches the given description | 
protected double | 
findHighestPrice(java.util.List pListPrices,
                java.util.List pSalePrices)
Finds the highest price between the two price lists. 
 | 
ItemPriceSource | 
findMatchingSource(java.util.Collection pItemPriceSource,
                  CommerceItem pCommerceItem,
                  CommerceItem pParentCommerceItem,
                  java.lang.String pCurrencyCode)
Iterates over the collection of ItemPriceSource objects and returns the first one that matches
 the given item and parent item combination 
 | 
void | 
firePromotionClosenessMessage(java.lang.String pJMSType,
                             Order pOrder,
                             RepositoryItem pProfile,
                             RepositoryItem pClosenessQualifier)
Constructs and sends a PromotionClosenessMessage of the given JMS type 
 (PromotionClosenessQualification or PromotionClosenessDisqualification) 
 | 
protected void | 
generateItemPriceSources(java.util.List pItemPriceSources,
                        Order pOrder,
                        CommerceItem pCommerceItem,
                        CommerceItem pParentCommerceItem,
                        java.lang.String pCurrencyCode,
                        java.util.Map pExtraParameters)
Creates a new ItemPriceSource object and calls each handler to populate
 its values. 
 | 
java.util.List | 
generateItemPriceSources(Order pOrder,
                        java.util.Map pExtraParameters)
Generates a List of  
ItemPriceSource objects based on the pricing information
 contained in the given Order. | 
java.util.Map | 
generateItemPricingSourceMap(java.util.List pItemPriceSources,
                            java.util.List pCommerceItems,
                            CommerceItem pParentCommerceItem,
                            java.lang.String pCurrencyCode)
Maps the  
CommerceItems to the ItemPriceSource objects | 
java.lang.Object | 
generateKeyForTieredProcessedItem(CommerceItem pItem)
Called by the tiered pricing calculators to generate the key used to store the 
 quantity info about an Item processed during the pricing operation. 
 | 
java.util.List | 
generateOrderedPriceBeans(Order pOrder,
                         java.lang.String pRequestedBeans)
Given an order, return an ordered list of group aware unit price beans. 
 | 
java.util.List | 
generatePriceBeans(CommerceItem pItem)
Given a commerce item, loop through its detailed item price infos and
 create the price beans. 
 | 
java.util.List | 
generatePriceBeans(java.util.List<DetailedItemPriceInfo> pInfos)
Given a list of detailed item price infos, loop through each one and
 create the price beans. 
 | 
java.util.List | 
generatePriceBeans(Order pOrder,
                  CommerceItem pCommerceItem,
                  java.lang.String pRequestedBeans)
Generate a list of price beans in accordance with the content of the unit price bean 
 generation properties object. 
 | 
protected void | 
generatePriceListPrices(RepositoryItem pProduct,
                       RepositoryItem pPriceList,
                       java.util.List pPrices)
Generates prices list based on price list 
 | 
protected java.util.List<RepositoryItem> | 
getAppliedPromotionsForUnprocessedEngines(PricingContext pPricingContext,
                                         java.util.List<PricingEngine> pUnprocessedPricingEngines,
                                         PricingEngineService pCurrentEngine,
                                         java.util.Map pExtraParameters)
Returns a list of applied promotions for engines that have not been processed. 
 | 
double | 
getAverageItemPrice(CommerceItem pCommerceItem)
This method will return the average price for a given commerce item. 
 | 
CatalogTools | 
getCatalogTools()
The CatalogTools used to retrieve skus and products 
 | 
java.lang.String | 
getChildSKUsPropertyName()  | 
MessageSender | 
getClosenessQualificationMessageSender()  | 
CommerceItemManager | 
getCommerceItemManager()
Manager class used to manipulate commerce items 
 | 
CommercePropertyManager | 
getCommercePropertyManager()
Gets commercePropertyManager 
 | 
java.lang.String | 
getCurrencyCode(Order pOrder,
               java.util.Locale pLocale,
               AmountInfo pAmountInfo)
This method returns the currency code from any one of the three arguments
 pOrder as first choise, pLocale as second choice
 and pAmountInfo as third choice. If there is no currency code
 available in the three arguments, this method will return  
null | 
java.lang.String | 
getCurrencyCode(Order pOrder,
               java.util.Locale pLocale,
               AmountInfo pAmountInfo,
               java.lang.String pPriceListPropertyName,
               java.lang.Boolean pUseDefaultPriceList,
               java.util.Map pExtraParameters)
This method returns the currency code from any one of the four arguments
 pOrder as first choice, pPriceList as second choice,
 pLocale as third choice and pAmountInfo as final choice.
 If there is no currency code available in the four arguments,
 this method will return  
null | 
java.util.Map<java.lang.String,java.lang.String> | 
getCurrencyCodeDecimalPlacesOverrides()
Get the map which associates currency codes to its respective number of decimal places 
 | 
static java.lang.String | 
getCurrencySymbol(java.util.Locale pLocale)
Returns the currency symbol for the given locale 
 | 
static java.lang.String | 
getCurrencySymbol(java.lang.String pLocale)
Returns the currency symbol for the given locale 
 | 
static java.text.DecimalFormatSymbols | 
getDecimalFormatSymbols(java.util.Locale pLocale)
Returns the DecimalFormatSymbols object for the given locale 
 | 
static java.text.DecimalFormatSymbols | 
getDecimalFormatSymbols(java.lang.String pLocale)
Returns the DecimalFormatSymbols object for the given locale 
 | 
java.util.Locale | 
getDefaultLocale()
Returns property DefaultLocale. 
 | 
protected int | 
getDefaultNumberOfDecimalPlaces()
Returns default number of decimal places which is, by default, configured as
 roundingDecimalPlaces property 
 | 
java.lang.Class | 
getDetailedItemPriceInfoClass()
The class that is used for detailed item price infos. 
 | 
DetailedItemPriceTools | 
getDetailedItemPriceTools()
The class for providing various methods for manipulating DetailedItemPriceInfos 
 | 
java.util.Map | 
getDiscountableMap(Order pOrder)
Inspect an Order looking through the commerceItem's belonging 
 to that order and return a map of product/sku String concatenation (Key) vs whether 
 they are discountable or not (boolean value). 
 | 
java.lang.String | 
getDiscountablePropertyName()  | 
protected PricingAdjustment | 
getFirstGroupingAdjustment(java.util.List pPricingAdjustments)
Given a list of pricing adjustments, return the first one which belongs to a group. 
 | 
GWPManager | 
getGwpManager()
Getter for the gift with purchase manager to handle those promotions 
 | 
protected double | 
getHighestPrice(java.util.List pPrices)
Iterates through list of prices and returns the highest
 For volume based pricing the price used is for the highest quantity level 
 | 
protected RepositoryItem | 
getHighestPriceItem(java.util.List pPrices)
Iterates through list of prices and returns the highest price item
 For volume based pricing the price used in the highest quantity level. 
 | 
static java.lang.String | 
getInternationalCurrencySymbol(java.util.Locale pLocale)
Returns the currency code for the given locale 
 | 
static java.lang.String | 
getInternationalCurrencySymbol(java.lang.String pLocale)
Returns the currency code for the given locale 
 | 
ItemPriceSource | 
getItemPriceSource(ItemPriceInfo pPriceQuote,
                  CommerceItem pItem,
                  RepositoryItem pPricingModel,
                  java.util.Locale pLocale,
                  RepositoryItem pProfile,
                  java.util.Map pExtraParameters)
This method returns the  
ItemPriceSource mapped to the commerce item
 id in the pricing overide Map stored in the extra parameters. | 
ItemPriceSourceHandler[] | 
getItemPriceSourceHandlers()
Configures an array of  
ItemPriceSourceHandler components
 that are used to generate price overrides. | 
ItemPricingEngine | 
getItemPricingEngine()
Returns property ItemPricingEngine 
 | 
double | 
getItemsOrderDiscountShare(Order pOrder,
                          CommerceItem pItem,
                          double pDiscount)
Get a particular items order discount share. 
 | 
RepositoryItem | 
getListPriceListFromOrder(Order pOrder)
Returns the list price list from the order. 
 | 
java.util.Locale | 
getLocale(java.util.Locale pLocale)  | 
java.util.Locale | 
getLocaleFromPriceList(RepositoryItem pProfile,
                      java.lang.String pPriceListPropertyName,
                      boolean pUseDefaultPriceList,
                      java.util.Map pExtraParameters,
                      java.util.Locale pLocale)
This method takes a PriceList parameter and derived the locale associated
 with it. 
 | 
java.lang.String | 
getLoggingIdentifier()
Returns property LoggingIdentifier 
 | 
protected double | 
getLowestPrice(java.util.List prices)
Iterates through list of prices and returns the lowest
 For volume based pricing the price used is for a quantity of 1. 
 | 
int | 
getMaxCouponsPerOrder()
Get the maximum number of coupons allowed per order for a site. 
 | 
IdGenerator | 
getMessageIdGenerator()
The service that generates Ids for all messages. 
 | 
java.lang.String | 
getMessageIdSpaceName()
The name of the idspace to get our message ids from 
 | 
atg.web.messaging.MessageTools | 
getMessageTools()
Getter for the MessageTools component to use for application messages. 
 | 
java.lang.String | 
getNextMessageId()
Returns the next unique Id for commerce messages. 
 | 
protected int | 
getNumberDecimalPlacesForCurrency(java.util.Locale pLocale)
Returns the number of decimal places for given  
pLocale. | 
int | 
getNumberDecimalPlacesForCurrency(java.lang.String pCurrencyCode)
 Returns number of decimal places with respect to the appropriate currency
 which is associated with the given  
pCurrencyCode by retrieving
 the value from the CurrencyCodeDecimalPlaces. | 
OrderManager | 
getOrderManager()
Manager class used to manipulate commerce items 
 | 
OrderPricingEngine | 
getOrderPricingEngine()
Returns property OrderPricingEngine 
 | 
OrderTools | 
getOrderTools()
The order tools from which to get the default itemPriceInfo class 
 | 
java.lang.Double | 
getPriceFromItem(ItemPriceSource pItemPriceSource,
                RepositoryItem pPriceItem,
                double pQuantityWithFraction)
Gets the unit price from an item price source or price repository item. 
 | 
java.lang.Double | 
getPriceFromItem(ItemPriceSource pItemPriceSource,
                RepositoryItem pPriceItem,
                long pQuantity)
Gets the unit price from an item price source or price repository item. 
 | 
java.lang.Double | 
getPriceFromItem(ItemPriceSource pItemPriceSource,
                RepositoryItem pPriceItem,
                long pQuantity,
                double pQuantityWithFraction)
Gets the unit price from an item price source or price repository item. 
 | 
java.lang.Double | 
getPriceFromItem(RepositoryItem pPriceItem,
                double pQuantityWithFraction)
Gets the unit price from a price repository item. 
 | 
java.lang.Double | 
getPriceFromItem(RepositoryItem pPriceItem,
                long pQuantity)
Gets the unit price from a price repository item. 
 | 
java.lang.Double | 
getPriceFromItem(RepositoryItem pPriceItem,
                long pQuantity,
                double pQuantityWithFraction)
Gets the unit price from a price repository item. 
 | 
RepositoryItem | 
getPriceList(RepositoryItem pProfile,
            java.lang.String pPriceListPropertyName,
            boolean pUseDefaultPriceList,
            java.util.Map pExtraParameters)
Gets the price list. 
 | 
RepositoryItem | 
getPriceListFromParameters(java.util.Map pExtraParameters,
                          java.lang.String pPriceListPropertyName)
Get the price list from the extra parameters. 
 | 
PriceListManager | 
getPriceListManager()
Returns the reference to the PriceListManager which handles the operations of the PriceList 
 | 
protected java.util.Map<java.lang.String,java.lang.Object> | 
getPriceRange(RepositoryItem pProduct,
             RepositoryItem pListPriceList,
             RepositoryItem pSalePriceList)
Return a map containing information on a product's price range. 
 | 
protected java.util.Map<java.lang.String,java.lang.Object> | 
getPrices(RepositoryItem pProduct,
         RepositoryItem pSku,
         RepositoryItem pPriceList,
         RepositoryItem pSalePriceList)
Retrieve the prices for the given product and/or sku. 
 | 
java.util.Map<java.lang.String,java.lang.Object> | 
getPrices(java.lang.String pProductId,
         java.lang.String pSkuId,
         RepositoryItem pProfile)
Returns a map containing the prices for the given product and its skus. 
 | 
PricingContextFactory | 
getPricingContextFactory()
Factory to create PricingContext instances 
 | 
java.util.Locale | 
getPricingLocale(RepositoryItem pProfile,
                java.lang.String pPriceListPropertyName,
                boolean pUseDefaultPriceList,
                java.util.Map pExtraParameters,
                java.util.Locale pLocale)
Gets the locale for pricing. 
 | 
java.util.Map<java.lang.String,java.util.List> | 
getPricingMessages(java.util.List<java.lang.String> pRequiredMessageGroups)
Returns the pricing messages from the available slots. 
 | 
static PricingTools | 
getPricingTools()
Returns the nucleus PricingTools component.If the nucleus resolved
 PricingTools component is not readily available, resolve it through 
 Nucleus using  
#getGlobalNucleus() #resolveName(String) and
 return the same. | 
RepositoryItem | 
getProfile(java.lang.String pProfileId)
Gets the profile repository item with the given id 
 | 
java.lang.String | 
getProfileItemType()  | 
MutableRepository | 
getProfileRepository()  | 
atg.commerce.promotion.PromotionAnalysisManager | 
getPromotionAnalysisManager()
Return the PromotionAnalysisManager component 
 | 
java.lang.String | 
getPromotionAnalysisModelHolderPath()
Return the PromotionAnalysisModelHolder component path 
 | 
java.lang.String | 
getPromotionClosenessDisqualificationJMSType()  | 
java.lang.String | 
getPromotionClosenessQualificationJMSType()  | 
java.lang.String | 
getRangeClassType()
The class used when creating range objects. 
 | 
atg.core.util.RangeComparator | 
getRangeComparator()
The object that is used to compare ranges 
 | 
double | 
getRelationshipsSubtotal(java.util.List pRelationships,
                        java.lang.String pDetailProperty)
This method will return the sum of the amounts of all the
 DetailedItemPriceInfos that refer to an item in any of these
 relationship. 
 | 
java.lang.String | 
getRestrictedPricingOperation(java.lang.String pPricingOperation,
                             java.util.Map pExtraParameters)
Returns the pricing operation that should be used instead of the given pricing operation pPricingOperation. 
 | 
java.util.Map<java.lang.String,java.lang.String> | 
getRestrictedPricingOperations()
Get the restricted pricing operations 
 | 
int | 
getRoundingDecimalPlaces()
number of decimal places to which prices should be rounded 
 | 
RepositoryItem | 
getSalePriceListFromOrder(Order pOrder)
Returns the sale price list from the order. 
 | 
java.lang.String | 
getScenarioEventPort()
The name of the port to send pricing events to 
 | 
double | 
getShipItemRelPriceTotal(ShippingGroupCommerceItemRelationship pRelationship,
                        java.lang.String pDetailProperty)
Sum the amount for all the details that refer to a specific relationship
 If the range of the relationship is null, 0.0 is returned. 
 | 
ShippingGroupCommerceItemRelationship | 
getShippingGroupCommerceItemRelationship(CommerceItem pItem,
                                        DetailedItemPriceInfo pPriceInfo)
Return a ShippingGroupCommerceItemRelationship based on the commerceItem and a DetailedItemPriceInfo. 
 | 
ShippingPricingEngine | 
getShippingPricingEngine()
Returns property ShippingPricingEngine 
 | 
java.lang.Class | 
getSubSkuPriceInfoClass()
Returns property PriceInfoClass 
 | 
TaxPricingEngine | 
getTaxPricingEngine()
Returns property TaxPricingEngine 
 | 
long | 
getTotalQuantityForBulkPricing(java.util.List pItems,
                              CommerceItem pItem)
Returns the total quantity of the items in the List that match the
 given pItem. 
 | 
double | 
getTotalQuantityWithFractionForBulkPricing(java.util.List pItems,
                                          CommerceItem pItem)
Returns the total quantity (with fraction) of the items in the List that match the
 given pItem. 
 | 
java.util.List<PricingEngine> | 
getUnprocessedPricingEngines(java.util.List<PricingEngineService> pProcessedPricingEngines,
                            PricingEngineService pCurrentEngine)
Method that computes a list of pricing engines that have not been processed (relative to the pricing engine
 currently being executed). 
 | 
boolean | 
isDiscountableItem(CommerceItem pCommerceItem)
Returns the discountable status of a commerce item. 
 | 
boolean | 
isDiscountableItem(RepositoryItem pProduct,
                  RepositoryItem pSku)
Checks the discountable property of the product and sku repository items to determine if the combination is discountable or not. 
 | 
boolean | 
isGeneratePriceChangedEvents()
If this is true, whenever an order gets repriced and the price
 is different, a PriceChanged event will be sent 
 | 
boolean | 
isGeneratePromotionAnalysisInfo()
Gets property GeneratePromotionAnalysisInfo. 
 | 
protected boolean | 
isMatchForBulkPricing(CommerceItem pItem1,
                     CommerceItem pItem2)
determines if the two items should be considered a match for aggregating quantity 
 | 
boolean | 
isOrderRestrictedForPricing(Order pOrder)
Checks to see if an order is restricted for pricing. 
 | 
boolean | 
isSendEventsWithNoProfile()
It is possible for some orders to have a null profile (if the
 user was anonymous). 
 | 
boolean | 
isSendGWPMessages()
The sending of a GWP message can be overridden and prevented
 if sendGWPMessages or sendUserMessages is set to false. 
 | 
boolean | 
isSendMaxNoOfCouponsPerOrderMessages()
The sending of a "maximum coupons per order" message can be overridden and prevented
 if sendMaxCouponsPerOrderMessages or sendUserMessages is set to false. 
 | 
boolean | 
isSendPricingMessages()  | 
boolean | 
isSendPromotionClosenessMessages()  | 
boolean | 
isSendStackingRuleMessages()
The sending of a stacking rule message can be overridden and prevented
 if sendStackingRuleMessages or sendUserMessages is set to false. 
 | 
boolean | 
isSendUserMessages()  | 
boolean | 
isShippingSubtotalUsesAverageItemPrice()
If true, a shipping groups subtotal is calculated by multiplying
 each item prices' average by the quantity in the given shipping
 group. 
 | 
boolean | 
isTaxable(CommerceItem pItem,
         ItemPriceInfo pItemPriceInfo,
         OrderPriceInfo pOrderPriceInfo,
         Order pOrder,
         ShippingPriceInfo pShippingPriceInfo,
         ShippingGroup pShippingGroup,
         java.util.Locale pLocale,
         RepositoryItem pProfile,
         java.util.Map pExtraParameters)
Determines whether a CommerceItem is taxable. 
 | 
boolean | 
isUseDefaultLocaleIfNotSpecified()
Whether to use the default locale if one is not specified 
 | 
boolean | 
isUsePassedLocaleAsPricingLocale()
Returns the boolean value of usePassedLocaleAsPricingLocale which if true means getPricingLocale will 
 just return the locale passed into it. 
 | 
boolean | 
isUsingPriceLists()
Sets property usingPriceLists, which indicates whether the application uses price lists
 or SKU-based pricing. 
 | 
boolean | 
isUsingPriceListsExplicitlySet()
This will return true if the value of  
usingPriceLists has been
 explicitly set either through code or through a properties file. | 
boolean | 
needsRounding(double pNumber)
This method determines whether the input number needs to be rounded
 based on the value of the  
roundingDecimalPlaces property. | 
boolean | 
needsRounding(double pNumber,
             java.util.Locale pLocale)
This method determines whether the input number needs to be rounded based
 on the value of the decimal number of places for a given
  
pLocale. | 
boolean | 
needsRounding(double pNumber,
             java.lang.String pCurrencyCode)
This method determines whether the input number needs to be rounded based
 on the value of the decimal number of places for a given
  
pCurrencyCode. | 
void | 
performPricingOperation(java.lang.String pPricingOperation,
                       Order pOrder,
                       PricingModelHolder pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Dispatch off of the Pricing Operation constant supplied to determine what type
 of pricing should be performed. 
 | 
void | 
postPricingOperation(java.util.Map pExtraParameters)
Carry out any post pricing operations. 
 | 
protected void | 
prepareForMaxCouponsPerOrderLimit(PricingModelHolder pPricingModelHolder,
                                 java.util.Map pExtraParameters)
This method stores the keys and their initial values in the Extra-parameter
 so that the same can be fetched during pricing operation by the Pricing Engines. 
 | 
void | 
prePricingOperation(Order pOrder,
                   java.util.Map pExtraParameters)
Carry out any pre pricing operations. 
 | 
void | 
priceEachItem(java.util.List pCommerceItems,
             java.util.Collection pPricingModels,
             java.util.Locale pLocale,
             RepositoryItem pProfile,
             java.util.Map pExtraParameters)
Price all the items, and set each of their priceInfo to the result. 
 | 
protected void | 
priceEachItem(java.util.List pCommerceItems,
             java.util.Collection pPricingModels,
             java.util.Locale pLocale,
             RepositoryItem pProfile,
             java.util.Map pExtraParameters,
             boolean pGenerateItemRanges)
Price all the items, and set each of their priceInfo to the result. 
 | 
void | 
priceEachItem(java.util.List pCommerceItems,
             java.util.Locale pLocale,
             RepositoryItem pProfile,
             java.util.Map pExtraParameters)
Price all the items, and set each of their priceInfo to the result. 
 | 
void | 
priceEachItem(java.util.List pCommerceItems,
             PricingModelHolder pPricingModels,
             java.util.Locale pLocale,
             RepositoryItem pProfile,
             java.util.Map pExtraParameters)
Price all the items, and set each of their priceInfo to the result. 
 | 
void | 
priceItem(CommerceItem pCommerceItem,
         java.util.Collection pPricingModels,
         java.util.Locale pLocale,
         RepositoryItem pProfile,
         java.util.Map pExtraParameters)
Price all the single item, and set it's priceInfo to the result. 
 | 
protected void | 
priceItem(CommerceItem pCommerceItem,
         java.util.Collection pPricingModels,
         java.util.Locale pLocale,
         RepositoryItem pProfile,
         java.util.Map pExtraParameters,
         boolean pGenerateItemRanges)
Price all the single item, and set it's priceInfo to the result. 
 | 
void | 
priceItem(CommerceItem pCommerceItem,
         java.util.Locale pLocale,
         RepositoryItem pProfile,
         java.util.Map pExtraParameters)
Price the single item, and set it's priceInfo to the result. 
 | 
void | 
priceItem(CommerceItem pCommerceItem,
         PricingModelHolder pPricingModels,
         java.util.Locale pLocale,
         RepositoryItem pProfile,
         java.util.Map pExtraParameters)
Price the single item, and set it's priceInfo to the result. 
 | 
protected double | 
priceItemsForOrderTotal(Order pOrder,
                       java.util.Collection pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Price all the items, and set each of their priceInfo to the result. 
 | 
protected double | 
priceItemsForOrderTotal(Order pOrder,
                       java.util.Collection pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters,
                       boolean pGenerateOrderRanges)
Price all the items, and set each of their priceInfo to the result. 
 | 
double | 
priceItemsForOrderTotal(Order pOrder,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Price all the items, and set each of their priceInfo to the result. 
 | 
double | 
priceItemsForOrderTotal(Order pOrder,
                       PricingModelHolder pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Price all the items, and set each of their priceInfo to the result. 
 | 
protected double | 
priceOrderForOrderTotal(Order pOrder,
                       java.util.Collection pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Price the sub total and any order level discounts. 
 | 
protected double | 
priceOrderForOrderTotal(Order pOrder,
                       java.util.Collection pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters,
                       boolean pGenerateOrderRanges)
Price the sub total and any order level discounts. 
 | 
double | 
priceOrderForOrderTotal(Order pOrder,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Price the sub total and any order level discounts. 
 | 
double | 
priceOrderForOrderTotal(Order pOrder,
                       PricingModelHolder pPricingModels,
                       java.util.Locale pLocale,
                       RepositoryItem pProfile,
                       java.util.Map pExtraParameters)
Price the sub total and any order level discounts. 
 | 
OrderPriceInfo | 
priceOrderSubtotal(Order pOrder,
                  java.util.Collection pItemPricingModels,
                  java.util.Collection pOrderPricingModels,
                  java.util.Locale pLocale,
                  RepositoryItem pProfile,
                  java.util.Map pExtraParameters)
Computes the order subtotal, including each item, but not shipping and taxes. 
 | 
OrderPriceInfo | 
priceOrderSubtotal(Order pOrder,
                  java.util.Locale pLocale,
                  RepositoryItem pProfile,
                  java.util.Map pExtraParameters)
Computes the order subtotal, including each item, but not shipping and taxes. 
 | 
OrderPriceInfo | 
priceOrderSubtotal(Order pOrder,
                  PricingModelHolder pPricingModels,
                  java.util.Locale pLocale,
                  RepositoryItem pProfile,
                  java.util.Map pExtraParameters)
Computes the order subtotal, including each item, but not shipping and taxes. 
 | 
OrderPriceInfo | 
priceOrderSubtotalShipping(Order pOrder,
                          java.util.Collection pItemPricingModels,
                          java.util.Collection pShippingPricingModels,
                          java.util.Collection pOrderPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
Computes the order subtotal, including each item, and all shipping costs, but not taxes. 
 | 
OrderPriceInfo | 
priceOrderSubtotalShipping(Order pOrder,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
Computes the order subtotal, including each item, and all shipping costs, but not taxes. 
 | 
OrderPriceInfo | 
priceOrderSubtotalShipping(Order pOrder,
                          PricingModelHolder pPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
Computes the order subtotal, including each item, and all shipping costs, but not taxes. 
 | 
OrderPriceInfo | 
priceOrderSubtotalTax(Order pOrder,
                     java.util.Collection pItemPricingModels,
                     java.util.Collection pOrderPricingModels,
                     java.util.Collection pTaxPricingModels,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters)
Computes the order subtotal, including each item, and all taxes, but not shipping. 
 | 
OrderPriceInfo | 
priceOrderSubtotalTax(Order pOrder,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters)
Computes the order subtotal, including each item, and all taxes, but not shipping. 
 | 
OrderPriceInfo | 
priceOrderSubtotalTax(Order pOrder,
                     PricingModelHolder pPricingModels,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters)
Computes the order subtotal, including each item, and all taxes, but not shipping. 
 | 
OrderPriceInfo | 
priceOrderTotal(Order pOrder)
Computes the order total, including each item, all shipping groups and taxes. 
 | 
OrderPriceInfo | 
priceOrderTotal(Order pOrder,
               java.util.Collection pItemPricingModels,
               java.util.Collection pShippingPricingModels,
               java.util.Collection pOrderPricingModels,
               java.util.Collection pTaxPricingModels,
               java.util.Locale pLocale,
               RepositoryItem pProfile,
               java.util.Map pExtraParameters)
Computes the order total, including each item, all shipping groups and taxes. 
 | 
OrderPriceInfo | 
priceOrderTotal(Order pOrder,
               java.util.Locale pLocale)
Computes the order total, including each item, all shipping groups and taxes. 
 | 
OrderPriceInfo | 
priceOrderTotal(Order pOrder,
               java.util.Locale pLocale,
               RepositoryItem pProfile,
               java.util.Map pExtraParameters)
Computes the order total, including each item, all shipping groups and taxes. 
 | 
OrderPriceInfo | 
priceOrderTotal(Order pOrder,
               PricingModelHolder pPricingModels,
               java.util.Locale pLocale,
               RepositoryItem pProfile,
               java.util.Map pExtraParameters)
Computes the order total, including each item, all shipping groups and taxes. 
 | 
double | 
priceShippingForOrderTotal(Order pOrder,
                          java.util.Collection pPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
Price each shipping group, and set their priceInfo's to the result
 This method will regenerate order ranges if necessary 
 | 
protected double | 
priceShippingForOrderTotal(Order pOrder,
                          java.util.Collection pPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters,
                          boolean pGenerateOrderRanges)
Price each shipping group, and set their priceInfo's to the result 
 | 
double | 
priceShippingForOrderTotal(Order pOrder,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
Price each shipping group, and set their priceInfo's to the result. 
 | 
double | 
priceShippingForOrderTotal(Order pOrder,
                          PricingModelHolder pPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
Price each shipping group, and set their priceInfo's to the result. 
 | 
double | 
priceTaxForOrderTotal(Order pOrder,
                     java.util.Collection pPricingModels,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters)
Price the taxes for the entire order
 This method will regenerate order ranges if necessary 
 | 
protected double | 
priceTaxForOrderTotal(Order pOrder,
                     java.util.Collection pPricingModels,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters,
                     boolean pGenerateOrderRanges)
Price the taxes for the entire order 
 | 
double | 
priceTaxForOrderTotal(Order pOrder,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters)
Price the taxes for the entire order. 
 | 
double | 
priceTaxForOrderTotal(Order pOrder,
                     PricingModelHolder pPricingModels,
                     java.util.Locale pLocale,
                     RepositoryItem pProfile,
                     java.util.Map pExtraParameters)
Price the taxes for the entire order. 
 | 
void | 
recreateInitialDetailsForItemMarkedAsFinal(CommerceItem pItem,
                                          double pAmount,
                                          java.util.Locale pUserLocale,
                                          RepositoryItem pProfile,
                                          java.lang.String pDescription)
Recreates the detailed price infos for the item that has been marked as final. 
 | 
atg.commerce.promotion.PromotionAnalysisModelHolder | 
resolvePromotionAnalysisModelHolderComponent()
Resolve the promotion analysis mode holder component from holder path property. 
 | 
double | 
retrieveHighestChildSKUPrice(RepositoryItem pProduct)
Retrieves the highest price from the childSKUs property belonging
 to the passed in product RepositoryItem. 
 | 
double | 
retrieveHighestPriceListPrice(RepositoryItem pProduct,
                             RepositoryItem pPriceList,
                             RepositoryItem pSalePriceList)
Retrieves the highest price belonging to any of pProducts childSKUs when the prices are stored
 in a priceList. 
 | 
double | 
retrieveLowestChildSKUPrice(RepositoryItem pProduct)
Retrieves the lowest price from the childSKUs property belonging
 to the passed in product RepositoryItem. 
 | 
double | 
retrieveLowestPriceListPrice(RepositoryItem pProduct,
                            RepositoryItem pPriceList,
                            RepositoryItem pSalePriceList)
Retrieves the lowest price belonging to any of pProducts childSKUs when the prices are stored
 in a priceList. 
 | 
double | 
round(double pNumber)
Rounds the input number to the number of decimal places specified by the
  
roundingDecimalPlaces property. | 
double | 
round(double pNumber,
     int pRoundingDecimalPlaces)
Rounds the input number to the number of decimal places specified by the
  
pRoundingDecimalPlaces argument. | 
double | 
round(double pNumber,
     java.util.Locale pLocale)
Rounds the input number to the number of decimal places based on the given
  
pLocale. | 
double | 
round(double pNumber,
     java.lang.String pCurrencyCode)
Rounds the input number to the number of decimal places based on the
  
pCurrencyCode. | 
double | 
roundDown(double pNumber)
Rounds the input number to the number of decimal places specified by the
  
roundingDecimalPlaces property. | 
double | 
roundDown(double pNumber,
         int pRoundingDecimalPlaces)
Rounds the input number to the number of decimal places specified by the
  
pRoundingDecimalPlaces . | 
double | 
roundDown(double pNumber,
         java.util.Locale pLocale)
Rounds the input number to the number of decimal places specified by the
  
pLocale. | 
double | 
roundDown(double pNumber,
         java.lang.String pCurrencyCode)
Rounds the input number to the number of decimal places specified by the
  
pCurrencyCode. | 
protected void | 
sendMaxNoOfCouponsPerOrderMessages(java.util.Map pExtraParameters)
Sends Maximum Coupons Per Order messages. 
 | 
void | 
sendPriceChangedEvent(PriceChanged pMessage)
This method will send the given PriceChanged event on the
  
scenarioEventPort port. | 
void | 
sendPricingMessage(atg.commerce.pricing.PricingMessage pPricingMessage)
This method will send the given PricingMessage event on the
  
scenarioEventPort port. | 
protected void | 
sendPromotionClosenessQualificationMessage(PromotionClosenessMessage pMessage)
Sends the given PromotionClosenessMessage. 
 | 
protected void | 
sendStackingRuleMessages(java.util.Map pExtraParameters)
Sends stacking rule messages. 
 | 
void | 
sendUserMessage(atg.web.messaging.UserMessage pMessage,
               atg.web.messaging.MessageTools pMessageTools,
               java.util.Map pExtraParameters)
Sends the given user message to the given MessageTools component. 
 | 
void | 
setCatalogTools(CatalogTools pCatalogTools)  | 
void | 
setChildSKUsPropertyName(java.lang.String pChildSKUsPropertyName)
The name of the childSKUs property in the product item descriptor 
 | 
void | 
setClosenessQualificationMessageSender(MessageSender pClosenessQualificationMessageSender)
Sets the component that fires PromotionClosenessQualification and
 PromotionClosenessDisqualification events 
 | 
void | 
setCommerceItemManager(CommerceItemManager pCommerceItemManager)  | 
void | 
setCommercePropertyManager(CommercePropertyManager pCommercePropertyManager)
Sets commercePropertyManager 
 | 
void | 
setCurrencyCodeDecimalPlacesOverrides(java.util.Map<java.lang.String,java.lang.String> pCurrencyCodeDecimalPlacesOverrides)
Sets the currencyCodeDecimalPlacesOverrides property 
 | 
void | 
setDefaultLocale(java.util.Locale pDefaultLocale)
Sets property DefaultLocale 
 | 
void | 
setDetailedItemPriceInfoClass(java.lang.Class pDetailedItemPriceInfoClass)  | 
void | 
setDiscountablePropertyName(java.lang.String pDiscountablePropertyName)
The name of the discountable property in the product/sku item descriptor 
 | 
void | 
setGeneratePriceChangedEvents(boolean pGeneratePriceChangedEvents)  | 
void | 
setGeneratePromotionAnalysisInfo(boolean pGeneratePromotionAnalysisInfo)
Sets property mGeneratePromotionAnalysisInfo 
 | 
void | 
setGwpManager(GWPManager pGwpManager)
Setter for the gift with purchase manager to handle those promotions. 
 | 
void | 
setItemPriceSourceHandlers(ItemPriceSourceHandler[] pItemPriceSourceHandlers)  | 
void | 
setItemPricingEngine(ItemPricingEngine pItemPricingEngine)
Sets property ItemPricingEngine 
 | 
void | 
setLoggingIdentifier(java.lang.String pLoggingIdentifier)
Sets property LoggingIdentifier 
 | 
void | 
setMaxCouponsPerOrder(int pMaxCouponsPerOrder)
Set the maximum number of coupons allowed per order for the site. 
 | 
void | 
setMessageIdGenerator(IdGenerator pMessageIdGenerator)  | 
void | 
setMessageIdSpaceName(java.lang.String pMessageIdSpaceName)  | 
void | 
setMessageTools(atg.web.messaging.MessageTools pMessageTools)
Setter for the MessageTools component to use for application messages. 
 | 
void | 
setOrderManager(OrderManager pOrderManager)  | 
void | 
setOrderPricingEngine(OrderPricingEngine pOrderPricingEngine)
Sets property OrderPricingEngine 
 | 
void | 
setOrderTools(OrderTools pOrderTools)  | 
void | 
setPriceListManager(PriceListManager pPriceListManager)
Sets property PriceListManager which handles the operations of the PriceList 
 | 
void | 
setPricingContextFactory(PricingContextFactory pPricingContextFactory)  | 
void | 
setProfileItemType(java.lang.String pProfileItemType)  | 
void | 
setProfileRepository(MutableRepository pProfileRepository)  | 
void | 
setPromotionAnalysisManager(atg.commerce.promotion.PromotionAnalysisManager pPromotionAnalysisManager)
Sets the PromotionAnalysisManager component 
 | 
void | 
setPromotionAnalysisModelHolderPath(java.lang.String pPromotionAnalysisModelHolderPath)
Sets the PromotionAnalysisModelHolder component path 
 | 
void | 
setPromotionClosenessDisqualificationJMSType(java.lang.String pPromotionClosenessDisqualificationJMSType)
Sets the JMS type of the PromotionClosenessDisqualification message 
 | 
void | 
setPromotionClosenessQualificationJMSType(java.lang.String pPromotionClosenessQualificationJMSType)
Sets the JMS type of the PromotionClosenessQualification message 
 | 
void | 
setRangeClassType(java.lang.String pRangeClassType)  | 
void | 
setRangeComparator(atg.core.util.RangeComparator pRangeComparator)  | 
void | 
setRestrictedPricingOperations(java.util.Map<java.lang.String,java.lang.String> pRestrictedPricingOperations)
sets the restricted pricing operations 
 | 
void | 
setRoundingDecimalPlaces(int pRoundingDecimalPlaces)
number of decimal places to which prices should be rounded 
 | 
void | 
setScenarioEventPort(java.lang.String pScenarioEventPort)  | 
void | 
setSendEventsWithNoProfile(boolean pSendEventsWithNoProfile)  | 
void | 
setSendGWPMessages(boolean pSendGWPMessages)
boolean indicating if GWP messages should be sent. 
 | 
void | 
setSendMaxNoOfCouponsPerOrderMessages(boolean pSendMaxCouponsPerOrderMessages)
Sets a boolean value to property sendMaxCouponsPerOrderMessages
 indicating if "maximum coupons per order" messages should be sent. 
 | 
void | 
setSendPricingMessages(boolean pSendPricingMessages)
boolean indicating if the pricing JMS messages should be sent. 
 | 
void | 
setSendPromotionClosenessMessages(boolean pSendPromotionClosenessMessages)
boolean indicating if the promotion-closeness JMS messages should be sent. 
 | 
void | 
setSendStackingRuleMessages(boolean pSendStackingRuleMessages)
boolean indicating if stacking rule messages should be sent. 
 | 
void | 
setSendUserMessages(boolean pSendUserMessages)
boolean indicating if MessageTools user messages should be sent. 
 | 
void | 
setShippingPricingEngine(ShippingPricingEngine pShippingPricingEngine)
Sets property ShippingPricingEngine 
 | 
void | 
setShippingSubtotalUsesAverageItemPrice(boolean pShippingSubtotalUsesAverageItemPrice)  | 
void | 
setSubSkuPrice(CommerceItem pSubItem,
              double pUnitPrice,
              PricingAdjustment pAdjustment,
              RepositoryItem pPricingModel,
              java.util.Locale pLocale,
              RepositoryItem pProfile,
              java.util.Map pExtraParameters,
              java.lang.String pMsg,
              RepositoryItem pPriceList)
Create and set the priceinfo object for a subsku. 
 | 
void | 
setSubSkuPriceInfoClass(java.lang.Class pSubSkuPriceInfoClass)
Sets property SubSkuPriceInfoClass 
 | 
void | 
setSubSkuSalePrice(CommerceItem pSubItem,
                  double pSalePrice,
                  PricingAdjustment pAdjustment,
                  RepositoryItem pPricingModel,
                  java.util.Locale pLocale,
                  RepositoryItem pProfile,
                  java.util.Map pExtraParameters,
                  java.lang.String pMsg,
                  RepositoryItem pPriceList)
Update the priceinfo object for a subsku with a sale price. 
 | 
void | 
setTaxPricingEngine(TaxPricingEngine pTaxPricingEngine)
Sets property TaxPricingEngine 
 | 
void | 
setUseDefaultLocaleIfNotSpecified(boolean pUseDefaultLocaleIfNotSpecified)  | 
void | 
setUsePassedLocaleAsPricingLocale(boolean pUsePassedLocaleAsPricingLocale)
Sets property usePassedLocaleAsPricingLocale which if true means getPricingLocale will 
 just return the locale passed into it rather than trying to determine it from the price list
 or the default
 Defaults to false. 
 | 
void | 
setUsingPriceLists(boolean pUsingPriceLists)
Sets property usingPriceLists, which indicates whether the application uses price lists
 or SKU-based pricing. 
 | 
void | 
startService(ServiceEvent pEvent)
Starts the service running. 
 | 
receiveMessage, sendCommerceMessagebeforeSendMessage, getDefaultMessageSourceName, getDelayOnSendRetry, getLimboDeliveryDelay, getMessageSourceContext, getMessageSourceName, getTransactionManager, isAllowMessageSending, sendObjectMessage, setAllowMessageSending, setDelayOnSendRetry, setLimboDeliveryDelay, setMessageSourceContext, setMessageSourceName, setTransactionManager, startMessageSource, stopMessageSourceaddLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, stopService, toStringvlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarningpublic static java.lang.String CLASS_VERSION
protected static final java.lang.String MY_RESOURCE_NAME
public static final java.lang.String PRICING_TOOLS_COMPONENT_PATH
public static final java.lang.String ALL_BY_GROUP
public static final java.lang.String DEFAULT_DECIMAL_PLACES
public static final java.lang.String DETAILED_ITEM_PRICE_AMOUNT_PROPERTY
public static final java.lang.String DETAILED_ITEM_PRICE_ORDER_DISCOUNT_SHARE_PROPERTY
public static final java.lang.String DETAILED_ITEM_PRICE_ORDER_MANUAL_ADJUSTMENT_SHARE_PROPERTY
public static final java.lang.String GROUP_INDEX
public static final java.lang.String GROUP_ONLY
public static final java.lang.String GROUP_PRICING_MODEL
public static final java.lang.String LIST_PRICE
public static final java.lang.String ON_SALE
public static final java.lang.String PRICE_MIN
public static final java.lang.String PRICE_MAX
public static final java.lang.String PRICE_RANGE
public static final java.lang.String SALE_PRICE
public static final java.lang.String SKUID
public static final java.lang.String SKU_PRICES
public static final java.lang.String LIST_VOLUME_PRICE
public static final java.lang.String SALE_VOLUME_PRICE
public static final java.lang.String INF_MSG_NULL_PROFILE
public static final java.lang.String ERR_CANT_SEND_MESSAGE
public static final java.lang.String WRN_NO_PRICELIST_FOR_LOCALE
public static final java.lang.String WRN_PARAMS_INVALID_PRICELIST
public static final java.lang.String WRN_PARAMS_INVALID_PRICELIST_NAME
public static final java.lang.String ERR_PASSED_NULL_PRICE_INFO
public static final java.lang.String ERR_CANT_GET_PRICE_FOR_PROD
public static final java.lang.String ERR_PROMOTION_ANALYSIS_MODEL_HOLDER_NOT_FOUND
public static final java.lang.String ERR_CANNOT_PARSE_DECIMAL_PLACES_NUMBER
public static final java.lang.String ERR_CANNOT_GET_PROD_ITEM
public static final java.lang.String ERR_PRICELIST_REQUIRED
public static final java.lang.String ERR_PRODUCT_REQUIRED
public static final java.lang.String ERR_PROFILE_REQUIRED
public static final java.lang.String ERR_SKU_REQUIRED
public static final java.lang.String ERR_PRICELISTMANAGER_NOT_CONFIGURED
protected static PricingTools sPricingTools
protected ItemPriceSourceHandler[] mItemPriceSourceHandlers
protected boolean mUsingPriceLists
public ItemPriceSourceHandler[] getItemPriceSourceHandlers()
ItemPriceSourceHandler components
 that are used to generate price overrides.
 If null, this method will dynamically build the array of handlers from the ItemPriceEngine's preCalculators.
generateItemPriceSources(Order, Map)public void setItemPriceSourceHandlers(ItemPriceSourceHandler[] pItemPriceSourceHandlers)
public void setPricingContextFactory(PricingContextFactory pPricingContextFactory)
public PricingContextFactory getPricingContextFactory()
public void setCommerceItemManager(CommerceItemManager pCommerceItemManager)
public CommerceItemManager getCommerceItemManager()
public void setOrderManager(OrderManager pOrderManager)
public OrderManager getOrderManager()
public void setRangeClassType(java.lang.String pRangeClassType)
public java.lang.String getRangeClassType()
public void setRoundingDecimalPlaces(int pRoundingDecimalPlaces)
pRoundingDecimalPlaces - new value to setpublic int getRoundingDecimalPlaces()
public void setLoggingIdentifier(java.lang.String pLoggingIdentifier)
public java.lang.String getLoggingIdentifier()
public void setSubSkuPriceInfoClass(java.lang.Class pSubSkuPriceInfoClass)
public java.lang.Class getSubSkuPriceInfoClass()
public void setItemPricingEngine(ItemPricingEngine pItemPricingEngine)
public ItemPricingEngine getItemPricingEngine()
public void setOrderPricingEngine(OrderPricingEngine pOrderPricingEngine)
public OrderPricingEngine getOrderPricingEngine()
public void setTaxPricingEngine(TaxPricingEngine pTaxPricingEngine)
public TaxPricingEngine getTaxPricingEngine()
public void setShippingPricingEngine(ShippingPricingEngine pShippingPricingEngine)
public ShippingPricingEngine getShippingPricingEngine()
public void setProfileRepository(MutableRepository pProfileRepository)
public MutableRepository getProfileRepository()
public void setProfileItemType(java.lang.String pProfileItemType)
public java.lang.String getProfileItemType()
public void setShippingSubtotalUsesAverageItemPrice(boolean pShippingSubtotalUsesAverageItemPrice)
public boolean isShippingSubtotalUsesAverageItemPrice()
PricingTools.getShipItemRelSubtotal
 default value is true
public void setRangeComparator(atg.core.util.RangeComparator pRangeComparator)
public atg.core.util.RangeComparator getRangeComparator()
public void setDefaultLocale(java.util.Locale pDefaultLocale)
public java.util.Locale getDefaultLocale()
public DetailedItemPriceTools getDetailedItemPriceTools()
public void setDetailedItemPriceInfoClass(java.lang.Class pDetailedItemPriceInfoClass)
public java.lang.Class getDetailedItemPriceInfoClass()
public void setGeneratePriceChangedEvents(boolean pGeneratePriceChangedEvents)
public boolean isGeneratePriceChangedEvents()
PriceChangedpublic void setMessageIdGenerator(IdGenerator pMessageIdGenerator)
public IdGenerator getMessageIdGenerator()
public void setMessageIdSpaceName(java.lang.String pMessageIdSpaceName)
public java.lang.String getMessageIdSpaceName()
public void setScenarioEventPort(java.lang.String pScenarioEventPort)
public java.lang.String getScenarioEventPort()
public void setSendEventsWithNoProfile(boolean pSendEventsWithNoProfile)
public boolean isSendEventsWithNoProfile()
public void setCatalogTools(CatalogTools pCatalogTools)
public CatalogTools getCatalogTools()
public void setOrderTools(OrderTools pOrderTools)
public OrderTools getOrderTools()
public void setUseDefaultLocaleIfNotSpecified(boolean pUseDefaultLocaleIfNotSpecified)
public boolean isUseDefaultLocaleIfNotSpecified()
public void setClosenessQualificationMessageSender(MessageSender pClosenessQualificationMessageSender)
pClosenessQualificationMessageSender - the component that fires PromotionClosenessQualification
        and PromotionClosenessDisqualification eventspublic MessageSender getClosenessQualificationMessageSender()
public void setPromotionClosenessDisqualificationJMSType(java.lang.String pPromotionClosenessDisqualificationJMSType)
pPromotionClosenessDisqualificationJMSType - the JMS type of the
        PromotionClosenessDisqualificationMessagepublic java.lang.String getPromotionClosenessDisqualificationJMSType()
public void setPromotionClosenessQualificationJMSType(java.lang.String pPromotionClosenessQualificationJMSType)
pPromotionClosenessQualificationJMSType - the JMS type of the
        PromotionClosenessQualificationMessagepublic java.lang.String getPromotionClosenessQualificationJMSType()
public void setSendPromotionClosenessMessages(boolean pSendPromotionClosenessMessages)
pSendPromotionClosenessMessages - boolean indicating if the 
        promotion-closeness JMS messages should be sent.public boolean isSendPromotionClosenessMessages()
public void setPriceListManager(PriceListManager pPriceListManager)
pPriceListManager - the new value to setpublic PriceListManager getPriceListManager()
public void setUsePassedLocaleAsPricingLocale(boolean pUsePassedLocaleAsPricingLocale)
pUsePassedLocaleAsPricingLocale - the new boolean value to setpublic boolean isUsePassedLocaleAsPricingLocale()
public void setUsingPriceLists(boolean pUsingPriceLists)
pUsingPriceLists - the new boolean value to setpublic boolean isUsingPriceLists()
public boolean isUsingPriceListsExplicitlySet()
usingPriceLists has been
 explicitly set either through code or through a properties file.public void setChildSKUsPropertyName(java.lang.String pChildSKUsPropertyName)
pChildSKUsPropertyName - the name of the childSKUs property in the product item descriptorpublic java.lang.String getChildSKUsPropertyName()
public void setDiscountablePropertyName(java.lang.String pDiscountablePropertyName)
pDiscountablePropertyName - the name of the discountable property in the product/sku item descriptorpublic java.lang.String getDiscountablePropertyName()
public CommercePropertyManager getCommercePropertyManager()
public void setCommercePropertyManager(CommercePropertyManager pCommercePropertyManager)
pCommercePropertyManager - public void setGwpManager(GWPManager pGwpManager)
pGwpManager - GWPManagerpublic GWPManager getGwpManager()
public void setMessageTools(atg.web.messaging.MessageTools pMessageTools)
pMessageTools - MessageToolspublic atg.web.messaging.MessageTools getMessageTools()
public void setSendPricingMessages(boolean pSendPricingMessages)
pSendPricingMessages - boolean indicating if the pricing
        JMS messages should be sent.public boolean isSendPricingMessages()
public void setSendUserMessages(boolean pSendUserMessages)
pSendUserMessages - boolean indicating if MessageTools
        user messages should be sent.public boolean isSendUserMessages()
public void setSendStackingRuleMessages(boolean pSendStackingRuleMessages)
pSendStackingRuleMessages - boolean indicating if stacking rule
        messages should be sent.public boolean isSendStackingRuleMessages()
public void setSendMaxNoOfCouponsPerOrderMessages(boolean pSendMaxCouponsPerOrderMessages)
pSendMaxCouponsPerOrderMessages - boolean indicating
        if "maximum coupons per order" messages should be sent.public boolean isSendMaxNoOfCouponsPerOrderMessages()
public void setSendGWPMessages(boolean pSendGWPMessages)
pSendGWPMessages - boolean indicating if GWP messages should be sent.public boolean isSendGWPMessages()
public void setPromotionAnalysisManager(atg.commerce.promotion.PromotionAnalysisManager pPromotionAnalysisManager)
pPromotionAnalysisManager - the promotionAnalysisManager componentpublic atg.commerce.promotion.PromotionAnalysisManager getPromotionAnalysisManager()
public void setGeneratePromotionAnalysisInfo(boolean pGeneratePromotionAnalysisInfo)
pGeneratePromotionAnalysisInfo - the generatePromotionAnalysisInfo valuepublic boolean isGeneratePromotionAnalysisInfo()
true if promotion analysis info should be generated, false otherwisepublic void setPromotionAnalysisModelHolderPath(java.lang.String pPromotionAnalysisModelHolderPath)
pPromotionAnalysisModelHolderPath - the PromotionAnalysisModelHolder component pathpublic java.lang.String getPromotionAnalysisModelHolderPath()
public int getMaxCouponsPerOrder()
public void setMaxCouponsPerOrder(int pMaxCouponsPerOrder)
pMaxCouponsPerOrder - the maximum number of coupons permitted per order.public java.util.Map<java.lang.String,java.lang.String> getRestrictedPricingOperations()
public void setRestrictedPricingOperations(java.util.Map<java.lang.String,java.lang.String> pRestrictedPricingOperations)
pRestrictedPricingOperations - public java.util.Map<java.lang.String,java.lang.String> getCurrencyCodeDecimalPlacesOverrides()
public void setCurrencyCodeDecimalPlacesOverrides(java.util.Map<java.lang.String,java.lang.String> pCurrencyCodeDecimalPlacesOverrides)
pCurrencyCodeDecimalPlacesOverrides - the map that associates 
 currency codes to its respective number of decimal placespublic static PricingTools getPricingTools()
#getGlobalNucleus() #resolveName(String) and
 return the same.public void doStartService()
                    throws ServiceException
doStartService in class GenericServiceServiceException - if the Service had a problem starting uppublic void deriveUsingPriceLists()
public static java.lang.String getInternationalCurrencySymbol(java.lang.String pLocale)
DecimalFormatSymbols.getInternationalCurrencySymbol()public static java.lang.String getInternationalCurrencySymbol(java.util.Locale pLocale)
DecimalFormatSymbols.getInternationalCurrencySymbol()public static java.lang.String getCurrencySymbol(java.lang.String pLocale)
DecimalFormatSymbols.getCurrencySymbol()public static java.lang.String getCurrencySymbol(java.util.Locale pLocale)
DecimalFormatSymbols.getCurrencySymbol()public static java.text.DecimalFormatSymbols getDecimalFormatSymbols(java.lang.String pLocale)
DecimalFormatSymbolspublic static java.text.DecimalFormatSymbols getDecimalFormatSymbols(java.util.Locale pLocale)
DecimalFormatSymbolspublic PriceChanged createPriceChangedEvent(Order pOrder, RepositoryItem pProfile, CommerceIdentifier pRepricedObject, AmountInfo pOldPrice) throws PricingException
pRepricedObject must be
 pOrder.  If other price change events are needed,
 this method should be extended.  For example, if you want to
 create a ShippingPriceChangedEvent, you should extend this
 method to look for a ShippingGroup as the
 pRepricedObject You will probably want the
 type of the PriceChange message to reflect the
 kind of price change.pOrder - The order that was repricedpProfile - The owner of the orderpOldPrice - The previous price of the orderPricingExceptionpublic void sendPriceChangedEvent(PriceChanged pMessage)
scenarioEventPort port.pMessage - The scenario event to sendpublic void sendUserMessage(atg.web.messaging.UserMessage pMessage,
                            atg.web.messaging.MessageTools pMessageTools,
                            java.util.Map pExtraParameters)
pMessage - UserMessage to sendpMessageTools - MessageTools component to use (optional)pExtraParameters - Map of extra parameterspublic void sendPricingMessage(atg.commerce.pricing.PricingMessage pPricingMessage)
scenarioEventPort port.pPricingMessage - The PricingMessage event to sendpublic java.lang.String getNextMessageId()
public CommerceItem createPricingCommerceItem(java.lang.String pCatalogRefId, java.lang.String pProductId, long pQuantity) throws CommerceException
pCatalogRefId - the id of the skupProductId - the id of the productpQuantity - the quantityCommerceException - is an issue occurred creating the pricing commerce itempublic CommerceItem createPricingCommerceItem(java.lang.String pCatalogRefId, java.lang.String pProductId, double pQuantityWithFraction) throws CommerceException
pCatalogRefId - the id of the skupProductId - the id of the productpQuantityWithFraction - the fractional quantityCommerceException - is an issue occurred creating the pricing commerce itempublic CommerceItem createPricingCommerceItem(java.lang.String pCatalogRefId, java.lang.String pProductId, long pQuantity, double pQuantityWithFraction) throws CommerceException
pCatalogRefId - the id of the skupProductId - the id of the productpQuantity - the quantitypQuantityWithFraction - the fractional quantityCommerceException - is an issue occurred creating the pricing commerce itempublic CommerceItem createUncachedPricingCommerceItem(java.lang.String pCatalogRefId, java.lang.String pProductId, long pQuantity, double pQuantityWithFraction) throws CommerceException
pCatalogRefId - the id of the skupProductId - the id of the productpQuantity - the quantitypQuantityWithFraction - the fractional quantityCommerceException - is an issue occurred creating the pricing commerce itemprotected CommerceItem createPricingCommerceItem(java.lang.String pCatalogRefId, java.lang.String pProductId, long pQuantity, double pQuantityWithFraction, boolean pUseCachedItem) throws CommerceException
pCatalogRefId - the id of the skupProductId - the id of the productpQuantity - the quantitypQuantityWithFraction - the fractional quantitypUseCachedItem - indicates if the PricingCommerceItem is obtained from the cache or a new PricingCommerceItem is created.CommerceException - is an issue occurred creating the pricing commerce itempublic RepositoryItem getProfile(java.lang.String pProfileId) throws RepositoryException
pProfileId - the id of the profile to retrieveRepositoryException - if there was an error while retrieving the profilepublic OrderPriceInfo priceOrderTotal(Order pOrder) throws PricingException
amount
 of the OrderPriceInfo for the order is updated to include the total shipping and taxes.
 This method will use the default locale and fetches the user profile directly from
 the order.
 This method will regenerate order ranges
 PriceChanged event will be thrownpOrder - the order to pricePricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderTotal(Order pOrder, java.util.Locale pLocale) throws PricingException
amount
 of the OrderPriceInfo for the order is updated to include the total shipping and taxes.
 This method will use the locale given. If the given locale is null, it will use the
 default locale if useDefaultLocaleIfNotSpecified is true.  Otherwise, it will call
 ServletUtil to determine the user's locale.  This method fetches the user profile 
 directly from the order.
 This method will regenerate order ranges
 PriceChanged event will be thrownpOrder - the order to pricepLocale - the locale to consider when pricingPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public java.util.Locale getLocale(java.util.Locale pLocale)
public OrderPriceInfo priceOrderTotal(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
amount
 of the OrderPriceInfo for the order is updated to include the total shipping and taxes.
 This method will regenerate order ranges
 PriceChanged event will be thrownpOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderTotal(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
amount
 of the OrderPriceInfo for the order is updated to include the total shipping and taxes.
 This method will regenerate order ranges
 PriceChanged event will be thrownpOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderTotal(Order pOrder, java.util.Collection pItemPricingModels, java.util.Collection pShippingPricingModels, java.util.Collection pOrderPricingModels, java.util.Collection pTaxPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
amount
 of the OrderPriceInfo for the order is updated to include the total shipping and taxes.
 This method will regenerate order ranges
 PriceChanged event will be thrownpOrder - the order to pricepItemPricingModels - the pricing models that affect itemspShippingPricingModels - the pricing models that affect shippingpOrderPricingModels - the pricing models that affect the order (e.g. sub total)pTaxPricingModels - the pricing models that affect taxespLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderSubtotal(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
PriceChanged event will be thrownpOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderSubtotal(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
PriceChanged event will be thrownpOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderSubtotal(Order pOrder, java.util.Collection pItemPricingModels, java.util.Collection pOrderPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
generatePriceChangedEvents then a
 PriceChanged event will be thrownpOrder - the order to pricepItemPricingModels - the pricing models that affect itemspOrderPricingModels - the pricing models that affect the order (e.g. sub total)pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationcreatePriceChangedEvent(atg.commerce.order.Order, atg.repository.RepositoryItem, atg.commerce.order.CommerceIdentifier, atg.commerce.pricing.AmountInfo)public OrderPriceInfo priceOrderSubtotalShipping(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic OrderPriceInfo priceOrderSubtotalShipping(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic OrderPriceInfo priceOrderSubtotalShipping(Order pOrder, java.util.Collection pItemPricingModels, java.util.Collection pShippingPricingModels, java.util.Collection pOrderPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepItemPricingModels - the pricing models that affect itemspShippingPricingModels - the pricing models that affect shippingpOrderPricingModels - the pricing models that affect the order (e.g. sub total)pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic OrderPriceInfo priceOrderSubtotalTax(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic OrderPriceInfo priceOrderSubtotalTax(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic OrderPriceInfo priceOrderSubtotalTax(Order pOrder, java.util.Collection pItemPricingModels, java.util.Collection pOrderPricingModels, java.util.Collection pTaxPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepItemPricingModels - the pricing models that affect itemspOrderPricingModels - the pricing models that affect the order (e.g. sub total)pTaxPricingModels - the pricing models that affect taxespLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic void priceItem(CommerceItem pCommerceItem, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pCommerceItem - the item to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic void priceItem(CommerceItem pCommerceItem, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pCommerceItem - the item to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic void priceItem(CommerceItem pCommerceItem, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pCommerceItem - the item to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected void priceItem(CommerceItem pCommerceItem, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, boolean pGenerateItemRanges) throws PricingException
pCommerceItem - the item to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpGenerateItemRanges - If this is true, CommerceItemManager.generateRangeForItem
                            is called for each itemPricingException - if there was an error while computing the pricing informationCommerceItemManager.generateRangeForItem(atg.commerce.order.CommerceItem)public void priceEachItem(java.util.List pCommerceItems,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
                   throws PricingException
pCommerceItems - the items to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic void priceEachItem(java.util.List pCommerceItems,
                          PricingModelHolder pPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
                   throws PricingException
pCommerceItems - the items to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic void priceEachItem(java.util.List pCommerceItems,
                          java.util.Collection pPricingModels,
                          java.util.Locale pLocale,
                          RepositoryItem pProfile,
                          java.util.Map pExtraParameters)
                   throws PricingException
pCommerceItems - the items to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected void priceEachItem(java.util.List pCommerceItems,
                             java.util.Collection pPricingModels,
                             java.util.Locale pLocale,
                             RepositoryItem pProfile,
                             java.util.Map pExtraParameters,
                             boolean pGenerateItemRanges)
                      throws PricingException
pCommerceItems - the items to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpGenerateItemRanges - If this is true, CommerceItemManager.generateRangeForItem
                            is called for each itemPricingException - if there was an error while computing the pricing informationCommerceItemManager.generateRangeForItem(atg.commerce.order.CommerceItem)public double priceItemsForOrderTotal(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic double priceItemsForOrderTotal(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected double priceItemsForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected double priceItemsForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, boolean pGenerateOrderRanges) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpGenerateOrderRanges - If this is true, CommerceItemManager.generateRangesForOrderPricingException - if there was an error while computing the pricing informationCommerceItemManager.generateRangesForOrder(atg.commerce.order.Order)public double priceShippingForOrderTotal(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic double priceShippingForOrderTotal(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic double priceShippingForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected double priceShippingForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, boolean pGenerateOrderRanges) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpGenerateOrderRanges - If this is true, CommerceItemManager.generateRangesForOrderPricingException - if there was an error while computing the pricing informationCommerceItemManager.generateRangesForOrder(atg.commerce.order.Order)public double priceOrderForOrderTotal(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic double priceOrderForOrderTotal(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected double priceOrderForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected double priceOrderForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, boolean pGenerateOrderRanges) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpGenerateOrderRanges - If this is true, CommerceItemManager.generateRangesForOrderPricingException - if there was an error while computing the pricing informationCommerceItemManager.generateRangesForOrder(atg.commerce.order.Order)public double priceTaxForOrderTotal(Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic double priceTaxForOrderTotal(Order pOrder, PricingModelHolder pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax).pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic double priceTaxForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationprotected double priceTaxForOrderTotal(Order pOrder, java.util.Collection pPricingModels, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, boolean pGenerateOrderRanges) throws PricingException
pOrder - the order to pricepPricingModels - the pricing models used in this pricingpLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpGenerateOrderRanges - If this is true, CommerceItemManager.generateRangesForOrderPricingException - if there was an error while computing the pricing informationCommerceItemManager.generateRangesForOrder(atg.commerce.order.Order)public void performPricingOperation(java.lang.String pPricingOperation,
                                    Order pOrder,
                                    PricingModelHolder pPricingModels,
                                    java.util.Locale pLocale,
                                    RepositoryItem pProfile,
                                    java.util.Map pExtraParameters)
                             throws PricingException
atg.commerce.pricing.PricingConstants interface. They include:
 ORDER_TOTAL
 ORDER_SUBTOTAL
 ORDER_SUBTOTAL_SHIPPING
 ORDER_SUBTOTAL_TAX
 ITEMS
 SHIPPING
 ORDER
 TAX
 NO_REPRICE
 pPricingOperation - the pricing operation to performpOrder - the order to pricepPricingModels - the PricingModelHolder is an object which contains all the
 pricing models associated with a user (i.e. item, shipping, order and tax). If this is null,
 then the pricing models are extracted from the profile through the pricing engines.pLocale - the locale of the user, may be nullpProfile - the user, may be nullpExtraParameters - A Map of extra parameters to be used in the pricing, may be nullPricingException - if there was an error while computing the pricing informationpublic boolean isOrderRestrictedForPricing(Order pOrder)
pOrder - The order objectpublic java.lang.String getRestrictedPricingOperation(java.lang.String pPricingOperation,
                                                      java.util.Map pExtraParameters)
pPricingOperation - the pricing operationpExtraParameters - the extra parameters mappublic void prePricingOperation(Order pOrder, java.util.Map pExtraParameters) throws PricingException
pOrder - the order to pricepExtraParameters - a map of extra parameters to be used in the pricing, may be nullPricingException - if something went wrong during pre pricingpublic void postPricingOperation(java.util.Map pExtraParameters)
pExtraParameters - a map of extra parameters to be used in the pricing, may be nullprotected void prepareForMaxCouponsPerOrderLimit(PricingModelHolder pPricingModelHolder, java.util.Map pExtraParameters)
pPricingModelHolder - the PricingModelHolder objectpExtraParameters - a map of extra parameters to be used in the pricing, may be nullPricingException - if something went wrong during pre pricingpublic void clearMessageTools(java.util.Map pExtraParameters)
This functionality can be disabled by adding a disableClearingMessageTools
 key into the extra parameters map.
 
It is also disabled if user messages are disabled.
pExtraParameters - optional Map of extra parameters.isSendUserMessages()protected void clearPromotionAnalysisData(Order pOrder, java.util.Map pExtraParameters)
pOrder - the order to pricepExtraParameters - a map of extra parameters to be used in the pricing, may be nullprotected void sendStackingRuleMessages(java.util.Map pExtraParameters)
pExtraParameters - A Map of extra parameters to be used in the pricing, may be nullprotected void sendMaxNoOfCouponsPerOrderMessages(java.util.Map pExtraParameters)
pExtraParameters - A Map of extra parameters to be used in the pricing, may be nullpublic atg.commerce.promotion.PromotionAnalysisModelHolder resolvePromotionAnalysisModelHolderComponent()
public boolean isTaxable(CommerceItem pItem, ItemPriceInfo pItemPriceInfo, OrderPriceInfo pOrderPriceInfo, Order pOrder, ShippingPriceInfo pShippingPriceInfo, ShippingGroup pShippingGroup, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
pItem - the Item whose taxability is in questionpItemPriceInfo - the price of the item whose taxability is in questionpOrderPriceInfo - the price of the order in which pItem residespOrder - the order in which pItem residespShippingPriceInfo - the price of the shippingGroup in which pItem residespShippingGroup - the shippingGroup in which pItem residespLocale - the locale in which the item is being taxedpProfile - the person for whom pItem may be taxedpExtraParameters - any extra information that this method may need to determine
        whether pItem is taxable.PricingException - if something prevented PricingTools from
            determining whether the item is taxable.public double calculateTaxableAmount(CommerceItem pItem, Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
isTaxable is false) then 0.0 is returned.  Otherwise
 the items order discount share is subtracted from its amount.pItem - The CommerceItem whose taxable amount is returnedpOrder - The order containing the itempLocale - The users localepProfile - The current users profilepExtraParameters - any extra information that this method may needPricingExceptionpublic double calculateTaxableAmount(ShippingGroupCommerceItemRelationship pRelationship, Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
isTaxable is
 false) then 0.0 is returned.  Otherwise the relationships order
 discount share is subtracted from its amount.  These two numbers
 are calculated by adding the relevant properties for each of the
 details withing the same range as the relationship.pRelationship - commerce item relationshippOrder - The order containing the itempLocale - The users localepProfile - The current users profilepExtraParameters - any extra information that this method may needPricingExceptiongetShipItemRelPriceTotal(atg.commerce.order.ShippingGroupCommerceItemRelationship, java.lang.String)public double calculateItemsOrderManualAdjustmentShare(CommerceItem pCommerceItem)
pCommerceItem - public double calculateTaxableAmountByAverage(ShippingGroupCommerceItemRelationship pRelationship, Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
calcualteTaxableAmount except the 
 an average amount is used for the items rather than the actual amount.  This is only
 relevant if shippingSubtotalUsesAverageItemPrice is true.pRelationship - commerce item relationshippOrder - The order containing the itempLocale - The users localepProfile - The current users profilepExtraParameters - any extra information that this method may needPricingExceptiongetShipItemRelPriceTotal(atg.commerce.order.ShippingGroupCommerceItemRelationship, java.lang.String)public double calculateTaxableAmountByAverage(CommerceItemRelationship pRelationship, Order pOrder, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters) throws PricingException
calcualteTaxableAmount except the 
 an average amount is used for the items rather than the actual amount.  This is only
 relevant if shippingSubtotalUsesAverageItemPrice is true.pRelationship - The relationship whose taxable amount is returnedpOrder - The order containing the itempLocale - The users localepProfile - The current users profilepExtraParameters - any extra information that this method may needPricingExceptionpublic double getAverageItemPrice(CommerceItem pCommerceItem)
shippingSubtotalUsesAverageItemPricepCommerceItem - The item whose average price is returnedpublic boolean needsRounding(double pNumber)
roundingDecimalPlaces property.
 That is to say, if the input number has more decimal places than N,
 where N is the value of roundingDecimalPlaces, then the
 input number needs to be rounded.pNumber - the number that may need to be roundedpublic boolean needsRounding(double pNumber,
                             java.lang.String pCurrencyCode)
pCurrencyCode. That is to say, if the input number has more
 decimal places than N, where N is the decimal number of places for the
 given pCurrencyCode, then the input number needs to be
 rounded.pNumber - the number that may need to be roundedpCurrencyCode - currency codepublic boolean needsRounding(double pNumber,
                             java.util.Locale pLocale)
pLocale. That is to say, if the input number
 has more decimal places than N, where N is the decimal number of places for
 the given pLocale, then the input number needs
 to be rounded.pNumber - the number that may need to be roundedpLocale - localepublic double round(double pNumber)
roundingDecimalPlaces property.  Rounds 1 through 4 down,
 and 5 through 9 up.pNumber - the number to be roundedpublic double round(double pNumber,
                    java.util.Locale pLocale)
pLocale. Rounds 1 through 4 down, and 5 through 9 up.pNumber - the number to be roundedpLocale - the localepublic double round(double pNumber,
                    java.lang.String pCurrencyCode)
pCurrencyCode. Rounds 1 through 4 down, and 5 through 9 up.pNumber - the number to be roundedpCurrencyCode - currency codepublic double round(double pNumber,
                    int pRoundingDecimalPlaces)
pRoundingDecimalPlaces argument.  Rounds 1 through 4 down,
 and 5 through 9 up.pNumber - the number to be roundedpRoundingDecimalPlaces - the number of decimal places to round topublic double roundDown(double pNumber)
roundingDecimalPlaces property. Rounds all numbers beyond the
 desired number of decimal places to zero.pNumber - the number to be roundedpublic double roundDown(double pNumber,
                        java.util.Locale pLocale)
pLocale. Rounds all numbers beyond the desired
 number of decimal places to zero.pNumber - the number to be roundedpLocale - localepublic double roundDown(double pNumber,
                        java.lang.String pCurrencyCode)
pCurrencyCode. Rounds all numbers beyond the desired number of
 decimal places to zero.pNumber - the number to be roundedpCurrencyCode - the currency codepublic double roundDown(double pNumber,
                        int pRoundingDecimalPlaces)
pRoundingDecimalPlaces . Rounds all numbers beyond the desired
 number of decimal places to zero.pNumber - the number to be roundedpRoundingDecimalPlaces - the number of decimal places to round toprotected int getNumberDecimalPlacesForCurrency(java.util.Locale pLocale)
pLocale. If
 pLocale is null, the default value of decimal places will be
 retrunedpLocale - the localepublic int getNumberDecimalPlacesForCurrency(java.lang.String pCurrencyCode)
 Returns number of decimal places with respect to the appropriate currency
 which is associated with the given pCurrencyCode by retrieving
 the value from the CurrencyCodeDecimalPlaces.
 
 If no value found in CurrencyCodeDecimalPlaces for the respective
 CurrencyCode, the decimal places can be retrieved by invoking the Currency
 class of respective pCurrencyCode and the same value is
 updated to the CurrencyCodeDecimalPlaces for the next time use. If
 pCurrencyCode is null, a default decimal places value will be
 returned.
 
pCurrencyCode - Currency codeprotected int getDefaultNumberOfDecimalPlaces()
public double getShipItemRelPriceTotal(ShippingGroupCommerceItemRelationship pRelationship, java.lang.String pDetailProperty) throws PricingException
pRelationship - The relationship to return the subtotal for, using the details within
                      the same rangepDetailProperty - PricingExceptionpublic double getRelationshipsSubtotal(java.util.List pRelationships,
                                       java.lang.String pDetailProperty)
                                throws PricingException
pRelationships - The list of relationships to get the amounts forpDetailProperty - The name of the property in the relationships DetailedItemPriceInfos to sumPricingExceptionpublic double getItemsOrderDiscountShare(Order pOrder, CommerceItem pItem, double pDiscount)
pOrder - The order containing the itempItem - The commerce itempDiscount - The size of the discountpublic ItemPriceInfo calculatePrice(RepositoryItem pProduct, RepositoryItem pSku, long pQuantity) throws PricingException
pProduct - The product being pricedpSku - The sku being pricedpQuantity - The quantity of the sku being pricedPricingExceptionpublic ItemPriceInfo calculatePrice(RepositoryItem pProduct, RepositoryItem pSku, double pQuantityWithFraction) throws PricingException
pProduct - The product being pricedpSku - The sku being pricedpQuantityWithFraction - The fractional quantity of the sku being pricedPricingExceptionpublic ItemPriceInfo calculatePrice(RepositoryItem pProduct, RepositoryItem pSku, long pQuantity, double pQuantityWithFraction) throws PricingException
pProduct - The product being pricedpSku - The sku being pricedpQuantity - The quantity of the sku being pricedpQuantityWithFraction - The fractional quantity of the sku being pricedPricingExceptionpublic ItemPriceInfo calculatePrice(RepositoryItem pProduct, RepositoryItem pSku, long pQuantity, boolean pIgnorePromotions, RepositoryItem pProfile, java.util.Locale pLocale, java.util.Map pExtraParameters) throws PricingException
pProduct - The product being pricedpSku - The sku being pricedpQuantity - The quantity of the sku being pricedpIgnorePromotions - If true, then no promotions will be considered.  If false
                          then promotions as calculated by priceItem will applypProfile - The profile used during the price calculationpLocale - The locale used during the price calculationpExtraParameters - Any extra parameters that should be consideredPricingExceptionpublic ItemPriceInfo calculatePrice(RepositoryItem pProduct, RepositoryItem pSku, double pQuantityWithFraction, boolean pIgnorePromotions, RepositoryItem pProfile, java.util.Locale pLocale, java.util.Map pExtraParameters) throws PricingException
pProduct - The product being pricedpSku - The sku being pricedpQuantityWithFraction - The fractional quantity of the sku being pricedpIgnorePromotions - If true, then no promotions will be considered.  If false
                          then promotions as calculated by priceItem will applypProfile - The profile used during the price calculationpLocale - The locale used during the price calculationpExtraParameters - Any extra parameters that should be consideredPricingExceptionpublic ItemPriceInfo calculatePrice(RepositoryItem pProduct, RepositoryItem pSku, long pQuantity, double pQuantityWithFraction, boolean pIgnorePromotions, RepositoryItem pProfile, java.util.Locale pLocale, java.util.Map pExtraParameters) throws PricingException
pProduct - The product being pricedpSku - The sku being pricedpQuantity - The quantity of the sku being pricedpQuantityWithFraction - The fractional quantity of the sku being pricedpIgnorePromotions - If true, then no promotions will be considered.  If false
                          then promotions as calculated by priceItem will applypProfile - The profile used during the price calculationpLocale - The locale used during the price calculationpExtraParameters - Any extra parameters that should be consideredPricingExceptionpublic ShippingGroupCommerceItemRelationship getShippingGroupCommerceItemRelationship(CommerceItem pItem, DetailedItemPriceInfo pPriceInfo)
pItem - The commerceItempPriceInfo - The DetailedItemPriceInfopublic OrderPriceInfo createOrderPriceInfo() throws PricingException
OrderTools.defaultOrderPriceInfoClass
 property.PricingException - if there was a problem instantiating the objectprotected AmountInfo createSubSkuPriceInfo() throws PricingException
subSkuPriceInfoClass
 property.PricingException - if there was a problem instantiating the objectpublic DetailedItemPriceInfo createDetailedItemPriceInfo() throws PricingException
detailedItemPriceInfoClass property.PricingException - if there was a problem instantiating the objectpublic DetailedItemPriceInfo createDetailedItemPriceInfo(DetailedItemPriceInfo pDetailedItemPriceInfo) throws PricingException
detailedItemPriceInfoClass property.
 This method also calls detailedItemPriceInfo.copyDetailProperties with
 the given detailPricingException - if there was a problem instantiating the objectprotected DetailedItemPriceInfo createInitialSubSkuDetailedPriceInfo(double pTotalPrice, ItemPriceInfo pPriceQuote, CommerceItem pItem, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, java.lang.String pAdjustmentDescription, atg.core.util.Range pRange) throws PricingException
pTotalPrice - The total price that the new DetailedItemPriceInfos must account forpPriceQuote - The current working price of pItem.pItem - The item that is currently being priced.pPricingModel - the discount that will be set in the PricingAdjustment (usually null)pProfile - the person for whom the items are to be discounted (currently ignored)pLocale - the locale in which the items are to be discounted (currently ignored)pExtraParameters - any extra information that this method might need to set the
        prices of a number of the qualifying item (currently ignored)pAdjustmentDescription - This is the adjustment description used when creating all new PricingAdjustmentsPricingExceptionpublic void setSubSkuPrice(CommerceItem pSubItem, double pUnitPrice, PricingAdjustment pAdjustment, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, java.lang.String pMsg, RepositoryItem pPriceList) throws PricingException
pSubItem - The commerce item corresponding to the sku that need to be pricedpUnitPrice - The working price of the single subskupAdjustment - The adjustment associated with this price computation.pPricingModel - A RepositoryItem representing a PricingModelpLocale - The user's localepProfile - The user's profilepExtraParameters - A Map of extra parameters to be used in the pricing, may be null
                         You may override the price list in the profile by providing a price
                         list (or price list id) in this map.  Use profilePriceListPropertyName
                         as the keypMsg - This is the adjustment description used when creating new PricingAdjustmentspPriceList - The priceInfo's pricelist is set to this object.PricingExceptionpublic void setSubSkuSalePrice(CommerceItem pSubItem, double pSalePrice, PricingAdjustment pAdjustment, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters, java.lang.String pMsg, RepositoryItem pPriceList) throws PricingException
pSubItem - The commerce item corresponding to the sku that need to be pricedpSalePrice - The working price of the single subskupAdjustment - The adjustment associated with this price computation.pPricingModel - A RepositoryItem representing a PricingModelpLocale - The user's localepProfile - The user's profilepExtraParameters - A Map of extra parameters to be used in the pricing, may be null
                         You may override the price list in the profile by providing a price
                         list (or price list id) in this map.  Use profilePriceListPropertyName
                         as the keypMsg - This is the adjustment description used when creating new PricingAdjustmentspPriceList - The priceInfo's pricelist is set to this object.PricingExceptionpublic void compareClosenessQualifiers(java.util.List pClosenessQualifiers1,
                                       java.util.List pClosenessQualifiers2,
                                       java.lang.String pJMSType,
                                       Order pOrder,
                                       RepositoryItem pProfile)
pClosenessQualifiers1 - the Map of closenessQualifiers that are to be
        compared against pClosenessQualifiers2pClosenessQualifiers2 - the Map of closenessQualifiers that 
        pClosenessQualifiers1 is to be compared against.pJMSType - the JMS type of the message to send if a closenessQualifier
        found in pClosenessQualifiers1 is not contained in pClosenessQualifiers2pOrder - the order that the closenessQualifiers pertain topProfile - the owner of the orderprotected void compareQualifiers(AmountInfo pOldPriceInfo, AmountInfo pNewPriceInfo, Order pOrder, RepositoryItem pProfile)
public void firePromotionClosenessMessage(java.lang.String pJMSType,
                                          Order pOrder,
                                          RepositoryItem pProfile,
                                          RepositoryItem pClosenessQualifier)
pJMSType - The JMS type of the messagepOrder - The order that the closenessQualifier is associated withpProfile - The owner of the orderpClosenessQualifier - The closenessQualifier that the order satisfiesprotected void sendPromotionClosenessQualificationMessage(PromotionClosenessMessage pMessage)
pMessage - the message to sendpublic boolean doesOrderContainPriceLists(Order pOrder)
pOrder - public RepositoryItem getListPriceListFromOrder(Order pOrder)
The price list is found by looking for a commerce item that is not on sale with a price list associated.
pOrder - public RepositoryItem getSalePriceListFromOrder(Order pOrder)
The price list from the first on sale commerce item in the order is returned. with a price list associated.
pOrder - public java.util.Locale getPricingLocale(RepositoryItem pProfile, java.lang.String pPriceListPropertyName, boolean pUseDefaultPriceList, java.util.Map pExtraParameters, java.util.Locale pLocale)
pProfile - RepositoryItem profilepPriceListPropertyName - String name of the price list property in the profilepUseDefaultPriceList - boolean, true to use the default price list if neededpExtraParameters - Optional map of extra parameters which may include the price listpLocale - Locale to use if no price list or default locale is foundpublic java.util.Locale getLocaleFromPriceList(RepositoryItem pProfile, java.lang.String pPriceListPropertyName, boolean pUseDefaultPriceList, java.util.Map pExtraParameters, java.util.Locale pLocale)
pProfile - RepositoryItem profilepPriceListPropertyName - String name of the price list property in the profilepUseDefaultPriceList - boolean, true to use the default if one isn't found in the profilepExtraParameters - Optional map of extra parameters which may include the price listpLocale - Locale to use if no price list or default locale is foundpublic RepositoryItem getPriceList(RepositoryItem pProfile, java.lang.String pPriceListPropertyName, boolean pUseDefaultPriceList, java.util.Map pExtraParameters) throws PriceListException
pProfile - RepositoryItem profilepPriceListPropertyName - String name of the price list property in the profilepUseDefaultPriceList - boolean, true to use the default if one isn't found in the profilepExtraParameters - Optional map of extra parameters which may include the price listPriceListExceptionpublic RepositoryItem getPriceListFromParameters(java.util.Map pExtraParameters, java.lang.String pPriceListPropertyName) throws PriceListException
pExtraParameters - Map of extra parameters to look uppPriceListPropertyName - String name of the price list in the extra parameters map, 
 if null then PriceListManager.priceListPropertyName is used.PriceListExceptionpublic java.util.List generatePriceBeans(Order pOrder, CommerceItem pCommerceItem, java.lang.String pRequestedBeans) throws PricingException
pOrder - - The order for which we wish to create price beanspCommerceItem - - The commerce item for which we wish to create price beanspRequestedBeans - - The type of price bean we wish to create.PricingExceptiongenerateOrderedPriceBeans(Order, String)public java.util.List generatePriceBeans(CommerceItem pItem)
pItem - The commerce item to generate beans forpublic java.util.List generateOrderedPriceBeans(Order pOrder, java.lang.String pRequestedBeans) throws PricingException
pOrder - - the order which we wish to generate price beans forpRequestedBeans - - the kind of beans we wish to retreived. Supported :
                          groupOnly - only generate beans for the quanities
                                      of commerce items included in discount
                                       groups
                          allByGroup - generate price beans for all commerce
                                       items whether grouped or not, but ordering
                                       will take account of grouping where relevant.PricingExceptionprotected PricingAdjustment getFirstGroupingAdjustment(java.util.List pPricingAdjustments)
pPricingAdjustments - - the candidate pricing adjustmentspublic java.util.List generatePriceBeans(java.util.List<DetailedItemPriceInfo> pInfos)
pInfos - The list of DetailedItemPriceInfoprotected void addPriceBeanForInfo(DetailedItemPriceInfo pInfo, java.util.List pBeans)
pInfo - The detailed item price info to get data frompBeans - List of UnitPriceBeansprotected void addPriceBean(DetailedItemPriceInfo pInfo, java.util.List pBeans, CommerceItem pItem, java.util.Map pExtraPriceBeanInfo)
pInfo - - the dipi for which we may wish to add a beanpBeans - - the list to which any new bean(s) will be addedpItem - - the commerce item to associate the new bean(s) withpExtraPriceBeanInfo - - a map of additional parameterspublic ItemPriceSource createItemPriceSource(java.lang.String pProductId, java.lang.String pSkuId, java.lang.String pParentSkuId, java.lang.String pCommerceItemType, java.lang.String pCurrencyCode)
pProductId - the productid to which the source appliespSkuId - the skuid to which the source appliespParentSkuId - the parent sku id to which the source appliespCommerceItemType - the commerce item type to which the source appliespCurrencyCode - the currency to which the source applies.public ItemPriceSource createItemPriceSource(CommerceItem pCommerceItem, CommerceItem pParentCommerceItem, java.lang.String pCurrencyCode)
pCommerceItem - pParentCommerceItem - pCurrencyCode - the currency for which the source object can applycreateItemPriceSource(String, String, String, String, String)public java.util.List generateItemPriceSources(Order pOrder, java.util.Map pExtraParameters)
ItemPriceSource objects based on the pricing information
 contained in the given Order.
 
 One ItemPriceSource is generated for each item in the order. Each configured
 ItemPriceSource is called once for each ItemPriceSource
 to populate it values.
pExtraParameters - Map of extra parameters that will passed through to the handlers
 that generate the source objects.protected void generateItemPriceSources(java.util.List pItemPriceSources,
                                        Order pOrder,
                                        CommerceItem pCommerceItem,
                                        CommerceItem pParentCommerceItem,
                                        java.lang.String pCurrencyCode,
                                        java.util.Map pExtraParameters)
pItemPriceSources - the current list of source objects. the new source object will be appended to this ListpOrder - the order that contains the commerce itempCommerceItem - the commerce item from which the source object will be createdpParentCommerceItem - the parent commerce item of pCommerceItem. this can be nullpCurrencyCode - pExtraParameters - public java.util.Map generateItemPricingSourceMap(java.util.List pItemPriceSources,
                                                  java.util.List pCommerceItems,
                                                  CommerceItem pParentCommerceItem,
                                                  java.lang.String pCurrencyCode)
CommerceItems to the ItemPriceSource objects
 This method is called by the ItemPricingEngine to map a List of source objects to the items being priced in the current pricing operation.
 If a CommerceItem is a CommerceItemContainer this
 method is recursive in order to match the contained items as well.
pItemPriceSources - the ItemPriceSource objects to match with the items.pCommerceItems - the CommerceItems to matchpParentCommerceItem - optional parent commerce item that contains
 the list of commerce items. If not null, the parent sku must match
 the parent sku in the override.pCurrencyCode - the currency code of the current pricing operation. This
 currency must match the currency code in the ItemPriceSource for it to be mapped to an
 item.ItemPriceSourcepublic ItemPriceSource findMatchingSource(java.util.Collection pItemPriceSource, CommerceItem pCommerceItem, CommerceItem pParentCommerceItem, java.lang.String pCurrencyCode)
pItemPriceSource - pCommerceItem - pParentCommerceItem - pCurrencyCode - if provided the currency code must be the same for a successful matchItemPriceSource.isItemMatch(CommerceItem, CommerceItem)public ItemPriceSource getItemPriceSource(ItemPriceInfo pPriceQuote, CommerceItem pItem, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters)
ItemPriceSource mapped to the commerce item
 id in the pricing overide Map stored in the extra parameters. 
 Calculators use this method to determine if an ItemPriceSource was passed into the pricing operation through the extra parameters.
pItem - the CommerceItem for which a ItemPriceSource should be returnedpExtraParameters - the pricing operations extra parameters MapPricingConstants.ITEM_PRICE_SOURCE_MAP_PARAMpublic java.util.List findAdjustmentsByDescription(ItemPriceInfo pItemPriceInfo, java.lang.String pDescription)
PricingAdjustments found in
 the price info's adjustments property whose description
 matches the given descriptionpItemPriceInfo - the price info containing the adjustments.pDescription - the description to matchpublic long getTotalQuantityForBulkPricing(java.util.List pItems,
                                           CommerceItem pItem)
This method is used by the bulk pricing calculators to aggregate quantity for matching items so the correct level is used across the items.
pItems - pItem - isMatchForBulkPricing(CommerceItem, CommerceItem)public double getTotalQuantityWithFractionForBulkPricing(java.util.List pItems,
                                                         CommerceItem pItem)
This method is used by the bulk pricing calculators to aggregate quantity for matching items so the correct level is used across the items. If pItem is not fractional, #getTotalQuantityForBulkPricing is called
pItems - the list of commerce itemspItem - the commerce item with which comparision takes place whether to aggregate the quantity.double>/code> the total quantity (with fraction).isMatchForBulkPricing(CommerceItem, CommerceItem)protected boolean isMatchForBulkPricing(CommerceItem pItem1, CommerceItem pItem2)
pItem1 - pItem2 - 
 By default, the product id and sku id must be equal to be considered a match.
public java.lang.Object generateKeyForTieredProcessedItem(CommerceItem pItem)
This quantity info is used to maintain tier levels across multiple items that reference the same product/sku combination. By default the key returned is a String concat of the product id and sku id.
pItem - public double retrieveHighestChildSKUPrice(RepositoryItem pProduct)
pProduct - A product RepositoryItempublic double retrieveLowestChildSKUPrice(RepositoryItem pProduct)
pProduct - A product RepositoryItempublic double retrieveHighestPriceListPrice(RepositoryItem pProduct, RepositoryItem pPriceList, RepositoryItem pSalePriceList) throws PriceListException
pProduct - A product RepositoryItempPriceList - The list price listpSalePriceList - The sale price listPriceListExceptionpublic double retrieveLowestPriceListPrice(RepositoryItem pProduct, RepositoryItem pPriceList, RepositoryItem pSalePriceList) throws PriceListException
pProduct - A product RepositoryItempPriceList - The list price listpSalePriceList - The sale price listPriceListExceptionprotected void generatePriceListPrices(RepositoryItem pProduct, RepositoryItem pPriceList, java.util.List pPrices)
pProduct - productpPriceList - price listpPrices - list of pricesprotected double findHighestPrice(java.util.List pListPrices,
                                  java.util.List pSalePrices)
When attempting to find the highest price, a sale price for a product/sku combination cancels out its list price.
pListPrices - pSalePrices - protected double getHighestPrice(java.util.List pPrices)
pPrices - list of pricespublic java.lang.Double getPriceFromItem(RepositoryItem pPriceItem, long pQuantity) throws PricingException
Note this method gets the unit price and not the total amount for the given quantity.
pPriceItem - RepositoryItem pricepQuantity - long quantity to use for volume prices, -1 to get the price for the maximum quantity levelPricingExceptionpublic java.lang.Double getPriceFromItem(RepositoryItem pPriceItem, double pQuantityWithFraction) throws PricingException
Note this method gets the unit price and not the total amount for the given quantity.
pPriceItem - RepositoryItem pricepQuantityWithFraction - double>/code> quantity to use for volume prices, -1 to get the price for the maximum quantity levelPricingExceptionpublic java.lang.Double getPriceFromItem(RepositoryItem pPriceItem, long pQuantity, double pQuantityWithFraction) throws PricingException
Note this method gets the unit price and not the total amount for the given quantity.
pPriceItem - RepositoryItem pricepQuantity - long quantity to use for volume prices, -1 to get the price for the maximum quantity levelpQuantityWithFraction - double fractional quantity to use for volume prices, -1 to get the price for the maximum quantity levelPricingExceptionpublic java.lang.Double getPriceFromItem(ItemPriceSource pItemPriceSource, RepositoryItem pPriceItem, long pQuantity) throws PricingException
Note this method gets the unit price and not the total amount for the given quantity.
pItemPriceSource - ItemPriceSource to use if specifiedpPriceItem - RepositoryItem pricepQuantity - long quantity to use for volume prices, -1 to get the price for the maximum quantity levelPricingExceptionpublic java.lang.Double getPriceFromItem(ItemPriceSource pItemPriceSource, RepositoryItem pPriceItem, double pQuantityWithFraction) throws PricingException
Note this method gets the unit price and not the total amount for the given quantity.
pItemPriceSource - ItemPriceSource to use if specifiedpPriceItem - RepositoryItem pricepQuantityWithFraction - double quantity to use for volume prices, -1 to get the price for the maximum quantity levelPricingExceptionpublic java.lang.Double getPriceFromItem(ItemPriceSource pItemPriceSource, RepositoryItem pPriceItem, long pQuantity, double pQuantityWithFraction) throws PricingException
Note this method gets the unit price and not the total amount for the given quantity.
pItemPriceSource - ItemPriceSource to use if specifiedpPriceItem - RepositoryItem pricepQuantity - long quantity to use for volume prices, -1 to get the price for the maximum quantity levelpQuantityWithFraction - double quantity to use for volume prices, -1 to get the price for the maximum quantity levelPricingExceptionprotected RepositoryItem getHighestPriceItem(java.util.List pPrices)
pPrices - list of pricesprotected double getLowestPrice(java.util.List prices)
prices - list of pricespublic java.util.List<PricingEngine> getUnprocessedPricingEngines(java.util.List<PricingEngineService> pProcessedPricingEngines, PricingEngineService pCurrentEngine)
pProcessedPricingEngines - a list of engines that have been processedpCurrentEngine - the pricing engine currently being processedprotected java.util.List<RepositoryItem> getAppliedPromotionsForUnprocessedEngines(PricingContext pPricingContext, java.util.List<PricingEngine> pUnprocessedPricingEngines, PricingEngineService pCurrentEngine, java.util.Map pExtraParameters)
pPricingContext - PricingContextpUnprocessedPricingEngines - a list of engines that have not been processedpCurrentEngine - the pricing engine currently being processedpExtraParameters - where the tracking collections should be createdpublic java.util.Map addDisableStackingRuleProcessingParameter(java.util.Map pExtraParameters)
pExtraParameters - public java.util.Map addDisableMaxCouponsPerOrderProcessingParameter(java.util.Map pExtraParameters)
pExtraParameters - public java.util.Map addDisableAutoGWPParameter(java.util.Map pExtraParameters)
pExtraParameters - atg.commerce.pricing.Constants.DISABLE_AUTO_GWPpublic java.util.Map addDisableGWPMessaging(java.util.Map pExtraParameters)
pExtraParameters - atg.commerce.pricing.Constants.DISABLE_GWP_MESSAGINGpublic java.util.Map addItemPriceSourceParameter(java.util.Map pExtraParameters,
                                                 java.util.List pPricingOverrides)
pExtraParameters - pPricingOverrides - public java.util.Map addDiscountableMapParameter(java.util.Map pExtraParameters,
                                                 java.util.Map pDiscountable)
pExtraParameters - pDiscountable - a Map of discountable flagspublic java.util.Map addBypassPromotionVetoersParameter(java.util.Map pExtraParameters)
pExtraParameters - PricingConstants.DISABLE_VETOING_PARAMpublic void recreateInitialDetailsForItemMarkedAsFinal(CommerceItem pItem, double pAmount, java.util.Locale pUserLocale, RepositoryItem pProfile, java.lang.String pDescription) throws CommerceException
Normally pricing will regenerate the details for every pricing operation. However, this process is skipped by the pricing engine for items marked as final. This method provides a way to force them to be regenerated based on the current price and the shipping group relationships.
CommerceExceptionpublic boolean isDiscountableItem(CommerceItem pCommerceItem) throws PricingException
pItem - the commerce item we wish to check the discountable state ofPricingExceptionpublic boolean isDiscountableItem(RepositoryItem pProduct, RepositoryItem pSku) throws RepositoryException
pProduct, - pSkuRepositoryExceptionpublic java.util.Map getDiscountableMap(Order pOrder) throws CommerceException
pOrder - the order we wish to inspectCommerceExceptionpublic void startService(ServiceEvent pEvent) throws ServiceException
startService in interface ServiceListenerstartService in class GenericServicepEvent - the ServiceEvent encapsulating information about
 the Service's environment and configurationServiceException - if an error occurred while attempting
 to start the service.public java.lang.String getCurrencyCode(Order pOrder, java.util.Locale pLocale, AmountInfo pAmountInfo)
nullpOrder - the current orderpLocale - the locale associated with currenct pricing operationpAmountInfo - the price information of commerce itempublic java.lang.String getCurrencyCode(Order pOrder, java.util.Locale pLocale, AmountInfo pAmountInfo, java.lang.String pPriceListPropertyName, java.lang.Boolean pUseDefaultPriceList, java.util.Map pExtraParameters)
nullpOrder - the current orderpLocale - the locale associated with current pricing operationpAmountInfo - the price information of commerce itempPriceListPropertyName - String name of the price list in the extra parameters map,
 if null then PriceListManager.priceListPropertyName is used.pUseDefaultPriceList - boolean, true to use the default if one isn't found in the profilepExtraParameters - - the map of extra parameters to pass inpublic java.util.Map<java.lang.String,java.lang.Object> getPrices(java.lang.String pProductId,
                                                                  java.lang.String pSkuId,
                                                                  RepositoryItem pProfile)
                                                           throws CommerceException
If the productId and skuId are supplied, the response will be constrained to just that combination. Otherwise, if the productId is supplied but no skuId, prices will be returned for both the product and its skus.
 See getPrices(RepositoryItem pProduct, RepositoryItem pSku, RepositoryItem pPriceList, RepositoryItem pSalePriceList))
 See getPriceRange(RepositoryItem pProduct, RepositoryItem pListPriceList, RepositoryItem pSalePriceList)) 
 for format of output.
pProductId - the product id for which we wish to obtain pricespSkuId - the sku id for which we wish to obtain pricespProfile - required if using price list pricing in order to obtain the price listsCommerceException - if something went wrong whilst generating the pricesprotected java.util.Map<java.lang.String,java.lang.Object> getPrices(RepositoryItem pProduct, RepositoryItem pSku, RepositoryItem pPriceList, RepositoryItem pSalePriceList) throws CommerceException
   - listPrice -> (Double)
   - salePrice -> (Double)
   - onSale    -> (Boolean) [only appears for sku based pricing]
   - listVolumePrice -> (map, keyed by...)
       - bulkPrice (whose value is a map containing complex price information,
                    see #getPriceListManager().getComplexPrices(RepositoryItem)) OR
       - tieredPrice (whose value is a map containing complex price information,
                      see #getPriceListManager().getComplexPrices(RepositoryItem))
   - saleVolumePrice -> (map, keyed by...)
       - bulkPrice (whose value is a map containing complex price information,
                    see #getPriceListManager().getComplexPrices(RepositoryItem)) OR
       - tieredPrice (whose value is a map containing complex price information,
                      see #getPriceListManager().getComplexPrices(RepositoryItem))
 pProduct - the product for which we wish to obtain prices; cannot be null when pricelists are suppliedpSku - the sku for which we wish to obtain prices; cannot be null if using sku based pricing 
             (no price lists are supplied)pPriceList - the price list to query for the given skupSalePriceList - the sale price list to query for the given skuCommerceException - if something went wrong whilst generating the pricesprotected java.util.Map<java.lang.String,java.lang.Object> getPriceRange(RepositoryItem pProduct, RepositoryItem pListPriceList, RepositoryItem pSalePriceList) throws CommerceException
- priceRange -> (Boolean); true if priceMax != priceMin, false otherwise - priceMax -> (Double) - priceMin -> (Double)
pProduct - the product item that will be used to get the lowest and highest price.pListPriceList - the list price list to use to look for the lowest/highest product prices (can be null).pSalePriceList - the sale price list to use to look for the lowest/highest product prices (can be null).CommerceException - if something went wrong whilst generating the price rangepublic java.util.Map<java.lang.String,java.util.List> getPricingMessages(java.util.List<java.lang.String> pRequiredMessageGroups)
pRequiredMessageGroups - the list containing types(message group names) of application messages to be returned, if none provided,
        all the available application messages will be returned.