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 |
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_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_PROMOTION_ANALYSIS_MODEL_HOLDER_NOT_FOUND |
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 |
protected ItemPriceSourceHandler[] |
mItemPriceSourceHandlers |
protected boolean |
mUsingPriceLists |
static java.lang.String |
ON_SALE |
static java.lang.String |
SALE_PRICE |
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_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_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,
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
|
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,
long pQuantity)
Creates a temporary commerceItem object for pricing
|
protected AmountInfo |
createSubSkuPriceInfo()
Returns a new instance of the class defined through the
subSkuPriceInfoClass
property. |
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
|
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.
|
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.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.
|
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,
long pQuantity)
Gets the unit price from an item price source or price repository item.
|
java.lang.Double |
getPriceFromItem(RepositoryItem pPriceItem,
long pQuantity)
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
|
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.
|
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.
|
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.
|
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 |
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. |
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 |
roundDown(double pNumber)
Rounds the input number to the number of decimal places specified by the
roundingDecimalPlaces property. |
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 |
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 |
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.
|
getDelayOnSendRetry, getMessageSourceContext, getMessageSourceName, getTransactionManager, isAllowMessageSending, receiveMessage, sendCommerceMessage, sendObjectMessage, setAllowMessageSending, setDelayOnSendRetry, setMessageSourceContext, setMessageSourceName, setTransactionManager, startMessageSource, stopMessageSource
addLogListener, 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, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
public static java.lang.String ON_SALE
public static java.lang.String LIST_PRICE
public static java.lang.String SALE_PRICE
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_ONLY
public static final java.lang.String ALL_BY_GROUP
public static final java.lang.String GROUP_INDEX
public static final java.lang.String GROUP_PRICING_MODEL
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
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()
PriceChanged
public 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 void doStartService() throws ServiceException
doStartService
in class GenericService
ServiceException
- 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)
DecimalFormatSymbols
public static java.text.DecimalFormatSymbols getDecimalFormatSymbols(java.util.Locale pLocale)
DecimalFormatSymbols
public 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 orderPricingException
public 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
public 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.generateRangesForOrder
PricingException
- 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.generateRangesForOrder
PricingException
- 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.generateRangesForOrder
PricingException
- 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.generateRangesForOrder
PricingException
- 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 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 needPricingException
public 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 needPricingException
getShipItemRelPriceTotal(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 needPricingException
getShipItemRelPriceTotal(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 needPricingException
public double getAverageItemPrice(CommerceItem pCommerceItem)
shippingSubtotalUsesAverageItemPrice
pCommerceItem
- 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 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, 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 getShipItemRelPriceTotal(ShippingGroupCommerceItemRelationship pRelationship, java.lang.String pDetailProperty) throws PricingException
pRelationship
- The relationship to return the subtotal for, using the details within
the same rangepDetailProperty
- PricingException
public 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 sumPricingException
public 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 pricedPricingException
public 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 consideredPricingException
public 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 PricingAdjustmentsPricingException
public 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.PricingException
public 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.PricingException
public 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 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 listPriceListException
public 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.PriceListException
public 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.PricingException
generateOrderedPriceBeans(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.PricingException
protected 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.ItemPriceSource
public 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_PARAM
public 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)
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 listPriceListException
public double retrieveLowestPriceListPrice(RepositoryItem pProduct, RepositoryItem pPriceList, RepositoryItem pSalePriceList) throws PriceListException
pProduct
- A product RepositoryItempPriceList
- The list price listpSalePriceList
- The sale price listPriceListException
protected 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 levelPricingException
public 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 levelPricingException
protected 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_GWP
public java.util.Map addDisableGWPMessaging(java.util.Map pExtraParameters)
pExtraParameters
- atg.commerce.pricing.Constants.DISABLE_GWP_MESSAGING
public 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_PARAM
public 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.
CommerceException
public boolean isDiscountableItem(CommerceItem pCommerceItem) throws PricingException
pItem
- the commerce item we wish to check the discountable state ofPricingException
public boolean isDiscountableItem(RepositoryItem pProduct, RepositoryItem pSku) throws RepositoryException
pProduct,
- pSkuRepositoryException
public java.util.Map getDiscountableMap(Order pOrder) throws CommerceException
pOrder
- the order we wish to inspectCommerceException