Migrer ses données vers PrestaShop : guide complet d'import CSV
Comment importer produits, catégories, clients et déclinaisons dans PrestaShop via l'outil d'import CSV natif. Guide pas à pas avec fichiers modèles.
En bref : Pour migrer des données vers PrestaShop, la méthode la plus fiable consiste à partir d'une installation vierge puis à utiliser l'outil d'import CSV natif en respectant l'ordre des dépendances (catégories → produits → déclinaisons → clients → adresses), en combinant le SQL Manager pour l'export et phpMyAdmin pour les cas complexes.
Pourquoi partir d'une installation vierge avant d'importer ses données
Lorsqu'on souhaite migrer une boutique PrestaShop ou reconstruire son catalogue à partir de zéro, la méthode la plus fiable consiste à réaliser une installation vierge, puis à importer ses données via l'outil natif d'import CSV. Cette approche présente plusieurs avantages par rapport à une copie brute de base de données :
- On repart sur une base saine, sans données de démonstration corrompues
- Les index et les relations entre tables sont correctement générés
- On maîtrise précisément ce qui est importé
- On évite les conflits d'identifiants entre l'ancienne et la nouvelle installation
L'outil d'import CSV natif de PrestaShop
Accéder à l'outil d'import
L'outil d'import se trouve dans le back-office :
- **PrestaShop 1.6 :** Menu *Paramètres avancés > Import*
- **PrestaShop 1.7 / 8.x :** Menu *Paramètres avancés > Importer*
Types de données importables
PrestaShop gère nativement l'import CSV pour les entités suivantes, et il est essentiel de respecter un ordre d'import précis pour éviter les erreurs de dépendances :
Préparer ses fichiers CSV
Chaque type d'entité possède sa propre structure de colonnes. PrestaShop fournit des fichiers modèles téléchargeables directement depuis l'interface d'import. Avant de vous lancer, téléchargez systématiquement ces exemples pour connaître les colonnes attendues.
Quelques règles universelles pour vos fichiers CSV :
- Encodage : UTF-8 (sans BOM)
- Séparateur : point-virgule (;) par défaut
- Délimiteur de texte : guillemets doubles (")
- Première ligne : en-têtes de colonnes
Exemple de structure pour un fichier produits
"ID";"Active";"Name";"Categories";"Price tax excl.";"Tax rule ID";"Reference";"Description";"Meta title";"Meta description"
"";"1";"Mon produit";"Accueil > Ma catégorie";"29.90";"1";"REF-001";"<p>Description du produit</p>";"Mon produit - Boutique";"Découvrez mon produit de qualité"
Exemple de structure pour un fichier catégories
"ID";"Active";"Name";"Parent category";"Description";"Meta title";"Meta description";"URL rewritten"
"";"1";"Ma catégorie";"Accueil";"Description de la catégorie";"Ma catégorie";"Découvrez notre sélection";"ma-categorie"
Exporter ses données depuis l'ancienne boutique
Méthode 1 : Le SQL Manager de PrestaShop
PrestaShop intègre un outil méconnu mais puissant : le SQL Manager (Menu *Paramètres avancés > SQL Manager* ou *Requêtes SQL*). Il permet d'exécuter des requêtes SELECT directement depuis le back-office et d'exporter les résultats en CSV.
Exemple pour exporter tous les produits actifs avec leurs informations principales :
SELECT
p.id_product,
p.active,
p.reference,
pl.name,
pl.description,
pl.description_short,
pl.meta_title,
pl.meta_description,
pl.link_rewrite,
p.price,
p.id_tax_rules_group,
p.quantity
FROM ps_product p
LEFT JOIN ps_product_lang pl
ON p.id_product = pl.id_product
AND pl.id_lang = 1
WHERE p.active = 1
ORDER BY p.id_product ASC;
Exemple pour exporter les catégories avec leur hiérarchie :
SELECT
c.id_category,
c.id_parent,
c.active,
c.level_depth,
cl.name,
cl.description,
cl.meta_title,
cl.meta_description,
cl.link_rewrite
FROM ps_category c
LEFT JOIN ps_category_lang cl
ON c.id_category = cl.id_category
AND cl.id_lang = 1
WHERE c.id_category > 2
ORDER BY c.level_depth ASC, c.position ASC;
Note : Le préfixe
ps_correspond au préfixe par défaut des tables. Adaptez-le si vous avez personnalisé le vôtre lors de l'installation.
Méthode 2 : phpMyAdmin pour les données avancées
Pour les données qui ne sont pas directement exportables via le SQL Manager (images, attributs complexes, règles de prix spécifiques), phpMyAdmin offre plus de flexibilité :
- Export ciblé table par table
- Jointures complexes multi-tables
- Export au format CSV avec options de formatage avancées
-- Exporter les déclinaisons avec leurs attributs
SELECT
pa.id_product,
p.reference AS product_reference,
pa.reference AS combination_reference,
pa.price AS impact_price,
pa.quantity,
GROUP_CONCAT(CONCAT(agl.name, ':', al.name) SEPARATOR ',') AS attributes
FROM ps_product_attribute pa
JOIN ps_product p ON pa.id_product = p.id_product
JOIN ps_product_attribute_combination pac ON pa.id_product_attribute = pac.id_product_attribute
JOIN ps_attribute a ON pac.id_attribute = a.id_attribute
JOIN ps_attribute_lang al ON a.id_attribute = al.id_attribute AND al.id_lang = 1
JOIN ps_attribute_group_lang agl ON a.id_attribute_group = agl.id_attribute_group AND agl.id_lang = 1
GROUP BY pa.id_product_attribute
ORDER BY pa.id_product ASC;
Bonnes pratiques pour une migration réussie
Avant l'import
- **Sauvegardez votre base de données** avant tout import massif
- **Testez avec un petit échantillon** (10-20 lignes) avant d'importer la totalité
- **Désactivez les modules de cache** et de performances pendant l'import
- **Augmentez les limites PHP** si nécessaire :
- Utilisez l'option **"Forcer tous les numéros d'ID"** si vous souhaitez conserver les identifiants d'origine
- Activez **"Supprimer tous les produits avant l'import"** uniquement sur une installation vierge
- Pour les gros catalogues (> 5 000 produits), découpez vos CSV en lots de 2 000 à 3 000 lignes
- Regénérez les miniatures via *Préférences > Images > Régénérer les miniatures*
- Reconstruisez l'index de recherche via *Paramètres de la boutique > Recherche > Indexation*
- Vérifiez les URLs réécrites et les associations de catégories
- Contrôlez les prix TTC dans le front-office
- **Interface modernisée** avec Symfony et un meilleur feedback visuel
- **Gestion mémoire optimisée** pour les imports volumineux
- **Validation des données renforcée** avec des messages d'erreur plus explicites
- Le SQL Manager reste disponible mais il est désormais accessible via *Paramètres avancés > Gestionnaire SQL*
; php.ini ou .htaccess
max_execution_time = 600
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M
Pendant l'import
Après l'import
Spécificités PrestaShop 8.x
Sur PrestaShop 8.x, l'outil d'import a été sensiblement amélioré :
Pour les migrations depuis PrestaShop 1.6 vers 8.x, l'export CSV + import reste souvent plus fiable qu'une mise à jour directe, car il permet de nettoyer les données obsolètes et de repartir sur une structure de base de données propre.
Automatiser l'import avec l'API Webservice
Pour les migrations récurrentes ou les synchronisations avec un ERP, PrestaShop expose une API REST (Webservice) qui permet d'automatiser les imports :
<?php
// Exemple d'import produit via l'API Webservice PrestaShop
$url = 'https://ma-boutique.fr/api/products';
$key = 'VOTRE_CLE_WEBSERVICE';
$xml = '<?xml version="1.0" encoding="UTF-8"?>
<prestashop>
<product>
<active>1</active>
<name><language id="1">Mon nouveau produit</language></name>
<price>29.90</price>
<id_category_default>2</id_category_default>
<reference>REF-001</reference>
</product>
</prestashop>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $key . ':');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: text/xml']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
Cette méthode est particulièrement adaptée aux catalogues de plus de 10 000 références où l'import CSV atteint ses limites.
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.