CSV import Shopify : importer ses produits pas à pas
Le guide pratique de l'import CSV sur Shopify : colonnes obligatoires, gestion des variantes, images, erreurs courantes, et quand bypasser le CSV pour aller plus vite.
L'import CSV est la méthode native de Shopify pour ajouter des produits en masse. C'est gratuit, intégré directement à l'admin, et ça ne nécessite aucune app tierce. C'est aussi un des formats les plus capricieux de l'écosystème Shopify : une colonne mal nommée, un handle dupliqué, une URL d'image cassée, et tout l'import échoue sans message d'erreur clair.
Ce guide détaille le format CSV Shopify ligne par ligne, les pièges concrets à éviter (variantes, images, encodage), et explique quand il vaut mieux laisser tomber le CSV pour une méthode plus directe.
Quand l'import CSV fait sens (et quand il ne le fait pas)
Avant de plonger dans le format, clarifions quand l'import CSV est le bon outil — et quand tu perds ton temps.
L'import CSV est la bonne méthode quand :
- Tu migres depuis une autre plateforme (WooCommerce, PrestaShop) et tu as déjà un export CSV de ton catalogue
- Tu veux faire une mise à jour en masse de prix, stocks ou descriptions sur un catalogue existant
- Tu veux importer un catalogue reçu d'un fournisseur ou d'un grossiste au format tableur
- Tu as besoin d'un import ponctuel et tu ne veux pas installer d'app
L'import CSV n'est PAS la bonne méthode quand :
- Tu importes régulièrement (plus d'une fois par mois) — utilise plutôt une app comme Matrixify ou une intégration API
- Tu scrapes un concurrent et tu veux publier directement — un outil intégré comme Kaatalog fait le scraping + la réécriture + l'import via API en un seul workflow, sans passer par un CSV (voir le guide complet du scraping e-commerce)
- Tu as plus de 5 000 produits — le découpage en lots de 15 Mo et l'import séquentiel deviennent ingérables manuellement
- Tu convertis depuis un format WooCommerce — les colonnes ne correspondent pas et le mapping manuel est une source d'erreurs infinie (ce problème est détaillé dans Scraping Shopify vs WooCommerce : différences et méthodes)
Le format CSV Shopify : les colonnes expliquées
Le CSV produit Shopify est un fichier texte encodé en UTF-8 avec des séparateurs virgule. Les noms de colonnes sont sensibles à la casse et doivent correspondre exactement à ce que Shopify attend. Une colonne mal nommée est silencieusement ignorée — tu ne verras l'erreur qu'après l'import quand tes données manquent.
Les colonnes essentielles
Voici les colonnes que tu utilises dans 95 % des cas. Le format complet en compte 51, mais la plupart sont optionnelles.
| Colonne | Obligatoire | Description | Exemple |
|---|---|---|---|
| Handle | Oui | Identifiant unique du produit, utilisé dans l'URL. Minuscules, tirets, pas d'accents | chemise-lin-bleu-marine |
| Title | Oui | Nom du produit affiché dans la boutique | Chemise en lin bleu marine — Coupe regular |
| Body (HTML) | Non (mais indispensable) | Description longue du produit, en HTML | <p>Chemise en lin lavé...</p> |
| Vendor | Non | Marque ou fournisseur | Ma Marque |
| Type | Non | Catégorie du produit | Chemises |
| Tags | Non | Tags séparés par des virgules | lin, homme, été, bleu |
| Published | Non | true pour publié, false pour brouillon | true |
| Option1 Name | Si variantes | Nom de la première option | Taille |
| Option1 Value | Si variantes | Valeur de la première option | M |
| Option2 Name | Si variantes | Nom de la deuxième option | Couleur |
| Option2 Value | Si variantes | Valeur de la deuxième option | Bleu marine |
| Variant SKU | Non | Référence interne de la variante | CHEM-LIN-BM-M |
| Variant Price | Oui si variantes | Prix de la variante | 79.00 |
| Variant Compare At Price | Non | Prix barré (avant promotion) | 99.00 |
| Variant Inventory Qty | Non | Stock initial | 50 |
| Variant Requires Shipping | Non | true pour produit physique | true |
| Image Src | Non | URL publique de l'image | https://cdn.exemple.com/chemise.jpg |
| Image Alt Text | Non | Texte alternatif de l'image | Chemise lin bleu marine vue de face |
| SEO Title | Non | Meta title pour Google | Chemise lin homme bleu marine |
| SEO Description | Non | Meta description pour Google | Chemise en lin lavé bleu marine... |
| Collection | Non | Nom de la collection (colonne ajoutée, pas native) | Chemises homme |
La colonne spéciale : Collection
C'est la seule colonne que tu peux ajouter au CSV sans casser le format. Elle n'est pas dans le template par défaut de Shopify, mais si tu l'ajoutes, Shopify crée automatiquement la collection indiquée et y associe le produit. Si la collection existe déjà, le produit y est simplement ajouté.
Limite importante : cette méthode crée des collections "vides" côté SEO — pas de description, pas d'image de couverture, pas de meta title. Tu devras passer sur chaque collection manuellement dans l'admin Shopify pour remplir ces champs après l'import.
Le piège numéro 1 : les variantes
C'est là que 80 % des imports CSV échouent. Le format des variantes dans un CSV Shopify est contre-intuitif et très strict.
Comment ça marche
Un produit avec des variantes occupe plusieurs lignes dans le CSV. La première ligne contient les infos du produit (titre, description, images principales) ET de la première variante. Les lignes suivantes reprennent le même Handle mais ne contiennent que les données de variante — titre et description y sont vides.
Exemple concret pour une chemise en 3 tailles et 2 couleurs (6 variantes) :
Handle,Title,Body (HTML),Option1 Name,Option1 Value,Option2 Name,Option2 Value,Variant Price,Variant SKU,Image Src
chemise-lin,Chemise en lin,<p>Description...</p>,Taille,S,Couleur,Bleu marine,79.00,CHEM-S-BM,https://cdn.ex.com/chemise-bm.jpg
chemise-lin,,,,M,,Bleu marine,79.00,CHEM-M-BM,
chemise-lin,,,,L,,Bleu marine,79.00,CHEM-L-BM,
chemise-lin,,,,S,,Blanc,79.00,CHEM-S-BL,https://cdn.ex.com/chemise-bl.jpg
chemise-lin,,,,M,,Blanc,79.00,CHEM-M-BL,
chemise-lin,,,,L,,Blanc,79.00,CHEM-L-BL,
Points critiques :
- Le
Handledoit être identique sur toutes les lignes du même produit - Les colonnes
Option1 NameetOption2 Namene doivent apparaître que sur la première ligne du produit (les variantes suivantes héritent automatiquement) - Chaque combinaison option1/option2 doit être unique — deux variantes "M + Bleu marine" font crasher l'import
- Shopify accepte 3 options maximum (Option1, Option2, Option3) — au-delà, tu dois utiliser des metafields ou une app tierce
Les erreurs les plus courantes sur les variantes
| Erreur | Symptôme | Solution |
|---|---|---|
| Handle différent entre produit et variante | Shopify crée 6 produits distincts au lieu d'un seul avec 6 variantes | Vérifier que le handle est strictement identique (attention aux espaces invisibles) |
| Doublon de combinaison d'options | Erreur "Line is invalid" | S'assurer que chaque combinaison taille/couleur est unique |
| Option Name rempli sur les lignes de variante | Options dupliquées | Laisser Option1/2/3 Name vides sauf sur la première ligne |
| Produit sans variante mais avec Option1 rempli | Shopify crée une variante "Default" inutile | Laisser les colonnes Option vides si le produit n'a pas de variantes |
Le piège numéro 2 : les images
Les images dans un CSV Shopify sont gérées via des URLs publiques, pas via des fichiers uploadés. La colonne Image Src doit contenir une URL HTTPS accessible publiquement — Shopify la télécharge au moment de l'import et la rehost sur son propre CDN.
Ce qui marche
- URLs directes vers des fichiers
.jpg,.png,.webpou.gif - URLs hébergées sur n'importe quel serveur accessible (ton propre hébergement, Cloudinary, ImgBB, Amazon S3, Google Cloud Storage)
- Images jusqu'à 5000 x 5000 px (25 mégapixels maximum)
Ce qui casse
- URLs derrière une authentification ou un firewall (Cloudflare challenge, login requis)
- Liens Google Drive non partagés publiquement (erreur silencieuse — le produit s'importe sans image)
- Images supérieures à 25 mégapixels (Shopify rejette silencieusement)
- URLs en HTTP (non HTTPS) — Shopify les refuse depuis 2024
Plusieurs images par produit
Pour ajouter plusieurs images au même produit, tu ajoutes des lignes supplémentaires avec le même Handle, les colonnes produit et variante vides, et uniquement Image Src et Image Alt Text remplis. C'est le même principe que les variantes : une ligne par image, même handle.
Le piège numéro 3 : l'encodage et les caractères spéciaux
Le CSV doit être encodé en UTF-8 avec des retours à la ligne de type LF (pas CRLF comme Windows le fait par défaut). Les problèmes d'encodage sont la cause numéro 1 des imports qui "marchent" mais produisent des caractères cassés dans les descriptions (les fameux é au lieu de é).
Deux règles simples :
- Si tu édites dans Google Sheets → télécharge en CSV UTF-8 (Fichier → Télécharger → CSV). Google Sheets gère correctement l'encodage.
- Si tu édites dans Excel → attention : Excel a tendance à sauvegarder en ANSI ou en UTF-8 BOM. Utilise "Enregistrer sous → CSV UTF-8 (délimité par des virgules)" et vérifie le résultat dans un éditeur de texte (VS Code, Notepad++) avant d'importer.
L'import pas à pas
Une fois ton CSV prêt, voici la procédure d'import dans l'admin Shopify :
- Admin Shopify → Produits → Importer
- Choisis ton fichier CSV (15 Mo maximum par fichier)
- Sélectionne le mode d'import : "Remplacer les produits existants ayant le même handle" si tu fais une mise à jour, "Ne pas remplacer" si tu ajoutes de nouveaux produits uniquement
- Lance l'import — Shopify traite le fichier en arrière-plan. Pour 500 produits, compte 2 à 5 minutes de traitement.
- Vérifie le résultat — Shopify affiche un résumé (produits importés, erreurs, lignes ignorées). Ouvre quelques fiches au hasard pour vérifier que les variantes, images et descriptions sont bien en place.
Si tu as des erreurs, Shopify te donne un fichier de log avec les lignes en erreur. Les messages ne sont pas toujours très explicites — reporte-toi aux tableaux d'erreurs de cet article pour diagnostiquer.
Quand laisser tomber le CSV et passer par l'API
Le CSV a été conçu pour des imports ponctuels et simples. Dès que tu sors de ce cas d'usage, ses limites deviennent criantes :
- Pas de rollback — si un import casse quelque chose, tu ne peux pas revenir en arrière en un clic. Tu dois réimporter un CSV corrigé ou modifier manuellement.
- Pas de feedback en temps réel — tu lances l'import et tu attends. Pas de barre de progression détaillée, pas de log en direct.
- Pas de gestion des images locales — tu dois uploader tes images quelque part et fournir des URLs publiques, ce qui ajoute une étape.
- Pas de gestion native des collections riches — la colonne Collection crée des collections squelettiques sans description ni SEO.
- Pas de conversion cross-platform — si tes données viennent d'un export WooCommerce, tu dois mapper chaque colonne manuellement.
Pour les imports réguliers ou les gros volumes, deux alternatives :
Les apps d'import avancées (Matrixify, Excelify) : elles utilisent l'API Shopify en arrière-plan mais te présentent une interface tableur familière. Plus de colonnes supportées, meilleure gestion des erreurs, rollback possible. Payantes (à partir de ~20 $/mois), mais le gain de temps est considérable dès que tu importes régulièrement.
Les outils intégrés avec publication directe par API : Kaatalog, par exemple, bypasse entièrement le CSV en publiant les produits directement dans ta boutique via l'API Admin Shopify. Quand tu scrapes un concurrent, les fiches sont réécrites par l'IA et importées en un seul workflow — pas de CSV à préparer, pas de colonnes à mapper, pas d'images à héberger. Et si tu as quand même besoin d'un CSV (pour un backup, un audit, ou une migration vers WooCommerce), Kaatalog peut aussi exporter au format CSV Shopify ou WooCommerce depuis n'importe quel scraping, quel que soit le CMS source. Les 50 premiers crédits sont offerts à l'inscription, sans carte bancaire.
En résumé
L'import CSV Shopify est un outil puissant mais rigide. Il faut le voir comme un passage obligé pour les imports ponctuels (migration, catalogue fournisseur reçu au format tableur, mise à jour de masse), pas comme un workflow de production permanent.
Les trois choses à retenir :
- Les variantes sont le piège principal — même handle pour toutes les lignes, combinaisons d'options uniques, noms d'options seulement sur la première ligne. Vérifie trois fois avant d'importer.
- Les images doivent être hébergées en ligne avec des URLs HTTPS publiques. Pas de fichiers locaux, pas de liens protégés.
- L'encodage UTF-8 est non-négociable — si tu vois des caractères cassés après import, c'est un problème d'encodage dans 99 % des cas.
Et si tu importes régulièrement, que tu gères de gros volumes, ou que tu fais du scraping + import cross-platform, passer par l'API (directement ou via un outil comme Kaatalog) te fera gagner des heures par rapport au CSV — tout en évitant les erreurs de format qui font perdre du temps et de l'énergie.
Si ta boutique cible est WooCommerce et pas Shopify, le format CSV est complètement différent (colonnes WordPress, catégories hiérarchiques, piège de la langue des colonnes). Le guide dédié est ici : CSV import WooCommerce : importer ses produits pas à pas.
Questions frequentes
Combien de produits peut-on importer en une fois via CSV dans Shopify ?+
Shopify impose une limite de 15 Mo par fichier CSV. En pratique, ça représente entre 2 000 et 5 000 produits selon la longueur de tes descriptions et le nombre de variantes. Au-delà, tu dois découper ton fichier en plusieurs lots et les importer séquentiellement. Attention : chaque import prend quelques minutes à être traité par Shopify, et il n'y a pas de barre de progression très précise — laisse chaque lot finir avant d'en lancer un autre.
Comment gérer les variantes dans le CSV Shopify ?+
Chaque variante est une ligne séparée dans le CSV. Le produit principal et toutes ses variantes partagent le même Handle. La première ligne du produit contient le titre, la description et les données globales. Les lignes suivantes (variantes) reprennent le même Handle mais laissent le titre et la description vides, et remplissent les colonnes Option1 Value, Option2 Value, Variant Price, Variant SKU, etc. C'est la partie la plus casse-tête du format — si les handles ne correspondent pas ou si une variante a le même couple d'options qu'une autre, l'import casse.
Mes images doivent-elles être hébergées quelque part avant l'import ?+
Oui. Le CSV ne contient pas les fichiers images, seulement leurs URLs publiques (colonne Image Src). Tes images doivent être accessibles en ligne via une URL HTTPS publique au moment de l'import. Si tu n'as pas d'hébergement dédié, tu peux utiliser un service gratuit comme ImgBB, Cloudinary (plan gratuit), ou même un Google Drive partagé en public. Shopify télécharge les images depuis ces URLs au moment de l'import et les rehost sur son propre CDN — les URLs d'origine ne sont plus utilisées ensuite.
L'import CSV écrase-t-il les produits existants dans ma boutique ?+
Ça dépend de l'option que tu coches. Shopify te propose deux modes lors de l'import : 'Remplacer les produits existants ayant le même handle' (les produits existants avec le même Handle sont mis à jour avec les données du CSV) ou 'Ne pas remplacer' (seuls les nouveaux handles sont importés, les existants ne sont pas touchés). Si tu fais un premier import de catalogue, peu importe — tout est nouveau. Mais si tu fais une mise à jour de prix ou de stocks sur un catalogue existant, choisis bien le bon mode pour ne pas écraser tes modifications manuelles.
Peut-on importer les collections via CSV ?+
Partiellement. Tu peux ajouter une colonne Collection dans ton CSV produit, et Shopify associera automatiquement chaque produit à la collection indiquée. Si la collection n'existe pas encore, Shopify la crée à la volée. Mais attention : cette méthode ne te permet pas de configurer les détails de la collection (description, image, SEO, type de collection). Tu obtiens des collections vides avec juste des produits dedans — tu devras ensuite aller remplir les infos de chaque collection manuellement dans l'admin Shopify.