Penny perfect pricing is data-intensive. As numerous condition types are defined at the product level or customer level, storing all conditions in a mobile device is impossible. So the condition information is stored in more general levels, specifically Customer Hierarchy, Product Hierarchy, or Customer Sets.
Required Editions
| Available in: Lightning Experience in Professional, Enterprise, and Unlimited Editions that have Consumer Goods Cloud enabled |
You can group by hierarchy nodes or by sets. If multiple conditions are available for a condition search that's using hierarchy search, information regarding each condition is stored in the calculation XML. Internally, the pricing engine merges these conditions into a single condition, which is then used for order calculation.
- Condition Search Based on Sets and Hierarchies
-
During order calculation, the pricing engine performs one of these actions:
- Determines the conditions of a customer at a specific org level of the orderer's customer hierarchy (CP_Search_Strategy_Step.Account_Hierarchy_Search = 'Customer Level 1 … 7')
- Considers all the customers in the hierarchy (CP_Search_Strategy_Step.Account_Hierarchy_Search = Complete)
You get the flatten hierarchy data for your customers. The customer whose hierarchy data is required is always referenced in the lowest level in Flatten_Account_Hierarchy.Account_Level_15…01.
You get the object holding the org-level information data for the customers of the customer hierarchy from Flatten_Account_Hierarchy and the condition data from CP_Advanced Pricing_Condition of a customer.
Note Using hierarchies or sets as search attributes in key types is performance-critical. - Customer Hierarchy
- A device needs trade org hierarchy to determine the hierarchy if customer hierarchy search is used. For example, all stores of an account get a special discount of 5% per order.
- Product Hierarchy
- Logging in to the offline mobile app initializes the pricing engine. This initialization creates the database connection and the data readers asynchronously. During this initialization, the pricing engine creates a lookup structure for translating the product IDs of the order items into product PKeys. For example, all beverages get a special discount of 10%.
- Customer Sets
- After the pricing engine starts calculating the current order, the pricing engine determines all relevant customer sets of the current customer. For example, all customers who participate in a promotion get a special discount of 10%.