🔄 MigrationIntermédiaire PS 1.6 PS 1.7 PS 8.x

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.

Publié le 21 mars 2026 5 min de lecture Alexandre Carette

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 :

OrdreEntitéDépendances 1**Catégories**Aucune 2**Fabricants**Aucune 3**Fournisseurs**Aucune 4**Produits**Catégories, Fabricants, Fournisseurs 5**Déclinaisons**Produits, Attributs 6**Clients**Groupes clients 7**Adresses**Clients, Pays 8**Alias de recherche**Aucune

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

  1. **Sauvegardez votre base de données** avant tout import massif
  2. **Testez avec un petit échantillon** (10-20 lignes) avant d'importer la totalité
  3. **Désactivez les modules de cache** et de performances pendant l'import
  4. **Augmentez les limites PHP** si nécessaire :
  5. 
    ; php.ini ou .htaccess
    max_execution_time = 600
    memory_limit = 512M
    post_max_size = 128M
    upload_max_filesize = 128M
    

    Pendant l'import

    • 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

    Après l'import

    • 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

    Spécificités PrestaShop 8.x

    Sur PrestaShop 8.x, l'outil d'import a été sensiblement amélioré :

    • **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*

    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.

#import CSV #migration PrestaShop #export données #SQL Manager #catalogue produits

Questions fréquentes

Tout ce que vous devez savoir sur ce sujet.

Un projet PrestaShop ?

Discutons-en directement.

★★★★★

193 projets livrés

Gratuit & sans engagement — réponse sous 24h

Alexandre Carette

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.