When configuring a product bundle in Salesforce Revenue Cloud (Advanced), users encounter the following error message during validation:
"Something went wrong while validating the configured bundle: Parent product '[Product Name]' with quantity [X] and child product '[Child Product Name]' with quantity 1.0 results in a fractional quantity."
This typically happens when a parent product has a quantity greater than 1, and a rule auto-selects a child product. The error is caused by a conflict between the Configuration Model Language (CML) rule behavior and the Quantity Scaling Method (QSM):
1. Rule Behavior: By default, CML require or preference rules auto-add only one (1) instance of the child product.
2. Proportional Scaling: If the child product's QSM is set to Proportional, the system expects the child quantity to scale exactly with the parent.
3. The Conflict: As an example, let's assume that the the parent quantity is 35 and the rule adds only 1 child, the system detects a mismatch. It sees 1 out of a required 35, leading to the "fractional quantity" validation failure.
There are two primary methods to resolve this behavior, depending on the business requirement:
Method 1: Update Configuration (Recommended if strict scaling is not required) Change the child product's Quantity Scaling Method from Proportional to None.
This allows the child product quantity to remain independent of the parent quantity.
Once QSM is set to None, the validation error will no longer trigger when the rule adds a single instance of the product.
Method 2: Update CML Code (Recommended if proportionality must be enforced) Update the CML rule to specifically reference the parent's quantity using the lineQuantity constraint. This ensures the rule adds the correct number of instances to match the parent's scaling.
Revised CML Example: Modify your require statement to include the lineQuantity check:
// Original Rule (Causes Error)
require(Condition, child_product_node, "Error Message");
// Updated Rule (Resolves Error)
require(Condition, child_product_node == lineQuantity, "Error Message");
Note: Ensure that lineQuantity is correctly defined within your CML types to represent this.quantity.
005239052

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.