Document Properties
Kbid2768X8
Last Modified04-Feb-2020
Added to KB20-Jul-2016
Public AccessEveryone
StatusOnline
Doc TypeGuidelines, Concepts & Cookbooks
ProductICM 7.7

Concept - Basket Calculation (valid to 7.7)

1 Introduction

All calculation tasks required upon calculating baskets or orders will be done by this framework. Generally, the calculation is triggered during the checkout process as well as when adding or removing items from or to the basket. The present concept is addressed to developers who want to become familiar with the basic structure of this framework.

1.1 Glossary

TermDescription
PLIProduct line item

 

2 What Is the Idea?

The idea behind this framework is the spreadsheet functionality. The values are stored in cells, and you can define rules that will be executed when the cells are calculated.
Simple example:

SimpleRuleExample

In this example, the cell B will be calculated with the rule X. Once the values for cell A are available, the cell C can be calculated through rule Y. So the whole calculation can be defined only with the cells and the rules. All rules and cells will be defined in a rule set.
One goal of this framework is to handle the complexity of very extensive basket calculations. In the past, there was a large pipeline, which was difficult to handle and extend. To overcome these problems, the basket calculation framework has been introduced.

3 Terms

3.1 The Rule Set

The rule set is a container for all rules and cells. It is defined in a single Java class.

3.2 The Rule

The rule itself describes the calculation steps between one or more cells. It has source cells, which make up the input of the rule, and target cells, which describe the result of the calculation step.
There are also some exceptions, which will be discussed later.
Rules can only be executed if the source cell values are available (that is, are already calculated). If one value is missing, the rules cannot be executed.
The source cells and the target cells canbe related to different groups or subgroups. For example, a rule can have 3 groups as input and 2 groups as output (see group selector).

3.3 The Cell

The value of each cell should be immutable. That means that a cell can also be written only through one rule. If you need a further manipulation of this cell, you must store it in a new cell via another rule.
To define the location, you can define selectors. A simple definition is the:

  • Cell selector
    Cell
    It describes a single cell. Each cell is defined by its groupID and ID. One cell contains one value, for example, a quantity of a line item. Cells are also useful for total amounts like the total order value.
  • Group selector
    Group
    It describes a row of cells. All cells of this group have the same groupID. A group can be used to hold the quantity for each line item. One cell in this group represents one line item.
  • SubGroup
    SubGroup
    It describes also a row of cells, but it requires a parent Group or SubGroup. Each parent cell can have one or more child cells, which define a new group. This is useful, for example, with multiple taxes and duties for one line item.
    One line item can have, for example, 3 taxes, which are stored in the sub group.
  • GroupSet
    The GroupSet is deprecated. It was introduced in the past to handle a similar behavior like a SubGroup where you need more than one dependent item of a single cell. But it was difficult to handle.

3.4 Computed Item

The result of a rule delivers computed items which will be stored in the cells. Each computed item knows its dependent computed items in order to get the transparency about how the calculation yields these results. For each item, you can navigate to all items produced in former steps up to the start of the calculation.
The computed items do not know the rules that produced them. This information is availableonly in the rule set.

3.5 The Result View

The result view is an abstraction of the calculation results, which will get all relevant data through methods with corresponding names.
There are defined simple get methods to resolve the values of some calculation steps. E.g., a method that delivers the final price for a line item, which includes the taxes, the single amount, the quantity and some rebates. You need to write an implementation that will resolve these values via the selectors described above. Read on for more detailed information, or refer to the Cookbook - Basket Calculation.

3.6 Putting All Together

Basket Calculation Overview

The Result Set defines all Rules and Cell Selectors. The Rules themselves use the Cell Selectors to create the Computed Items. The Cell Selectors are used to get the Computed Items in the calculation. The Result View defines methods to get the results. All BO classes (e.g, the OrderBO) use the Result View to retrieve the calculated values.

4 Detailed Discussion

4.1 SubGroup in Detail

The cell and the group as selector are easy to understand, but the SubGroup is a little more sophisticated.
Consider the following scenario:

Assume, there is a basket with four line items. Each line item represents a cell in a group called RootLineItem. The ID of the cell in this group is, for instance, also the UUID of the line item object. Now you can easily select the computed items (created during the calculation).
Now we want to calculate two or more taxes for each line item. At the creation time we do not know how many taxes will be there, so a group would not help here. Each tax needs a unique ID, but the ID is not unique here, except we specifically create the ID, which requires a difficult algorithm to resolve the correct taxes of the line item.
For that case, the SubGroup comes into play. Now we can create a sub group of a given computed item. The SubGroup helps to create and to select child items that belong to one parent. In our case, we can create many taxes for one line item.

It is also possible to create a sub group in a sub group and so on. This way, you can map even complex scenarios.

4.2 "Rules" for the Rule Set

Every rule set must match the following criteria:

  • Each cell selector must be disjoint to each other.
    This means that no computed item can be created that is part of two different cell selectors.
  • Computed items are immutable.
    That also means that only one rule can create this item. In addition, you should not change it afterwards.
  • The rules as edges with its cells as nodes should always be one graph without circles and all connected. The framework will automatically test this. The reasons are that all cells must be calculated exactly once.

4.3 Computed Items Types

The computed items will be used to store the results of the rule execution.

4.3.1 com.intershop.component.foundation.capi.spreadsheet.ComputedItem

The interface ComputedItem is the base interface for all computed items.

Attribute

Description

Description

Gets the description for this ComputedItem instance

ID

Returns the ID of this ComputedItem. The ID is unique in the group.

Group

Returns the group this ComputedItem belongs to

SpreadSheet

Returns the SpreadSheet instance this item belongs to

DependsOn

Returns all ComputedItem instances this item depends on

DependsOn(group)

Returns the ComputedItem instances this item depends on and that belong to the specified group

4.3.2 com.intershop.component.foundation.capi.spreadsheet.ComputedMoneyItem

The interface ComputedMoneyItem passes on the amount of money.

Attribute

Description

Money

Returns the money amount as instance of the type Money or null if no money amount is set for this instance

4.3.3 com.intershop.component.shipping.capi.shippingchargecalculator.ComputedShippingBucketItem

Attribute

Description

ComputedProductLineItems

Returns all computed product line item instances which belong to this shipping bucket

RegionID

Returns a set of the IDs of all Regions

ShippingMethodID

Returns the ID of the ShippingMethod

4.3.4 com.intershop.component.shipping.capi.shippingchargecalculator.ComputedShippingExtraChargeItem

Attribute

Description

ShippingRule

Returns the shipping rule

ShippingRuleID

Returns the shipping rule ID

ShippingRuleDisplayName

Returns the name of the shipping rule

ShippingRuleDescription

Returns the description of the shipping rule

4.3.5 com.intershop.beehive.bts.capi.orderprocess.calculation.ComputedProductLineItem

The interface ComputedProductLineItem encapsulates a ProductLineItem.

Attribute

Description

ProductLineItemUUID

Returns the UUID of the product line item this instance depends on, or null if not set

ProductLineItem

Returns the product line item instance, with the UUID set at this instance, or null if no UUID is set

ProductRef

Returns ProductRef instance representing the product this instance refers to

4.3.6 com.intershop.beehive.bts.capi.orderprocess.calculation.ComputedQuantityItem

Attribute

Description

Quantity

Returns the quantity

4.3.7 com.intershop.component.marketing.capi.promotion.calculation.rule.ComputedDiscountItem

The interface ComputedDiscountItem stores the discounts.

Attribute

Description

PromotionID

Gets the promotion ID

DiscountDescription

Gets the discount description

DiscountRebate

Gets the discount rebate

DiscountType

Gets the discount type

4.3.8 com.intershop.beehive.bts.capi.payment.calculation.ComputedPaymentInstrumentItem

The interface ComputedPaymentInstrumentItem stores the payment instrument item.

Attribute

Description

PaymentInstrumentInfo

Gets the payment instrument info

4.3.9 com.intershop.component.foundation.capi.spreadsheet.ComputedPercentageItem

The interface ComputedPercentageItem stores the percentage item.

Attribute

Description

Percentage

Returns the value representing a percentage

4.3.10 com.intershop.beehive.bts.capi.orderprocess.calculation.ComputedServiceLineItem

The interface ComputedServiceLineItem stores the service line item.

Attribute

Description

ServiceLineItemUUID

Returns the UUID of the service line item this instance depends on, or null if not set

ServiceLineItem

Returns the service line item instance, with the UUID set at this instance, or null if no UUID is set

4.4 Existing Rules

You should use the existing rules whenever you can.

4.4.1 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CreateInitialProductItemsRule

The class CreateInitialProductItemsRule creates initially product line items from the line item container.

4.4.2 com.intershop.component.foundation.capi.spreadsheet.rules.AddMoneyRule

The class AddMoneyRule adds the values of a certain input structure and outputs the result in a new target structure, e. g.:

  • sub sub groups in sub groups
  • sub groups in groups
  • sub groups in cell
  • groups in cell
  • group sets in groups
  • group sets in cell

Depending on the target structure, the values will be added differently. If you e. g. pass in a group set and want specify a group as return value, all sets of each group will be added together (so that you get a sum for each group set). If you specify a cell as return value, all values of all group sets will be added to a single sum.

4.4.3 com.intershop.component.foundation.capi.spreadsheet.rules.AddQuantitiesRule

The class AddQuantitiesRule adds the quantities.

4.4.4 com.intershop.beehive.bts.capi.payment.calculation.CalculatePaymentCostsRule

The class CalculatePaymentCostsRule calculates the payment costs of the given order amount.

4.4.5 com.intershop.component.foundation.capi.spreadsheet.rules.ComputeQuantityRule

Computes the quantities of all child items in relation to their root items.
If the root item has the quantity of a and the child item the quantity of b the resulting quantity is a*b.

4.4.6 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CopyMoneyValueIntoNativeAttributeRule

The class CopyMoneyValueIntoNativeAttributeRule copies the attributes to the given native targets.

4.4.7 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CreateInitialServiceItemsRule

The class CreateInitialServiceItemsRule creates the initial service items from the given line item container.

4.4.8 com.intershop.component.warranty.capi.orderprocess.calculation.rules.CreateWarrantyPricesRule

The class CreateWarrantyPricesRule creates the single prices for each warranty.

4.4.9 com.intershop.component.shipping.capi.shippingchargecalculator.rule.FilterShippingCalculationProductItemsRule

Filters the product line items with the service type flag ExcludeFromShipping from the computed product line items and returns the new group.

4.4.10 com.intershop.component.marketing.internal.promotion.basketcalculation.PromotionBasketCalculationRule

The class PromotionBasketCalculationRule calculates all discounts and promotions configured in the channel.

4.4.11 com.intershop.component.marketing.capi.promotion.calculation.rule.PromotionCalculationRule

The class PromotionCalculationRule calculates all discounts and promotions configured in the channel.

4.4.12 com.intershop.component.shipping.capi.shippingchargecalculator.rule.ShippingBucketCreationRule

This rule is a calculation step within the basket calculation.
It determines the shipping buckets for further shipping cost calculation.

4.4.13 com.intershop.component.shipping.capi.shippingchargecalculator.rule.ShippingExtraChargeCalculatorRule

This rule is a calculation step within the basket calculation.
It determines the extra cost applied on each product line item due to override and surcharges defined with product or shipping rule. If many overrides are defined highest override is taken.

4.4.14 com.intershop.component.shipping.capi.shippingchargecalculator.rule.ShippingPLIChargeCalculatorRule

This rule is a calculation step within the basket calculation.
It determines the bucket cost and shipping PLI cost for each product line item within each shipping bucket.

4.4.15 com.intershop.component.foundation.capi.spreadsheet.rules.CalculateMoneyRateRule

The class CalculateMoneyRateRule calculates the percentage values of the given two money items.

4.4.16 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.DetermineProductItemsWithPriceRule

This rule is a calculation step within the basket calculation.
It determines the product-line-items with a price (filters them).

4.4.17 com.intershop.component.foundation.capi.spreadsheet.rules.MultiplyMoneyWithPercentageRule

The class MultiplyMoneyWithPercentageRule multiplies prices with an percentage value.

4.4.18 com.intershop.component.foundation.capi.spreadsheet.rules.MultiplyMoneyWithQuantityRule

The class MultiplyMoneyWithQuantityRule multiplies single prices with given quantities.

4.4.19 com.intershop.component.foundation.capi.spreadsheet.rules.SubtractMoneyRule

The class SubtractMoneyRule subtracts the given two money items.

4.4.20 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CalculateSingleProductBasePricesRule

This rule determines the product single base for one or more product line items.
For the (scaled) price lookup the quantities are accumulated for all line items referring the same product.
The old net price flag at prices is not taken into account by this rule.
The rule can be configured to perform a lookup for a given currency (that might be different to the purchase currency of the LineItemCtnr).
The actual price lookup is performed via the ProductPriceMgr. If the flag BasePriceFixed is set for the product line item then the single base price is directly taken from the ProductLineItemPO.

4.4.21 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.DetermineIncludedTaxRatesRule

Determines the percentage amount of included taxes for the given gross price and the according tax rate.
Mathematically this means r = (1-(1(1+p))). This expression is calculated via the data type double. With this the maximum precision is also bound to the double data type.

4.4.22 com.intershop.beehive.bts.capi.payment.calculation.DeterminePaymentItemTaxRatesRule

The class DeterminePaymentItemTaxRatesRule determines the tax rate for the given payment elements.

4.4.23 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.DetermineProductItemTaxRatesRule

The class DetermineProductItemTaxRatesRule determines the tax rates of the given PLIs.

4.4.24 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CalculateTaxSumsPerRateRule

The class CalculateTaxSumsPerRateRule calculates all taxes by its tax rates.

4.4.25 com.intershop.component.foundation.capi.spreadsheet.rules.RoundMoneyRule

The class RoundMoneyRule rounds the given money items.

4.4.26 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CreateChildProductItemsRule

The class CreateChildProductItemsRule creates a subgroup of product line items.
Child products are sorted by the product UUID.

4.4.27 com.intershop.component.foundation.capi.spreadsheet.rules.SelectMoneyRule 

The class SelectMoneyRule selects one of two money inputs as output, depending on which is available. If both are available, the first input will be returned.

4.4.28 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.CollectPromotionDiscountValuesRule 

The class CollectPromotionDiscountValuesRule collects promotion discounts with the same line item ID and adds them up. This is necessary because promotion discounts may be split up on individual items. For example, a line item with a quantity of three may include two items with a discount value of $1.00 and one item with a discount value of $1.02. Because values like taxes are calculated on a per-item basis (in the V3 rule sets), they need to be added up at the end to determine the gross value of the line item.

4.4.29 com.intershop.beehive.bts.capi.orderprocess.calculation.rules.DetermineTaxRatesForPromotionDiscountsRule 

The class DetermineTaxRatesForPromotionDiscountsRule maps a set of given tax rates to associated promotion discounts. This is necessary because promotion discounts may be split up on individual items. For example, a line item with a quantity of three may include two items with a discount value of $1.00 and one item with a discount value of $1.02. In this scenario the first "sub item" in the calculation may have an ID of "0-0" and the second one "0-2" (where the first number is always the associated line item). Tax rates on the other hand are always associated to line items and because they use different IDs (in this scenario it would simply be "0"), a mapping is needed, which is what this rule does.

 

4.5 Existing Reference Calculation Rule Sets

Intershop provides four reference calculation rule sets within the Intershop Commerce Management 7 which can be used to calculate the basket.

  • NetBasedCalculation_V2
  • GrossBasedCalculation_V2
  • NetBasedCalculation_V3 (beta)
  • GrossBasedCalculation_V3 (beta)

The Net and Gross based V2 calculation rule sets are well known and available since IS 7.0. In IS 7.6 we introduced the Net and Gross based V3 calculation rule sets.

4.5.1 Usage in demo store

At the moment the calculation rule setsNetBasedCalculation_V2 and GrossBasedCalculation_V2 are used in our demo store as default but there is always the possibility to change the reference rule sets or to use your own. For changing the rule set please have a look at Recipe: Register the Rule Set.

4.5.2 Differences

We introduced in IS 7.6 a new calculation value called 'single discounted base prices'. This is due to the fact that some e-commerce managers wanted to calculate the discount at the level of single products to ensure that the correct discount is provided, e. g. to a taxation service. Furthermore, we are using the 'single discounted base prices' for calculating the PLI net and gross prices by multiplying it with the PLI quantity. Especially in net/gross settings where you store net prices and display those as gross prices that change prevents the calculation from rounding issues.

4.5.3 Next Steps

It may be beneficial to only have one rule set instead of two different ones for net and gross based calculations. The only difference between the two is actually only the factor by which taxes are calculated and if they are added or subtracted from the "base" price.

4.6 Reference Implementation Of Net Calculation

Please check our reference implementation of a rule set in the class com.intershop.sellside.appbase.b2c.capi.calculation.NetBasedCalculation_V2.

To design the requirements for basket calculation the content is split in a table view and in a graph.

In the table there are defined the computed items with its dependencies, containing attributes, the type and description.

The graph is describing the access path to the computed items in the interface.

4.6.1 Naming Convention for Group Names

Group names are Java constants and will be represented in capital letters. For groups and group sets plural is taken and for cells singular.

Private fields, which are not accessible from the rule set, are cursive.

The whole net based calculation is separated into sub calculation which groups the responsibility.

4.6.2 SubClasses

4.6.2.1 PLI

The class PLI computes all calculation results on line item level.

Name

Type

creating rule

dependsOn

Description

ROOT_PLIS

Group<ComputedProductLineItem>

CreateInitialProductItemsRule

 

The root product line items

FILTERED_PLIS

Group<ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Pli.SINGLE_BASE_PRICES, Pli.ROOT_PLIS

The filtered product line items having a price

NET_BASE_PRICES

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_BASE_PRICES

The rounded raw price

GROSS_BASE_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Pli.NET_BASE_PRICES, Pli.TAX_PRICES

The gross based prices for each PLI

SINGLE_BASE_PRICES

Group<ComputedMoneyItem>

CalculateSingleProductBasePricesRule

Pli.ROOT_PLIS

The single base prices for each product line item

SINGLE_BASE_GROSS_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Pli.SINGLE_BASE_PRICES, Pli.SINGLE_TAX_PRICES

The single base gross prices for each product line item

RAW_BASE_PRICES

Group<ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Pli.SINGLE_BASE_PRICES, Pli.FILTERED_PLIS

The raw base prices = quantity * single price

DISCOUNT_SUMS

Group<ComputedMoneyItem>

AddMoneyRule

Promotion.PLI_DISCOUNTS_ONITEM

The discounts for one product line item

NET_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Pli.NET_BASE_PRICES, Pli.DISCOUNT_SUMS

The net prices = net base price + discount sums

GROSS_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Pli.NET_PRICES, Pli.TAX_PRICES

The gross prices = gross base price + discount sums

TAX_RATES

Group<ComputedPercentageItem>

DetermineProductItemTaxRatesRule

Pli.FILTERED_PLIS

The tax rates for each product line item

TAX_PRICES

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_TAX_PRICES

The rounded tax prices for each product line item

TAX_PRICES_WO_DISCOUNTS

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_TAX_PRICES_WO_DISCOUNTS

The rounded tax prices w/o discounts for each product line item

SINGLE_TAX_PRICES

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.SINGLE_RAW_TAX_PRICES

The rounded single tax prices for each product line item

PLI_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Pli.TAX_PRICES

Separates the taxes amounts by its rates

TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Pli.PLI_TAX_GROUPED, Warranty.TAX_GROUPED

Separates the taxes amounts by its rates

RAW_TAX_PRICES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.NET_PRICES, Pli.TAX_RATES

The raw tax prices for each product line item (not rounded)

SINGLE_RAW_TAX_PRICES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.SINGLE_BASE_PRICES, Pli.TAX_RATES

The single raw tax prices for each product line item (not rounded)

RAW_TAX_PRICES_WO_DISCOUNTS

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.NET_BASE_PRICES, Pli.TAX_RATES

The raw tax prices w/o discounts for each product line item (not rounded)

SUBTOTALS

Group<ComputedMoneyItem>

 

 

The sub totals bundles all kinds of sub totals

SUBTOTALS_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.DISCOUNT_SUMS

The sub total of all discount

SUBTOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.NET_BASE_PRICES, Warranty.TOTALS_NET

The sub total of all net base prices + shipping surcharges

SUBTOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_NET, Pli.TAX_PRICES_WO_DISCOUNTS, Warranty.PLI_TAXES

The sub total of all gross base prices + shipping surcharges

SUBTOTALS_NET_WITH_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_NET, Pli.SUBTOTALS_DISCOUNT

The sub total of all net sub total + sub total discounts

SUBTOTALS_GROSS_WITH_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_NET_WITH_DISCOUNT, Pli.SUBTOTALS_TAX

The sub total of all gross sub total + sub total discounts

SUBTOTALS_BASE_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.NET_BASE_PRICES

The sub total of all net base prices

SUBTOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.TAX_PRICES, Warranty.PLI_TAXES

The sub total of all taxes

4.6.2.2 GIFTING

The class Gifting computes all computed items for the gifting responsibility.
Gifting means all wraps and messages.

Name

Type

creating rule

dependsOn

Description

PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

CreateChildProductItemsRule

Pli.ROOT_PLIS

The product line items for gifting

FILTERED_PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Gifting.PLI_SINGLE_PRICES, Gifting.PLIS

The filtered gifting product line items (having a price)

PLI_QUANTITIES

SubGroup<ComputedProductLineItem, ComputedQuantityItem>

ComputeQuantityRule

Pli.ROOT_PLIS, Gifting.FILTERED_PLIS

The quantities = quantity root item * quantity child item

PLI_BASE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Gifting.PLI_RAW_PRICES

The base prices for all gifting item (rounded) of one root item

PLI_NET_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_BASE_PRICES, Gifting.PLI_DISCOUNT_SUMS

The net prices = base price + discount sum

PLI_GROSS_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_NET_PRICES, Gifting.PLI_TAXES

The gross prices = net price + taxes

PLI_RAW_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Gifting.PLI_SINGLE_PRICES, Gifting.PLI_QUANTITIES

The raw prices for a single gifting item multiplied with the quantities

PLI_SINGLE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

CalculateSingleProductBasePricesRule

Gifting.PLIS

The single prices for one gifting item

PLI_RAW_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Gifting.PLI_NET_PRICES, Gifting.PLI_TAX_RATES

The raw taxes for all gifting items of one root item

PLI_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Gifting.PLI_RAW_TAXES

The taxes for all gifting items of one root item

PLI_TAX_RATES

SubGroup<ComputedProductLineItem, ComputedPercentageItem>

DetermineProductItemTaxRatesRule

Gifting.PLIS

The taxes rates for each gifting item

PLI_DISCOUNTS_ONITEM

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

DummyRule

Gifting.PLI_BASE_PRICES

The discounts for each gifting item

PLI_DISCOUNT_SUMS

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_DISCOUNTS_ONITEM

The discounts sum for all gifting item for one root item

TOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_NET_PRICES

The total net for all gifting items for all root items

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_GROSS_PRICES

The total gross for all gifting items for all root items

TOTALS_CONFIGURATION_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Configuration.PLI_NET_PRICES

The total for all product configuration items for all root items

TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Gifting.PLI_TAX_RATES, Gifting.PLI_TAXES, Pli.ROOT_PLIS

Separates the taxes amounts by its rates

4.6.2.3 SHIPPING

The class Shipping computes all computed items for the shipping responsibility.

Name

Type

creating rule

dependsOn

Description

BUCKETS

Group<ComputedShippingBucketItem>

ShippingBucketCreationRule

Pli.FILTERED_PLIS

The buckets for each shipping

BUCKET_PRICES

Group<ComputedMoneyItem>

ShippingPLIChargeCalculatorRule

Shipping.NULL_PLI_SURCHARGES_COSTS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The not discounted shipping costs for each bucket

PLI_PRICES

Group<ComputedMoneyItem>

ShippingPLIChargeCalculatorRule

Shipping.NULL_PLI_SURCHARGES_COSTS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The not discounted shipping costs distributed on PLIs

PLI_TOTALS

Group<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES, Shipping.TAXES

The shipping total costs distributed on PLIs

DISCOUNTED_PLI_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES, Shipping.PLI_PRICES_DISCOUNT

The discounted shipping costs distributed on PLIs

PLI_PRICES_DISCOUNT

Group<ComputedMoneyItem>

AddMoneyRule

Promotion.PLI_DISCOUNTS_ONSHIPPING

 

RAW_TAXES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Shipping.DISCOUNTED_PLI_PRICES, Pli.TAX_RATES

The raw taxes

TAXES

Group<ComputedMoneyItem>

RoundMoneyRule

Shipping.RAW_TAXES

The taxes on shipping costs distributed on PLIs

PLI_TOTAL_SURCHARGE_COSTS

Group<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_GEOGRAPHICAL_SURCHARGES_COSTS, Shipping.PLI_IMPORT_SURCHARGES_COSTS, Shipping.PLI_SURCHARGES_COSTS

The shipping total surcharge costs on PLI level

SUBTOTALS

Group<ComputedMoneyItem>

 

 

The SHIPPING subtotals

TOTALS_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES_DISCOUNT

The TOTALs shipping discount

TOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES

The TOTALs shipping net

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.TOTALS_NET, Shipping.TOTALS_TAX

The TOTALs shipping gross

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.TAXES

The TOTALs shipping tax

TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Shipping.TAXES

Separates the taxes amounts by its rates

PLI_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The shipping surcharge costs. More than one per PLI possible

PLI_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

 

PLI_SURCHARGES_GROSS_COSTS

GroupSet<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_SURCHARGES_COSTS, Shipping.PLI_SURCHARGES_COSTS_TAX

 

PLI_SURCHARGES_COSTS_RAW_TAX

GroupSet<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Shipping.PLI_SURCHARGES_COSTS, Pli.TAX_RATES

 

PLI_SURCHARGES_COSTS_TAX

GroupSet<ComputedMoneyItem>

RoundMoneyRule

Shipping.PLI_SURCHARGES_COSTS_RAW_TAX

 

PLI_SURCHARGES_COSTS_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Shipping.PLI_SURCHARGES_COSTS_TAX

 

PLI_SURCHARGES_COSTS_GROUPED

Group<ComputedMoneyItem>

ShippingGroupedChargeCalculatorRule

Shipping.PLI_SURCHARGES_COSTS, Shipping.PLI_SURCHARGES

 

PLI_IMPORT_SURCHARGES_COSTS_GROUPED

Group<ComputedMoneyItem>

ShippingGroupedChargeCalculatorRule

Shipping.PLI_IMPORT_SURCHARGES_COSTS, Shipping.PLI_IMPORT_SURCHARGES

 

PLI_BUCKET_SURCHARGES_COSTS_GROUPED

Group<ComputedMoneyItem>

ShippingGroupedChargeCalculatorRule

Shipping.BUCKET_SURCHARGE_COSTS, Shipping.BUCKET_SURCHARGES

 

PLI_IMPORT_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The import surcharge costs. More than one per PLI possible

PLI_IMPORT_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

 

BUCKET_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The bucket shipping surcharge costs. More than one per bucket possible

BUCKET_SURCHARGE_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

 

BUCKET_PLI_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

BucketCostDistributionRule

Shipping.BUCKET_SURCHARGE_COSTS, Shipping.BUCKETS, Shipping.PLI_PRICES

 

BUCKET_PLI_SURCHARGES_COSTS_RAW_TAX

GroupSet<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Shipping.BUCKET_PLI_SURCHARGES_COSTS, Pli.TAX_RATES

 

BUCKET_PLI_SURCHARGES_COSTS_TAX

GroupSet<ComputedMoneyItem>

RoundMoneyRule

Shipping.BUCKET_PLI_SURCHARGES_COSTS_RAW_TAX

 

BUCKET_PLI_SURCHARGES_COSTS_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Shipping.BUCKET_PLI_SURCHARGES_COSTS_TAX

 

BUCKET_OVERRIDES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The SHIPPING bucket overrides

NULL_BUCKET_OVERRIDES

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

 

BUCKET_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The SHIPPING bucket override cost

NULL_BUCKET_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

DummyRule

 

 

NULL_BUCKET_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

The SHIPPING bucket surcharges

NULL_BUCKET_SURCHARGE_COSTS

GroupSet<ComputedMoneyItem>

DummyRule

 

The SHIPPING bucket surcharge costs

PLI_OVERRIDE

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The shipping override

NULL_PLI_OVERRIDE

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

 

PLI_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The shipping override cost

NULL_PLI_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

DummyRule

 

 

NULL_PLI_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

The shipping surcharges

NULL_PLI_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

DummyRule

 

 

PLI_GEOGRAPHICAL_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The geographical surcharges

PLI_GEOGRAPHICAL_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Shipping.BUCKETS

The geographical surcharge costs

4.6.2.4 ORDER

The class Order bundles all values for the order.

Name

Type

creating rule

dependsOn

Description

VALUE_SUBTOTALS

Group<ComputedMoneyItem>

 

 

Defines the group for all sub totals

VALUE_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_NET_WITH_DISCOUNT, Order.VALUE_DISCOUNT

The order value net = all pli sub totals + order value discount + all sub totals discounts

VALUE_TAX

Cell<ComputedMoneyItem>

RoundMoneyRule

Order.VALUE_RAW_DISCOUNTED_TAX

The rounded raw taxes

VALUE_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.ORDER_VALUE_DISCOUNTS_ONORDERVALUE

The order value discount containing all discounts on the order

VALUE_RAW_DISCOUNTED_TAX

Cell<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.SUBTOTALS_TAX, Order.VALUE_DISCOUNT_RATE

The value raw discounted tax = the sub totals tax * value discount rate

VALUE_DISCOUNT_RATE

Cell<ComputedPercentageItem>

CalculateMoneyRateRule

Order.VALUE_NET, Pli.SUBTOTALS_NET_WITH_DISCOUNT

The resulting order value discount rate

4.6.2.5 PAYMENT

The class Payment bundles all payment computed items.

Name

Type

creating rule

dependsOn

Description

OPEN_TENDER_PIIS_V1

Group<ComputedPaymentInstrumentItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

 

LIMITED_TENDER_PIIS_V1

Group<ComputedPaymentInstrumentItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

 

OPEN_TENDER_PIIS

Group<ComputedPaymentInstrumentItem>

DistributePaymentCostsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

 

LIMITED_TENDER_PIIS

Group<ComputedPaymentInstrumentItem>

DistributePaymentCostsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

 

OPEN_TENDER_PIIS_PREBASEAMOUNT

Group<ComputedMoneyItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

The open tender PIIs pre base amounts

LIMITED_TENDER_PIIS_PREBASEAMOUNT

Group<ComputedMoneyItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

The limited tender PIIs pre base amounts

OPEN_TENDER_PIIS_BASEAMOUNT

Group<ComputedMoneyItem>

CalculateBaseAmountsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

The open tender PIIs base amounts

LIMITED_TENDER_PIIS_BASEAMOUNT

Group<ComputedMoneyItem>

CalculateBaseAmountsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

The limited tender PIIs base amounts

OPEN_TENDER_PIIS_PAYMENT_COSTS

Group<ComputedMoneyItem>

CalculatePIICostsRule

Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES

The open tender PIIs payment costs

OPEN_TENDER_PIIS_PAYMENT_GROSS_COSTS

Group<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES

The open tender PIIs payment gross costs

LIMITED_TENDER_PIIS_PAYMENT_COSTS

Group<ComputedMoneyItem>

CalculatePIICostsRule

Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES

The limited tender PIIs payment costs

LIMITED_TENDER_PIIS_PAYMENT_GROSS_COSTS

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

The limited tender PIIs payment gross costs

OPEN_TENDER_PIIS_PAYMENT_TAXES

Group<ComputedMoneyItem>

RoundMoneyRule

Payment.RAW_OPEN_TAXES

The open tender PIIs payment taxes

RAW_OPEN_TAXES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_RATES

The raw open tender PIIs payment taxes

LIMITED_TENDER_PIIS_PAYMENT_TAXES

Group<ComputedMoneyItem>

RoundMoneyRule

Payment.RAW_LIMITED_TAXES

The limited tender PIIs payment taxes

RAW_LIMITED_TAXES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_RATES

The raw limited tender PIIs payment taxes

OPEN_TENDER_PIIS_PAYMENT_RATES

Group<ComputedPercentageItem>

CalculatePIICostsRule

Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES

The open tender PIIs payment rates

LIMITED_TENDER_PIIS_PAYMENT_RATES

Group<ComputedPercentageItem>

CalculatePIICostsRule

Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES

The limited tender PIIs payment rates

OPEN_TENDER_PIIS_SURCHARGES

Group<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES

The open tender PIIs payment surcharges (sum of payment cost and payment taxes)

LIMITED_TENDER_PIIS_SURCHARGES

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

The limited tender PIIs payment surcharges (sum of payment cost and payment taxes)

OPEN_TENDER_PIIS_TOTAL

Group<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_BASEAMOUNT, Payment.OPEN_TENDER_PIIS_SURCHARGES

The open tender PIIs payment total amount (sum of payment base amount and payment surcharges)

LIMITED_TENDER_PIIS_TOTAL

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_BASEAMOUNT, Payment.LIMITED_TENDER_PIIS_SURCHARGES

The limited tender PIIs payment total amount (sum of payment base amount and payment surcharges)

LIMITED_TENDER_NET_PIIS_TOTAL

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_BASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS

The limited tender PIIs payment net total amount (sum of payment base amount and payment surcharges)

PIIS_TO_BE_DELETED

Group<ComputedPaymentInstrumentItem>

DistributePaymentCostsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

 

SUBTOTALS

Group<ComputedMoneyItem>

 

 

The payment sub totals

TOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS

The totals payment net (a.k.a. the payment cost)

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

The totals payment tax

TOTALS_SURCHARGES

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.TOTALS_NET, Payment.TOTALS_TAX

The totals payment surcharges

TOTALS_COVERED_LIMITED

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_TOTAL

The totals payment amount covered by all payment instruments

TOTALS_COVERED_NET_LIMITED

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_TOTAL

The totals payment net amount covered by all payment instruments

TOTALS_COVERED

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_TOTAL, Payment.LIMITED_TENDER_PIIS_TOTAL

The totals payment amount covered by all payment instruments

TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_TAX_GROUPED, Payment.OPEN_TENDER_TAX_GROUPED

Separates the taxes amounts by its rates

LIMITED_TENDER_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_RATES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

 

OPEN_TENDER_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Payment.OPEN_TENDER_PIIS_PAYMENT_RATES, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES

 

4.6.2.6 TOTAL

The class Total bundles all totals values.

Name

Type

creating rule

dependsOn

Description

TOTALS

Group<ComputedMoneyItem>

 

 

Group totals defines the group of all totals cells

TOTALS_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.TOTALS_DISCOUNT, Pli.SUBTOTALS_DISCOUNT, Order.VALUE_DISCOUNT

The totals of all discount

VALUE_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_DISCOUNT, Order.VALUE_DISCOUNT

The totals of all value discount (w/o shipping discount)

TOTALS_NET_WITHOUT_PAYMENTCOST

Cell<ComputedMoneyItem>

AddMoneyRule

Order.VALUE_NET, Shipping.TOTALS_NET, Shipping.TOTALS_DISCOUNT, Gifting.TOTALS_NET, Total.TOTALS_SURCHARGES

The totals net = sum of all amounts without payment costs

TOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Total.TOTALS_NET_WITHOUT_PAYMENTCOST, Payment.TOTALS_NET

The totals net = sum of all amounts

TOTALS_TAX_WITHOUT_PAYMENTTAX

Cell<ComputedMoneyItem>

AddMoneyRule

Order.VALUE_TAX, Shipping.TOTALS_TAX, Gifting.PLI_TAXES, Total.TOTALS_SURCHARGES_TAX

The totals tax = sum of all taxes

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Total.TOTALS_TAX_WITHOUT_PAYMENTTAX, Payment.TOTALS_TAX

The totals tax = sum of all taxes

TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

Cell<ComputedMoneyItem>

AddMoneyRule

Total.TOTALS_NET_WITHOUT_PAYMENTCOST, Total.TOTALS_TAX_WITHOUT_PAYMENTTAX

The totals gross = totals net + taxes

TOTALS_GROSS_MINUS_LIMITED_PII

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.TOTALS_GROSS, Payment.TOTALS_COVERED_LIMITED

The totals gross - limited PIIs

TOTALS_NET_MINUS_LIMITED_PII

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.TOTALS_NET, Payment.TOTALS_COVERED_NET_LIMITED

The totals net - limited PIIs

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES, Payment.TOTALS_NET, Payment.TOTALS_TAX

The totals gross = totals net + taxes

TOTALS_SURCHARGES

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_SURCHARGES_COSTS, Shipping.PLI_IMPORT_SURCHARGES_COSTS, Shipping.BUCKET_SURCHARGE_COSTS

The totals surcharges amount. Includes only surcharges that do not modify any other price like product prices or shipping costs

TOTALS_SURCHARGES_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_SURCHARGES_COSTS_TAX, Shipping.BUCKET_PLI_SURCHARGES_COSTS_TAX

Tax for all surcharges

PLI_TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Pli.TAX_GROUPED, Gifting.TAX_GROUPED

Separates the taxes amounts by its rates

DISCOUNTED_PLI_TAX_GROUPED

Group<ComputedMoneyItem>

RoundMoneyRule

Total.VALUE_RAW_DISCOUNTED_TAX

Grouped taxes discounted PLIs

DISCOUNTED_PLI_AND_SHIPPING_TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Total.DISCOUNTED_PLI_TAX_GROUPED, Shipping.TAX_GROUPED

Grouped taxes discounted PLIs plus shipping

TOTALS_TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Total.DISCOUNTED_PLI_AND_SHIPPING_TAX_GROUPED, Shipping.PLI_SURCHARGES_COSTS_TAX_GROUPED, Shipping.BUCKET_PLI_SURCHARGES_COSTS_TAX_GROUPED, Payment.TAX_GROUPED

Grouped taxes discounted PLIs plus shipping plus payment

VALUE_RAW_DISCOUNTED_TAX

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Total.PLI_TAX_GROUPED, Order.VALUE_DISCOUNT_RATE

The value raw discounted tax = the sub totals tax * value discount rate

ORDER_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.ORDER_DISCOUNTS_ONSHIPPING

The order shipping discount amount

BUCKET_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.BUCKET_DISCOUNTS_ONSHIPPING

The bucket shipping discount amount

ITEM_SHIPPING_DISCOUNT_RAW

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.PLI_DISCOUNTS_ONSHIPPING

 

ITEM_SHIPPING_DISCOUNT_MINUS_BUCKET_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.ITEM_SHIPPING_DISCOUNT_RAW, Total.BUCKET_SHIPPING_DISCOUNT

The item shipping discount amount after subtraction of bucket shipping discount

ITEM_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.ITEM_SHIPPING_DISCOUNT_MINUS_BUCKET_SHIPPING_DISCOUNT, Total.ORDER_SHIPPING_DISCOUNT

The final item shipping discount amount after subtraction of bucket and order shipping discount amount

4.6.2.7 BONUS_POINT

The class BonusPoint bundles all computed items for bonus points.

Name

Type

creating rule

dependsOn

Description

PLIS

Group<ComputedProductLineItem>

CreateInitialProductItemsRule

 

The bonus point product line items

TOTALS_BPP

Cell<ComputedMoneyItem>

AddMoneyRule

 

The totals bonus point price

TOTALS_BPV

Cell<ComputedMoneyItem>

AddMoneyRule

 

The totals bonus point value

4.6.2.8 WARRANTY

The class Warranty computes all computed items for the warranty responsibility.

Name

Type

creating rule

dependsOn

Description

PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

CreateChildProductItemsRule

Pli.ROOT_PLIS

The warranty product line items

FILTERED_PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Warranty.PLI_SINGLE_PRICES, Warranty.PLIS

The filtered warranty product line items (having a price)

PLI_SINGLE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

CreateWarrantyPricesRule

Warranty.PLIS, Pli.ROOT_PLIS

The single prices for each warranty item

PLI_QUANITY

SubGroup<ComputedProductLineItem, ComputedQuantityItem>

ComputeQuantityRule

Pli.ROOT_PLIS, Warranty.FILTERED_PLIS

The quantity = quantity warranty item * quantity root item

PLI_RAW_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Warranty.PLI_SINGLE_PRICES, Warranty.PLI_QUANITY

The raw net prices = base price * quantity

PLI_NET_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Warranty.PLI_RAW_PRICES

The rounded base price

PLI_GROSS_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

AddMoneyRule

Warranty.PLI_NET_PRICES, Warranty.PLI_TAXES

The rounded gross base price

PLI_RAW_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Warranty.PLI_NET_PRICES, Pli.TAX_RATES

The raw taxes for the warranty for each root item

PLI_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Warranty.PLI_RAW_TAXES

The taxes for the warranty for each root item

TOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Warranty.PLI_NET_PRICES

The total for all warranties

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Warranty.TOTALS_NET, Warranty.PLI_TAXES

The total gross for all warranties

TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Warranty.PLI_TAXES, Pli.ROOT_PLIS

Separates the taxes amounts by its rates

4.6.2.9 PROMOTION

The class Promotion calculates all computed items for discounts and promotion items.

Name

Type

creating rule

dependsOn

Description

APPLIED_DISCOUNTS

GroupSet<ComputedDiscountItem>

 

 

The applied discounts

DYNAMIC_MESSAGE_DISCOUNTS

GroupSet<ComputedDynamicMessageDiscountItem>

 

 

The dynamic message discounts

APPLIED_DISCOUNT_AMOUNTS

Group<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The applied discount amounts

APPLIED_DISCOUNTS_ONITEM

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The applied discounts on item

DYNAMIC_MESSAGE_DISCOUNTS_ONITEM

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The dynamic message discounts on item

PLI_DISCOUNTS_ONITEM

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounts on item

PLI_SINGLE_DISCOUNTS_ONITEM

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI single discounts on item

PLI_DISCOUNTED_ITEM_TARGET_PRICES_ONITEM

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounted item target prices on item

PLI_DISCOUNTED_ITEM_PERCENTAGES_ONITEM

GroupSet<ComputedPercentageItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounted item percentages on item

PLI_DISCOUNTED_ITEM_QUANTITIES_ONITEM

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounted item quantities on item

APPLIED_DISCOUNTS_ONORDERVALUE

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The applied discounts on order value

DYNAMIC_MESSAGE_DISCOUNTS_ONORDERVALUE

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The dynamic message discounts on order value

ORDER_VALUE_DISCOUNTS_ONORDERVALUE

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The order value discounts on order value

ORDER_PERCENTAGES_ONORDERVALUE

GroupSet<ComputedPercentageItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

PLI_DISCOUNTS_ONORDERVALUE

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounts on order value

PLI_SINGLE_DISCOUNTS_ONORDERVALUE

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI single discounts on order value

PLI_DISCOUNTED_ITEM_QUANTITIES_ONORDERVALUE

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounted item quantities on order value

BONUS_PRODUCTS_ONGIFT

GroupSet<ComputedProductLineItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The bonus products on gift

APPLIED_DISCOUNTS_ONGIFT

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The applied discounts on gift

DYNAMIC_MESSAGE_DISCOUNTS_ONGIFT

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The dynamic message discounts on gift

DISCOUNTED_ITEM_QUANTITIES_ONGIFT

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The discounted item quantities on gift

DISCOUNTED_ITEM_TARGET_PRICES_ONGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

SINGLE_ITEM_DISCOUNTS_ONGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

ITEM_DISCOUNTS_ONGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

BONUS_PRODUCTS_ONHIDDENGIFT

GroupSet<ComputedProductLineItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The bonus products on hidden gift

APPLIED_DISCOUNTS_ONHIDDENGIFT

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The applied discounts on hidden gift

DYNAMIC_MESSAGE_DISCOUNTS_ONHIDDENGIFT

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The dynamic message discounts on hidden gift

DISCOUNTED_ITEM_QUANTITIES_ONHIDDENGIFT

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The discounted item quantities on hidden gift

DISCOUNTED_ITEM_TARGET_PRICES_ONHIDDENGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

SINGLE_ITEM_DISCOUNTS_ONHIDDENGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

ITEM_DISCOUNTS_ONHIDDENGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

 

APPLIED_DISCOUNTS_ONSHIPPING

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The applied discounts on shipping

DYNAMIC_MESSAGE_DISCOUNTS_ONSHIPPING

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The dynamic message discounts on shipping

ORDER_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The order discounts on shipping

BUCKET_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The bucket discounts on shipping

PLI_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounts on shipping

SHIPPING_PERCENTAGES_ONSHIPPING

GroupSet<ComputedPercentageItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The shipping percentages on shipping

PLI_DISCOUNTED_ITEM_QUANTITIES_ONSHIPPING

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI discounted item quantities on shipping

PLI_SINGLE_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI single discounts on shipping

PLI_TARGET_PRICES_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The PLI target prices on shipping

BUCKET_TARGET_PRICES_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The bucket target prices on shipping

ORDER_TARGET_PRICES_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.NET_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_NET, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_NET

The order target prices on shipping

4.6.2.10 CONFIGURATION

The class Configuration calculates all configurable and customizable products.

Name

Type

creating rule

dependsOn

Description

PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

CreateChildProductItemsRule

Pli.ROOT_PLIS

The configuration product line items

FILTERED_PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Configuration.PLI_SINGLE_PRICES, Configuration.PLIS

The filtered configuration product line items (having a price)

PLI_SINGLE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

CalculateSingleProductBasePricesRule

Configuration.PLIS

The single prices for each configuration item

PLI_QUANITY

SubGroup<ComputedProductLineItem, ComputedQuantityItem>

ComputeQuantityRule

Pli.ROOT_PLIS, Configuration.FILTERED_PLIS

The quantity = quantity configuration * quantity root item

PLI_RAW_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Configuration.PLI_SINGLE_PRICES, Configuration.PLI_QUANITY

The raw net prices = quantity * single price

PLI_NET_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Configuration.PLI_RAW_PRICES

The rounded raw prices

PLI_TAX_RATES

SubGroup<ComputedProductLineItem, ComputedPercentageItem>

DetermineProductItemTaxRatesRule

Configuration.PLIS

The taxes rates for each configuration item

PLI_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Configuration.PLI_RAW_TAXES

The rounded taxes

PLI_RAW_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Configuration.PLI_NET_PRICES, Configuration.PLI_TAX_RATES

The raw taxes

TOTALS_NET

Cell<ComputedMoneyItem>

AddMoneyRule

Configuration.PLI_NET_PRICES

The total of all configuration items

4.7 Reference Implementation Of Gross Calculation

Please check our reference implementation of a rule set in the class com.intershop.sellside.appbase.b2c.capi.calculation.GrossBasedCalculation_V2.

4.7.1 PLI

The class Pli computes all calculation results on line item level.

Name

Type

creating rule

dependsOn

Description

ROOT_PLIS

Group<ComputedProductLineItem>

CreateInitialProductItemsRule

 

The root product line items

FILTERED_PLIS

Group<ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Pli.SINGLE_BASE_PRICES, Pli.ROOT_PLIS

The filtered product line items having a price

GROSS_BASE_PRICES

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_BASE_PRICES

The rounded raw price

NET_BASE_PRICES

Group<ComputedMoneyItem>

SubtractMoneyRule

Pli.GROSS_BASE_PRICES, Pli.TAX_PRICES

The rounded net base prices

SINGLE_BASE_PRICES

Group<ComputedMoneyItem>

CalculateSingleProductBasePricesRule

Pli.ROOT_PLIS

The single base prices for each product line item

SINGLE_BASE_NET_PRICES

Group<ComputedMoneyItem>

SubtractMoneyRule

Pli.SINGLE_BASE_PRICES, Pli.SINGLE_TAX_PRICES

The single base net prices for each product line item

RAW_BASE_PRICES

Group<ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Pli.SINGLE_BASE_PRICES, Pli.FILTERED_PLIS

The raw base prices = quantity * single price

DISCOUNT_SUMS

Group<ComputedMoneyItem>

AddMoneyRule

Promotion.PLI_DISCOUNTS_ONITEM

The discounts for one product line item

GROSS_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Pli.GROSS_BASE_PRICES, Pli.DISCOUNT_SUMS

The Gross prices = Gross base price + discount sums

NET_PRICES

Group<ComputedMoneyItem>

SubtractMoneyRule

Pli.GROSS_PRICES, Pli.TAX_PRICES

The Net prices = Gross base price - Taxes

TAX_RATES

Group<ComputedPercentageItem>

DetermineProductItemTaxRatesRule

Pli.FILTERED_PLIS

The tax rates for each product line item

TAX_INCLUDED_RATES

Group<ComputedPercentageItem>

DetermineIncludedTaxRatesRule

Pli.TAX_RATES

The included tax rates for each product line item

TAX_PRICES

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_TAX_PRICES

The rounded tax prices for each product line item

TAX_PRICES_WO_DISCOUNTS

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_TAX_PRICES_WO_DISCOUNTS

The rounded tax prices w/o discounts for each product line item

SINGLE_TAX_PRICES

Group<ComputedMoneyItem>

RoundMoneyRule

Pli.RAW_SINGLE_TAX_PRICES

The rounded single tax prices for each product line item

PLI_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Pli.TAX_PRICES

Separates the taxes amounts by its rates

TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Pli.PLI_TAX_GROUPED, Warranty.TAX_GROUPED

Separates the taxes amounts by its rates

RAW_TAX_PRICES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.GROSS_PRICES, Pli.TAX_INCLUDED_RATES

The raw tax prices for each product line item (not rounded)

RAW_SINGLE_TAX_PRICES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.SINGLE_BASE_PRICES, Pli.TAX_INCLUDED_RATES

The raw tax prices for each product line item for single quantity (not rounded)

RAW_TAX_PRICES_WO_DISCOUNTS

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.NET_BASE_PRICES, Pli.TAX_RATES

The raw tax prices w/o discounts for each product line item (not rounded)

SUBTOTALS

Group<ComputedMoneyItem>

 

 

The sub totals bundles all kinds of sub totals

SUBTOTALS_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.DISCOUNT_SUMS

The sub total of all discount

SUBTOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.GROSS_BASE_PRICES, Warranty.TOTALS_GROSS

The sub total of all Gross base prices + shipping surcharges

SUBTOTALS_NET

Cell<ComputedMoneyItem>

SubtractMoneyRule

Pli.SUBTOTALS_GROSS, Pli.SUBTOTALS_TAX_WO_DISCOUNTS

The sub total of all net base prices + shipping surcharges

SUBTOTALS_GROSS_WITH_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_GROSS, Pli.SUBTOTALS_DISCOUNT

The sub total of all Gross base prices + shipping surcharges + Discounts

SUBTOTALS_NET_WITH_DISCOUNT

Cell<ComputedMoneyItem>

SubtractMoneyRule

Pli.SUBTOTALS_GROSS_WITH_DISCOUNT, Pli.SUBTOTALS_TAX

The sub total of all Net base prices + shipping surcharges + Discounts

SUBTOTALS_BASE_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.GROSS_BASE_PRICES

The sub total of all Gross base prices

SUBTOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.TAX_PRICES, Warranty.PLI_TAXES

The sub total of all taxes

SUBTOTALS_TAX_WO_DISCOUNTS

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.TAX_PRICES_WO_DISCOUNTS, Warranty.PLI_TAXES

The sub total of all taxes w/o discounts

4.7.2 GIFTING

The class Gifting computes all computed items for the gifting responsibility.
Gifting means all wraps and messages.

Name

Type

creating rule

dependsOn

Description

PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

CreateChildProductItemsRule

Pli.ROOT_PLIS

The product line items for gifting

FILTERED_PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Gifting.PLI_SINGLE_PRICES, Gifting.PLIS

The filtered gifting product line items (having a price)

PLI_QUANTITIES

SubGroup<ComputedProductLineItem, ComputedQuantityItem>

ComputeQuantityRule

Pli.ROOT_PLIS, Gifting.FILTERED_PLIS

The quantities = quantity root item * quantity child item

PLI_BASE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Gifting.PLI_RAW_PRICES

The base prices for all gifting item (rounded) of one root item

PLI_GROSS_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_BASE_PRICES, Gifting.PLI_DISCOUNT_SUMS

The Gross prices = base price + discount sum

PLI_NET_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

SubtractMoneyRule

Gifting.PLI_GROSS_PRICES, Gifting.PLI_TAXES

The Net prices = gross price - taxes

PLI_RAW_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Gifting.PLI_SINGLE_PRICES, Gifting.PLI_QUANTITIES

The raw prices for a single gifting item multiplied with the quantities

PLI_SINGLE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

CalculateSingleProductBasePricesRule

Gifting.PLIS

The single prices for one gifting item

PLI_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

 

The taxes for all gifting items of one root item.

PLI_DISCOUNTS_ONITEM

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

DummyRule

Gifting.PLI_BASE_PRICES

The discounts for each gifting item

PLI_DISCOUNT_SUMS

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_DISCOUNTS_ONITEM

The discounts sum for all gifting item for one root item

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_GROSS_PRICES

The total gross for all gifting items for all root items

TOTALS_NET

Cell<ComputedMoneyItem>

SubtractMoneyRule

Gifting.TOTALS_GROSS, Gifting.TOTALS_TAX

The total net for all gifting items for all root items

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Gifting.PLI_TAXES

The total tax for all gifting items for all root items

TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Gifting.PLI_TAX_RATES, Gifting.PLI_TAXES, Pli.ROOT_PLIS

Separates the taxes amounts by its rates

PLI_TAX_RATES

SubGroup<ComputedProductLineItem, ComputedPercentageItem>

DetermineProductItemTaxRatesRule

Gifting.PLIS

The taxes rates for each gifting item

4.7.3 SHIPPING

The class Shipping computes all computed items for the shipping responsibility.

Name

Type

creating rule

dependsOn

Description

BUCKETS

Group<ComputedShippingBucketItem>

ShippingBucketCreationRule

Pli.FILTERED_PLIS

The buckets for each shipping

BUCKET_PRICES

Group<ComputedMoneyItem>

ShippingPLIChargeCalculatorRule

Shipping.NULL_PLI_SURCHARGES_COSTS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The not discounted shipping costs for each bucket

PLI_PRICES

Group<ComputedMoneyItem>

ShippingPLIChargeCalculatorRule

Shipping.NULL_PLI_SURCHARGES_COSTS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The not discounted shipping costs distributed on PLIs

PLI_TOTALS

Group<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES

The shipping total costs distributed on PLIs

DISCOUNTED_PLI_PRICES

Group<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES, Shipping.PLI_PRICES_DISCOUNT

The discounted shipping costs distributed on PLIs

PLI_PRICES_DISCOUNT

Group<ComputedMoneyItem>

AddMoneyRule

Promotion.PLI_DISCOUNTS_ONSHIPPING

 

RAW_TAXES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Shipping.DISCOUNTED_PLI_PRICES, Pli.TAX_INCLUDED_RATES

The raw taxes

TAXES

Group<ComputedMoneyItem>

RoundMoneyRule

Shipping.RAW_TAXES

The taxes on shipping costs distributed on PLIs

PLI_TOTAL_SURCHARGE_COSTS

Group<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_GEOGRAPHICAL_SURCHARGES_COSTS, Shipping.PLI_IMPORT_SURCHARGES_COSTS, Shipping.PLI_SURCHARGES_COSTS

The shipping total surcharge costs on PLI level

SUBTOTALS

Group<ComputedMoneyItem>

 

 

The SHIPPING subtotals

TOTALS_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES_DISCOUNT

The TOTALs shipping discount

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_PRICES

The TOTALs shipping gross

TOTALS_NET

Cell<ComputedMoneyItem>

SubtractMoneyRule

Shipping.TOTALS_GROSS, Shipping.TOTALS_TAX

The TOTALs shipping net

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.TAXES

The TOTALs shipping tax

TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Shipping.TAXES

Separates the taxes amounts by its rates

PLI_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The shipping surcharge costs. More than one per PLI possible

PLI_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

 

PLI_SURCHARGES_NET_COSTS

GroupSet<ComputedMoneyItem>

SubtractMoneyRule

Shipping.PLI_SURCHARGES_COSTS, Shipping.PLI_SURCHARGES_COSTS_TAX

 

PLI_SURCHARGES_COSTS_RAW_TAX

GroupSet<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Shipping.PLI_SURCHARGES_COSTS, Pli.TAX_INCLUDED_RATES

 

PLI_SURCHARGES_COSTS_TAX

GroupSet<ComputedMoneyItem>

RoundMoneyRule

Shipping.PLI_SURCHARGES_COSTS_RAW_TAX

 

PLI_SURCHARGES_COSTS_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Shipping.PLI_SURCHARGES_COSTS_TAX

 

PLI_SURCHARGES_COSTS_GROUPED

Group<ComputedMoneyItem>

ShippingGroupedChargeCalculatorRule

Shipping.PLI_SURCHARGES_COSTS, Shipping.PLI_SURCHARGES

 

PLI_IMPORT_SURCHARGES_COSTS_GROUPED

Group<ComputedMoneyItem>

ShippingGroupedChargeCalculatorRule

Shipping.PLI_IMPORT_SURCHARGES_COSTS, Shipping.PLI_IMPORT_SURCHARGES

 

PLI_BUCKET_SURCHARGES_COSTS_GROUPED

Group<ComputedMoneyItem>

ShippingGroupedChargeCalculatorRule

Shipping.BUCKET_SURCHARGE_COSTS, Shipping.BUCKET_SURCHARGES

 

PLI_IMPORT_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The import surcharge costs. More than one per PLI possible

PLI_IMPORT_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

 

BUCKET_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The bucket shipping surcharge costs. More than one per bucket possible

BUCKET_SURCHARGE_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

 

BUCKET_PLI_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

BucketCostDistributionRule

Shipping.BUCKET_SURCHARGE_COSTS, Shipping.BUCKETS, Shipping.PLI_PRICES

 

BUCKET_PLI_SURCHARGES_COSTS_RAW_TAX

GroupSet<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Shipping.BUCKET_PLI_SURCHARGES_COSTS, Pli.TAX_INCLUDED_RATES

 

BUCKET_PLI_SURCHARGES_COSTS_TAX

GroupSet<ComputedMoneyItem>

RoundMoneyRule

Shipping.BUCKET_PLI_SURCHARGES_COSTS_RAW_TAX

 

BUCKET_PLI_SURCHARGES_COSTS_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Shipping.BUCKET_PLI_SURCHARGES_COSTS_TAX

 

BUCKET_OVERRIDES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The SHIPPING bucket overrides

NULL_BUCKET_OVERRIDES

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

 

BUCKET_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The SHIPPING bucket override cost

NULL_BUCKET_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

DummyRule

 

 

NULL_BUCKET_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

The SHIPPING bucket surcharges

NULL_BUCKET_SURCHARGE_COSTS

GroupSet<ComputedMoneyItem>

DummyRule

 

The SHIPPING bucket surcharge costs

PLI_OVERRIDE

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The shipping override

NULL_PLI_OVERRIDE

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

 

PLI_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The shipping override cost

NULL_PLI_OVERRIDE_COST

GroupSet<ComputedMoneyItem>

DummyRule

 

 

NULL_PLI_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

DummyRule

 

The shipping surcharges

NULL_PLI_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

DummyRule

 

 

PLI_GEOGRAPHICAL_SURCHARGES

GroupSet<ComputedShippingExtraChargeItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The geographical surcharges

PLI_GEOGRAPHICAL_SURCHARGES_COSTS

GroupSet<ComputedMoneyItem>

ShippingExtraChargeCalculatorRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Shipping.BUCKETS

The geographical surcharge costs

4.7.4 ORDER

The class Order bundles all values for the order.

Name

Type

creating rule

dependsOn

Description

VALUE_SUBTOTALS

Group<ComputedMoneyItem>

 

 

defining the group for all sub totals

VALUE_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_GROSS_WITH_DISCOUNT, Order.VALUE_DISCOUNT

The order value Gross = all pli sub totals + order value discount + all sub totals discounts

VALUE_TAX

Cell<ComputedMoneyItem>

RoundMoneyRule

Order.VALUE_RAW_DISCOUNTED_TAX

The rounded raw taxes

VALUE_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.ORDER_VALUE_DISCOUNTS_ONORDERVALUE

The order value discount containing all discounts on the order

VALUE_RAW_DISCOUNTED_TAX

Cell<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Pli.SUBTOTALS_TAX, Order.VALUE_DISCOUNT_RATE

The value raw discounted tax = the sub totals tax * value discount rate

VALUE_DISCOUNT_RATE

Cell<ComputedPercentageItem>

CalculateMoneyRateRule

Order.VALUE_GROSS, Pli.SUBTOTALS_GROSS_WITH_DISCOUNT

The resulting order value discount rate

4.7.5 PAYMENT

The class Payment bundles all payment computed items.

Name

Type

creating rule

dependsOn

Description

OPEN_TENDER_PIIS_V1

Group<ComputedPaymentInstrumentItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

 

LIMITED_TENDER_PIIS_V1

Group<ComputedPaymentInstrumentItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

 

OPEN_TENDER_PIIS

Group<ComputedPaymentInstrumentItem>

DistributePaymentCostsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

 

LIMITED_TENDER_PIIS

Group<ComputedPaymentInstrumentItem>

DistributePaymentCostsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

 

OPEN_TENDER_PIIS_PREBASEAMOUNT

Group<ComputedMoneyItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

The open tender PIIs pre base amounts

LIMITED_TENDER_PIIS_PREBASEAMOUNT

Group<ComputedMoneyItem>

DistributeBasketTotalAmountRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

The limited tender PIIs pre base amounts

OPEN_TENDER_PIIS_BASEAMOUNT

Group<ComputedMoneyItem>

CalculatePaymentSurchargesRule

Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES

The open tender PIIs base amounts

LIMITED_TENDER_PIIS_BASEAMOUNT

Group<ComputedMoneyItem>

CalculatePaymentSurchargesRule

Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES

The limited tender PIIs base amounts

OPEN_TENDER_PIIS_PAYMENT_COSTS

Group<ComputedMoneyItem>

CalculatePaymentSurchargesRule

Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES

The open tender PIIs payment costs

OPEN_TENDER_PIIS_PAYMENT_NET_COSTS

Group<ComputedMoneyItem>

SubtractMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES

The open tender PIIs payment net costs

LIMITED_TENDER_PIIS_PAYMENT_NET_COSTS

Group<ComputedMoneyItem>

SubtractMoneyRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

The limited tender PIIs payment net costs

LIMITED_TENDER_PIIS_PAYMENT_COSTS

Group<ComputedMoneyItem>

CalculatePaymentSurchargesRule

Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES

The limited tender PIIs payment costs

OPEN_TENDER_PIIS_PAYMENT_TAXES

Group<ComputedMoneyItem>

RoundMoneyRule

Payment.RAW_OPEN_TAXES

The open tender PIIs payment taxes

RAW_OPEN_TAXES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_TAX_INCLUDED_RATES

The raw open tender PIIs payment taxes

LIMITED_TENDER_PIIS_PAYMENT_TAXES

Group<ComputedMoneyItem>

RoundMoneyRule

Payment.RAW_LIMITED_TAXES

The limited tender PIIs payment taxes

RAW_LIMITED_TAXES

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_TAX_INCLUDED_RATES

The raw limited tender PIIs payment taxes

OPEN_TENDER_PIIS_PAYMENT_RATES

Group<ComputedPercentageItem>

CalculatePaymentSurchargesRule

Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES

The open tender PIIs payment rates

OPEN_TENDER_TAX_INCLUDED_RATES

Group<ComputedPercentageItem>

DetermineIncludedTaxRatesRule

Payment.OPEN_TENDER_PIIS_PAYMENT_RATES

 

LIMITED_TENDER_PIIS_PAYMENT_RATES

Group<ComputedPercentageItem>

CalculatePaymentSurchargesRule

Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1, Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES

The limited tender PIIs payment rates

LIMITED_TENDER_TAX_INCLUDED_RATES

Group<ComputedPercentageItem>

DetermineIncludedTaxRatesRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_RATES

 

OPEN_TENDER_PIIS_SURCHARGES

Group<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS

The open tender PIIs payment surcharges (sum of payment cost and payment taxes)

LIMITED_TENDER_PIIS_SURCHARGES

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS

The limited tender PIIs payment surcharges (sum of payment cost and payment taxes)

OPEN_TENDER_PIIS_TOTAL

Group<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_BASEAMOUNT, Payment.OPEN_TENDER_PIIS_SURCHARGES

The open tender PIIs payment total amount (sum of payment base amount and payment surcharges)

LIMITED_TENDER_PIIS_TOTAL

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_BASEAMOUNT, Payment.LIMITED_TENDER_PIIS_SURCHARGES

The limited tender PIIs payment total amount (sum of payment base amount and payment surcharges)

PIIS_TO_BE_DELETED

Group<ComputedPaymentInstrumentItem>

DistributePaymentCostsRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES, Payment.OPEN_TENDER_PIIS_PREBASEAMOUNT, Payment.LIMITED_TENDER_PIIS_PREBASEAMOUNT, Payment.OPEN_TENDER_PIIS_V1, Payment.LIMITED_TENDER_PIIS_V1

 

SUBTOTALS

Group<ComputedMoneyItem>

 

 

The payment sub totals

TOTALS_COST

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_COSTS, Payment.LIMITED_TENDER_PIIS_PAYMENT_COSTS

The totals payment cost (cost includes taxes!)

TOTALS_NET_COST

Cell<ComputedMoneyItem>

SubtractMoneyRule

Payment.TOTALS_COST, Payment.TOTALS_TAX

The totals payment net cost

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

The totals payment tax

TOTALS_SURCHARGES

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.TOTALS_COST

The totals payment surcharges

TOTALS_COVERED_LIMITED

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_TOTAL

The totals payment amount covered by all payment instruments

TOTALS_COVERED_NET_LIMITED

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_PIIS_TOTAL

The totals payment net amount covered by all payment instruments

TOTALS_COVERED

Cell<ComputedMoneyItem>

AddMoneyRule

Payment.OPEN_TENDER_PIIS_TOTAL, Payment.LIMITED_TENDER_PIIS_TOTAL

The totals payment amount covered by all payment instruments

TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Payment.LIMITED_TENDER_TAX_GROUPED, Payment.OPEN_TENDER_TAX_GROUPED

Separates the taxes amounts by its rates

LIMITED_TENDER_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Payment.LIMITED_TENDER_PIIS_PAYMENT_RATES, Payment.LIMITED_TENDER_PIIS_PAYMENT_TAXES

 

OPEN_TENDER_TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Payment.OPEN_TENDER_PIIS_PAYMENT_RATES, Payment.OPEN_TENDER_PIIS_PAYMENT_TAXES

 

4.7.6 TOTAL

The class Total bundles all totals values.

Name

Type

creating rule

dependsOn

Description

TOTALS

Group<ComputedMoneyItem>

 

 

Group totals defines the group of all totals cells

TOTALS_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.TOTALS_DISCOUNT, Pli.SUBTOTALS_DISCOUNT, Order.VALUE_DISCOUNT

The totals of all discount

VALUE_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Pli.SUBTOTALS_DISCOUNT, Order.VALUE_DISCOUNT

The totals of all value discount (w/o shipping discount)

TOTALS_TAX_WITHOUT_PAYMENTTAX

Cell<ComputedMoneyItem>

AddMoneyRule

Order.VALUE_TAX, Shipping.TOTALS_TAX, Gifting.PLI_TAXES, Total.TOTALS_SURCHARGES_TAX

The totals tax = sum of all taxes without payment taxes

TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES

Cell<ComputedMoneyItem>

AddMoneyRule

Order.VALUE_GROSS, Shipping.TOTALS_GROSS, Shipping.TOTALS_DISCOUNT, Gifting.TOTALS_GROSS, Total.TOTALS_SURCHARGES

The totals gross without payment surcharges

TOTALS_GROSS_MINUS_LIMITED_PII

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.TOTALS_GROSS, Payment.TOTALS_COVERED_LIMITED

The totals gross = totals net + taxes

TOTALS_NET_MINUS_LIMITED_PII

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.TOTALS_NET, Payment.TOTALS_COVERED_NET_LIMITED

The totals net - limited PIIs

TOTALS_NET

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.TOTALS_GROSS, Total.TOTALS_TAX

The totals net = total gross - total tax

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Total.TOTALS_TAX_WITHOUT_PAYMENTTAX, Payment.TOTALS_TAX

The totals tax = sum of all taxes

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Total.TOTALS_GROSS_WITHOUT_PAYMENTSURCHARGES, Payment.TOTALS_COST

The totals gross = sum of all items

TOTALS_SURCHARGES

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_SURCHARGES_COSTS, Shipping.PLI_IMPORT_SURCHARGES_COSTS, Shipping.BUCKET_SURCHARGE_COSTS

The totals surcharges amount. Contains all PLI surcharges and shipping surcharges amounts

TOTALS_SURCHARGES_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Shipping.PLI_SURCHARGES_COSTS_TAX, Shipping.BUCKET_PLI_SURCHARGES_COSTS_TAX

Tax for all surcharges

PLI_TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Pli.TAX_GROUPED, Gifting.TAX_GROUPED

Separates the taxes amounts by its rates

DISCOUNTED_PLI_TAX_GROUPED

Group<ComputedMoneyItem>

RoundMoneyRule

Total.VALUE_RAW_DISCOUNTED_TAX

Grouped taxes discounted PLIs

DISCOUNTED_PLI_AND_SHIPPING_TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Total.DISCOUNTED_PLI_TAX_GROUPED, Shipping.TAX_GROUPED

Grouped taxes discounted PLIs plus shipping

TOTALS_TAX_GROUPED

Group<ComputedMoneyItem>

AddMoneyRule

Total.DISCOUNTED_PLI_AND_SHIPPING_TAX_GROUPED, Shipping.PLI_SURCHARGES_COSTS_TAX_GROUPED, Shipping.BUCKET_PLI_SURCHARGES_COSTS_TAX_GROUPED, Payment.TAX_GROUPED

Grouped taxes discounted PLIs plus shipping plus payment

VALUE_RAW_DISCOUNTED_TAX

Group<ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Total.PLI_TAX_GROUPED, Order.VALUE_DISCOUNT_RATE

The value raw discounted tax = the sub totals tax * value discount rate

ORDER_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.ORDER_DISCOUNTS_ONSHIPPING

The order shipping discount amount

BUCKET_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.BUCKET_DISCOUNTS_ONSHIPPING

The bucket shipping discount amount

ITEM_SHIPPING_DISCOUNT_RAW

Cell<ComputedMoneyItem>

AddMoneyRule

Promotion.PLI_DISCOUNTS_ONSHIPPING

 

ITEM_SHIPPING_DISCOUNT_MINUS_BUCKET_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.ITEM_SHIPPING_DISCOUNT_RAW, Total.BUCKET_SHIPPING_DISCOUNT

The item shipping discount amount after subtraction of bucket shipping discount

ITEM_SHIPPING_DISCOUNT

Cell<ComputedMoneyItem>

SubtractMoneyRule

Total.ITEM_SHIPPING_DISCOUNT_MINUS_BUCKET_SHIPPING_DISCOUNT, Total.ORDER_SHIPPING_DISCOUNT

The final item shipping discount amount after subtraction of bucket and order shipping discount amount

4.7.7 BONUS_POINT

The class BonusPoint bundles all computed items for bonus points.

Name

Type

creating rule

dependsOn

Description

PLIS

Group<ComputedProductLineItem>

CreateInitialProductItemsRule

 

The bonus point product line items

TOTALS_BPP

Cell<ComputedMoneyItem>

AddMoneyRule

 

The totals bonus point price

TOTALS_BPV

Cell<ComputedMoneyItem>

AddMoneyRule

 

The totals bonus point value

4.7.8 WARRANTY

The class Warranty computes all computed items for the warranty responsibility.

Name

Type

creating rule

dependsOn

Description

PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

CreateChildProductItemsRule

Pli.ROOT_PLIS

The warranty product line items

FILTERED_PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Warranty.PLI_SINGLE_PRICES, Warranty.PLIS

The filtered warranty product line items (having a price)

PLI_SINGLE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

CreateWarrantyPricesRule

Warranty.PLIS, Pli.ROOT_PLIS

The single prices for each warranty item

PLI_QUANITY

SubGroup<ComputedProductLineItem, ComputedQuantityItem>

ComputeQuantityRule

Pli.ROOT_PLIS, Warranty.FILTERED_PLIS

The quantity = quantity warranty item * quantity root item

PLI_RAW_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Warranty.PLI_SINGLE_PRICES, Warranty.PLI_QUANITY

The raw Gross prices = base price * quantity

PLI_GROSS_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Warranty.PLI_RAW_PRICES

The rounded gross base price

PLI_NET_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

SubtractMoneyRule

Warranty.PLI_GROSS_PRICES, Warranty.PLI_TAXES

The rounded net base price

PLI_RAW_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithPercentageRule

Warranty.PLI_GROSS_PRICES, Pli.TAX_INCLUDED_RATES

The raw taxes for the warranty for each root item

PLI_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Warranty.PLI_RAW_TAXES

The taxes for the warranty for each root item

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Warranty.PLI_GROSS_PRICES

The total gross for all warranties

TOTALS_NET

Cell<ComputedMoneyItem>

SubtractMoneyRule

Warranty.TOTALS_GROSS, Warranty.TOTALS_TAX

The total net for all warranties

TOTALS_TAX

Cell<ComputedMoneyItem>

AddMoneyRule

Warranty.PLI_TAXES

The total tax for all warranties

TAX_GROUPED

Group<ComputedMoneyItem>

CalculateTaxSumsPerRateRule

Pli.TAX_RATES, Warranty.PLI_TAXES, Pli.ROOT_PLIS

Separates the taxes amounts by its rates

4.7.9 PROMOTION

The class Promotion calculates all computed items for discounts and promotion items.

Name

Type

creating rule

dependsOn

Description

APPLIED_DISCOUNTS

GroupSet<ComputedDiscountItem>

 

 

The applied discounts

DYNAMIC_MESSAGE_DISCOUNTS

GroupSet<ComputedDynamicMessageDiscountItem>

 

 

The dynamic message discounts

APPLIED_DISCOUNT_AMOUNTS

Group<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The applied discount amounts

APPLIED_DISCOUNTS_ONITEM

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The applied discounts on item

DYNAMIC_MESSAGE_DISCOUNTS_ONITEM

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The dynamic message discounts on item

PLI_DISCOUNTS_ONITEM

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounts on item

PLI_SINGLE_DISCOUNTS_ONITEM

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI single discounts on item

PLI_DISCOUNTED_ITEM_TARGET_PRICES_ONITEM

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounted item target prices on item

PLI_DISCOUNTED_ITEM_PERCENTAGES_ONITEM

GroupSet<ComputedPercentageItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounted item percentages on item

PLI_DISCOUNTED_ITEM_QUANTITIES_ONITEM

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounted item quantities on item

APPLIED_DISCOUNTS_ONORDERVALUE

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The applied discounts on order value

DYNAMIC_MESSAGE_DISCOUNTS_ONORDERVALUE

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The dynamic message discounts on order value

ORDER_VALUE_DISCOUNTS_ONORDERVALUE

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The order value discounts on order value

ORDER_PERCENTAGES_ONORDERVALUE

GroupSet<ComputedPercentageItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

PLI_DISCOUNTS_ONORDERVALUE

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounts on order value

PLI_SINGLE_DISCOUNTS_ONORDERVALUE

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI single discounts on order value

PLI_DISCOUNTED_ITEM_QUANTITIES_ONORDERVALUE

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounted item quantities on order value

BONUS_PRODUCTS_ONGIFT

GroupSet<ComputedProductLineItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The bonus products on gift

APPLIED_DISCOUNTS_ONGIFT

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The applied discounts on gift

DYNAMIC_MESSAGE_DISCOUNTS_ONGIFT

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The dynamic message discounts on gift

DISCOUNTED_ITEM_QUANTITIES_ONGIFT

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The discounted item quantities on gift

DISCOUNTED_ITEM_TARGET_PRICES_ONGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

SINGLE_ITEM_DISCOUNTS_ONGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

ITEM_DISCOUNTS_ONGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

BONUS_PRODUCTS_ONHIDDENGIFT

GroupSet<ComputedProductLineItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The bonus products on hidden gift

APPLIED_DISCOUNTS_ONHIDDENGIFT

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The applied discounts on hidden gift

DYNAMIC_MESSAGE_DISCOUNTS_ONHIDDENGIFT

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The dynamic message discounts on hidden gift

DISCOUNTED_ITEM_QUANTITIES_ONHIDDENGIFT

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The discounted item quantities on hidden gift

DISCOUNTED_ITEM_TARGET_PRICES_ONHIDDENGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

SINGLE_ITEM_DISCOUNTS_ONHIDDENGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

ITEM_DISCOUNTS_ONHIDDENGIFT

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

 

APPLIED_DISCOUNTS_ONSHIPPING

Group<ComputedDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The applied discounts on shipping

DYNAMIC_MESSAGE_DISCOUNTS_ONSHIPPING

Group<ComputedDynamicMessageDiscountItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The dynamic message discounts on shipping

ORDER_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The order discounts on shipping

BUCKET_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The bucket discounts on shipping

PLI_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounts on shipping

SHIPPING_PERCENTAGES_ONSHIPPING

GroupSet<ComputedPercentageItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The shipping percentages on shipping

PLI_DISCOUNTED_ITEM_QUANTITIES_ONSHIPPING

GroupSet<ComputedQuantityItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI discounted item quantities on shipping

PLI_SINGLE_DISCOUNTS_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI single discounts on shipping

PLI_TARGET_PRICES_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The PLI target prices on shipping

BUCKET_TARGET_PRICES_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The bucket target prices on shipping

ORDER_TARGET_PRICES_ONSHIPPING

GroupSet<ComputedMoneyItem>

PromotionCalculationRule

Pli.FILTERED_PLIS, Pli.GROSS_BASE_PRICES, Pli.SINGLE_BASE_PRICES, Pli.SUBTOTALS_BASE_GROSS, Shipping.PLI_PRICES, Shipping.BUCKET_PRICES, Shipping.BUCKETS, Shipping.TOTALS_GROSS

The order target prices on shipping

4.7.10 CONFIGURATION

The class Configuration calculates all configurable and customizable products.

Name

Type

creating rule

dependsOn

Description

PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

CreateChildProductItemsRule

Pli.ROOT_PLIS

The configuration product line items

FILTERED_PLIS

SubGroup<ComputedProductLineItem, ComputedProductLineItem>

DetermineProductItemsWithPriceRule

Configuration.PLI_SINGLE_PRICES, Configuration.PLIS

The filtered configuration product line items (having a price)

PLI_SINGLE_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

CalculateSingleProductBasePricesRule

Configuration.PLIS

The single prices for each configuration item

PLI_QUANITY

SubGroup<ComputedProductLineItem, ComputedQuantityItem>

ComputeQuantityRule

Pli.ROOT_PLIS, Configuration.FILTERED_PLIS

The quantity = quantity configuration * quantity root item

PLI_RAW_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

MultiplyMoneyWithQuantityRule

Configuration.PLI_SINGLE_PRICES, Configuration.PLI_QUANITY

The raw gross prices = quantity * single price

PLI_GROSS_PRICES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

Configuration.PLI_RAW_PRICES

The rounded raw prices

TOTALS_GROSS

Cell<ComputedMoneyItem>

AddMoneyRule

Configuration.PLI_GROSS_PRICES

The total of all configuration items

PLI_TAXES

SubGroup<ComputedProductLineItem, ComputedMoneyItem>

RoundMoneyRule

 

The rounded taxes

PLI_TAX_RATES

SubGroup<ComputedProductLineItem, ComputedPercentageItem>

DetermineProductItemTaxRatesRule

Configuration.PLIS

The taxes rates for each configuration item

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Support Tickets