
le
Guide Shopify pour créer vos produits, options et variantes en masse depuis Excel avec ShopFlow
Le modèle produit Shopify actuel sépare trois choses qui étaient souvent mélangées avant:
- les données du produit lui-même
- la structure des options produit
- les variantes réellement vendables
C'est exactement pour cela que beaucoup d'imports cassent au moment des variantes: le produit existe bien, mais Shopify ne connaît pas encore les noms d'options, donc la payload variante n'a rien de valide à rattacher.
Ce guide propose un workflow lisible dans Excel et cohérent avec le fonctionnement réel de Shopify aujourd'hui.
La réponse courte
Pour un import catalogue initial, l'ordre le plus sûr est:
- Créer le produit avec
productCreate. - S'assurer que les noms d'options existent sur le produit avant de créer les variantes.
- Créer les variantes vendables avec
productVariantsBulkCreate. - Garder
productSetpour plus tard. C'est une autre manière de faire, et on la verra dans un prochain article dédié.
Les règles Shopify importantes à retenir sont:
productCreatepeut définir des options produit et des valeurs d'options, mais il ne crée que la variante initiale.productOptionsCreatesert à ajouter des noms d'options manquants ou des valeurs de départ sur un produit existant.productVariantsBulkCreatea besoin d'une valeur pour chaque option déjà présente sur le produit.- Si l'option existe déjà sur le produit,
productVariantsBulkCreatepeut rattacher une valeur existante par nom ou créer une nouvelle valeur par nom.
Dans cet article, on conserve un workflow Excel en trois onglets parce qu'il est plus simple à relire, plus simple à dépanner, et plus adapté aux équipes merchandising ou opérations.
Pour garder un fil conducteur concret, on reste sur une seule histoire du début à la fin: vous lancez une boutique de mugs et vous voulez créer votre premier mug avec deux variantes couleur, Red et Green.
Ce que vous aurez à la fin
- Un onglet
Productsstructuré pour les données produit. - Un onglet
ProductOptionsstructuré pour poser les noms d'options sur chaque produit. - Un onglet
ProductVariantsstructuré pour créer les variantes vendables avec prix, SKU et autres données de variante. - Une méthode réutilisable pour les prochains lancements catalogue.
Prérequis
Avant de commencer, vérifiez que vous avez:
- Un accès admin Shopify avec droits produits.
- ShopFlow installé côté Shopify: https://apps.shopify.com/shop-flow
- L'add-in ShopFlow installé dans Excel via le parcours one-click:
- Page produit ShopFlow: /products/shopflow
- Documentation d'installation: /docs/shopflow-installation
Étape 1 Préparer la structure du classeur
Créez un classeur avec trois onglets:
ProductsProductOptionsProductVariants
Pourquoi cette structure fonctionne bien:
Productscontient le contenu produit, le merchandising et le SEO.ProductOptionssert à faire connaître à Shopify le nom d'option utilisé par le mug dans ce guide, à savoirColor.ProductVariantssert à créer les combinaisons réellement vendables avec le prix, le SKU et les données liées à la variante.
Gardez une logique simple:
- Une ligne dans
Products= un produit. - Une ligne dans
ProductOptions= une ligne de création d'option pour un produit. - Une ligne dans
ProductVariants= une variante vendable.
Étape 2 Générer le template de création Products dans ShopFlow
Dans le panneau ShopFlow, passez de Read à Write.
Sélectionnez ensuite Create Product (productCreate).
Prenez cette base de champs:
titlehandledescriptionHtmlvendorproductTypestatusSEO > TitleSEO > Description
Cliquez ensuite sur Load pour générer le tableau Excel.
Pourquoi ces champs sont importants:
titleest le nom visible côté client et sert aussi de base de repli pour le handle.handlevous donne une URL propre et prévisible. Mieux vaut le contrôler plutôt que laisser Shopify le générer.descriptionHtmlpermet d'avoir une fiche produit lisible avec un minimum de mise en forme.vendoretproductTypefacilitent le filtrage, le reporting et le nettoyage catalogue plus tard.statusaide à piloter la préparation du catalogue dans l'admin.seo.titleetseo.descriptionaméliorent la qualité des snippets moteurs de recherche dès le départ.

Étape 3 Remplir l'onglet Products et exécuter la création
Remplissez chaque ligne produit avec des données complètes et cohérentes.
Exemple de ligne:
title:Dawn Embrace Mughandle:dawn-embrace-mugdescriptionHtml: description claire du produit avec un peu de HTML si nécessairevendor:Sunrise CeramicsproductType:Mugstatus:ACTIVESEO > Title:Dawn Embrace Mug mug céramiqueSEO > Description:Mug céramique du quotidien, géré en masse depuis Excel avec ShopFlow.
Cliquez sur Publish dans ShopFlow pour exécuter la mutation.
Distinction importante:
- Dans ShopFlow, Publish veut dire « envoyer la requête d'écriture ».
- Dans Shopify, un produit créé via
productCreatereste non publié sur les canaux de vente par défaut.
Donc cette étape crée bien le produit dans Shopify, mais ne le rend pas automatiquement visible sur la boutique.

Étape 4 Vérifier la création et récupérer les IDs produit
Une fois l'écriture terminée:
- Vérifiez les notifications de succès dans ShopFlow.
- Repassez de Write à Read si nécessaire.
- Lancez une requête de lecture
productsavec au moins:idtitlehandle
Vous réutiliserez ensuite id comme productId pour les étapes options et variantes.

Étape 5 Créer les noms d'options avant les variantes
C'est le point qui crée le plus de confusion.
Shopify ne laisse pas productVariantsBulkCreate inventer les noms d'options sur un produit qui n'en a pas encore. Dans notre exemple de mug, le produit doit déjà savoir qu'il possède une option Color avant qu'une variante puisse référencer Red ou Green.
Repassez en Write et sélectionnez Create Product Option (productOptionsCreate).
Dans le template, gardez uniquement:
Product IdName (Options)Name (Options > Values)
Cliquez ensuite sur Load.
Bonne manière d'utiliser cette étape:
- Créez une ligne par nom d'option qui doit exister sur le produit.
- Donnez à chaque option une valeur de départ.
- N'essayez pas de décrire toutes les combinaisons finales ici.
Exemples:
Product Id: gid://shopify/Product/...
Name (Options): Color
Name (Options > Values): Red
Pourquoi une seule valeur de départ suffit souvent:
- Le vrai but de cette étape est d'enregistrer le nom d'option sur le produit.
- Dans notre histoire, cela veut dire que Shopify comprend maintenant que ce mug varie selon
Color. - Une fois l'option créée,
productVariantsBulkCreatepourra ensuite rattacher une valeur existante par nom ou créer une nouvelle valeur par nom. - En pratique, vous pouvez initialiser
Redici, puis créerGreendirectement à l'étape variantes. - Cela garde l'onglet
ProductOptionscompact et évite les erreurs de doublon sur le nom d'option.
Conseils pratiques:
- Avec le
variantStrategypar défaut, Shopify conserve la première variante existante. - Dans ce scénario mug, dès que vous initialisez
Color = Red, considérez queRedest déjà la variante existante. - Ne recréez pas deux fois le même nom d'option pour un même produit.
- Si vous avez déjà défini
productOptionsdirectement dansproductCreate, vous pouvez sauter cette étape.
Cliquez sur Publish.

Étape 6 Générer et remplir le template ProductVariants
Passez en Write et sélectionnez Create Product Variant (productVariantsBulkCreate).
Sélection recommandée pour démarrer:
productIdVariant > Option Values > Option NameVariant > Option Values > NameVariant > PriceVariant > Compare At PriceVariant > Inventory Item > SKUVariant > Taxable
Cliquez ensuite sur Load.

Règles à respecter pour chaque ligne variante:
- Renseignez
productIdrécupéré à l'étape 4. - Donnez une valeur pour chaque option déjà présente sur le produit.
- Ajoutez les données commerciales comme
price,compareAtPricesi besoin et le SKU.
Nuance très importante:
- Dans ce guide, le mug n'a qu'une seule option:
Color. - Cela veut dire que chaque ligne variante reste simple: un nom d'option et une valeur d'option.
- Une ligne reste donc égale à une variante finale achetable par le client.
Pour le mug, dans ce scénario précis, la ligne à créer est:
Product Id: gid://shopify/Product/...
Variant > Option Values > Option Name: Color
Variant > Option Values > Name: Green
Variant > Price: 19.90
Variant > Inventory Item > SKU: MUG-DAWN-GREEN
Autre point important:
- Vous n'avez pas besoin de précharger toutes les futures valeurs dans
productOptionsCreate. - Dans notre exemple,
Redest déjà présent après l'étape 5, etGreenest la variante que vous créez pendantproductVariantsBulkCreate. - Si l'option existe déjà sur le produit, Shopify peut créer une nouvelle valeur pendant
productVariantsBulkCreatequand vous l'envoyez par nom. - Si vous essayez de recréer
Redici, Shopify renverra une erreur car cette variante existe déjà.
Cliquez sur Publish.
Étape 7 Choisir si vous gardez ou remplacez la première variante
Après productCreate ou après l'étape d'initialisation des options, deux approches cohérentes existent:
- Garder la première variante Shopify et ne créer ensuite que les variantes manquantes.
- Reconstruire volontairement toute la liste des variantes avec
productVariantsBulkCreate.
Cette distinction est importante parce que Shopify peut conserver ou supprimer la première variante standalone selon la stratégie utilisée lors du bulk create.
Recommandation pratique pour Excel:
- Dans cet exemple de mug, Shopify conserve déjà
Redcomme première variante valide, donc l'étape 6 doit seulement créer la variante manquante,Green. - Si vous voulez que l'onglet variantes soit la seule source de vérité, utilisez la stratégie bulk appropriée et assurez-vous que l'onglet contient la liste finale complète pour le mug.
Le point clé est la cohérence. Mélanger les deux approches est souvent ce qui produit des variantes en double ou inattendues.
Étape 8 Contrôles finaux dans Shopify
Dans l'admin Shopify:
- Ouvrez Produits.
- Recherchez un produit créé.
- Ouvrez sa fiche.
- Vérifiez les noms d'options, la liste des variantes, les prix et les SKU.
Vérifiez aussi:
- Que les noms d'options sur le produit sont exactement ceux référencés par les variantes.
- Que le nombre de variantes correspond à votre fichier Excel.
- Que la première variante a bien été gardée ou remplacée volontairement.
Si vous voulez rendre le produit visible pour les clients, faites ensuite l'étape de publication vers les canaux de vente une fois la structure catalogue terminée.

Il existe une autre manière avec productSet
Shopify propose aussi productSet, et oui, il permet lui aussi de construire exactement ce même mug d'une autre façon.
La différence est surtout dans la logique:
- dans cet article, vous créez le produit étape par étape
- avec
productSet, vous raisonnez davantage comme une synchronisation complète de l'état du produit
Cette approche est puissante, mais elle mérite son propre article car les compromis ne sont pas les mêmes.
Dans le prochain blog, on reprendra exactement le même exemple de mug, toujours avec Red et Green, mais cette fois avec productSet, pour voir quand c'est plus rapide, quand c'est plus risqué, et pourquoi certaines équipes le préfèrent.
Erreurs fréquentes et correction rapide
-
PRODUCT_DOES_NOT_EXIST:productIdest invalide ou provient d'une autre boutique.
-
OPTION_VALUES_FOR_NUMBER_OF_UNKNOWN_OPTIONS:- La ligne variante ne correspond pas à la structure d'options du produit.
- Vérifiez que chaque option existante du produit reçoit bien une valeur dans l'entrée variante.
-
NEED_TO_ADD_OPTION_VALUES:- Le produit n'a pas encore la bonne structure d'options, ou l'entrée variante est incomplète.
- Créez ou initialisez d'abord l'option manquante, puis relancez la création des variantes.
-
erreur de doublon sur le nom d'option avec
productOptionsCreate:- Vous essayez de créer un nom d'option qui existe déjà sur ce produit.
- Créez le nom d'option une seule fois, puis laissez les variantes créer ou réutiliser les valeurs.
-
première variante en double ou inattendue:
- Vous avez mélangé la stratégie « on garde la première variante » et la stratégie « on reconstruit toutes les variantes ».
- Choisissez une seule stratégie et alignez l'onglet dessus.
-
The variant 'Red' already exists. (variants.0):Reda déjà été conservée comme variante existante après l'étape d'option.- Dans ce flux, envoyez uniquement la ligne manquante
GreendansproductVariantsBulkCreate.
-
produit visible dans l'admin mais absent de la boutique:
- L'écriture a bien fonctionné, mais le produit n'a pas été publié sur un canal de vente.
-
NEGATIVE_PRICE_VALUE:- Le prix doit être supérieur ou égal à 0.
Checklist SEO et qualité catalogue
Avant de considérer l'import terminé, vérifiez:
- que
handleest propre, lisible et unique - que
seo.titleetseo.descriptionsont remplis sur les produits importants - que les titres, vendors et types produit sont homogènes dans tout le catalogue
- que le schéma de SKU est assez cohérent pour le support, l'entrepôt et les futures mises à jour
Liens utiles
- ShopFlow sur Shopify App Store: https://apps.shopify.com/shop-flow
- Installation ShopFlow en un clic: /docs/shopflow-installation
- Présentation ShopFlow: /products/shopflow
- Documentation Shopify
productCreate: https://shopify.dev/docs/api/admin-graphql/latest/mutations/productcreate - Documentation Shopify
productOptionsCreate: https://shopify.dev/docs/api/admin-graphql/latest/mutations/productoptionscreate - Documentation Shopify
productVariantsBulkCreate: https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate