Skip to content

Import items from a spreadsheet

If you’ve got a lot of items to add or change at once, you can import them from a spreadsheet instead of typing each one in. It’s the fast way to load your catalog or push a batch of price changes. This is a one-off file upload — different from the ongoing Loyverse sync, which keeps two systems in step automatically.

Importing is part of the Advanced inventory add-on. If you don’t see Import under Catalog, it isn’t on your plan — contact Swann Software to add it.

Importing is a short guided flow — you pick your file, review what’s in it, then confirm.

  1. Go to Catalog → Import and press Download template to get a CSV with the right column headings.
  2. Fill in one row per item (a sample row shows the format).
  3. Press Choose file, pick your filled-in CSV or spreadsheet, and press Next.
  4. Review the columns. For a CSV you’ll see every column we found — marked imported, not yet stored, or ignored (anything not in the template) — plus a preview of the first few rows and the total row count, so you can catch a mis-labelled column before anything changes. (A spreadsheet — .xlsx — is checked on import instead; export it as CSV first if you want the column preview.) Press Next.
  5. Confirm & import. A short summary shows the file, how many rows will be imported, and any columns that are ignored or not stored yet. Press Import to create and update your items — then read the per-row results below.

Nothing is created or changed until you press Import on the final step, so it’s safe to go Back and choose a different file at any point.

Size limits: one import handles up to 10,000 rows and a file up to 5 MB. If your catalog is bigger, split it into a few files and import them one after another — matching is by SKU, so importing in batches loads the same items without duplicating anything.

Every row needs a name and a sku — the SKU is how an import matches a row to an item, so a row without one can’t be imported. Everything else is optional; leave anything you don’t need blank.

ColumnWhat it’s for
nameThe item name (required).
skuThe item’s SKU (required) — also how an import matches an existing item (see below).
barcodeThe barcode you scan at the register — a valid UPC / EAN (a bad barcode fails the row).
priceThe selling price, in your store’s currency (e.g. 12.50).
categoryThe category name — created if it doesn’t exist yet.
partNumberA supplier part number, for back-office search.
supplierSkuThe supplier’s own SKU.
supplierNameThe supplier’s name.
nicknamesAlternate search names, separated by a semicolon or comma (widget;gadget).
descriptionThe item description.
quantityOpening stock — applied only when the item is first created (see below).
notIndividuallySellableyes if the item is a component used in others, not sold on its own.

A couple of columns (material cost and markup) are recognized but not imported yet — if your file has them, they’re listed back to you as skipped, and nothing breaks.

An import matches on SKU. If a row’s SKU already exists, that item is updated; if it doesn’t, a new item is created. A row with no SKU can’t be matched either way, so it’s reported as failed — give every row a SKU. The quantity column only applies when an item is first created — a later import that updates the same SKU won’t touch its stock (adjust stock from the item instead, see Track your stock).

After importing you get a summary — Created, Updated, and Failed — followed by a row-by-row list. Any row that failed shows the reason, so you can fix just those rows in your file and import again. Because matching is by SKU, re-importing updates the rows that already landed rather than duplicating them.