Skip to main content

Group Selection Cardinality

Prove that a product component group enforces its maximum selection count by over-selecting members.

What it proves

Within a Product Component Group, the number of distinct selected options must stay within the configured cardinality. This is not a per-product quantity limit: it is how many different components from the group are selected.

Revsnap’s Scenario Builder supports Maximum (over-select) only. Minimum under-select is not offered because Salesforce headless configurator APIs do not reliably return under-select range messages.

Example

How to use this example

Map these Meridian product names to equivalents in your org. Pick a valid base quote that already reflects the rule, then select the matching products in Scenario Builder.

Support is sold as a single tier per enterprise deal so SLAs and entitlements stay unambiguous.

Bundle: Meridian Enterprise Pack
Component group: Support: Max = 1 (org may also have Min = 1)

Options in the group:

  • Standard Support
  • Premium Support
  • Platinum Support

A valid base quote has exactly one support tier (for example Premium Support). Adding one or more additional tiers (for example Standard and Platinum) violates the max. Salesforce typically returns a range message such as:

… isn't in the specified range …

Or org-specific wording like: Group Cardinality must be greater than or equal to 1 and less than or equal to 1.

What Revsnap does at runtime

  1. Recreates the base quote (preserving captured products). If a baseline group member has cfgStatus: Engine, recreation rewrites it to User so Salesforce counts it toward the group.
  2. Adds every catalog product you checked in the group via add-nodes (the last add is the test action).
  3. Asserts the expected range message from that response (default severity warning).
  4. Removes the transient adds and saves the valid configuration.
Screenshot coming soontest-runs-configurator-group-cardinality-timelineTest run detail showing Scenario Proof Timeline for Group Selection Cardinality
The proof timeline shows the cardinality violation, message assertion, correction, and save phases.

How to capture it

  1. Capture a ConfiguratorScenario Builder snapshot with a valid base quote that already satisfies the group maximum.
  2. On Rule Type, choose Group Selection Cardinality.
  3. In Scenario Builder:
    • Select the baseline bundle
    • Choose the Product component group
    • Confirm constraint type is Maximum (over-select) and set the Maximum boundary
    • In the group membership list, check one or more catalog-only products to add (on-quote members stay selected)
  4. Use Baseline Products only: standalone and Other Bundles are not used for this pattern.
  5. On Review, confirm the default expected message and severity, then save.
Screenshot coming soonsnapshots-configurator-group-cardinality-setupScenario Builder for Group Selection Cardinality with group and target product selected
Scenario Builder: set the component group, maximum boundary, and products to add.

Review assertion tips

SettingDefault / guidance
Expected patternisn't in the specified range (or your org’s equivalent wording)
Severitywarning: PCM / bundle validation range messages are often warnings, not errors
Rule must be activeIf the constraint is disabled in Salesforce, no message is returned and the assertion fails

Always assert the severity Salesforce actually returns. Matching the text with severity error against a Salesforce warning fails.

Screenshot coming soonsnapshots-configurator-group-cardinality-reviewExpectation and review step for a Group Selection Cardinality scenario
Review: confirm the expected range message and warning severity before saving.