Confirm the supplier has a Shopify Partner account or a third-party ERP/WMS integration; design an API integration where the supplier can call your Shopify Admin API (or a middleware) to notify of incoming inventory.
When a purchase order is fulfilled by the supplier, receive the shipment notification and create an Inventory Transfer or use the inventoryAdjustQuantities mutation to credit the received quantities at the correct Shopify location ID.
Use the inventoryAdjustQuantities GraphQL mutation with reason 'received' and a changes array of {inventoryItemId, locationId, delta} to add received stock to the specific warehouse location.
Optionally create a PurchaseOrder using Shopify's purchase orders feature (available in Shopify admin) — the draft PO can be transmitted to the supplier and the supplier's fulfillment creates the receipt that closes the PO line.
Reconcile received quantities against expected PO lines by querying the purchase order's lineItems and comparing receivedQuantity against orderedQuantity — surface discrepancies for warehouse team review.
Subscribe to the inventory_levels/update webhook to propagate quantity changes downstream (e.g., to sales channel integrations or replenishment algorithms) in real time.
Known gotchas
inventoryAdjustQuantities requires the inventory item to already be tracked at the specified location — call inventoryActivate for the item/location pair first if the item has never been stocked at that location.
Shopify's native Purchase Orders feature is a manual UI tool; for programmatic supplier PO workflows, use a third-party procurement integration or build against the Admin API directly, as there is no public Purchase Orders API as of mid-2026.
Inventory adjustments with reason 'received' are distinct from reason 'correction' in Shopify's reporting — using the wrong reason causes discrepancies in inventory movement reports and cost-of-goods calculations.
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