After reading this article you will be able to:
-
Explain how to implement the generation of Price List.
-
Explain how to implement the logic.
Scenarios (Reasons) for Price List Generation
Sample User Stories for Creation of Global / Local Price List
-
As a Pricing Manager, I want to define a standalone/global Price List at a Product SKU level, so I can Create a centralized reference price list as the base to derive other sub-global prices.
-
As a Pricing Manager, I want to define a local Price List based on prices from a Global Price List at a Product SKU level, so I can set prices at local levels based on adjustments.
Sample Strategies for Pricelist Calculation
-
As a Pricing Manager, I want to set price with a "cost-plus" strategy with costs and "plus" (e.g., margin %) defined on Product attributes where the calculation can be performed with one of the following methods: 1) cost * (1 + margin %), 2) cost + margin, 3) cost / (1 - margin %), so I can produce a cost-plus price as a reference point and one of the price setting fallback strategies.
-
As a Pricing Manager, I want to set price based on competition data, with one of the following methods: 1) max, 2) avg (simple average), 3) min, so I can produce a competitive price as a reference point and one of the price setting fallback strategies.
-
As a Pricing Manager, I want to set price based on price of another Product (anchor price) and apply +/- factor if needed, so I can maintain a logical relationship between an anchor SKU and a follower SKU.
What is a Price List
Price List is a document with product prices. The prices found in the price list are typically valid only from certain date (target date).
Process Flow of Price List Generation
The process of Price List is described on the picture below. Overall the process works in the same way also for a Price List Simulation, which is technically quite similar to a Price List.
Data Structure
Header
Header contains the information common for the whole Price List, like:
Line Item
Line Item contains information specific for an SKU (or eventually for sku in combination with second dimension "key2").
Configuration/Implementation of Price List
The configuration/implementation of Price List typically consist of creation of:
-
Data tables - With drivers for the calculation (usually Company Parameter tables, but sometimes also Product Extensions or others). Which tables you need depends on the actual project requirement.
-
Calculation logic - A logic, which will be executed for every single line item of the Price List.
-
Default logic to be used for calculation of the line item.
-
Limit list of logics available to business users.
Price List Logic
Typical Tasks
The calculation logic always calculates values/prices for one line of the Price List.
-
Read additional inputs from User - Besides the inputs required by the system, the logic can ask the user (usually a Pricing Manager) to enter additional information needed to calculate the Price List. These input fields will be rendered bellow the standard system input fields. The user will enter the values only once, and then their values will be available to the logic for each SKU processed.
-
Read SKU & TargetDate from the Context.
-
Read data from tables.
-
Calculate the prices.
-
Return the calculated values via Element results - also the formatting of the results.
Price List Logic Specifics
-
api.product("sku")
- SKU being calculated. -
api.targetDate()
- Target Date of the Price List. -
api.currentItem()
- Complete current line item. Warning: This only works in the 2nd and next passes (not in the 1st pass). -
previousContext()
- Previous Revision line item of the same SKU - via
Mapping of the Logic’s Results to the Price List Line Item
The mapping is driven by:
-
Out-of-the-box mapping.
-
The user’s selection of logic’s elements (during the 2nd step "Set Parameters" of Price List creation).
The business user (usually Pricing Manager) can map, which values from the logic will be stored to the Price List Line Item (PLI):
-
Attributes - Which elements' results will get to the Price List line item attribute columns. Only the values from checked elements will be stored into the PLI.
-
Result Price - Which element’s result will be stored to resultPrice column.
-
Dynamic UOM - Result of which element will be stored in the UOM column.
-
Dynamic currency - Result of which element will be stored in the ccy column.
The system does the following:
-
Executes the Logic.
-
Gets the results from the Logic execution.
-
Creates new Price List Line Item.
-
Maps the information to the Price List Item:
-
Copies the information from Product Master to the Price List Line Item.
-
Stores the logic element results to the Attribute columns of the Price List Line Item.
-
Stores the result of element (specified by user in definition) to the Result Price column.
-
If specified by the user during definition, it also:
-
Overrides the Currency column with the value provided by logic element result.
-
-
-
Stores the Price List Line Item to the database.
Selection of Logic to Be Used for Price List Generation
Which logic will be used for calculation of Price List Line Item depends on two things:
-
Name of the logic.
-
Validity of the logic.
Name of the logic is decided in the following way:
-
If the user did not specify a logic in the definition, then default logic is used.
-
"Old" default is available in
. But this default is only for backwards compatibility now, do not use it in new projects. -
Default is in
.
-
-
If the user specified in the 2nd step of the definition a logic, then that logic will be used (i.e., it overrides the default logic).
-
If there’s a Product specific logic defined (in Product Master’s column "Pricing Logic"), then it is always used when calculating that product.
You can have more versions of the same logic (with the same name) valid from different dates. The proper logic is selected based on the Target Date of the Price List and Valid From of the Logic.
Limit the List of Logics Available to Business Users
The amount of generic logics can grow significantly. So when the business user is selecting a logic from the list of logics, the list can be quite overwhelming.
You can limit the list of logics available to the business user via settings at
.Related Features
Creation of Price Lists
A Price List can be created in several ways:
-
Generate a Price List (described in this Handbook).
-
Convert "Price List Simulation" to a Price List - select an existing Price List Simulation and click the button "Convert to Price List".
-
Convert a Live Price Grid (LPG) to a Price List - select an LPG and click then button "Convert to Price List".
Revisions of Price Lists
The Price List versions are called Revisions.
The user can make a Revision by selecting a Price List and clicking on the "Revision" button.