Clean a PrestaShop product CSV before you import it

PrestaShop imports products from CSV in a way that feels familiar until it does not: a duplicated reference stops the batch, a price with a comma lands as text, an accent turns into mojibake, and the error tells you nothing about the row.

This guide covers what the importer expects and how to prepare the file — entirely in your browser, which matters when the catalog carries supplier costs.

Check your file before you import it

Free preflight and fixes in your browser. Nothing is uploaded.

Open the free tool

What the PrestaShop importer expects

The importer maps CSV columns to product fields with a configurable step, but some values are validated strictly:

  • Reference: the product identifier. It must be unique in the file — duplicates are the most common blocking error.
  • Name: required; multi-language stores have one name column per language, all aligned on the same row.
  • Price: a plain number (19.99). The tax-included or tax-excluded variant depends on your store settings.
  • Active: 0 or 1, not "yes", not "true".
  • Delimiter and encoding: many PrestaShop setups use semicolons and UTF-8; the file must match what the importer is configured to read.

The problems that actually break the import

In practice, failed PrestaShop imports come from a short list:

  • Duplicate references, often from merging two supplier files or re-exporting a catalog.
  • Prices with a comma decimal separator, which import as text or split into two columns.
  • Accents in names and descriptions corrupted by a Windows-1252 export read as UTF-8.
  • Blank rows and columns at the end of the file, created by the spreadsheet.
  • Category trees written with the wrong separator, so products land in no category or in a wrong one.

Prepare the file in one pass

BeforeImport has a dedicated PrestaShop preflight: it requires a Name column, flags duplicate references with row numbers, validates prices as numbers and Active as 0/1, detects the encoding, normalizes decimals and removes blank rows — each fix with a preview you approve.

  • Drop the supplier file (CSV or XLSX) and select "PrestaShop products" as import target.
  • Read the errors: fix duplicates and formats with one click each, checking the preview.
  • Export clean UTF-8 with the delimiter your PrestaShop importer expects, then import.

Why browser-only matters for product catalogs

A supplier catalog contains costs, margins and sometimes unpublished products. Uploading it to a generic online converter is a business decision, not just a convenience one. BeforeImport never uploads the file: parsing, cleaning and export happen on your device, and nothing is logged.

Frequently asked questions

Which delimiter should a PrestaShop CSV use?

It depends on how the importer in that store is configured: many setups use semicolons, others commas. The safe approach is to match the setting in the import step; BeforeImport exports with whichever delimiter you choose.

Why does the import fail with "reference already exists"?

The file contains two rows with the same Reference — often after merging supplier files. The preflight lists every duplicate with its row number so you can decide which one to keep before importing.

Why do prices with a comma fail to import?

PrestaShop expects a dot as decimal separator (19.99). A comma is read as a column separator or as text. Normalizing the price column before export fixes every row at once.

How do I handle multi-language name and description columns?

Keep one column per language exactly as the importer expects them, all on the same row, and make sure the header names match. The preflight validates structure and formats, not translations.

Is my catalog uploaded anywhere?

No. The file stays on your device: BeforeImport has no upload step and no server that receives product data.

Related guides

Try it on your messiest file

Deterministic fixes, preview before every change, export CSV/XLSX and a cleaning report.

Open the free tool