The shipping queue
- Credentials
- OAuth access token
- Scopes
orders:read
Every delivery order of the last 90 days in the pile its next action belongs to (group), plus what stops the whole shop from booking. Nothing ships until it is paid: unpaid orders are not listed.
Access: OAuth scope orders:read; not write-gated.
merchantOAuth orders:readAuthorizationBearer <token>OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.
Scope: orders:read
storeId*stringA store the person can reach. Any other id answers 404, never 403.
OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/shipping' \ -H 'Authorization: Bearer <access_token>'{ "data": { "rows": [], "blockers": [], "courierConnected": false, "origin": "12 Example Street, Greenside, Johannesburg" }}Move an order the shop delivers itself POST
`out_for_delivery` marks the lines sent and emails the customer it comes today; `delivered` can say who took it; `not_delivered` needs a reason and goes to Problems. Answers with the order as it now stands. Access: OAuth scope `delivery:write`; write-gated by the subscription.
What to pull off the shelves for these orders GET
For packing: each order's shipping lines with where each thing sits (`binLocation`, read from the live catalogue, since the order does not carry it). At most 40 orders; the rest of the ids are ignored. An order that does not exist is skipped. The client prints it, as it does tickets and tour lists. A read, so it is not write-gated. Access: OAuth scope `orders:read`; not write-gated.