This section describes the following pricing engine classes:


The PricingEngineService class is a GenericService implementation of a PricingEngine. PricingEngine implementations can extend this class to leverage scheduling, global promotions, locale, and other configuration functionality.

The PricingEngineService class contains the following properties:

Item, Order, Tax, and Shipping Pricing Engine Classes

The following four classes are implementations of their respective pricing engine interfaces:

Each of these implementation classes also extends the abstract class, PricingEngineService, which is described in the previous section.

As described earlier in How Pricing Services Generate Prices, each engine calls a series of calculators as follows:

  1. The engine invokes one or more preCalculators to provide a base price to which subsequent calculators can then apply a discount. It invokes them on the input pPriceQuote in the order in which they appear in its preCalculators property. (Each type of engine calls its corresponding type of precalculator – for example, the OrderPricingEngineImpl calls OrderPricingCalculators and the TaxPricingEngineImpl calls TaxPricingCalculators.)

  2. The engine uses its getPricingModels method to extract any promotions from the customer’s profile, and then it processes the promotions one at a time, invoking the discount calculators from each one. (Discount calculators are specified in a promotion’s pricingCalculatorService property.)

  3. Finally the engine invokes any postCalculators configured for it. It invokes them on the input pPriceQuote in the order in which they appear in its postCalculators property. Again, each pricing engine calls postcalculators of its own type.

loading table of contents...