Skip to main content

Importing your existing inventory from a CSV

Bring in your existing items in bulk — Stash auto-detects columns and uses AI to clean up your data before saving.

Written by Jake
Updated today

Importing your existing inventory from a CSV

If you already have an inventory list — in a spreadsheet, a CSV export from your old system, or a file from a supplier — you can bring it all into Stash in one go. The importer auto-detects column names, lets you map anything it doesn't recognize, and uses AI to clean up your data before saving.

Most users finish a 100–500 item import in under five minutes.

Who can do this

Both Admins and Members can import inventory.

Before you start

  • You need at least one location (shop). All imported items will be assigned to the location you select during import. See How to add your first location.

  • Your file should be a .csv file (not Excel, not PDF). Most spreadsheet apps can save as CSV.

  • Your file should have a header row (column names in the first row).

What columns Stash recognises

Only one column is required: Name. Everything else is optional but recommended.

Required:

  • Name — accepted aliases: name, item name, product name, title, item, product, description

Optional:

  • Description — free text

  • Quantity — current stock (aliases: qty, stock, on hand, count)

  • Cost price — what you pay (aliases: cost, unit cost, purchase price, buy price)

  • Low stock threshold — alert level (aliases: threshold, reorder point, min stock, minimum)

  • Unit of measure — e.g. kg, L, pcs (aliases: unit, uom, measurement, units)

  • Category — product category (aliases: type, group, classification, department)

If your file uses different column names, you'll be able to map them manually in the next step.

How to import

  1. From the sidebar, open Inventory.

  2. Click the menu (⋯) in the top right and choose Import from CSV. (You can also do this during onboarding.)

  3. Pick the location these items belong to. Every imported item will be assigned to this location.

  4. Drag-drop or click to upload your CSV file.

  5. Map your columns. Stash auto-suggests matches based on common aliases — review them and adjust any that look wrong. You only need to map Name; leave everything else as Unmapped if you don't have that data.

  6. AI review. Stash uses AI to clean up category names, normalize units, and flag anything unusual. Review the suggestions and accept the ones you want.

  7. Click Import. Items are created in batches of 50 for reliability.

You'll see a summary at the end: how many items were created, how many failed (and why). Failed items don't roll back the rest — successful items are saved.

Good to know

Items are tagged as "imported"

Imported items get an opening stock transaction with source csv_import, so you can always tell which items came from import vs which were added manually. Look at the item's transaction history to see this.

Re-importing

The importer creates new items every time — it doesn't update existing ones based on name match. If you re-upload the same file, you'll get duplicates. To update existing items, edit them individually for now.

Multi-location imports

One import = one location. If you have items across multiple shops, run the import once per shop, with a CSV filtered to just that shop's items.

What about Sortly and Zoho?

Direct importers from Sortly and Zoho are coming soon. For now, export from those tools as CSV and use the CSV importer.

Troubleshooting

"My CSV failed to upload"

Most common causes: file isn't actually CSV (it's Excel or PDF), file is empty, file uses unusual encoding. Open it in a spreadsheet app, save as CSV (UTF-8), and try again.

"Some items failed to import"

The summary at the end lists the reason per item. Most often it's a missing required field (no name) or an invalid number where text was expected. Fix the rows in your CSV and re-import only those.

"Quantities look wrong after import"

Check that your Quantity column was mapped correctly during step 5. If it was mapped to the wrong column or left unmapped, items will all show 0 — delete and re-import with correct mapping, or use the manual stock adjust on each item.

Related articles

Did this answer your question?