Gérer un stock de packs composés sur Shopify sans rupture : le modèle matryoshka expliqué
gerer stock pack shopifystock pack compose shopifybundle shopify rupture

Gérer un stock de packs composés sur Shopify sans rupture : le modèle matryoshka expliqué

Johanna Poitevin10 min de lecture
Sommaire (8 sections)

Gérer un stock de packs composés sur Shopify sans rupture : le stock gigogne expliqué

En résuméGérer un stock de packs composés sur Shopify est impossible nativement. Shopify fonctionne en mode 1 SKU = 1 stock. Le stock gigogne — aussi appelé matryoshka, en référence aux poupées russes qui s'emboîtent — empile composants → packs → packs de packs, avec des substituts par slot qui calculent le stock en cascade et résolvent le problème. Résultat sur 4 boutiques : ruptures divisées par 6, 47 min/j économisées, +1800€/mois récupérés.

Comment Shopify gère-t-il les packs composés ?

Shopify ne gère pas nativement les packs composés. La plateforme fonctionne avec un stock à un seul niveau : chaque SKU a son propre compteur, indépendant des autres. Vendre un pack ne décrémente pas le stock des composants qui le composent. Le marchand doit donc maintenir la cohérence à la main ou via une app tierce.

Schéma stock Shopify vs stock gigogne

Pourquoi cet article

Si tu vends sur Shopify des bundles, coffrets, lots, abonnements mensuels ou packs découverte, tu connais ce scénario.

Un composant tombe en rupture. Tout le pack devient invendable. Même si tu as une alternative équivalente en stock.

⚠️ Attention — Tu finis par éditer la recette à la main toutes les semaines. C'est le symptôme #1 d'un stock multi-niveau mal géré.

Ce guide explique pourquoi Shopify échoue sur ce point et présente une approche radicalement différente : le stock gigogne, où le stock se calcule en cascade depuis les composants vers les packs.


1. Le problème : Shopify ne gère pas les packs composés nativement

Le modèle Shopify : 1 SKU = 1 stock

Shopify a été conçu autour d'un principe simple : un produit, un compteur de stock.

Tu crées un produit "Pack Découverte 5 saveurs". Shopify te demande combien d'unités de ce pack tu as. Pas combien de saveurs individuelles tu possèdes.

Pourquoi c'est l'inverse de la réalité marchand

Dans la vraie vie d'un marchand qui vend des bundles, le modèle est inversé :

  • Tu n'as pas un stock de "Pack Découverte"
  • Tu as un stock de chaque saveur individuelle
  • Le nombre de packs vendables est une dérivée : min(stock_saveur / quantité_dans_le_pack)
  • Quand tu vends un pack, ce sont les composants qui doivent être décrémentés

Shopify ne fait rien de tout ça nativement.

Les deux mauvaises options qui restent

Tu te retrouves face à un choix bancal :

  1. Maintenir le stock du pack à la main à chaque vente. Impraticable au-delà de 10 ventes/jour.
  2. Désactiver la gestion du stock sur les packs et prier pour ne pas survendre.

📊 Le chiffre — 60% des marchands Shopify de moins de 500 commandes/mois bricolent avec Google Sheets. C'est gratuit, mais ça casse vers 30 SKUs.

Les chiffres réels sur 4 boutiques

D'après notre suivi sur 4 boutiques Shopify JOLUVIA en production (env. 800-1200 commandes/mois cumulées) :

Métrique Valeur
Ruptures de pack "fausses" (composant équivalent dispo) 23%
Temps quotidien à corriger les recettes manuellement 47 min/j
CA manqué sur périodes critiques (Noël, fête des mères) 12%

2. Les hacks classiques (et leurs limites)

Hack #1 — Shopify Bundles, l'app officielle

Shopify propose Shopify Bundles, une app gratuite pour créer des packs à partir de variantes existantes.

C'est mieux que rien. Mais c'est très limité :

  • Pas de packs de packs — impossible de faire "Pack 500g = 5 × Pack 100g"
  • Pas de substituts — si la saveur Fraise tombe à 0, le bundle Shopify est bloqué
  • Pas de gestion par lot/batch — pas de DLUO, pas de numéro de lot, pas de FIFO

Hack #2 — Apps tierces (Simple Bundles, Bundle Kit, Sumtracker)

Ces apps font mieux que Shopify Bundles :

  • Simple Bundles — bundles à 2 niveaux, bon pour coffrets simples
  • Bundle Kit — équivalent avec checkout customizable
  • Sumtracker — ajoute la notion de stock multi-emplacement

⚠️ Attention — Limites communes à ces apps : récursivité gigogne limitée à 2 niveaux, pas de substituts par slot, tarif 19-49$/mois en plus de l'abonnement Shopify.

Hack #3 — Le tableur Google Sheets

C'est la solution de 60% des marchands sous 500 commandes/mois.

Un Google Sheet avec une formule MIN(B2/5, C2/3, D2/2) qui calcule le stock pack disponible. Synchronisé à la main avec Shopify.

Avantages : gratuit, flexible.

Inconvénients :

  • Latence de 24-48h entre une vente et la mise à jour du stock
  • Erreurs humaines fréquentes (formule cassée, ligne oubliée)
  • Explosion de la complexité dès qu'on dépasse 30 SKUs
  • Impossible d'introduire des packs de packs

3. Le stock gigogne : composants → packs → packs de packs

Le principe en une phrase

Le stock gigogne empile les niveaux de produit comme des poupées russes. Chaque niveau supérieur consomme du stock des niveaux inférieurs.

💡 Astuce — Pense le stock gigogne comme une arborescence : les feuilles sont des composants physiques, les nœuds sont des packs, la racine est le pack final affiché au client.

Exemple concret (cas réel JOLUVIA)

Niveau 0 — Composants (feuilles) :

  • Bonbon acidulé Fraise : 100 unités
  • Bonbon acidulé Cerise : 50 unités
  • Bonbon acidulé Citron : 80 unités

Niveau 1 — Pack 100g (50g rouge + 50g jaune) :

  • Recette : 1× "rouge" + 1× "jaune"
  • Stock auto-calculé : min(stock_rouge_total, stock_jaune_total)

Niveau 2 — Pack 500g (5× Pack 100g) :

  • Recette : 5× Pack 100g (qui est lui-même un pack)
  • Stock auto-calculé : stock_pack_100g / 5

Cascade gigogne : un pack qui se déplie en composants

La formule récursive du pack récursif

Quand on demande "combien de Pack 500g puis-je vendre ?", le calcul descend en cascade :

  1. Pack 500g = 5× Pack 100g
  2. Pack 100g = 1× rouge + 1× jaune
  3. Rouge = somme des stocks (Fraise + Cerise) si substituts configurés
  4. Jaune = somme des stocks (Citron + ...)
  5. On remonte : Pack 100g = min(rouge_total, jaune_total)
  6. Pack 500g = floor(Pack 100g / 5)

Recommandation — Tout est calculé en temps réel, à chaque consultation du stock. Zéro synchronisation manuelle, zéro latence.

Garde-fou anti-cycle

Un stock gigogne mal configuré peut créer un cycle infini.

Exemple interdit : Pack A contient Pack B qui contient Pack A. Le calcul boucle.

Le stock gigogne doit donc inclure un garde-fou anti-cycle qui détecte ces configurations au moment de la création de la recette. Pas à la première vente.


4. Les substituts par slot : la pièce manquante du puzzle

Trois alternatives dans un même slot de pack

Du composant fixe au slot flexible

C'est ici que le stock gigogne devient vraiment puissant et se transforme en packs intelligents.

Au lieu de définir une recette comme "1 unité de Fraise", on définit un slot qui accepte plusieurs alternatives priorisées.

Exemple de slot multi-substituts

Slot "rouge" du Pack 100g :

  • 1× Fraise (priorité 0 = principal)
  • 1× Cerise (priorité 1 = substitut)
  • 1× Framboise (priorité 2 = substitut)

Conséquence sur les ruptures

Le pack tombe en rupture uniquement si TOUTES les alternatives sont à 0.

Tant qu'au moins une alternative a du stock, le pack reste vendable. Le système choisit automatiquement laquelle décompter lors de la préparation de commande (priorité 0 d'abord, puis 1, etc.).

💡 Astuce — Configure 2 à 3 substituts par slot pour les composants critiques. Tu absorbes les ruptures sans toucher au catalogue.

Le cas réel JOLUVIA avant/après

Avant les packs intelligents :

  • 50 SKUs de packs
  • 8-12 packs en rupture en permanence à cause d'un composant manquant
  • Manque à gagner estimé : 1500-2200€/mois

Après packs intelligents (octobre 2025 → janvier 2026) :

  • 0-2 packs en rupture en moyenne
  • 0 minute par jour passée à corriger les recettes
  • Récupération : +1800€/mois sur la boutique pilote

📊 Le chiffre — Ruptures divisées par 6, manque à gagner récupéré à 90%. Sur 4 boutiques, l'impact cumulé dépasse les 6000€/mois.


5. Pour qui c'est utile (et pour qui c'est overkill)

Les 3 critères de pertinence

Le stock gigogne avec packs intelligents est pertinent si tu valides au moins 2 des 3 critères suivants :

  1. Tu vends plus de 10 SKUs de packs/bundles/coffrets
  2. Tu as des composants interchangeables (couleurs, saveurs, parfums, références équivalentes)
  3. Tu fais plus de 100 commandes/mois sur les packs

Quand c'est overkill

  • Tu vends 3 packs simples qui ne se chevauchent pas → un Google Sheet suffit
  • Tu fais moins de 50 commandes/mois → la complexité ne se justifie pas encore
  • Tu n'as aucun composant interchangeable → la valeur principale (substituts) est nulle

Quand c'est indispensable

  • Tu vends 50 coffrets avec 8 composants chacun → le stock gigogne évite des heures de gestion manuelle
  • Tu as des abonnements mensuels avec contenu variable → seuls les slots de substituts permettent de tenir
  • Tu opères en multi-boutique Shopify → le calcul global cross-store n'est faisable qu'avec un vrai modèle

Recommandation — Si tu hésites, fais l'inventaire de tes ruptures du dernier mois. Compte celles qui étaient évitables avec un substitut. Au-delà de 5/mois, le ROI est immédiat.


FAQ — Stock pack composé Shopify

Quelle différence entre un bundle et un pack composé ?

Un bundle Shopify est un assemblage de produits existants vendu ensemble sans décrémenter le stock des composants. Un pack composé consomme automatiquement le stock des composants via une recette. Les bundles natifs Shopify n'ont pas cette mécanique, contrairement au stock gigogne.

Combien de niveaux de profondeur le stock gigogne peut-il gérer ?

Théoriquement infini. En pratique, la limite raisonnable est 5 à 7 niveaux — au-delà, l'UX humaine devient ingérable (pas l'algorithme). Lucasstack pose une garde à 10 niveaux pour éviter les erreurs de configuration involontaires.

Comment le système choisit-il quel substitut décompter ?

Par ordre de priorité défini à la création du slot. Priorité 0 = principal, consommé en premier. Quand le principal tombe à 0, le système bascule automatiquement sur priorité 1, puis 2, etc. Tout est paramétrable slot par slot.

Peut-on faire du FIFO avec le stock gigogne ?

Oui. Il faut coupler le stock gigogne avec une gestion par lots/batches : chaque réception de composant crée un lot avec une date. Le système consomme alors d'abord les lots les plus anciens (FIFO natif).

Est-ce que ça marche avec Shopify Plus / multi-boutiques ?

Oui. Lucasstack synchronise le stock gigogne entre plusieurs boutiques Shopify (jusqu'à 10 selon le plan). Le calcul est global : 100g rouge à Paris + 50g rouge à Lyon = 150g disponibles, avec logique d'attribution boutique par boutique si tu veux les isoler.

Comment éviter les cycles dans un stock gigogne ?

Un garde-fou anti-cycle détecte les configurations interdites (Pack A → Pack B → Pack A) au moment de la création de la recette. Pas à la première vente. C'est une validation côté serveur, impossible à contourner depuis l'UI.


🚀 Tester Lucasstack — Le stock gigogne avec packs intelligents est natif dans Lucasstack. Aucune autre app Shopify ne fait les deux nativement. 14 jours gratuits, sans carte bancaire. Démarrer l'essai →

À propos de l'auteur — Johanna Poitevin est cofondatrice de Lucasstack et fondatrice de JOLUVIA SAS, qui opère 4 boutiques Shopify depuis 2023 avec 800 à 1200 commandes/mois cumulées. Elle a ressenti personnellement le besoin du stock gigogne avant de le construire — chaque mécanique décrite ici a été validée en production sur ses propres boutiques avant d'être industrialisée dans Lucasstack.

À lire ensuite :

À lire ensuite

Tester Lucasstack — gratuit pendant 14 jours

Sans carte bancaire. Annulation en 1 clic. Stock gigogne inclus.

Démarrer l'essai gratuit