***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** This Confluence article was automatically generated from Asciidoc. Any changes you make to this document will be overridden! If you want to change the content, consider leaving a comment. You can edit the content directly here: https://gitlab.pricefx.eu/training/pricefx-knowledge-base/-/tree/dev/public/content/docs/concepts/price-lists/live-price-grids ***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING **********************
Live Price Grid (LPG) is used when you need to handle a large number of products with rapidly changing prices, e.g., in an e-shop. In LPG, prices are recalculated every day or even several times a day – this is a direct contrast to Price Lists which are calculated only once and then you need to make a revision.
Live Price Grids share a lot with standard Price Lists, so in this guide we will mostly focus on LPG basics, things unique to LPGs and key differences between these two types of documents.
As a Pricing Manager, I want to define a Price Grid for an e-shop where prices are recalculated daily based on competitor prices.
As a Pricing Manager, I want to define a Price Grid, where prices are recalculated daily based on pricing parameters such as currency.
The main concept of a Price Grid is to have a document with product prices, where these prices can be recalculated on a regular basis.
Live Price Grid, like the Price List is a document with prices of products. The prices of each product in the grid can be updated at any given time. This way it is possible to manage the price of a large number of products with rapidly changing underlying data upon which the price depends (Pricing Parameters and Product Extensions).
The most important part of the LPG header is the id, which is its unique identifier and targetDate, which used to identify the first day of validity of the prices in the LPG. During calculation of the LPG this date decides which data to use for its calculation.
Just like with Price Lists, LPGs have line items which contain information specific for an SKU. The most important fields of a line item are:
sku: ID of the product, for which we calculated the price.
resultPrice: Price calculated by the logic. Before the result price becomes the active price, it needs to be approved.
activePrice: Current approved price. This price is then used in further calculations, for example in Quotes.
previousPrice: Previous active price.
Functionality | LPG | Price List |
---|---|---|
Concept |
Price grid items are "reused" all the time. Inside the item you have three generations of a price (latest draft, current/active and previous). |
Price list items are generated once (then maybe updated after a manual review) but then frozen once the list is approved. |
History |
Last 2 approved prices. |
Keeps the history of the all prices in pricelist revisions (until the price list/revision is erased). |
Approval |
Auto-approve by the auto-approve logic element, Manually item by item, at any time, Using mass edit. |
All items at once. |
Frequency of price changes (calculation) |
Periodically, e.g., every night or event based (e.g., after a certain supplier changed prices). |
At a defined time of a year (e.g., with a new catalog). |
Line Items before calculation |
Already stored in the DB even before logic calculation. |
Stored to DB after logic calculation. |
With minor (or no) changes, you can use it also for Price List. |
api.product("sku")
- SKU being calculated.
api.targetDate()
- Target Date of the LPG.
api.currentItem()
- Complete current line item.
The process of LPG creation is different from Price List. Please use the following steps to create a Live Price Grid (LPG).
Navigate to
.Click on the + New Price Grid to create a new Live Price Grid.
Define the new Live Price Grid.
Label is the display name of the LPG
Header type is optional, here you can select an LPG type with an associated header logic.
Type is either simple or matrix. The behavior is similar like in Price Lists.
Optionally, it is possible to restrict viewing the details and editing the Live Price Grid by setting a user group in the according columns.
Pick the desired products.
Set the parameters.
Allow distributed calculation – If checked, price grid calculation is done simultaneously which improves the performance of the calculation.
Allow column type change – If checked, the column type can be changed.
Dynamic item mode – Products can be added or removed from the Live Price Grids at any new re-calculation of the LPG based on the filter definition and the mode setup.
Result Price - Which element’s result will be stored to resultPrice column.
All elements returned by the Pricing Logic and configured to be shown in Live Price Grids are listed. Select those that need to be included in this particular Live Price Grid.
Save the LPG configuration.
To recalculate the prices in the LPG, select the LPG and click the Calculate icon. (You can also recalculate the LPG as many times as needed later.)
Live Price Grid includes auto-approval of prices and approval workflow and offers a data-rich user interface in order to allow the seller/product manager to make an informed and rapid decision.
If you want to "freeze" the current prices in an LPG, you can convert it to a Price List.
There are two possibilities:
Create a new Price List.
Append LPG Items to an existing Price List.
Create New Price List
This option is available only if you select an LPG in the list of LPGs.
From the list of Live Price Grids (LPGs), select the LPG to be converted to a Price List.
Click the 'Convert to Price List' icon.
A copy of the LPG will appear in the list of Price Lists where it can be used as any other Price List.
Append LPG Items to Existing Price List
This option is available only if you run the conversion from within an LPG.
Open a particular LPG.
Select products that you want to include in the Price List. If you make no selection, the new Price List will contain all the products from the LPG.
Click the 'Convert to Price List' icon. A field-mapping dialog opens:
Select the target Price List from a drop-down menu.
Decide if you want to overwrite existing Price List items. If this option is not enabled, the LPG items will be appended to the Price List.
Perform the field mapping. The mapping table will only contain rows if the source LPG has mapped output columns (i.e., any attributeXX fields) – otherwise, the table will be empty.
Confirm.
The new Price List inherits the same preferences (columns visibility, order etc.) as the original LPG.
If filters are set in the LPG, only the filtered set of rows will be converted to the Price List.
Header contains the information common for the whole LPG, like:
Line Item contains information specific for an SKU (or eventually for sku in combination with the second dimension "key2").
With minor (or no) changes, you can use it also for Price List. |
api.product("sku")
- SKU being calculated.
api.targetDate()
- Target Date of the LPG.
api.currentItem()
- Complete current line item.
Warning: It only works in the 2nd and next passes (not in the 1st pass).
api.previousContext()
- Previous Revision line item of the same SKU - via.
Functionality | LPG | Price List |
---|---|---|
Concept |
Price grid items are "reused" all the time. Inside the item you have three generations of a price (latest draft, current/active and previous). |
Price list items are generated once (then maybe updated after a manual review) but then frozen once the list is approved. |
History |
Last 2 approved prices. |
Keeps the history of the all prices in pricelist revisions (until the price list/revision is erased). |
Approval |
Auto-approve by the auto-approve logic element, Manually item by item, at any time, Using mass edit. |
All items at once. |
Frequency of price changes (calculation) |
Periodically, e.g., every night or event based (e.g., after a certain supplier changed prices). |
At a defined time of a year (e.g., with a new catalog). |
Line Items before calculation |
Already stored in the DB even before logic calculation. |
Stored to DB after logic calculation. |
When it comes to LPGs it is apparent that they share a lot of similarities with Price Lists, with a few key differences such as frequency of the recalculations and history of prices. LPGs are best used when you need to handle a large number of products with rapidly changing prices which need to be recalculated on regular basis.