Guide
Comment importer des produits en masse dans WooCommerce
WooCommerce peut importer des centaines de produits à la fois à partir d’un fichier CSV. Ce guide présente l’importeur intégré, les cas où une extension ou l’API REST est plus adaptée, et comment obtenir des données propres dans le CSV dès le départ.
Ajouter les produits un par un dans l’administration WooCommerce convient pour une petite boutique, mais intégrer un catalogue fournisseur de cette façon peut prendre des jours. WooCommerce inclut un importeur CSV de produits, et il existe des extensions d’import et une API pour les tâches plus volumineuses ou récurrentes.
L’import lui-même est rarement la partie difficile. Le plus difficile est de produire un CSV correct : une ligne par produit ou par variation, les bonnes colonnes, des attributs cohérents et des descriptions dignes d’être publiées.
Option 1 : l’importeur CSV intégré de WooCommerce
WooCommerce est fourni avec un importeur et un exporteur CSV de produits. Dans l’administration WordPress, allez dans Produits → Tous les produits et choisissez Importer. Téléversez votre CSV, associez ses colonnes aux champs WooCommerce, puis lancez l’import. Cocher « Mettre à jour les produits existants » permet de mettre à jour les produits identifiés par ID ou par SKU au lieu de créer des doublons.
- Exportez d’abord un produit existant et utilisez ce fichier comme modèle — il montre les noms de colonnes exacts attendus par votre boutique.
- Les colonnes habituelles comprennent Type, SKU, Name, Published, Short description, Description, Regular price, Categories, Tags, Images et Attribute 1 name / Attribute 1 value(s).
- Les images sont importées à partir d’URL ; elles doivent donc être accessibles publiquement au moment de l’import.
- Les produits variables nécessitent une ligne parente de type « variable » et une ligne par variation faisant référence au parent.
- Les fichiers très volumineux peuvent dépasser le délai imparti sur un hébergement mutualisé — découpez-les en lots de quelques centaines de lignes.
Option 2 : extensions d’import
Les extensions d’import tierces ajoutent des fonctions absentes de l’importeur natif : imports planifiés ou récurrents depuis un flux fournisseur, prise en charge du XML, règles de transformation des champs et meilleure gestion des très gros fichiers. Elles se justifient lorsqu’un fournisseur envoie régulièrement des fichiers de prix et de stock mis à jour.
Les extensions attendent tout de même des données structurées. Si votre fournisseur vous envoie des PDF plutôt qu’un flux, une extension ne supprime pas le travail de transformation de ces PDF en lignes.
Option 3 : l’API REST de WooCommerce
Les développeurs et les outils d’intégration peuvent créer des produits via l’API REST de WooCommerce, y compris un point d’accès par lot qui crée ou met à jour de nombreux produits en une seule requête. Cela convient aux flux automatisés et aux applications qui créent directement des produits sans passer par un CSV.
Doc2Shelf emprunte cette voie : après vérification, il envoie les produits vers WooCommerce sous forme de produits simples en brouillon, avec des descriptions longue et courte, afin que vous puissiez les contrôler dans WooCommerce avant de les mettre en ligne. Les attributs de filtre globaux et les produits variables se configurent séparément dans WooCommerce.
Préparer les données produit pour un import en masse
Quelle que soit la méthode d’import, la qualité des données détermine le résultat. Avant d’importer :
- Donnez à chaque produit un SKU unique — c’est ainsi que les mises à jour retrouvent le bon produit par la suite.
- Créez d’abord les catégories et les attributs globaux dans WooCommerce, puis référencez-les de façon cohérente.
- Normalisez les spécifications : mêmes unités, mêmes noms d’attributs, une valeur par cellule.
- Rédigez de vraies descriptions au lieu de coller le texte du fournisseur ; les places de marché et les moteurs de recherche valorisent les contenus uniques.
- Importez en brouillon pour un premier essai — réglez Published sur -1 (0 rend les produits privés) — puis vérifiez un échantillon avant de tout publier.
Quand votre fournisseur n’envoie que des PDF
De nombreux fournisseurs fournissent leurs fiches techniques et catalogues en PDF, et non en flux CSV. Dans ce cas, le goulot d’étranglement est l’extraction : quelqu’un doit lire chaque PDF, remplir les colonnes et rédiger une description.
Vous pouvez le faire manuellement, ou extraire les données avec un outil et les vérifier. Doc2Shelf lit les PDF fournisseurs, extrait les spécifications pour vérification, rédige les descriptions longue et courte WooCommerce et crée les produits en brouillon via l’API REST — ce qui remplace l’étape du tableur pour les catalogues issus de PDF.
Erreurs d’import WooCommerce courantes
Si un import échoue ou produit des résultats inattendus, vérifiez d’abord ces points :
- SKU en double ou manquants, qui entraînent l’omission de lignes ou la duplication de produits.
- Mauvais encodage du fichier — enregistrez le CSV en UTF-8 pour que les caractères accentués soient importés correctement.
- URL d’images qui redirigent, exigent une connexion ou pointent vers de très gros fichiers.
- Chemins de catégories écrits de manière incohérente (utilisez « Parent > Enfant » pour les catégories imbriquées).
- Variations dont les valeurs d’attributs ne correspondent pas à celles du produit parent.
Référence des colonnes du CSV de produits WooCommerce
L’importateur de base lit un ensemble fixe de noms de colonnes. Exporter un produit de votre propre boutique vous donne les en-têtes exacts attendus par votre version de WooCommerce ; le tableau ci-dessous explique les colonnes les plus importantes pour un import en masse. Seule la colonne Name est obligatoire — toutes les autres sont facultatives, mais un catalogue importé sans Type, SKU, prix ni catégories laisse beaucoup de travail manuel pour plus tard.
Les colonnes dont l’en-tête comporte une unité, comme Weight et les trois dimensions, affichent l’unité configurée dans les réglages de votre boutique ; copiez donc ces en-têtes depuis un export plutôt que de les saisir. Les données personnalisées qui n’ont pas de colonne propre vont dans une colonne dont l’en-tête commence par meta: suivi de la clé du champ.
| Colonne | Contenu | Exemple | Remarques |
|---|---|---|---|
| ID | ID d’un produit WooCommerce existant | — | Laissez vide pour les nouveaux produits ; les imports de mise à jour font d’abord la correspondance sur l’ID. |
| Type | Type de produit | simple | Aussi variable, variation, grouped ou external. Virtual et downloadable sont des désignations ajoutées à un produit, et non des types distincts. |
| SKU | Votre code produit unique | ACME-KTL-17 | Deuxième clé de correspondance pour les mises à jour, après l’ID. Doit être unique dans la boutique. |
| GTIN, UPC, EAN, or ISBN | Identifiant produit mondial | 4006381333931 | Champ de base. Depuis WooCommerce 11.2, c’est la clé de correspondance de repli lorsque l’ID et le SKU sont tous deux vides. |
| Name | Titre du produit | Bouilloire en acier inoxydable 1,7 L | La seule colonne obligatoire. |
| Published | Statut après l’import | -1 | 1 = publié, 0 = privé, -1 = brouillon, 2 = en attente de relecture. |
| Regular price / Sale price | Prix | 49.90 | Nombres simples, sans symbole monétaire. |
| Stock | Quantité en stock | 25 | À utiliser avec In stock? et Backorders allowed? selon les besoins. |
| Weight (unit), Length (unit), Width (unit), Height (unit) | Poids et dimensions d’expédition | 1.2 | L’en-tête affiche l’unité de votre boutique, par exemple kg ou cm. |
| Categories | Catégories de produits | Cuisine > Bouilloires, Cadeaux | Séparées par des virgules ; « > » indique une sous-catégorie. |
| Images | URL des images | https://cdn.example.com/ktl-front.jpg | Séparées par des virgules ; la première image devient l’image mise en avant. |
| Parent | Produit parent d’une ligne de variation | ACME-KTL | Le SKU du parent, ou id: suivi de l’ID du parent. |
| Attribute 1 name / Attribute 1 value(s) | Un attribut et ses valeurs | Couleur / Rouge, Bleu | Ajoutez Attribute 2, Attribute 3, etc. pour d’autres attributs. |
| Attribute 1 visible / Attribute 1 global | Indicateurs pour cet attribut | 1 / 1 | Visible l’affiche sur la page produit ; global utilise un attribut commun à toute la boutique. |
| Attribute 1 default | Valeur présélectionnée d’un produit variable | Rouge | À renseigner sur la ligne du parent. |
| meta:supplier_code | Un champ méta personnalisé | D-4471 | Tout en-tête commençant par meta: est enregistré comme méta personnalisée. |
Produits variables dans un CSV : lignes parent et lignes de variation
Un produit variable s’étend sur plusieurs lignes : une ligne parent qui définit le produit et les valeurs d’attribut qu’il propose, et une ligne par variation qui porte le prix, le SKU et le stock d’une combinaison donnée. La ligne parent a pour Type « variable » ; chaque ligne de variation a pour Type « variation » et renvoie au parent dans la colonne Parent, en utilisant le SKU du parent ou id: suivi de son ID.
Les colonnes d’attributs relient les lignes entre elles. Sur le parent, Attribute 1 value(s) liste toutes les valeurs proposées par le produit, séparées par des virgules. Sur chaque variation, le même Attribute 1 name apparaît avec exactement une de ces valeurs. L’orthographe et les majuscules doivent concorder : une variation qui indique « rouge » sous un parent proposant « Rouge » peut se retrouver sans valeur d’attribut exploitable.
Réglez Attribute 1 global sur 1 sur le parent et ses variations lorsque vous utilisez un attribut commun à toute la boutique, créé sous Produits → Attributs — c’est ce avec quoi fonctionnent la navigation par filtres et les widgets de filtre. Depuis WooCommerce 11.1, un import de mise à jour peut aussi ajouter de nouvelles variations à un produit variable déjà existant, ce qui permet d’étendre une gamme sans reconstruire le parent.
- Placez chaque ligne parent au-dessus de ses variations pour que le fichier soit facile à vérifier et que le parent existe lorsque ses variations y font référence.
- Donnez à chaque variation son propre SKU et son propre prix ; une variation sans prix ne peut pas être achetée.
- Utilisez Attribute 1 default sur le parent pour contrôler l’option présélectionnée.
| Ligne | Type | SKU | Parent | Attribute 1 name | Attribute 1 value(s) |
|---|---|---|---|---|---|
| Parent | variable | ACME-KTL | — | Couleur | Rouge, Bleu |
| Variation 1 | variation | ACME-KTL-RED | ACME-KTL | Couleur | Rouge |
| Variation 2 | variation | ACME-KTL-BLU | ACME-KTL | Couleur | Bleu |
Ajouter des images de produits via le CSV
La colonne Images accepte une ou plusieurs URL d’images séparées par des virgules. La première URL devient l’image mise en avant et les suivantes forment la galerie du produit dans l’ordre indiqué. Pendant l’import, WordPress télécharge chaque fichier dans votre médiathèque ; chaque URL doit donc être accessible publiquement à ce moment-là — sans connexion, sans lien de partage expirant et sans redirection vers une page web plutôt que vers le fichier.
Les images sont généralement la partie la plus lente d’un import : quelques centaines de produits avec cinq images chacun représentent plus de mille téléchargements. Redimensionnez les images avant de les héberger, utilisez des noms de fichiers descriptifs (kettle-red-front.jpg, et non IMG_0042.jpg) et répartissez les gros catalogues en plusieurs fichiers plus petits.
L’importateur de base ne permet pas de définir le texte alternatif des images. Ajoutez-le ensuite dans la médiathèque, via l’API REST ou avec une extension d’import qui le prend en charge. Une variation ne contient qu’une seule image ; donnez donc au plus une URL à chaque ligne de variation.
Créer des produits en masse avec l’API REST de WooCommerce
L’API REST est la meilleure solution lorsque les imports se répètent, lorsque les données produit se trouvent déjà dans un autre système ou lorsque personne ne devrait avoir à manipuler un CSV. Son point de terminaison de traitement par lots pour les produits (POST /wp-json/wc/v3/products/batch) accepte des opérations de création, de mise à jour et de suppression dans une seule requête.
Par défaut, une requête par lots est limitée à 100 objets, créations, mises à jour et suppressions confondues. La même limite s’applique aux points de terminaison par lots des variations, des catégories, des attributs et des termes d’attribut. Un catalogue de 1 000 produits demande donc au moins dix requêtes, et davantage une fois les variations ajoutées.
- Créez une clé d’API REST avec une autorisation de lecture/écriture sous WooCommerce → Réglages → Avancé → API REST, ou laissez une application en demander une via l’écran d’autorisation de WooCommerce.
- Créez d’abord les catégories, les attributs globaux et les termes d’attribut, et notez leurs ID.
- Envoyez les produits simples et parents par lots de 100 maximum, avec le statut défini sur brouillon.
- Créez les variations de chaque produit variable via le point de terminaison par lots des variations de ce produit.
- Vérifiez le résultat de chaque élément dans la réponse et ne relancez que les éléments en échec.
- Contrôlez un échantillon de brouillons dans l’administration, puis publiez-les.
Choisir une extension ou une méthode d’import en masse de produits WooCommerce
Si l’importateur de base ne suffit pas, jugez une extension d’import sur sa façon de traiter vos données, et non sur la longueur de sa liste de fonctionnalités, et testez-la sur une copie de préproduction de la boutique avec un vrai fichier fournisseur avant de vous engager. Le tableau compare les quatre méthodes, suivies des questions à poser à toute extension.
- Formats sources : CSV uniquement, ou également XML, fichiers de tableur et flux distants récupérés par URL.
- Planification : possibilité de relancer un import selon un calendrier pour récupérer les nouveaux prix et stocks.
- Mappage et transformations : renommage de colonnes, découpage de valeurs, conversion d’unités et application de règles de prix pendant l’import.
- Produits variables : capacité à construire de façon fiable les parents, les variations et les attributs globaux.
- Images : manière de les télécharger, détection des doublons et définition ou non du texte alternatif.
- Gros fichiers : traitement en arrière-plan ou par segments pour que les longs imports n’expirent pas.
- Règles de mise à jour : clé de correspondance utilisée (ID, SKU ou GTIN) et champs qui peuvent être écrasés.
| Méthode | Idéale pour | Points de vigilance |
|---|---|---|
| Importateur CSV de base | Imports ponctuels et mises à jour en masse par l’équipe de la boutique | Limites de téléversement et de durée du serveur ; pas de texte alternatif des images |
| Extension ou module d’import | Flux fournisseurs récurrents, sources XML ou tableur, mises à jour planifiées | Une extension de plus à maintenir et à garder compatible |
| Requêtes par lots de l’API REST | Pipelines automatisés et synchronisation depuis un autre système | Temps de développement ; 100 objets par requête par lots par défaut |
| Application qui crée les produits pour vous | Données produit qui ne partent pas d’un tableur, comme des documents fournisseurs | Vérifier quels types de produits et quels champs l’application renseigne réellement |
Checklist avant l’import et correction des erreurs
La plupart des imports en échec viennent d’une étape de préparation ignorée. Parcourez la checklist avant chaque gros import et utilisez le tableau pour diagnostiquer les problèmes qui subsistent.
- Sauvegardez la base de données, ou lancez l’import sur une copie de préproduction de la boutique.
- Exportez un produit existant et copiez sa ligne d’en-têtes dans votre fichier.
- Créez les catégories, les attributs globaux et les termes d’attribut auxquels le fichier fait référence.
- Vérifiez que chaque SKU est unique et que la valeur Parent de chaque variation correspond à un SKU de parent existant.
- Utilisez des nombres simples dans les colonnes de prix, de stock, de poids et de dimensions.
- Ouvrez un échantillon d’URL d’images dans une fenêtre de navigation privée pour confirmer qu’elles se chargent sans connexion.
- Réglez Published sur -1 pour que les produits arrivent en brouillon.
- Enregistrez le fichier au format CSV UTF-8.
- Importez un fichier de test de dix lignes, examinez les résultats, puis importez le reste par lots.
| Problème | Cause probable | Solution |
|---|---|---|
| Produits dupliqués au lieu d’être mis à jour | « Mettre à jour les produits existants » n’est pas coché, ou les ID et les SKU ne correspondent pas à la boutique | Cochez l’option ; copiez les ID ou les SKU depuis un export récent |
| Lignes ignorées lors d’un import de mise à jour | Aucune correspondance sur l’ID ou le SKU (le GTIN n’est essayé que si les deux sont vides, depuis la version 11.2) | Ajoutez à chaque ligne le SKU ou l’ID du produit existant |
| Variations importées comme des produits distincts | Type non défini sur variation, ou colonne Parent vide ou mal orthographiée | Utilisez le Type « variation » et le SKU exact du parent |
| Images manquantes | L’URL exige une connexion, redirige, ou l’hébergeur bloque le téléchargement | Hébergez les images sur des URL publiques et directes, puis relancez l’import |
| Fichier refusé au téléversement | Fichier plus volumineux que la taille maximale de téléversement du serveur | Divisez le fichier, ou demandez à votre hébergeur de relever la limite |
| L’import s’arrête en cours de route | Limite de durée ou de mémoire du serveur atteinte | Importez des fichiers plus petits |
Tester avec des produits factices avant l’import réel
Un petit fichier factice permet de repérer les erreurs de mappage avant qu’elles ne touchent des centaines de produits. Construisez-le à partir de votre vrai modèle pour que les en-têtes soient identiques, et donnez à chaque produit de test un repère évident — un préfixe de SKU « TEST- » et une étiquette « test » — afin de pouvoir retrouver et supprimer les produits ensuite.
Couvrez chaque cas que contient votre vrai fichier, et pas seulement le plus simple. Une dizaine de lignes suffisent généralement :
- Un produit simple avec toutes les colonnes que vous prévoyez d’utiliser renseignées.
- Un produit variable avec deux attributs et au moins trois variations.
- Un produit avec une galerie de plusieurs images, et un sans image.
- Un produit dans une catégorie imbriquée qui n’existe pas encore.
- Un produit avec des caractères accentués, des guillemets et une virgule dans la description.
- Une ligne qui met à jour un produit existant via son SKU.
- Vérifiez les résultats dans l’administration et sur la boutique — prix, listes déroulantes des variations, ordre des images et pages de catégories — puis supprimez les produits de test avant l’import réel.
Questions fréquentes
- WooCommerce propose-t-il un import de produits en masse intégré ?
- Oui. WooCommerce inclut un importeur CSV de produits sous Produits → Tous les produits → Importer, ainsi qu’un exporteur correspondant. Aucune extension n’est nécessaire pour les imports CSV standard.
- Combien de produits puis-je importer à la fois dans WooCommerce ?
- L’importeur n’impose pas de limite fixe, mais les délais d’expiration du serveur et les limites de mémoire de votre hébergement déterminent ce qui est réaliste. La solution habituelle consiste à découper les gros catalogues en lots de quelques centaines de lignes.
- Puis-je mettre à jour des produits existants avec un import CSV ?
- Oui. Activez « Mettre à jour les produits existants » dans l’importeur ; les lignes sont associées aux produits existants par ID ou par SKU, et seules les colonnes que vous incluez sont mises à jour.
- Puis-je importer des produits dans WooCommerce directement depuis des PDF ?
- Pas avec l’importeur natif, qui attend un CSV. Vous devez d’abord extraire les données produit des PDF — manuellement ou avec un outil d’extraction — puis les importer via CSV ou créer les produits via l’API REST.
- Quelles colonnes un CSV de produits WooCommerce exige-t-il ?
- Seule la colonne Name est requise par l’importateur de base. Pour un catalogue exploitable, incluez au moins Type, SKU, Published, Regular price, Categories, Images et Description. Exportez un produit de votre boutique pour obtenir les noms d’en-têtes exacts attendus par votre version.
- Comment importer des produits variables avec un CSV ?
- Ajoutez une ligne parent avec le Type « variable » qui liste toutes les valeurs d’attribut, puis une ligne par variation avec le Type « variation », le SKU du parent dans la colonne Parent, une seule valeur d’attribut, ainsi que son propre SKU et son propre prix.
- Puis-je importer les images des produits et leur texte alternatif avec l’importateur CSV ?
- Les images, oui : indiquez des URL d’images publiques dans la colonne Images, séparées par des virgules, l’image mise en avant en premier. Le texte alternatif, non — l’importateur de base ne peut pas le définir ; ajoutez-le ensuite ou utilisez l’API REST ou une extension.
- Combien de produits puis-je créer par requête de l’API REST de WooCommerce ?
- Le point de terminaison par lots accepte par défaut jusqu’à 100 objets par requête, créations, mises à jour et suppressions confondues. Les catalogues plus volumineux sont envoyés sous la forme d’une série de requêtes par lots.