Field Notes · 12 June 2026
Order states before interfaces
Why mapping paid, fulfilled, partially refunded, and on-hold beats wiring another webhook on day one.
Teams under deadline pressure often ask for “the Shopify to warehouse sync” as if those six words were a specification. They are not. Until everyone agrees what happens when an order is paid but only half-picked, every interface you build will invent its own answer.
Start with human decisions
Sit with ops and ask:
- Who owns stock when a payment is captured but the pick fails?
- What should customers see when a line is refunded but the carton already left?
- Which holds are automatic (fraud, address check) versus manual (VIP gift note)?
Write the answers as named states. Only then list the systems that must learn about each transition.
Interface inventory comes second
Webhooks, SFTP drops, and native connectors are tools. They do not replace the state model. In our Platform Integration Engagements we refuse to size middleware until the state list is on one page.
A Perth example
A merchant sold pre-orders alongside in-stock SKUs. Their warehouse file had no field for “not yet purchasable.” The sync treated pre-orders as immediate picks. Clarifying a awaiting_release state — and teaching both platforms to honour it — removed more support tickets than any performance tweak.
If you are mid-integration and arguing about payloads, pause and redraw the states. The payload argument usually shrinks.