Shopify’s Cost per item doesn’t update when you receive stock
Receiving a purchase order changes your inventory quantities, but Shopify leaves the product’s Cost per item unchanged. Here is how to keep that figure current and maintain a record of what you paid.
Receiving updates quantities, not Cost per item
Shopify’s native purchase orders record supplier prices and received quantities. However, receiving a purchase order or transfer does not automatically replace the variant’s Cost per item. Shopify recommends a third-party inventory app for weighted-average costing or automatic landed-cost allocation.
If your supplier’s price changes and nobody updates the product cost, future sales may use an outdated figure in your profit reports. A cost that is too low overstates gross profit; one that is too high understates it.
That does not mean changing today’s product cost rewrites every earlier sale. Shopify’s standard gross-profit reports use the cost recorded at the time of sale. Updating the field is also different from keeping a dated purchase-cost history for each SKU.
Three ways to keep unit costs up to date
1. Update Cost per item after each delivery
For a small catalog, use Shopify’s product editor, bulk editor, or product CSV. Enter the cost calculated under your chosen method and keep the supplier invoice and calculation as supporting records.
This is straightforward when deliveries are infrequent. Make the update part of your receiving checklist so a price change does not get missed.
2. Maintain a weighted average in a spreadsheet
Track opening stock, receipts, sales, returns, and adjustments. Under a moving weighted-average method, each receipt blends the cost of stock still on hand with the cost of the new delivery. Copy the result to Shopify.
Dividing all historical purchase spending by all historical units purchased does not necessarily give the cost of your current stock. Units already sold must be handled consistently with the costing method.
3. Use an app that recalculates costs on receipt
Look for a purchasing app that records receipts, accounts for remaining stock, and writes the calculated cost back to Shopify. Check how it handles partial receipts, landed costs, foreign currencies, and stock that predates the app.
Replenio includes weighted-average costing on its Free plan and FIFO on Pro. Both rely on recorded cost batches; reconcile opening stock before relying on a valuation.
Weighted average: a worked example
Assume you have 100 units on hand at $4.00 each and receive another 150 units at $4.40. There are no additional charges or currency conversions in this example.
New average = (100 × $4.00 + 150 × $4.40) ÷ 250 = $4.24 per unit.
You then sell 200 units. Under the moving weighted-average method, the remaining 50 units still carry a cost of $4.24 each.
A later delivery brings 200 units at $4.75:
New average = (50 × $4.24 + 200 × $4.75) ÷ 250 = $4.648, or $4.65 rounded.
Averaging all three purchases instead would give $4.47. That includes units already sold, so it is not the moving-average cost of the 250 units now on hand.
Use accepted quantities for partial receipts and include eligible landed costs before averaging. For foreign-currency purchases, use the conversion required by your accounting policy consistently.
FIFO works differently: costs are assigned from the oldest remaining batch first. A single Shopify cost field cannot represent all those layers or the different batch costs within one sale.
How Replenio handles receipt costs
Record a delivery against a purchase order and Replenio creates cost batches for the accepted stock. It calculates weighted-average or FIFO cost, then syncs the resulting unit cost to Shopify.
Order-level freight, duties, and fees can be distributed across inventory lines in proportion to line value. Pro adds dated cost history and a gross-profit report based on recorded batch costs. That report has its own coverage limits and does not deduct refunds or cancellations.
Start with the Free plan to check a receipt against your own invoice. Purchase orders, receiving, weighted-average costing, and landed-cost allocation are included, with unlimited SKUs and locations.
Frequently asked questions
- Does Shopify update Cost per item when I receive a purchase order?
- No. Native receiving updates quantities but leaves the variant’s Cost per item unchanged.
- Does changing Cost per item change past gross-profit reports?
- Shopify’s standard gross-profit reports use the cost recorded at the time of sale. Updating today’s cost does not supply a missing purchase-cost history or automatically correct past sales.
- Can Shopify calculate weighted-average or FIFO costs?
- The native Cost per item field does not perform these calculations. Use a separate costing system or an app, and check how calculated costs are synced.
- Can I update costs in bulk?
- Yes. Shopify’s bulk editor and product CSV can update Cost per item across variants. You still need to calculate the values and keep supporting records.
- Should I average every purchase I have ever made?
- Not for a moving-average valuation of current stock. Blend the value of remaining stock with the new receipt; account for sales and other stock movements between receipts.