- 24 Sep 2024
- 4 Minutes to read
- Print
- DarkLight
Product substitution
- Updated on 24 Sep 2024
- 4 Minutes to read
- Print
- DarkLight
About product substitution
Zilliant CPQ supports product substitution, also known as material substitution, to replace an existing product in a quote with another. This functionality supports the need to replace an older product that is no longer in use with a new product.
CPQ supports two modes of product substitution:
- Automatic, which silently replaces an old product with a new product.
- Manual, which notifies you if a substitute product is found. You then decide whether to substitute the product.
The following Boolean settings control product substitution:
- SettingEnableProductSubstitution—Enables or disables product substitution in trigger points for all of CPQ.
- SettingEnableProductSubstitutionAtQuoteSubmit—Enables or disables product substitution when a quote is submitted. This is effective only if the product substitution setting is enabled.
Product substitution scheme
CPQ product substitution is a re-implementation of an SAP ERP feature known as material determination/substitution. CPQ uses the same data a customer might have created in their ERP system and follows the same logic to substitute a product.
The data for product substitution is maintained in CPQ lookup tables. In addition, a product substitution scheme defines the sequence of steps and the lookup tables involved in each step of a substitution. This makes the implementation independent from SAP ERP tables.
Lookup tables
CPQ includes the following default lookup tables:
- KOTD001—Holds information about an old product, substitution validity period, and condition record number.
KOTD502—Holds information about old products, substitution validity period, company code, and condition record number.
KONDD—Holds information about condition record number, new product, and substitution reason.
If you use this data in CPQ, three tables can be synchronized to CPQ directly without the need to create them. For more information, refer to SAP ERP documentation.
KOTD001 lookup table
Field name | Description | Search expression |
---|---|---|
MATWA | Old product’s ERP ID | SalesItem().isProduct.objectERPId\[0\] |
DATAB | Valid from date | |
DATBI | Valid to date | |
KNUMH | Condition record number |
KOTD502 lookup table
Field name | Description | Search expression |
---|---|---|
MATWA | Old product’s ERP ID | SalesItem().isProduct.objectERPId\[0\] |
BUKRS | Company ERP ID | Quote().hasSalesOrg.containsCompany. objectERPId\[0\] |
DATAB | Valid from date | |
DATBI | Valid to date | |
KNUMH | Condition record number |
KONDD lookup table
Field name | Description | Search expression |
---|---|---|
KNUMH | Condition record number | |
SMATN | New product’s ERP ID | |
SUGRD | Reason for material substitution |
Product substitution reason ERP IDs that match SUGRD of the KONDD lookup table must be maintained in Master Data Management in CPQ.
Product substitution process
Product substitution determination logic goes through the steps defined in the product substitution scheme one-by-one as follows:
- In each step, it looks for a matching record with the given input.
- If a matching record is found it returns the condition record number (KNUMH) of that record.
- When a condition record number is found, the rest of the steps are not evaluated.
- For the found condition record number, CPQ tries to match the condition record number with a record in KONDD table.
- If found, the new product ERP ID and the reason for substitution ERP ID is retrieved from the matching record.
Automatic or manual substitution is based on the reason for the substitution. The following images show the steps in CPQ.
For each step of the scheme, the quote pricing data and the data points defined by the search expressions of the lookup table are made available.
For more information on search expressions, read Internal pricing engine.
In the previous example, Company Code Based Substitution table KOTD502 uses a search expression for the old product's ERP ID and company ERP ID.
These two attributes are supplied as input to the table in addition to the default value of the quote pricing date. The condition record validity is determined based on the quote pricing date.
The scheme is used only to find a matching condition record number. When found, finding the substitute product is determined from KONDD.
Product substitution trigger points
Refer to the sample data from lookup tables in the following images for the rest of this topic:
Add a product to quote
Product substitution starts when creating a line item, when a product is added to the quote. The system looks for the added product according to material determination logic. If found, the product is automatically replaced or the user is notified to manually replace it.
The following sections provide images to illustrate automatic and manual substitution and subsequent execution.
Automatic substitution mode
Manual substitution mode
Manual execution
At any point in the quote, if you want to check for a substitute product, select the action as shown in the following image.
Because no line items are selected, the system checks the product substitution for all sales items in the quote.
However, if you select sales items and select the same button, product substitution is executed only for those selected sales items.
In both cases, the subsequent action, based on whether the substitution is automatic or manual, is governed by the reason for the substitution as maintained in the data.
Quote pre-submission check
Another system-enforced setting at a controlled trigger point for material substitution is at Quote Submit. CPQ automatically looks for substitute materials for all the items in the quote. For this to work, you must enable the following settings:
SettingEnableProductSubstitution—Enables product substitution in general.
SettingEnableProductSubstitutionAtQuoteSubmit—Enables product substitution at the time of quote submission.
If substitute products with a substitution reason "automatic" are found, the quote submission process stops and you are prompted to replace the products manually.
The following image shows how a substitute material is found upon quote submission. Because the substitution reason is automatic, you must replace the products to submit quotes.