FIELD NOTES · ACCEPTANCE EXERCISES

Out of stock, preorder or backorder: agree the message first

A red stock label and an enabled buy button can tell different stories. Agree a bounded availability state before connecting product copy, structured data and checkout. Zero on-hand units alone cannot tell a supplier whether a preorder or a backorder promise has been authorised.

Who should use this acceptance brief

Retailers commissioning product-page and feed updates. Use this as a scoped commissioning task for a website supplier. Where system evidence is required, a teaching file is not a substitute.

Source-bound platform fact

Google’s product documentation supports distinct availability values. Structured data describes the offer; it does not create stock or establish an approved dispatch promise. Google: product snippets · Checked 16 October 2026.

Filled teaching example

Synthetic example, not a client case. Inputs, expected decisions and counterexamples follow; no live platform integration is claimed.

On narrow screens, scroll to read the complete table.

Input / caseCheck basisExpected decision
stock=3, sale enabledconfirmedInStock
stock=0, approved future releasepreorder policyPreOrder
stock=0, no policy evidenceunknownhold; do not infer

Run the acceptance exercise

  1. Write an approved mapping for stock, preorder, backorder and unavailable states.
  2. Run each state through visible copy, offer data and checkout using a test product.
  3. Record dispatch-date evidence separately and test what happens when that evidence expires.

Interpret the result and retain evidence

The example returns “hold” for missing policy and treats an explicitly unavailable listing differently from a zero-stock future sale. A status badge is not acceptance evidence for delivery. This decision is separate from checking the selected variant’s price: a price can agree across surfaces while the availability promise is still unsupported.

Limits before implementation

Finite proposed mapping only; not a stock-sync engine or a guarantee of eligibility for rich results. Actual store rules require owner approval.

Replay the finite example

Save both files in one folder and run with Node22.13 or newer. These finite checks are not a live service or certification. Filled inputs and expected outputs · Inspectable functions

node decision-check.mjs product-availability-states.json