What columns to include
At minimum, an inventory CSV needs: a unique SKU or item code, an item name, on-hand quantity, and unit cost. If you operate more than one location, add a location column so quantities land in the right place rather than one combined total.
Beyond the minimum, most catalogs benefit from: category, supplier, reorder point, unit of measure, and barcode/UPC. None of these are strictly required to get items into the system, but skipping them means manually filling them in per item afterward, which defeats much of the point of a bulk import.
Keep the file flat: one row per item (or one row per item-location combination, if you track multi-location stock separately). Merged cells, subtotal rows, or multi-row headers, common in spreadsheets built for human reading rather than import, will break or silently misalign a bulk import.
- Required: SKU, item name, on-hand quantity
- Strongly recommended: unit cost, location, category
- Useful if available: supplier, reorder point, unit of measure, barcode
The data problems that break imports
Duplicate SKUs are the single most common failure. Two rows with the same SKU either both import as separate items (fragmenting your stock count) or the second overwrites the first (losing data), depending on the system. Sort by SKU and scan for duplicates before uploading, every time.
Blank required fields are the second most common: a missing quantity is sometimes read as zero (understating stock) and sometimes rejects the whole row (dropping the item entirely) — neither is what you want, so fill every required column before import rather than finding out which failure mode your case hits.
Unit-of-measure mismatches are the quiet one: a spreadsheet tracking "cases" imported into a system expecting "each" will show technically-correct numbers that are off by whatever your case pack size is, and nothing in the import process will flag it, since the number is valid, just wrong.
Watch for trailing whitespace and inconsistent capitalization in SKU or category columns too — "SKU-001" and "SKU-001 " (with a trailing space) look identical to a person and read as two different items to most import parsers.
Mapping columns and running the import
Most inventory software (StockFlow included) maps your spreadsheet's columns to its own fields during import rather than requiring exact column names in advance — you upload the file, then match "Item Name" in your sheet to "Product Name" in the system, and so on. Do a small test batch (10-20 rows) first if the tool allows it, so a mapping mistake shows up in 20 items instead of 2,000.
For multi-location inventory, either include a location column and let the import route quantities per row, or run one import per location — whichever the tool supports. Mixing both approaches in the same file is a common source of quantities landing in the wrong place.
Verifying before you rely on it
An import completing without errors is not the same as an import being correct — a row that imported with the wrong quantity or the wrong location produces no error message, because as far as the system is concerned, valid data came in.
Before switching off the old system or trusting a new reorder alert, physically count your 20-30 highest-velocity items and compare against what just imported. This catches the highest-impact errors fast, since these are the items where a wrong number causes a stockout or an overselling problem soonest.
Keep the old system running in parallel for a few days rather than cutting over instantly. That overlap window is where a bad import shows up while it is still cheap to fix, instead of after a customer order reveals the gap.
Trusted by small businesses
What our customers say
“Super Kind! Quick replies from their support and very easy fixes, changed the dashboard a bit and customized it. Also gave me 450 items extra on the free plan just for me. Highly recommend and again great service!”
“Best customer service! Stockflow's customer support is fast and extremely helpful. They assisted me with customization of the software to improve my experience as a user.”