Import & Export
Bulk import products from CSV or XLSX, paste from Excel, export the current grid view, and manage Price Group prices via CSV.
Overview
The Import / Export menu on the Products page lets you bring in or update large numbers of products at once, and export the current grid view.
Price Group prices have their own separate Import / Export menu on the Pricing tab.
Products Export
Export Current View (CSV)
Import / Export → Export Current View (CSV) exports exactly what is visible in the grid at the time you click — including any active filters, search terms, and sort order.
- Only currently visible columns are included. Use the Columns button to show or hide columns before exporting.
- The Actions column is always excluded from the export.
Products Import
How import works
Product import uses a three-step flow:
| Step | What happens |
|---|---|
| 1. Preview | Parse your file or pasted data and show a table of rows to be created or updated. Validation issues appear as banners before you confirm. |
| 2. Confirm | Review the parsed rows and click Import to submit. |
| 3. Result | See a success/error summary. Row-level errors are listed inline. Successful rows are not rolled back if others fail. |
Rows are matched by SKU — if a SKU already exists in your workspace, that product is updated (upsert). New SKUs create a new product.
Input methods
Upload CSV / XLSX
- Click Import / Export → Upload CSV / XLSX.
- Select a
.csv,.tsv,.txt, or.xlsxfile. - The file is parsed and shown in the Preview step before anything is saved.
Paste from Excel
- Click Import / Export → Paste from Excel.
- Paste rows copied directly from a spreadsheet.
- Both comma-separated and tab-separated input are accepted.
Download Template
Import / Export → Download Template gives you a CSV file pre-filled with the correct column headers and one example row using your existing Tax Codes and Categories.
Column specification
| # | Column | Required | Notes |
|---|---|---|---|
| 1 | sku | Yes | Your internal product code. Used to match existing products (upsert). |
| 2 | productName | Yes | Product display name. |
| 3 | defaultPrice | Yes | Base EACH price (ex-tax). Must be a valid number ≥ 0. |
| 4 | taxCodeName | No | Must match an active Tax Code name in your workspace. |
| 5 | categoryName | No | Must match an active Category name in your workspace. |
| 6 | stockQty | No | Stock on hand. Negative values are allowed. |
| 7 | outOfStockMode | No | manual or rule. Defaults to manual if blank. |
| 8 | isActive | No | true or false. Defaults to true if blank. |
| 9 | isOutOfStock | No | true or false. Defaults to false if blank. |
| 10 | allowZeroPrice | No | true or false. Defaults to false if blank. A price of 0 is only valid when this is true. |
If your file has no header row, positional layout is used. Files with no header must have between 3 and 10 columns. Any other column count is rejected.
File limits
| Limit | Value |
|---|---|
| Maximum file size | 3 MB |
| Maximum rows | 1,000 |
| Warning threshold (rows) | 801–1,000 rows — import proceeds with a warning |
| Warning threshold (size) | 2.5 MB–3 MB — import proceeds with a warning |
Files exceeding the hard limits cannot be confirmed. Split the file and import in batches.
Validation rules
| Field | Rule |
|---|---|
| sku | Required. |
| productName | Required. |
| defaultPrice | Required. Must be a valid number. Cannot be negative. Can be 0 only when allowZeroPrice is true. |
| taxCodeName | Must match an active Tax Code name in your workspace. Name must be unique (not ambiguous). |
| categoryName | Must match an active Category name in your workspace. Name must be unique (not ambiguous). |
| outOfStockMode | Must be manual or rule if provided. |
| isActive / isOutOfStock / allowZeroPrice | Must be true or false if provided. |
| stockQty | Must be a valid number if provided. |
Import error reference
| Error | Meaning |
|---|---|
SKU is required. | The sku column is blank for this row. |
Product name is required. | The productName column is blank for this row. |
Default price is required. | The defaultPrice column is blank for this row. |
Default price must be a valid number. | The defaultPrice value cannot be parsed as a number. |
Default price cannot be negative. | The defaultPrice value is below zero. |
Default price can be 0 only when AllowZeroPrice is true. | Price is 0 but AllowZeroPrice is not enabled for this row. |
IsActive must be true or false. | The isActive value is not a recognised boolean. |
IsOutOfStock must be true or false. | The isOutOfStock value is not a recognised boolean. |
AllowZeroPrice must be true or false. | The allowZeroPrice value is not a recognised boolean. |
OutOfStockMode must be manual or rule. | The outOfStockMode value is not supported. |
Stock Qty must be a valid number. | The stockQty value cannot be parsed as a number. |
Category name was not found or is inactive in this workspace. | The categoryName does not match any active Category. |
Category name matches more than one category in this workspace. | Two or more active Categories share the same name — resolve the conflict first. |
Tax Code name was not found or is inactive in this workspace. | The taxCodeName does not match any active Tax Code. |
Tax Code name matches more than one code in this workspace. | Two or more active Tax Codes share the same name — resolve the conflict first. |
SKU appears more than once in this import file. | The same SKU appears in multiple rows within the file being imported. |
SKU already exists in this workspace. | A product with this SKU already exists and the import attempted to create (not update) it. |
The import header contains duplicate columns. | Two or more columns in the header row share the same name. |
The import header is missing required columns. | A required column (sku, productName, or defaultPrice) is absent from the header. |
This row does not match the supported product import layout. | The row has an unexpected number of columns for the detected layout. |
Do not mix incompatible product import layouts in the same file. | Rows in the file use different column counts that cannot be resolved to a single layout. |
For importing and exporting Price Group prices, see Price Group Import & Export.