FIELD NOTES · ACCEPTANCE EXERCISES

Discount compatibility needs a store-specific evidence pack

A promotion not stacking is not automatically a defect. Before commissioning custom checkout logic, identify whether the intended combination is supported and enabled. Otherwise a website team may build customer promises around a feature the merchant does not have.

Source-bound fact

Combinations require reciprocal settings; same-line product stacking is plan-limited, and Buy X Get Y has additional constraints. Official reference · Checked 17 October 2026.

Filled synthetic acceptance example

Synthetic teaching example, not a client case or a real-store assessment. On narrow screens, scroll to read the complete table.

InputCheck basisExpected
Product+order; both allow combinationeligible store confirmedcandidate for checkout test
Same-line product+product; plan unknownPlus evidence missingnot approved
Automatic20 vs code15; incompatiblebest valid option, not sum20 proposed; verify actual selection

Supplier acceptance procedure

  1. Capture plan, checkout architecture, app/version and the two discount classes using redacted evidence.
  2. Test reciprocal settings, an excluded product and an insufficient-quantity Buy X Get Y basket.
  3. Ask the supplier to explain replacement messages and preserve actual line allocations, not only a final percentage.

Interpret the output

The20-versus15 row is a finite comparison exercise. It is not a promise that every discount engine chooses the same route for mixed-class carts. A supplier should mark an unsupported combination as unsupported rather than silently dropping a promotion and calling the result fixed.

Explicit limits

No installation, plan upgrade or live promotion change. Third-party apps, bundles and subscriptions require separate current compatibility evidence.

Replay the finite teaching model

Save both files in one folder. With Node22 or newer, run the command below. JSON contains explicit inputs and expected results. The script processes synthetic data only, with no network, credentials, payment or API calls. Passing proves the finite model only, not a live integration.

Filled inputs and expectations · Inspectable teaching script

node check.mjs discount-compatibility-evidence-pack.json