The spreadsheet was never wrong, just out of date
A purchasing sheet is accurate the day you update it and drifting by the end of the week. Stockroom reads your catalog, your stock and your sales straight from Shopify, so the numbers you order against are today's - and all of it still comes back out as CSV whenever you want it.
- No catalog to import
- Suppliers and POs in by CSV
- Everything out by CSV
There is no data-entry phase
The reason most inventory tools never get adopted is the fortnight of typing at the start. There is not one here.
- Your catalog is already here. Products, variants, SKUs, barcodes, costs and stock levels all come from Shopify when you install. You do not import a catalog, and you never maintain a second copy of one.
- Suppliers come from your vendors. Every Shopify vendor becomes a supplier automatically. Fill in contacts, currency, lead time and payment terms as you actually need them, not up front.
- Products assign themselves to suppliers. Vendor and product-tag rules mean a new product arrives knowing who it is bought from, so nobody is maintaining a mapping tab that goes stale the moment someone adds a SKU.
- Your sales history is the forecast. Reorder points come from up to two years of your own Shopify orders and the lead times your suppliers actually deliver in. There is no history to paste in and no model to configure.
- Bring the sheet you already have. Suppliers, stock settings - reorder points, minimum and maximum levels, pack sizes, supplier part numbers - and whole purchase orders can be created from a CSV, with header aliases so your existing column names usually just work.
- A partial file is not a destructive one. An import that only mentions three columns updates those three. It never blanks the fields it did not include, which is the failure that makes people stop trusting an importer.
The habits a spreadsheet does not have
The problem was never the grid. It was that the grid cannot tell you anything, and cannot write to Shopify.
- It tells you, instead of waiting to be opened. Out-of-stock alerts in near-realtime to Slack and email, and low-stock and reorder-point digests at an hour you choose, scoped by vendor, tag or location.
- Incoming stock is a number Shopify shows. Mark a purchase order as ordered and the incoming quantity appears on your Shopify product pages, attributed to Stockroom in the inventory history. Your staff stop asking whether it is on order.
- Receiving writes the stock. The delivery you count is the inventory update - there is no second step in Shopify to forget, and no window where the sheet and the store disagree.
- Everyone can be in it at once. No seats, no per-user pricing, no file to email around and no wondering who has it open. Anyone who can open your Shopify admin can use it.
- Nothing lives only in Stockroom. Incoming quantities and inventory changes are written to Shopify, and transfers between your locations are Shopify's own native documents. There is no silo to reconcile later.
- It remembers why a number changed. One timeline per product: receipts, adjustments, counts, transfers and daily sales in the same history, with the location on every row. A spreadsheet has one number and no memory.
Your data is never hostage
A tool you cannot leave is a tool you should not adopt. So the exports are real, and they are built to be read by something else.
- CSV out of everything that matters. Suppliers, stock settings, purchase order lines, received lines, and every one of the eleven reports. Each with its own filters applied, so you export the view you are looking at.
- Exports are built to be re-imported. English headers, dot decimals and ISO dates no matter which of the seven languages your admin is set to - so the file still parses in the next system, and still comes back into this one.
- One order, one file. Export a single purchase order from its own page, named after the PO number, carrying retail price, on hand at the destination and barcode - the columns an external label or vendor system asks for.
- Reports on a schedule. Any report can arrive as a CSV attachment by email or land in Slack, daily, weekly or monthly at your hour. The month-end file can turn up without anyone remembering it.
Common questions
Do I have to import anything to get started?
No. Install Stockroom and your products, variants, SKUs, barcodes, costs and stock levels are already there, because they come from Shopify rather than from a file. Suppliers are created from your Shopify vendors. The first thing you do is order something.
Can I import my purchase order history?
If it is in Stocky, yes - suppliers and the full PO history come across through Stocky's API, including the receiving dates, which means observed supplier lead times work from day one. If it is in a spreadsheet, CSV creates new purchase orders rather than back-filling closed ones. See the Migrate from Stocky page for what transfers.
Our sheet has columns Stockroom does not.
Some of it will not have a home, and it is better to know which. Per-line notes on a purchase order are not built yet, and neither are custom fields of your own. What does have a real home: supplier part numbers, pack sizes, minimum order quantities, reorder points, minimum and maximum levels, lead times and payment terms.
What if we want to leave later?
Then you export, and nothing is held back to make leaving awkward. Suppliers, stock settings, PO lines, received lines and every report go out as CSV with English headers and ISO dates, ready for whatever comes next.
Is the free version limited?
Purchase orders and receiving are free, and they stay free - that is the core of the app, not a trial. There is no cap on SKUs, purchase orders, suppliers, locations or users. As Stockroom grows into deeper inventory management, the advanced end of that will be paid, along with things like hands-on onboarding and priority support.
Run it on your own catalog
Install Stockroom free from the Shopify App Store. No trials, no credit card.