Skip to main content

Import and export reorder points by CSV

Set reorder points, low-stock and max levels, pack sizes and minimum order quantities for many products at once with the Inventory page's CSV export and import.

For more than a handful of products, set levels in a spreadsheet: export from the Inventory page, fill in the columns, and import the file back. What each level means is in Set reorder points and stock levels.

How it works

On the Inventory page, use Export CSV and Import CSV to set levels in bulk. The import takes a file, or rows you paste: copy a table from a spreadsheet or another app's page - header row included - and paste while the import dialog is open.

The export can follow what you are looking at: with any filter or selection active, Export CSV opens a menu - All products, Current view for just the products matching your filters, or Selected products for the rows you have ticked. With a location picked, Current view follows it: the file's available column shows that location's own stock (0 for items it does not hold) and the download is named for it, such as stock-settings-main-2026-09-01.csv - a quick on-hand list for one store. With nothing filtered or selected, the button downloads the whole catalog in one click, as always.

  • Match rows by variant_id, SKU, or barcode. Rows with none of those match by product name plus variant name instead - exactly, and only when that names a single variant; otherwise the row is reported for you to fix, never guessed.

  • Add a location column for per-location overrides; leave it blank for all locations.

  • The same file carries the supplier catalog columns - supplier, supplier_sku, pack and minimum details, and a primary_supplier column that shows and sets each item's primary supplier by name. See Buy the same item from more than one supplier for how they behave.

  • This file carries stock settings only - there is no cost column and no price column in it, so it cannot be used to change what you pay for an item or what you sell it for. Costs and selling prices reach Shopify from a purchase order instead: see Keep your product costs current when you order and Update selling prices from a purchase order.

  • The available column in the export shows stock on hand for reference only - the import reads it but never changes stock counts. To set counts in bulk, count with a stocktake and use its Import counts button; to add or remove units from current stock, use Import or paste on a stock adjustment. See Count your inventory with stocktakes and Stock adjustments: corrections with a paper trail.

  • Exported files re-import as-is, and blank cells never change existing values.

  • Large files are fine. A big import runs in the background - the dialog waits and then shows what changed - so a whole-catalogue file lands without timing out. There is no limit on the number of products in a file; files up to 10MB are accepted, which is well over a hundred thousand rows.

  • Watch out for SKUs turned into things like 7.08332E+11. Spreadsheets convert long all-number SKUs and barcodes into scientific notation when the file is saved, and those rows can no longer match a product, so they are reported and skipped. Format the SKU and barcode columns as Text before saving, or paste the rows into the dialog instead of exporting a file.

  • To empty a field, put the word clear in the cell. Blank still means "leave this as it is", so clearing has to be asked for - which is what makes a partial file safe to import. It works on any value column: the three levels, safety stock, lead time, bin location and the per-supplier columns. A product left with nothing set goes back to using Stockroom's suggested levels.

  • Coming from Stocky? You usually don't need this file: Stocky's data export carries min and max levels per location, and the Stocky import writes them for you - Min becomes the reorder point, Max the max level, and nothing you have already set is overwritten. If you copied the values into a spreadsheet before the shutdown instead, columns named min stock and max stock (or just min and max) work as they are, and you can paste the copied table straight into the import dialog. See Switching from Stocky to Stockroom.

  • Supplier SKU, pack size, minimum order and pack name round-trip too - columns supplier_sku, pack_size, min_order_qty, and pack_unit (case_pack, moq, and pack_name work as aliases), set on the all-locations row.

  • A supplier column makes those four per-supplier. List the suppliers comma-separated and line the other columns up with them by position - Distributor A,Distributor B against DA-1001,DB-88. An empty slot means the item's own fallback value, a single value spreads to every supplier named, and a supplier name Stockroom does not recognize is refused rather than created.

Did this answer your question?