# Importer des produits en masse par fichier CSV sur PrestaShop

> L’outil natif d’import se trouve dans Paramètres avancés > Import du back-office : il accepte un fichier CSV, propose un mapping de colonnes et fonctionne bien sur un import ponctuel. Les blocages viennent presque toujours du même endroit : l’encodage du fichier, le séparateur de colonnes, ou une référence en doublon qui écrase un produit existant au lieu d’en créer un nouveau.

- Source canonique : [https://allaux.fr/prestashop/problemes/import-produits-masse-csv](https://allaux.fr/prestashop/problemes/import-produits-masse-csv)
- Langue : FR
- Dernière mise à jour : 2026-08-03

## Réponse directe

> Enregistrez le fichier en UTF-8 sans BOM avant de le déposer dans Paramètres avancés > Importer, puis déclarez explicitement le séparateur de colonnes au lieu de laisser la détection automatique décider. Surveillez la colonne Référence : une référence déjà présente en base écrase la fiche existante au lieu d’en créer une nouvelle. Testez d’abord sur dix lignes.

## Ce qui bloque le plus souvent un import CSV

L’outil d’import de PrestaShop attend un fichier encodé en UTF-8. Un fichier exporté depuis Excel en Windows-1252 garde ses accents à l’écran mais les casse à l’import : les caractères spéciaux se transforment en symboles illisibles dans les fiches produits créées.

Deuxième point de friction : le séparateur de colonnes. PrestaShop tente de le détecter automatiquement, mais un fichier avec des virgules dans les descriptions peut fausser cette détection et décaler toutes les colonnes suivantes.

Troisième point, plus silencieux : la colonne Référence sert d’identifiant de correspondance. Si une ligne du fichier porte une référence déjà présente en base, l’import ne crée pas un doublon, il écrase le produit existant avec les données de la ligne. Sur un gros fichier, ça peut modifier des centaines de fiches sans qu’aucune erreur ne s’affiche.

L’écran d’import propose ensuite une étape de mapping, où chaque colonne du fichier est associée à un champ PrestaShop : nom, prix, catégorie, quantité, description. Ce mapping peut être enregistré pour être réutilisé sur un prochain fichier ayant la même structure, ce qui évite de le refaire à chaque fois pour un fournisseur donné.

## Fichier volumineux et timeout PHP

> Sur un fichier de plusieurs milliers de lignes, l’import peut dépasser la limite de temps d’exécution PHP, max_execution_time, et s’arrêter à mi-chemin sans message d’erreur clair côté back-office. Le fichier doit alors être scindé en plusieurs lots, ou la limite ajustée côté serveur.

## Import ponctuel ou import récurrent

> Pour un import ponctuel avec un mapping simple, l’outil natif du back-office suffit. Pour un import qui doit se répéter automatiquement, comme un flux fournisseur ou une mise à jour quotidienne des stocks, un script ou une tâche planifiée développée sur mesure remplace avantageusement l’écran manuel, avec un contrôle précis sur ce qui est créé, mis à jour ou ignoré.

## Pages liées

- **Exporter le catalogue ou les commandes en CSV** — L’opération inverse, avec ses propres limites sur ce que le back-office sait sortir en un clic. ([/prestashop/problemes/export-catalogue-commandes-csv](/prestashop/problemes/export-catalogue-commandes-csv))
- **La recherche interne ne trouve pas certains produits** — Un gros import est souvent l’événement qui rend une réindexation de la recherche nécessaire. ([/prestashop/problemes/recherche-interne-ne-trouve-pas-produits](/prestashop/problemes/recherche-interne-ne-trouve-pas-produits))
- **Développement d’un module PrestaShop sur mesure** — Pour un import automatisé et récurrent, au-delà de l’écran manuel du back-office. ([/prestashop/module-sur-mesure](/prestashop/module-sur-mesure))

## FAQ

### Pourquoi mes accents sont-ils cassés après l’import ?

Presque toujours un problème d’encodage : le fichier CSV doit être enregistré en UTF-8, pas dans l’encodage par défaut d’Excel sous Windows.

### L’import a écrasé des produits existants au lieu d’en créer de nouveaux, pourquoi ?

Parce que la colonne Référence sert d’identifiant de correspondance. Une référence déjà présente en base met à jour la fiche existante plutôt que d’en créer une nouvelle, même sans le vouloir.

### L’import s’arrête à mi-chemin sans erreur visible, que faire ?

C’est souvent un timeout d’exécution PHP sur un fichier trop volumineux. Scinder le fichier en plusieurs lots plus petits contourne généralement le problème.

### Peut-on automatiser un import CSV pour qu’il tourne tout seul chaque nuit ?

Pas avec l’écran natif du back-office, qui reste une action manuelle. C’est un script ou une tâche planifiée développée spécifiquement pour ce besoin.

### Le mapping des colonnes doit-il être refait à chaque import ?

Non, si les fichiers suivants gardent la même structure de colonnes. Le mapping peut être enregistré une fois et réutilisé, ce qui simplifie les imports réguliers d’un même fournisseur.
