The price on a supplier's invoice is rarely the whole story - shipping, duties, and fees all add to what a unit really costs you. Stockroom captures these at receiving so you can see true unit costs and true margins, and keep Shopify's costs accurate. Landed costs are for your eyes only; they never appear on the PDF or email your supplier sees.
Add charges to a purchase order
In the PO's Cost summary, use Add shipping or Add adjustment to record freight, duty, or other charges. For each charge, choose how it spreads across the items with Split across items:
Split by value (default) - higher-value lines absorb more.
Split by quantity - evenly per unit.
Split by weight - by each line's weight.
Custom split - type an amount per line.
Don't allocate - leave it out of unit costs.
If you split by weight, Stockroom uses each product's weight from Shopify, and you can override it per line. When a line has no weight, that charge falls back to splitting by value.
Correct costs as you receive
Freight invoices often arrive after the goods. That is fine - charges stay editable until the purchase order is closed, and each receipt records the costs that were current at that moment. If receipts are already booked when a charge changes, Stockroom re-books their landed costs so late freight still reaches your true unit costs - it confirms with you first whenever a change touches existing receipts. In the Receive stock panel you can also:
Edit each line's Unit cost to match the supplier invoice. This updates the receipt only - the PO stays your agreement.
Enter the supplier Invoice # for that receipt.
When a PO carries charges, the receive panel shows a Landed / unit column so you can see the true per-unit cost as you go.
Update Shopify to true costs
When you click Receive stock, if receiving at these landed costs would change a product's average cost, you will see an Update product costs? dialog:
Receive & update costs - receives and sets Shopify's cost per item to the new weighted average.
Receive only - receives without changing costs.
The new cost is a weighted average of what you already had on hand and what just arrived, so it reflects reality rather than only the latest shipment. As with ordering, cost updates are not offered for POs in a different currency than your store.
Two cost prompts, two different updates
Stockroom can update product costs at two moments, and they behave differently:
When you mark as ordered - if the PO's costs differ from your products, you'll see Match product costs to this order?. Choosing Order & update costs replaces each product's Shopify cost with the PO cost. It doesn't average - nothing has arrived yet.
When you receive - the Update product costs? dialog sets each product's cost to the weighted average described above.
Averaging only shows when you already have stock on hand at a different cost. With no stock on hand, the new average is simply the landed cost. And if you matched costs at ordering and then receive at that same cost, there is no prompt at receiving - the costs already agree, so there is nothing to update.
See true costs and margins
On a product's page, the Cost shows a landed figure and the Margin shows a true margin whenever landed cost differs from the plain Shopify cost.
The Landed cost report breaks down what received stock actually cost, grouped by supplier, product, or PO, with totals kept separate per currency.
The received-lines CSV export includes landed columns - the artifact your accountant will want.
Good to know: a receipt received in error can be undone entirely - see Receiving Inventory Against a Purchase Order for the undo flow. Product cost updates already pushed to Shopify are never silently rewritten - the corrected receive offers a fresh update instead.

