Stockroom

Shopify keeps one cost. Your books need the history.

Shopify stores a single cost per variant and overwrites it, so the recorded cost of stock you already own changes whenever the next delivery is priced differently. Stockroom keeps every receipt as its own cost layer, with freight and duty included, and reports COGS on the same basis your accountant uses.

  • Cost layers, never overwritten
  • FIFO or weighted average
  • Exports your accountant can read
Receiving

Cost is set at receiving

The purchase order records what you agreed. The receipt records what you were charged, and the two can differ.

  • Edit costs at receiving. Enter the invoice costs against what arrived, with the supplier invoice reference on the receipt. The order keeps the agreed prices.
  • Allocate the charges. Freight, duty and handling spread across the order by value, by quantity, by weight, by a split you type, or not at all.
  • Late freight invoices. Charges can be corrected until the order closes. Changing one re-books the receipts already taken, so the freight reaches the landed cost and not just the document total.
  • Receipts do not change. Each receipt keeps its own landed costs. A price change next quarter does not rewrite what a delivery cost you last quarter.
  • Push a weighted average. Choosing "Receive & update costs" reads on-hand across locations before the stock moves and writes a weighted-average cost to Shopify.
  • Margin at landed cost. Product pages show the last landed cost and the margin on it next to the Shopify-cost margin. Receiving previews the margin at landed cost as you enter the invoice.
Reporting

Reports for year end

Stockroom calculates COGS by walking the cost layers, rather than multiplying an average by units sold.

  • FIFO or weighted average. Pick the method your books use. QuickBooks Online uses FIFO and QuickBooks Desktop uses average, and both reconcile.
  • Refunds. A refund reverses COGS only when the units were restocked, and a reversal never exceeds the cost that was booked.
  • Stock on hand as of a date. Units and value at cost as of any past date, for the year-end number your bookkeeper asks for.
  • Landed cost report. By supplier, product or purchase order, with totals kept separate per currency.
  • Estimates are marked. Uncosted units, foreign-currency items and stock moved outside Stockroom are counted and footnoted, with a reconciliation line.
  • Everything exports. Every report has CSV export, purchase-order and received lines export with landed columns, and any report can be emailed or posted to Slack on a schedule.
For your accountant

The three questions your accountant will ask

Here are the answers.

  • Which valuation method does it use? Whichever one your books use. FIFO consumes the oldest cost layer first; weighted average consumes at a pool average that every receipt re-weights. You choose once in Settings, and the choice governs what Stockroom reports and what it sends to your accounting sync.
  • Can we report on our own fiscal periods? Any date range, including a fiscal year that starts in October. Stock value as of a past date gives the opening and closing balance for a period that has ended, and any report can arrive by email on the first of the month without anyone having to run it.
  • Will it tie out? The totals cover every product, and the CSV export carries every row behind them, so the file you reconcile sums to the figure on screen. Where a number is an estimate, the report says so: uncosted units, foreign-currency items and stock moved outside Stockroom are each counted, with a reconciliation line.
  • One limit. COGS is calculated per item across your whole store, not per location, so a business that wants retail and online margin reported separately gets split revenue but a blended cost of goods. Per-location costing is on the roadmap but not built.
Accounting

Into QuickBooks, without retyping

Stockroom is free. MyWorks Sync, our accounting sync, is the only paid part.

  • Push purchase orders and bills. Send a purchase order to QuickBooks Online or Desktop from the order itself, with a synced deep link back to the QuickBooks document and a clear error and retry if it fails.
  • Stock adjustments too. Applied adjustments sync as documents with a stable reason code you can map to your own accounts.
  • Xero is coming. The Stockroom side is built and waiting on the MyWorks Xero app.
  • Costs that update themselves. A supplier connected through Stockroom Network publishes the prices you pay, so your costs stay current between orders.

Common questions

What is landed cost?

The full cost of getting a unit onto your shelf: what the supplier charged, plus the freight, duty and handling on that delivery, spread across the items on it. Your margin is calculated from that number.

Does it overwrite the cost in Shopify?

Only when you choose to, each time. When you update costs at receiving, Stockroom reads your on-hand across locations first and writes a weighted-average cost. Zero-cost lines do not overwrite anything.

What about orders in another currency?

Purchase orders carry their supplier currency from day one, and per-currency totals are reported separately, never combined into one figure. Automatic FX conversion is not built yet, so cost pushes and landed-cost math stay in your shop currency rather than guessing a rate.

Do I have to pay for the reporting?

No. Landed cost, COGS, the twenty-three reports and every CSV export are part of the free app. The only paid piece is MyWorks if you want purchasing to flow into QuickBooks automatically.

Free on the Shopify App Store

Try it on your own catalog

Install Stockroom free from the Shopify App Store. No trials, no credit card.