FIELD NOTES · ACCEPTANCE EXERCISES

Available option labels do not prove a product combination exists

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 / caseCheck basisExpected decision
S + bluevariation V1one match
L + blueno variationunavailable
S + blue duplicatedtwo matching rowsambiguous

Run the acceptance exercise

  1. Obtain the approved attribute and variation table, not just the list of possible labels.
  2. Test every allowed combination and at least one missing combination on the current store version.
  3. 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