Shopify purchase orders not updating Cost per item? Why it happens and how to fix it
It is not a bug. Receiving a purchase order in Shopify changes your quantities, not your cost: Shopify's own help says each variant has a single static Cost per item field
that stays fixed when you receive a purchase order or transfer
. To keep Cost per item right you either type a new cost on each variant after every delivery, or use an app that reads the purchase order's prices when the stock is received. True COGS does this on its free plan: the price is recorded on arrival, blended into your weighted average, and written to Cost per item.
What happens today when you receive a purchase order
Shopify's purchase orders list the products, quantities, costs, payment terms, and supplier details for an order
(Shopify Help). Once an order is marked as ordered, you create an inventory transfer to track the shipment, receive the stock, and add cost adjustments such as Shipping amount or Customs duties (Shopify Help).
What receiving does not do is touch Cost per item. Shopify's guide for former Stocky users is explicit: Each product variant has a single static Cost per item field. This cost stays fixed when you receive a purchase order or transfer.
For weighted-average costing or landed cost allocation it points to a third-party costing app
(Shopify Help, read 21 October 2026). Merchants have asked for more in the Shopify Community, for example that purchase order lines pull in the variant's cost instead of needing it typed again (July 2026 thread), and that the receiving workflow record a landed cost per unit (July 2026 thread).
The question is old. The Shopify Community thread Purchase Orders are not updating the cost of the products was opened in August 2020 and woke up again in July and August 2026, as stores moved off Stocky and the cost sync it offered.
Shopify does give you the numbers to work from. Its purchase order cost report groups ordered quantity, supplier cost, tax, and average unit cost by purchase order, supplier, destination location, and line item
, so you can export what each order cost (Shopify Help). It is a report: it does not write anything to Cost per item.
Updating Cost per item by hand
- Before you receive, note each variant's units on hand and its current Cost per item.
- Receive the purchase order in Shopify as usual.
- For each line, work out the new weighted average: (units on hand × current cost + units received × price paid) ÷ total units. The calculator does it for you.
- In Shopify admin, open Products, select the product, open the variant, and type the new value into Cost per item. Save.
- Repeat for every line on the order.
Updating it automatically with True COGS
- Install True COGS from the Shopify App Store. On install it takes a snapshot of the costs you already have, so nothing starts from zero.
- Create and receive purchase orders in Shopify exactly as you do now. Nothing changes in your routine.
- On arrival, the purchase order price is recorded for the units actually received, checked against the last price you paid for that variant, and blended into the weighted average.
- Cost per item is written back to Shopify with the new average, or with the FIFO cost if your store uses FIFO (paid plans).
- Anything that arrives without a price, such as a transfer with no purchase order, waits in one list where you type the price once.
On paid plans you can also enter what you paid before the stock lands, and add freight and duty to the delivery (see landed cost per unit).
Checks worth having, whichever way you do it
- Only accepted units count. Rejected units never entered stock.
- Partial receipts count once. Receiving 40 of 100 today and 60 next week is two averaging steps, not three.
- A price far from the last one is a question, not a fact. A typo of $135.00 for $13.50 should be caught before it reaches the average.
- Keep the date. Cost per item has no history, so record which delivery set each price. You will need it at month-end (inventory value and COGS at month-end).
See also: Shopify purchase orders: create, receive and cost.
Questions merchants ask
Is it a bug that Shopify purchase orders don't update Cost per item?
No, it is how Shopify works. Shopify Help describes Cost per item as a single static field that stays fixed when you receive a purchase order or transfer, and points to a third-party costing app for weighted-average costing.
Do Shopify purchase orders update Cost per item?
No. Shopify Help says each variant's cost stays fixed when you receive a purchase order or transfer.
Can I add shipping and customs duties to a Shopify purchase order?
Yes, as cost adjustments on the inventory transfer linked to the purchase order. Shopify shows them in the transfer's cost summary; they are not spread into Cost per item.
Is there a free app that updates Cost per item from purchase orders?
True COGS records purchase order prices on arrival and updates Cost per item on its free plan, for up to 25 variants with a cost on record. Paid plans start at $29 a month.
Should Cost per item be the newest price or an average?
An average, unless your store uses FIFO. The newest price charges every unit already on the shelf at that price, which misstates profit until those units are gone.
Try True COGS free. True COGS is an inventory costing app for Shopify by Nexus Logic Systems. It records the price you paid on every delivery (a received purchase order or a transfer), with its share of freight and duty on paid plans, keeps every price with its date, and writes your moving weighted average cost, or FIFO cost on a paid plan, to Shopify's Cost per item. It is free for up to 25 variants with a cost on record; paid plans start at $29 a month or $290 a year.
Install from the App StoreSources
- Shopify Help: Purchase orders
- Shopify Help: Receiving inventory from a purchase order
- Shopify Help: Migrating from Stocky to Shopify inventory management
- Shopify Community: Native purchase orders don't auto-populate line item costs
- Shopify Community: Landed cost field in purchase order receiving
- True COGS on the Shopify App Store