A customer can select a size and colour that each exist separately but have no corresponding purchasable variation. Agree the actual combination matrix before asking for a faster dropdown. The supplier should prove invalid combinations are explained without silently substituting another product.
Who should use this acceptance brief
Apparel and configurable-product retailers. Use this as a scoped website handover task. Where real system evidence is required, teaching examples are not a substitute.
Source-bound platform fact
WooCommerce documents different default dropdown behaviour around its variation-count threshold, and unavailable combinations may be reported after selection. Store configuration and filters can change that behaviour. WooCommerce: variable products · Checked 16 October 2026.
Filled teaching example
Synthetic example, not a client case. Finite inputs, expected decisions and counterexamples follow; no live integration is claimed.
On narrow screens, scroll to read the complete table.
| Input / case | Check basis | Expected decision |
|---|---|---|
| S + blue | variation V1 | one match |
| L + blue | no variation | unavailable |
| S + blue duplicated | two matching rows | ambiguous |
Run the acceptance exercise
- Obtain the approved attribute and variation table, not just the list of possible labels.
- Test every allowed combination and at least one missing combination on the current store version.
- Record selected attributes, resolved variation ID and displayed correction; test keyboard selection too.
Interpret the result and retain evidence
The checker finds exact size/colour matches in a supplied matrix. It does not simulate wildcard attributes, prices or stock. A unique resolved ID is a selection result, not a promise that the product can ship. Keep missing-combination and duplicate-row cases in the handover so data errors cannot be hidden by a friendly dropdown.
Limits before implementation
Distinct from price/availability consistency checks. No live catalogue, plugin settings or existing variation data is modified.
Replay the finite example
Save both files in one folder and run with Node22.13 or newer. The example sends no network requests and changes no account or site. Filled inputs and expected outputs · Inspectable functions
node decision-check.mjs variable-product-combination-matrix.json