If your Shopify purchase order isn't updating inventory, it's almost always the same reason: a purchase order alone never moves stock in Shopify. The PO records what you agreed to buy; inventory only changes when you create an inventory transfer from the purchase order and mark items as received. If you created a PO, marked it Ordered, and expected quantities to rise when the boxes arrived — nothing is broken. There's a second step, and this page walks through it, plus the other four reasons receiving looks wrong, and the one that surprises everyone: received costs never update the product's cost field, by design.
Fix 1: create the transfer and receive it
Since Shopify connected POs and transfers (June 2026), the flow is:
- Open the purchase order (it must be marked Ordered, not Draft)
- Create a transfer from the purchase order — the supplier becomes the origin, and the line items prefill
- When the shipment arrives, open the transfer and accept items — in bulk or per line
- Accepted quantities become available at the destination location immediately
If you skipped steps 2–4, your PO is just a record of intent. Create the transfer, receive it, and inventory updates.
Fix 2: check the destination location
Accepted inventory lands at the transfer's destination location. If the PO's destination was set to your warehouse and you're staring at the retail store's inventory (or vice versa), the stock updated — somewhere else. Multi-location stores hit this constantly. Open the product, check inventory per location, and check which destination the transfer used.
Fix 3: rejected items don't count anywhere
At receiving you accept or reject per line. Rejected inventory doesn't add to available stock at any location — that's the point of rejecting. If someone marked damaged cases rejected and you expected them in the count, that's the gap.
Fix 4: the transfer is still In Progress
Partial deliveries are supported: a single transfer stays In Progress until every item is received, and one transfer can track multiple shipments. Only what's been accepted so far is reflected in inventory. If the supplier shipped 60 of 100 units, your inventory is up 60 — the transfer isn't done, and neither is the count.
Fix 5 (the one that isn't a bug): cost per item never updates
Shopify's documentation is explicit: each variant has a single static Cost per item field, and it stays fixed when you receive a purchase order or transfer. You can record shipment-level cost adjustments (freight, duties) on the transfer, and the cost summary will show agreed vs actual — but none of that flows into the product's cost field, your margins, or your COGS reporting. There is no native weighted-average or landed costing; Shopify's own migration doc says an app is required.
So if your supplier's price went up in March and your Shopify profit reports still look fine — this is why. The cost field is whatever someone last typed into it. (What should happen instead: weighted average cost, landed cost.)
If this keeps happening, it's not a you problem
Walk through what this troubleshooting list actually is: the PO doesn't know what the supplier confirmed, receiving doesn't know what changed after sending, and costs don't know what you actually paid. Every fix above is manual glue between systems that don't talk. That's tolerable at ten POs a year; at ten a week it's a part-time job with a food-cost-sized error bar.
The structural fix is a procurement layer where the PO stays live after sending: the supplier's confirmation, substitutions, price changes, and partial shipments update a living purchase order; receiving checks the truck against the confirmed state; and real received costs flow to your accounting instead of a static field. That's what LineNow runs beside Shopify — the full walkthrough of native POs and where they end is in How to Create Purchase Orders from Shopify, and if you landed here from Stocky, note that Stocky stops working August 31, 2026.
Sources checked
- Shopify Help: Creating transfers from purchase orders
- Shopify Help: Migrating from Stocky to Shopify inventory management (static cost-per-item behavior)
- Shopify changelog: Purchase orders now create transfers to move inventory