When processing an order, check inventory levels for each line item before fulfilling; identify which items are in stock and which are backordered by comparing available quantities against order quantities
Partially fulfill the order by creating a fulfillment via the Shopify Fulfillment Orders API specifying only the in-stock line item IDs and quantities in the fulfillment_order_line_items array
Shopify automatically splits the fulfillment order, creating a new fulfillment order for the remaining unfulfilled items with status ON_HOLD or OPEN depending on your configuration
Store the backorder fulfillment order ID and expected restock date; set a hold on the remaining fulfillment order using the fulfillment order hold endpoint if needed to prevent premature fulfillment attempts
When restocked items arrive, release the hold and create a second fulfillment for the remaining items with their own tracking information
Notify the customer at each shipment stage using your email/SMS platform with the partial shipment tracking details, clearly communicating the backorder timeline
Known gotchas
Customers receive multiple tracking emails when split shipments occur; configure your notification templates to clarify that a second shipment is coming to reduce support contacts
Holding a fulfillment order prevents automatic fulfillment by fulfillment services; remember to release holds explicitly when inventory is replenished
Partial refunds for perpetually backordered items must be issued manually; there is no automatic cancellation of backorder line items after a configurable wait period without custom logic
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp