Preview Fulfillment Order Move (Coverage)
GET/api/fulfillment-orders/:fulfillmentOrder/move-preview
Read-only coverage check for a prospective whole-FO move. Reports, per line that would move, whether the target warehouse can ship it from on-hand stock or would backorder it — so the UI can warn before committing. Mutates nothing.
orders:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Use this to drive the move dialog's warning, then call PATCH .../move with acknowledge_backorder: true to commit.
Query params:
warehouse_id(required, integer, must exist) — the prospective destination.
Per-line outcome values: covered (ships in full), partial (some ships, the rest backorders), backorder (whole line backorders), blemished_shortfall (blemished line short on stock — can't backorder).
Merge-on-move. merge_into_fulfillment_order_id names the open, unsubmitted fulfillment order already at the target warehouse for the same sales order, if there is one. Committing the move folds this fulfillment order into that sibling (which survives, keeping its requested shipping details) and the move response returns the sibling. null when the target has no such sibling, or when nothing would ship there (will_empty_fo: true, the fulfillment order is removed instead).
Required permission: fulfillment_orders.index (Fulfillment Orders → View). A token also needs its orders scope.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden
Response Headers
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.