# Bulk-importing products via CSV file on PrestaShop

> The native import tool sits under Advanced Parameters > Import in the back office: it accepts a CSV file, offers column mapping, and works well for a one-off import. Blockers almost always come from the same three places: file encoding, the column separator, or a duplicate reference that overwrites an existing product instead of creating a new one.

- Source canonique : [https://allaux.fr/en/prestashop/problemes/import-produits-masse-csv](https://allaux.fr/en/prestashop/problemes/import-produits-masse-csv)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> Save the file as UTF-8 without BOM before dropping it into Advanced Parameters > Import, then declare the column separator explicitly instead of relying on auto-detection. Watch the Reference column: a reference already in the database overwrites the existing product instead of creating a new one. Trial ten rows first.

## What most commonly breaks a CSV import

PrestaShop’s import tool expects a UTF-8 encoded file. A file exported from Excel in Windows-1252 keeps its accented characters on screen but breaks them on import: special characters turn into unreadable symbols in the resulting product records.

Second friction point: the column separator. PrestaShop tries to detect it automatically, but a file with commas inside description fields can throw off that detection and shift every following column.

Third, quieter point: the Reference column acts as the matching key. If a row carries a reference already present in the database, the import doesn’t create a duplicate, it overwrites the existing product with that row’s data. On a large file, this can silently change hundreds of records with no error shown.

The import screen then offers a mapping step, where each file column is matched to a PrestaShop field: name, price, category, quantity, description. That mapping can be saved and reused on a future file with the same structure, avoiding the need to redo it every time for a given supplier.

## Large files and PHP timeouts

> On a file with several thousand rows, the import can exceed the PHP execution time limit, max_execution_time, and stop halfway through with no clear error in the back office. The file then needs splitting into smaller batches, or the server-side limit needs adjusting.

## One-off import or recurring import

> For a one-off import with simple mapping, the native back-office tool is enough. For an import that needs to run automatically and repeatedly, such as a supplier feed or a daily stock update, a purpose-built script or scheduled task beats the manual screen, with precise control over what gets created, updated or skipped.

## Related pages

- **Exporting the catalogue or orders to CSV** — The reverse operation, with its own limits on what the back office can output in one click. ([/prestashop/problemes/export-catalogue-commandes-csv](/prestashop/problemes/export-catalogue-commandes-csv))
- **Internal search not finding certain products** — A large import is often what makes a search re-index necessary. ([/prestashop/problemes/recherche-interne-ne-trouve-pas-produits](/prestashop/problemes/recherche-interne-ne-trouve-pas-produits))
- **Custom PrestaShop module development** — For an automated, recurring import beyond the manual back-office screen. ([/prestashop/module-sur-mesure](/prestashop/module-sur-mesure))

## FAQ

### Why are accented characters broken after the import?

Almost always an encoding issue: the CSV file needs to be saved as UTF-8, not Excel’s default Windows encoding.

### The import overwrote existing products instead of creating new ones, why?

Because the Reference column acts as the matching key. A reference already in the database updates the existing record rather than creating a new one, even unintentionally.

### The import stops halfway with no visible error, what should I do?

This is often a PHP execution timeout on too large a file. Splitting the file into smaller batches usually gets round it.

### Can a CSV import be automated to run on its own every night?

Not with the native back-office screen, which remains a manual action. That needs a script or scheduled task built specifically for the purpose.

### Does column mapping need redoing on every import?

No, as long as the following files keep the same column structure. The mapping can be saved once and reused, which simplifies regular imports from the same supplier.
