- 29 May 2024
- 4 Minutes to read
- Print
- DarkLight
Price item type category
- Updated on 29 May 2024
- 4 Minutes to read
- Print
- DarkLight
The price item type category determines how a pricing step is calculated to derive the sales item amount. The data points required to maintain each pricing step differs according to each price item type category.
Zilliant CPQ includes the following price item type categories:
- Lookup table category
- Fetched category
- Calculated category
- Manual category
- Subtotal category
- Aggregation category (also known as aggregation of specific child line items)
- Script category
Lookup category
Use case
The pricing data (currency and validity) is maintained in a table. This data is retrieved by a unique key or a combination of unique keys, such as Product Id or Product Id and sales organization.
CPQ enables defining lookup tables with dynamic fields, maintaining pricing data and its usage in the system.
Example
Maintain Product List Price in a lookup table named Product List Price. This list price is retrieved by the Product ERP ID.
Create pricing step
Create a pricing step with price item type category Lookup table:
- Sequence ID—Determines the order of the pricing step in execution. No duplicate is allowed.
- Name—Name of the pricing step.
- Price Item Type—Lookup table category.
- Percent On—Not applicable.
- Arithmetic Expression—Not applicable.
- Search Expression—Not applicable.
- Groovy Script—Applicable only when price item type category is groovy category.
- Routing Relevant—(Optional.) Determines whether pricing step is a placeholder for material routing. If routing is relevant, the purpose of using this pricing step is for ERP routing creation. The output of the price item type is excluded from the sales item amount.
- Mandatory—(Optional.) Defines the pricing step as mandatory. If it is mandatory, a notification displays.
- Disabled—(Optional.) Determines whether the pricing step is disabled.
- Applicable Product Type—(Optional.) Determines the product type applicable to the product. If blank, the pricing step applies to all product types.
Add lookup table sequence
Pricing step with the lookup up category must have at least one lookup table sequence. If more than one lookup table sequences exists, the pricing scheme will follow that sequence to retrieve pricing data. The sequence follows the order from most specific to generic.
Add lookup table and field
Each lookup table sequence must have exactly one lookup table and one lookup field.
Create a lookup table and field in advance to select lookup table and its related field from the dropdown.
For more information on how to add and configure lookup tables, read Lookup tables.
When you have created and set up the lookup table, check the schema before adding lookup record. When confirmed, activate the lookup table to add new records.
Fetched category
Use case
Fetched category is used when a price calculation consists of fetching or retrieving data from a quote or configuration of a sales item.
Example
The sales representative configures a sales item by adding shipping fees. In this example, the amount retrieved is part of sales item price.
Create pricing step
Create a pricing step with the price item type category FETCHED. Give the search expression the following value: SalesItem().getDAValue('Shipping_Cost')[0]
.
In this case, Shipping_Cost is the dynamic attribute name.
Calculated category
Use case
Calculated category is the combination of FETCHED and LOOKUP. In addition, it has the functionality of calculation on the top of these two price item type categories.
Example
Price is the result of the hourly rate multiplied by the hours needed to build the sales item.
Create pricing step
Each calculated step has exactly one pricing component. The pricing step component defines how the price will be calculated and which currency is used for this pricing step.
The unit of measure is optional. However, currency expression does influence the resulting currency of the price item for a calculated step.
Currency expression is one of the following expressions:
Quote().hasCurrency[0]
for quote currencySalesItem().hasCurrency[0]
for sales item currencySalesItem().getDACurrency('
DAName')[0]
for dynamic attribute currency, where DAName is the dynamic attribute name.
Arithmetic expression defines how the price is retrieved or calculated. It supports use of the following arithmetic operators: addition (+), subtraction (-), multiplication (*) and division (/).
Manual category
Use case
The sales representative discounts or marks up (either percentage or cash amount) a sales item with affected pricing date (also known as Valid From Date of the price item). For example, seasonal discounts (such as Christmas discount) are affected beginning with the target date of December, but before that, the discount is not applied. In this way, the sales representative is able to define a discount for a predefined date.
Subtotal category
Use case
Subtotal is the intermediate step to show meaningful pricing information to the user. The output price from the subtotal category is not part of the sales item net price or quote price.
Example
The sales representative wants to see the sum of the product price and shipping cost in the user interface as a total cost.
Aggregation category
Use case
Consider there is a sales item hierarchy. The administrator wants to find a specific pricing step of all sub sales items and sum them to get the output of the aggregation category. The output price from the aggregation category is not part of the quote price.
Example
A breaker is composed of multiple components. Each of the components has its own setup cost. The sales representative wants to see the sum of all the setup cost of the breaker’s components.
Script category
The purpose of the Groovy script category is to define custom implementations.
Create pricing step
The administrator maintains all groovy scripts used in the Master Data Management tab under Internal Pricing – Custom Item Calculation.
Only the groovy script used for that type is shown in the pricing step groovy script selection.