CSV import WooCommerce : importer ses produits pas à pas
Guide pratique de l'import CSV sur WooCommerce : colonnes, produits variables, catégories hiérarchiques, images, le piège de la langue, et les alternatives au CSV.
WooCommerce intègre un importeur CSV natif depuis la version 3.1 — accessible directement depuis Produits → Importer dans l'admin WordPress. C'est gratuit, ça ne nécessite aucun plugin, et pour un catalogue simple (produits standards, colonnes bien formatées), ça fait le travail en quelques clics.
Mais dès que tu sors du cas simple — produits variables avec 15 combinaisons de tailles et couleurs, catégories hiérarchiques imbriquées sur 3 niveaux, fichier CSV qui vient d'un export Shopify ou d'un scraping formaté différemment — les subtilités du format WooCommerce te rattrapent vite. Ce guide couvre tout ce qu'il faut savoir pour que tes imports se passent bien du premier coup.
Le format CSV WooCommerce : les colonnes essentielles
Contrairement à Shopify qui impose un format unique et rigide, WooCommerce est relativement souple sur son format CSV. Le revers de cette souplesse, c'est qu'il y a plus de façons de se tromper.
Les colonnes de base
Voici les colonnes les plus utilisées dans un import WooCommerce standard :
| Colonne | Obligatoire | Description | Exemple |
|---|---|---|---|
| ID | Non | Identifiant numérique du produit. Laisser vide pour un nouveau produit, remplir pour une mise à jour | 142 (ou vide) |
| Type | Oui si variables | Type de produit : simple, variable, variation, grouped, external | simple |
| SKU | Non (mais recommandé) | Référence unique du produit | CHEM-LIN-BM |
| Name | Oui | Nom du produit | Chemise en lin bleu marine |
| Published | Non | 1 pour publié, 0 pour brouillon | 1 |
| Short description | Non | Description courte (affiché en haut de la fiche) | Chemise en lin lavé... |
| Description | Non (mais indispensable) | Description longue, en HTML | <p>Chemise en lin lavé...</p> |
| Regular price | Oui | Prix standard | 79 |
| Sale price | Non | Prix promo | 59 |
| Categories | Non | Catégories hiérarchiques séparées par > et virgules | Homme > Chemises, Lin |
| Tags | Non | Tags séparés par des virgules | lin, été, bleu |
| Images | Non | URLs d'images séparées par des virgules | https://cdn.ex.com/img1.jpg, https://cdn.ex.com/img2.jpg |
| Attribute 1 name | Si variantes | Nom du premier attribut | Taille |
| Attribute 1 value(s) | Si variantes | Valeurs possibles séparées par des pipes | S | M | L | XL |
| Attribute 1 visible | Non | 1 pour afficher sur la fiche | 1 |
| Attribute 1 global | Non | 1 pour attribut global WooCommerce | 1 |
| Meta: _stock | Non | Quantité en stock | 50 |
| Meta: _stock_status | Non | instock ou outofstock | instock |
La différence majeure avec Shopify : les catégories hiérarchiques
Shopify utilise des collections (plates, avec une colonne optionnelle Collection). WooCommerce utilise des catégories WordPress qui supportent la hiérarchie parent → enfant via le séparateur >.
Exemple : Homme > Chemises > Lin crée une arborescence à 3 niveaux. Si les catégories n'existent pas encore dans ton WooCommerce, elles sont créées automatiquement à l'import avec la bonne hiérarchie — c'est un avantage que Shopify n'a pas (Shopify crée des collections plates sans relation parent/enfant).
Pour assigner un produit à plusieurs catégories, sépare-les par des virgules : Homme > Chemises, Lin, Nouveautés.
Le piège numéro 1 : la langue des colonnes
C'est le piège le plus vicieux de l'import WooCommerce, et celui qui fait perdre le plus de temps. Les noms de colonnes dépendent de la langue de ton site WordPress.
Si ton WordPress est configuré en français, WooCommerce attend des colonnes en français lors de l'import : Nom, Description courte, Prix normal, Catégories, etc. Si ton WordPress est en anglais, il attend Name, Short description, Regular price, Categories.
Le problème : la plupart des tutoriels en ligne (y compris la doc officielle WooCommerce) donnent les noms de colonnes en anglais. Si tu construis ton CSV en suivant ces tutoriels et que ton site est en français, le mapping échoue silencieusement — les colonnes ne sont pas reconnues, les données ne sont pas importées, et tu te retrouves avec des produits vides sans comprendre pourquoi.
La solution la plus fiable : avant de construire ton fichier d'import, fais un export depuis ton propre WooCommerce (Produits → Exporter, même si tu n'as aucun produit — exporte le template vide). Les noms de colonnes de cet export sont exactement ceux que ton WooCommerce attend à l'import. Utilise-les comme référence pour construire ton fichier.
Le piège numéro 2 : les produits variables
Comme sur Shopify, les produits à variantes sont la partie la plus délicate du CSV. La logique est similaire (multi-lignes) mais le vocabulaire et la structure diffèrent.
Structure parent / variations
Un produit variable occupe plusieurs lignes dans le CSV :
- Ligne parent :
Type=variable. Contient le nom, la description, les catégories, les images principales, et la déclaration des attributs (noms + valeurs possibles) - Lignes variations :
Type=variation. Chaque ligne correspond à une combinaison d'attributs, avec son propre prix, SKU et stock
Exemple concret pour une chemise en 2 tailles et 2 couleurs (4 variations) :
Type,SKU,Name,Regular price,Attribute 1 name,Attribute 1 value(s),Attribute 2 name,Attribute 2 value(s),Categories
variable,CHEM-LIN,Chemise en lin,,Taille,"S | M",Couleur,"Bleu marine | Blanc",Homme > Chemises
variation,CHEM-LIN-S-BM,,79,Taille,S,Couleur,Bleu marine,
variation,CHEM-LIN-M-BM,,79,Taille,M,Couleur,Bleu marine,
variation,CHEM-LIN-S-BL,,79,Taille,S,Couleur,Blanc,
variation,CHEM-LIN-M-BL,,79,Taille,M,Couleur,Blanc,
Points critiques :
- Le produit parent (
variable) n'a pas de prix — ce sont les variations qui portent les prix - Les
Attribute value(s)du parent listent toutes les valeurs possibles séparées par des pipes (|), tandis que chaque variation ne porte qu'une seule valeur par attribut - Les variations héritent du nom et de la description du parent — pas besoin de les répéter
- Si tu utilises un SKU parent, chaque variation doit aussi avoir son propre SKU unique
Erreur la plus fréquente
Oublier de déclarer les attributs sur la ligne parent. Si le parent n'a pas les colonnes Attribute 1 name / Attribute 1 value(s) remplies, WooCommerce ne sait pas quels attributs les variations vont utiliser et l'import crée des variations orphelines qui n'apparaissent pas sur la fiche produit.
Le piège numéro 3 : les images
WooCommerce gère les images de deux façons dans un CSV :
- Par URL — comme Shopify, tu fournis des URLs publiques (HTTPS) et WooCommerce les télécharge dans la médiathèque WordPress au moment de l'import. Plusieurs images par produit sont séparées par des virgules dans la même colonne
Images. - Par nom de fichier — si l'image est déjà dans ta médiathèque WordPress, tu peux simplement indiquer le nom du fichier (
chemise-bleu.jpg) sans l'URL complète. WooCommerce la retrouve automatiquement.
La méthode 2 est propre à WooCommerce (Shopify ne peut pas le faire) et pratique si tu as déjà uploadé tes images en masse via FTP dans /wp-content/uploads/. Mais attention : le nom doit correspondre exactement au fichier dans la médiathèque, tirets et extensions compris.
L'import pas à pas (méthode native)
- Admin WordPress → Produits → Importer
- Sélectionne ton fichier CSV — respecte les limites PHP de ton hébergement (
upload_max_filesize, souvent 2 Mo ou 8 Mo par défaut) - Mapping des colonnes — WooCommerce affiche un écran de correspondance entre les colonnes de ton fichier et les champs produit. Si tes colonnes ont les bons noms (même langue que ton site), le mapping se fait automatiquement. Sinon, fais la correspondance manuellement.
- Lance l'import — WooCommerce traite le fichier ligne par ligne. Pour 500 produits, compte 3 à 10 minutes selon ton hébergement.
- Vérifie — ouvre quelques fiches au hasard, vérifie les variantes, les images, les catégories. Les erreurs les plus sournoises (variantes orphelines, images manquantes) ne remontent pas dans les logs.
WP All Import : l'alternative puissante
L'importeur natif WooCommerce suffit pour les cas simples, mais dès que tu as un fichier CSV avec des colonnes non standard, un gros volume, ou un besoin de mapping avancé, WP All Import devient indispensable.
Ce que WP All Import fait que l'importeur natif ne fait pas :
- Mapping par drag-and-drop — tu fais glisser tes colonnes source vers les champs WooCommerce cibles, même si les noms ne correspondent pas du tout
- Import CSV, XML, JSON et Excel — pas limité au CSV
- Transformation pendant l'import — concaténation de champs, conditions (si colonne X = valeur Y, alors...), formules de calcul sur les prix
- Imports récurrents automatisés — tu configures une URL ou un fichier FTP et WP All Import met à jour ton catalogue automatiquement à intervalle régulier
- Gestion des gros volumes — import par chunks, pas de timeout PHP
- Rollback — possibilité d'annuler un import et de revenir à l'état précédent
C'est un plugin payant (~99 $/an avec l'add-on WooCommerce), mais le gain de temps est considérable dès le premier gros import.
Le casse-tête cross-platform : importer un CSV Shopify dans WooCommerce
Si tes données viennent d'un export Shopify ou d'un scraping formaté pour Shopify, tu ne peux pas les importer directement dans WooCommerce. Les formats sont incompatibles : les noms de colonnes, la gestion des variantes, les conventions d'images — rien ne correspond. La problématique complète est détaillée dans Scraping Shopify vs WooCommerce : différences et méthodes.
Trois options pour s'en sortir :
- Remapping manuel dans un tableur — renommer chaque colonne, reformater les variantes, convertir les collections en catégories hiérarchiques. Faisable pour 20 produits, cauchemar pour 300.
- WP All Import avec mapping visuel — tu charges le CSV Shopify brut et tu fais glisser les colonnes vers les bons champs WooCommerce. C'est la voie intermédiaire.
- Utiliser un outil qui normalise automatiquement — Kaatalog scrape n'importe quelle boutique (Shopify ou WooCommerce), normalise les données dans un format unifié, et te laisse choisir la sortie : CSV format WooCommerce, CSV format Shopify, ou publication directe via l'API. Pas de mapping, pas de conversion manuelle, et si tu veux enchaîner directement avec la réécriture SEO par IA avant l'import, c'est le même workflow. Les 50 premiers crédits sont offerts à l'inscription, sans carte bancaire.
Quand laisser tomber le CSV complètement
Le CSV est un bon outil pour les imports ponctuels et simples. Mais ses limites deviennent criantes sur WooCommerce dans plusieurs cas :
- Les limites PHP de l'hébergement — timeout, upload max trop bas, mémoire insuffisante pour les gros fichiers
- La complexité des produits variables — dès que tu dépasses 3 attributs ou 20 combinaisons par produit, le CSV devient ingérable
- Les imports récurrents — un CSV manuel une fois par mois c'est OK, un CSV par semaine c'est un cauchemar
- La conversion cross-platform — mapper un export Shopify vers WooCommerce manuellement est une perte de temps évitable
Pour ces cas, les alternatives sont WP All Import (pour rester dans l'écosystème WordPress) ou un outil intégré comme Kaatalog (pour combiner scraping + réécriture + import dans un seul workflow, quel que soit le CMS source et le CMS cible). L'intégration API directe bypasse le CSV et ses contraintes : pas de limites de taille, pas de problèmes d'encodage, pas de colonnes à mapper.
En résumé
L'import CSV WooCommerce est plus souple que celui de Shopify (catégories hiérarchiques, images par nom de fichier, pas de limite stricte de taille) mais aussi plus piégeux (colonnes dépendantes de la langue, produits variables plus complexes, limites PHP de l'hébergement).
Les trois règles d'or :
- Exporte d'abord un template depuis TON WooCommerce — c'est la seule façon d'obtenir les bons noms de colonnes dans la bonne langue
- Teste sur 5 produits avant de lancer 500 — les erreurs de variantes et d'images ne remontent pas clairement dans les logs, mieux vaut les attraper tôt
- Si ton CSV vient d'une autre plateforme, ne fais pas le mapping à la main — utilise WP All Import pour du mapping visuel ou Kaatalog pour une normalisation automatique. Le temps économisé justifie largement l'investissement.
Pour aller plus loin sur l'import côté Shopify, consulte le guide CSV import Shopify. Et pour comprendre pourquoi les deux formats sont si différents malgré des données produit similaires, voir le comparatif Shopify vs WooCommerce.
Questions frequentes
Les colonnes du CSV WooCommerce doivent-elles être en anglais ou en français ?+
Ça dépend de la langue de ton site WordPress. Quand tu fais un export depuis WooCommerce (Produits → Exporter), les colonnes sont générées dans la langue du site. Si ton WordPress est en français, les colonnes seront en français ('Nom', 'Description courte', 'Prix normal', etc.). Si ton WordPress est en anglais, elles seront en anglais ('Name', 'Short description', 'Regular price'). Le piège : si tu utilises un CSV avec des colonnes anglaises sur un site français (ou l'inverse), le mapping échoue silencieusement. La méthode la plus fiable : exporte d'abord un CSV depuis TON WooCommerce (même vide), et utilise les noms de colonnes de cet export comme référence pour construire ton fichier d'import.
Quelle est la différence entre un produit variable et une variation dans le CSV ?+
Dans le CSV WooCommerce, un produit variable occupe plusieurs lignes. La première ligne est le produit parent avec Type = 'variable', et contient les données globales (nom, description, catégories, images principales, attributs). Les lignes suivantes sont les variations avec Type = 'variation', et contiennent chacune les valeurs spécifiques d'attribut (taille M, couleur bleu), le prix, le SKU et le stock de cette variation. Les variations héritent automatiquement du parent sauf pour les champs explicitement remplis. C'est le même principe que Shopify (multi-lignes, même identifiant), mais avec un vocabulaire et des colonnes différentes.
Peut-on importer un CSV Shopify directement dans WooCommerce ?+
Non, les formats sont incompatibles. Le CSV Shopify utilise ses propres noms de colonnes ('Handle', 'Body (HTML)', 'Variant Price', 'Image Src') qui ne correspondent à rien dans WooCommerce. Pour importer un export Shopify dans WooCommerce, tu dois soit mapper manuellement chaque colonne (fastidieux et source d'erreurs), soit utiliser un outil comme WP All Import qui permet du mapping par drag-and-drop, soit utiliser un outil intégré comme Kaatalog qui normalise les données et exporte au format WooCommerce quel que soit le CMS source — sans aucun mapping manuel.
Quelle taille maximum pour un fichier CSV dans WooCommerce ?+
WooCommerce n'impose pas de limite stricte comme Shopify (15 Mo), mais la limite dépend de la configuration PHP de ton hébergement : les directives upload_max_filesize et post_max_size dans le php.ini, souvent fixées à 2 Mo ou 8 Mo par défaut sur les hébergements mutualisés. Pour les gros catalogues, tu peux soit augmenter ces limites dans ton hébergement, soit découper ton fichier en plusieurs lots, soit utiliser WP All Import qui gère mieux les gros volumes en important par chunks.
WP All Import est-il indispensable pour l'import WooCommerce ?+
Non, WooCommerce a un importeur CSV natif intégré depuis la version 3.1 qui suffit pour les cas simples (catalogue standard avec produits simples et variables, colonnes compatibles, petit à moyen volume). WP All Import devient indispensable quand : ton fichier CSV n'a pas les bonnes colonnes (il faut du mapping), tu importes depuis un format non standard (XML, JSON, export Shopify), tu importes des volumes importants (1000+ produits), tu as besoin d'imports récurrents automatisés, ou tu veux des règles de transformation pendant l'import (concaténation de champs, conditions, formules). C'est un plugin payant (~99 $/an avec l'add-on WooCommerce) mais qui se rentabilise sur le premier gros import.