Constraint Rules are configuration rules used to conditionally include, exclude, recommend, replace or validate a product or set of products based on other product or set of products added to the cart. Constraint rules are applied to a product during the product configuration process, either on the client-side or the server-side.
For example, when Product A is added to the cart, Product B can be automatically added based on an auto-inclusion type rule. Similarly, when Product B is added to the cart, the sales rep can be prevented from adding Product C.
Constraint rule consists of three associated Objects:
- Constraint Rule Object: Header level object that links the condition with the action. There are only three significant properties in this object, the active flag, action association, and condition association. To configure a constraint rule, you must first create a constraint rule header.
- Constraint Rule Condition: Captures the condition that triggers the rule.
- Constraint Rule Action: Captures the rule action that is applied to the cart when the rule condition is satisfied.
Apttus supports five types of constraint rules. Each of the rules has support for their action intents on either server-side, client-side, or both.
|Rule Type||Definition||Server Side Supported Functionalities||Client-Side Supported Functionalities|
|Inclusion||Used to add a product to the cart|
|Exclusion||Used to exclude or prevent the addition of a product to the cart|
|Replacement||Used to replace and add a product to the cart|
|Recommendation||Used to prompt product suggestions to the user for addition to the cart|
|Validation||Used to prevent the user from finalizing the cart without resolving validation errors|
Constraint rules are optimized with the client-side caching mechanism to improve performance and user experience. You can choose to process all constraint rules at client-side or server-side, by defining the setting Constraint Rule Execution Mode, in Config System Properties.
The constraint rules are processed at server-side by default. However, always use Client-Side Constraint Rules in a Service CPQ flow.
Note the following limitations when enabling Client-Side Constraint Rules (CSCR).
- Replacement type constraint rules are not supported.
- Product Scope, Option Groups, is not supported. If such a constraint rule is defined an error is displayed on the Catalog page.
- Match in Assets in Match Conditions for Constraint Rule Actions is only supported for Inclusion type Client-Side Constraint Rule for Prompt and Auto-include actions.
Apttus recommends not to enable CSCR if you want to define Product Scope as Options Groups.
You can also execute a constraint rule across the following bundle structures:
- From parent bundle structure to nested bundle structure
- From nested bundle structure to parent bundle structure
- Across nested bundles
Subsequent sections explain the following topics: