Skip to content

Importing products

Load a CSV or XLSX into your catalogue with the columns mapped for you, a checked sample and a run that resumes if it stops.

Updated 23 September 2026

Why
Everything the AI quotes starts from a catalogue it can read.
How
Open the Imports view of /app/catalog and choose New import; imports are for admins and owners.

Run an import

  1. Step 1.

    Upload: drop a CSV or XLSX (an XLSX reads its first sheet) and pick a Target schema, or Core fields only. Download template CSV gives you the headings.

  2. Step 2.

    Map: columns are matched by synonym and fuzzy match. Correct any that look wrong; SKU and Title are required. Name the mapping under Saved mappings to reuse it next time.

  3. Step 3.

    Validate: the first 500 rows are coerced exactly as the run will coerce them, listing unit conversions, duplicate SKUs and cells that hold no figure.

  4. Step 4.

    Choose the Duplicate SKU policy, Update existing products or Skip duplicates, then Run import.

Check the money columns

Price and cost are separate targets. A heading such as cost price or buy price maps to cost, so a buy price never becomes what you sell at. A cell reading POA or Call imports empty, not as zero.

When a run stops

  • The run keeps its place. Resume carries on from the row it reached; rows already loaded are not loaded twice.
  • Cancel import stops it cleanly, and what was loaded stays.
  • Rows that fail are listed in Download error report CSV with the row and the reason.

A 300 row endmill file importing into the Cutting tools schema: every column matched to a field without AI, then every row checked before the import runs.

300 rows checked: 0 issues, 0 duplicate SKUs

From a real test file

Before it loads a row, a run counts the new products the file would add (SKUs you already hold do not count). If they would pass your plan's product limit, the run is refused and nothing loads; see plans and usage.