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 / case | Check basis | Expected decision |
|---|---|---|
| stock=3, sale enabled | confirmed | InStock |
| stock=0, approved future release | preorder policy | PreOrder |
| stock=0, no policy evidence | unknown | hold; do not infer |
Run the acceptance exercise
- Write an approved mapping for stock, preorder, backorder and unavailable states.
- Run each state through visible copy, offer data and checkout using a test product.
- 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