Import or export products with a CSV file

Bring your catalogue from a spreadsheet or another platform, fix the rows that need it, and download your products as a CSV file any day.

Available on the Starter plan and up

Last updated

Bring your catalogue into NoqtaShop from a spreadsheet or another platform with a CSV file, update prices and stock in bulk, and download your products as a CSV file whenever you want. CSV import and export are on Starter and up.

Download the starter template

The template shows the shape of the file NoqtaShop reads. Start from it if you are building your list by hand.

  1. In the sidebar, open Products and select Products under it, or open your products list (opens in a new tab).
  2. At the top right, select Import CSV. The Import products from a file dialog opens.
The dialog lists the columns it reads and links to the starter template.
  1. Select Download a starter template.

The file noqtashop-import-template.csv downloads. It has the header row, in the language your console is in, and one example row: a Cotton T-Shirt with the SKU TSH-001. The template opens correctly in Excel, Arabic included.

Delete the example row before you import. If you leave it in, it is imported as an Active Cotton T-Shirt, on sale on your storefront straight away at 12.50 with 40 in stock, inside a new Clothing category.

Already selling on another platform? Export your products from there as a CSV file and try importing it as it is. NoqtaShop understands some common column names, such as Title for the name or Quantity for the stock, as well as Arabic and French ones. If the file is refused with “The file needs at least the SKU and Name columns.”, rename the column that holds each item’s code to SKU and the product title to Name. Rename any other column you want imported to its name in the table below.

The columns: SKU and Name required, the rest optional

The first row of the file must name the columns. NoqtaShop finds each column by its name, not its position, so columns can be in any order and you can leave out the optional ones. Capitals, spaces, underscores and hyphens in the names do not matter, and Arabic and French names are understood too, such as السعر or Prix for Price. Columns NoqtaShop does not use are ignored.

ColumnRequiredWhat it holds
SKUYes, in every rowYour code for the product or variant, such as LY-TRC-DRS. It is how rows are matched.
NameYes, in every rowThe product’s name.
SlugNoThe product’s link, such as terracotta-linen-shirt-dress. Left empty, it is made from the name.
StatusNoActive, Draft or Archived, in English. Empty or anything else makes a new product a Draft.
CategoryNoThe category’s own name, such as Dresses — not a path like Women > Dresses.
BrandNoThe brand, such as Layal.
DescriptionNoThe product description, as plain text.
PriceNoThe price as a number, such as 38.000. Empty means 0 for a new product.
Compare At PriceNoThe crossed-out price before a sale.
Cost PriceNoWhat the item costs you, for your profit figures.
StockNoHow many you have, as a whole number. Empty means 0 for a new product.
Track InventoryNofalse, in small letters, to sell without counting stock. Empty or anything else keeps counting on.
OptionsNoWritten by the export for reference; the import does not read it.

Write numbers with the digits 0 to 9 and a full stop for decimals, and nothing else: 38.000, not 38,000 (a comma is read as thousands), not JOD 38, and not Arabic digits such as ٣٨. Up to 2,000 product rows fit in one file.

How rows are matched: by SKU

NoqtaShop reads the file row by row and decides for each one:

The row’s SKU…What happensCounted as
belongs to a product you already haveThat variant is updated: its price, compare-at price, cost and stock, and the product’s category — only from the cells you filled in. An empty cell keeps what is there. Needs Edit products.Updated
is new, and its Slug (or, without one, its Name) matches a product you have or an earlier row of the fileA new variant is added to that product. Joining a product you already had needs Edit products.Variants added
is new, and matches nothingA new product is created, with this row as its first variant.Products created
belongs to a product you deletedNothing: a deleted product keeps its SKUs. The row is listed with SKU “…” belongs to a deleted product. Use another SKU.Listed under Rows that need a look

SKUs are matched whatever their capitals. A category name that matches none of yours is created as a new top-level category; if another category already uses the link its name makes, the new one gets the link with -2 on the end. An import does not change an existing product’s status or link, or whether it tracks stock. A deleted product’s name and link are free again, so a row named like one creates a new product with that link.

A matched row also replaces the product’s name, and its brand and description when those cells are filled. Whether customers see the new text depends on the product:

  • A product the import created, and nobody has saved on its page since: the file’s text is what customers see, in every language. Importing a different name renames it.
  • A product saved on its page in the console: customers keep seeing the name, brand and description written there, whatever the file says. The one exception is a brand or description left empty on the page: the file’s text then shows.

To rename a product or rewrite its description, use its page — see edit a product. To keep an imported product’s wording, leave Name exactly as it is and Brand and Description empty in the file. Change statuses from the list: publish many products at once.

Note

An import changes products directly, without most of the records the console keeps. Its changes do not appear on the product’s History tab or in the audit log. Stock is the exception: every stock number the file changes shows in the variant’s Stock history as Set by a product import, and an order placed while the file is imported takes its units from the new number. Raising a sold-out variant’s stock by import does not email the customers who pressed Notify me — restock such variants on the product’s page instead: see the back-in-stock email. Your storefront shows the file’s prices, stock and new categories as soon as the import finishes.

Warning

An import changes existing products as soon as it runs, and there is no undo. Before you import updates, select Export CSV so you keep a copy of your catalogue as it was.

Choose a file: a CSV of up to 5 MB

Importing needs the Add products permission. Rows that change a product you already have — an existing SKU, or a new variant for an existing product — also need Edit products. The store owner and the store manager have both. A role with Add products alone can import new products only: the other rows are listed under Rows that need a look, and the rest import. The dialog’s line under the columns says so: Rows are matched by SKU — a new SKU is created, and one already in your catalogue is updated in place, which needs the “Edit products” permission. Missing categories are created by name. See roles and permissions.

  1. On the products list, select Import CSV.
  2. In the Import products from a file dialog, drag your file onto Drop a CSV file here, or select Choose a file and pick it.

The file’s name appears and the button becomes Choose a different file.

The chosen file’s name shows in the drop area; Import is now available.

The dialog checks the file the moment you choose it, and refuses it before anything is sent:

Only a file whose name ends in .csv is accepted.
  • That is not a CSV file. Export one from your current platform, or download the template below. The file’s name does not end in .csv — an Excel workbook (.xlsx), for example. In Excel, use Save as and choose CSV UTF-8 (Comma delimited); in Google Sheets, use File, Download, Comma-separated values.
Files over 5 MB are refused before anything is sent.
  • The file is larger than 5 MB. Split it and import each part. Copy the header row into each part.
  1. Select Import. It reads Importing… until it finishes, and the dialog cannot be closed meanwhile.

If the file cannot be imported at all, nothing is changed, your file stays chosen, and a message at the bottom of the screen says why:

MessageWhat to do
The file needs at least the SKU and Name columns.Check the first row names a SKU column and a Name column.
One import carries at most 2,000 rows. Split the file and run each part.Split it into files of up to 2,000 rows, each with the header row.
Could not read the file: a quotation mark in it is never closed. …A cell has an opening quotation mark with no closing one. Fix it, save as CSV and import again.
The file is larger than 4 MB. Split it and import each part.Some files under 5 MB are still too long to read. Split it.
The file has no rows.The file is empty. Check you saved the right sheet.

Read the result: created, variants added, updated

When the import finishes, the dialog shows three counts:

  • Products created — new products.
  • Variants added — new variants added to products, from rows that share a product.
  • Updated — variants you already had, updated in place.
The rows that imported are saved; only the rows listed need fixing.

Rows with a problem are listed under Rows that need a look, with the hint Fix these lines, then import a file with only them. Importing the whole file again updates the lines that already landed, which needs the “Edit products” permission. Every other row has already been saved. When nothing needs fixing, the dialog says Every row landed.

Every row landed: there is nothing to fix.

Select Done to close the dialog, or Import another file to import the next part. When you close it, the products list reloads with your new products.

Then finish the new products in the console. A file carries no photos, so add them on each product’s Media tab (add product photos). Its text arrives in one language: translate it for your other ones. Categories the import created sit at the top level; move them under their parent in Categories. Last, publish the products together.

Because the import does not read options, variants it adds have no size or colour of their own. For a product with sizes or colours, import one row for it, then build its options on the Variants tab — see product variants. To update those variants by import later, use the SKUs NoqtaShop gave them in your file.

Fix the rows that did not import

Each row in Rows that need a look has its Row number and its Problem. Row numbers count the rows under the header: Row 9 is the ninth product row, which is line 10 of your spreadsheet.

ProblemWhat to do
Enter a SKU and a name.Fill in both cells. Every row needs them, even a variant’s.
Price “forty” is not a number.Write the price in the digits 0 to 9, such as 40.000, with no currency. Arabic digits are refused the same way.
Stock “12.5” is not a whole number.Write a whole number in the digits 0 to 9, such as 12.
SKU “LY-PSS-NVY” belongs to a deleted product. Use another SKU.A product you deleted still holds that SKU. Give the row a new SKU.
SKU “LY-TLSD-TER-M” is already in your catalogue. Changing a product needs the “Edit products” permission. Ask the store owner to add it to your role.Your role can add products but not edit them, and this row would change one. Leave the row out, or ask the store owner to import it or to add Edit products to your role.
The product “Terracotta linen shirt dress” is already in your catalogue. Adding a variant to it needs the “Edit products” permission. Ask the store owner to add it to your role.The row’s new SKU would become a variant of a product you already have. As above: leave it out, or ask the store owner.
This plan has reached its product limit.The row would create a product your plan has no room for. Move up a plan, or delete products you no longer sell — see plans and what each includes.
Without Edit products, the new products land and the rows that would change existing ones are listed.
  1. Fix those rows in your file, and save them in a new CSV file with the header row and only those rows.
  2. Select Import another file and import that file.

You can import the whole file again instead, if your role has Edit products: the rows that landed the first time match by SKU and are simply updated, so nothing is created twice. A compare-at price or cost that is not a number is not listed as a problem: it is skipped, and the rest of the row imports.

Export your products

  1. On the products list, select Export CSV.

The button reads Preparing file…, then the file downloads. Its name carries the date and time in UTC, three hours behind Jordan: products-export-20261006-112530.csv is an export made at 14:25 in Amman. If nothing downloads, select Export CSV again.

The file has the same columns as the template, and:

  • one row per variant, so a dress in five sizes is five rows with the same name and link;
  • every product, Draft and Archived included — only deleted products are left out;
  • column names and product text in the language your console is in; to export in another language, switch the console’s language first;
  • Status in English;
  • in Options, each variant’s options as technical text, such as "option":"Size" and "value":"M" with their translations and colour codes — it is there for reference, and editing it changes nothing;
  • your cost prices. Anyone whose role can view products can download it.

A cell that begins with =, +, - or @ is saved with an apostrophe in front, so a spreadsheet does not run it as a formula. The import removes the apostrophe again.

The export imports back without duplicating anything: every row matches by SKU and is updated, which needs Edit products. To change many prices or stock levels, export, edit those columns in your spreadsheet, and import the file.

Categories are the one thing to watch when you import an export back. They are matched by the name they were saved with in the console, in that language. If you exported in another language — Arabic names for categories you named in English, say — empty the Category column before you import the file back, or the import creates new categories with those names and moves the products into them.

Tip

If Arabic text in the export looks like random symbols in Excel, do not double-click the file. In Excel, open Data, then From Text/CSV, choose the file and set File origin to 65001: Unicode (UTF-8).

On the Free plan

CSV import and export, like the other bulk tools, are on Starter and up. On Free, Export CSV and Import CSV show a padlock.

On Free, Export CSV and Import CSV show a padlock.

Select one and nothing downloads or opens: a message names the plan that includes it and its price, with See plans, which opens your subscription.

Pressing a padlocked button names the plan that includes it.

See why a feature shows a padlock and plans and what each includes. On Free, add products one at a time: add a product.

Next, give your new products their photos and options, or change many products at once.