FIELD NOTES · ACCEPTANCE EXERCISES

Order received is not the same as ready for pickup

A customer travelling to a store too early is often a message-state problem, not a checkout problem. Separate the order acknowledgement, ready-for-pickup notice and collection confirmation. The website supplier needs an approved trigger and location-specific instructions for each, not one generic success email.

Who should use this acceptance brief

Retailers offering click and collect. Use this as a scoped website handover task. Where real system evidence is required, teaching examples are not a substitute.

Source-bound platform fact

Shopify describes marking an order ready for pickup and subsequently picked up, with notifications at those stages. Location-specific pickup instructions can override general template content. Shopify: pickup in store · 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
receivedpacking not confirmedwait
readyapproved location instructionscollect
picked-upcollection recordedcollected

Run the acceptance exercise

  1. Approve the state-to-message map with store staff, including opening and collection conditions.
  2. Test each actual notification and record the sending trigger and pickup location.
  3. Change the test location and verify which instruction text the customer receives.

Interpret the result and retain evidence

The fixture maps three synthetic states and holds unknown input. It does not send notifications or prove an item is physically ready. Keep a permitted order timeline and the exact message copy together; a delivered acknowledgement email is not evidence staff have completed packing.

Limits before implementation

Excludes identity checks, live inventory and collection fraud prevention. No real orders, customers or email submissions are created.

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 pickup-ready-notification-contract.json