Shopify n'applique que votre meilleure réduction par défaut. Pour empiler les codes promotionnels, vous avez besoin de codes promotionnels qui vivent dans des classes différentes, que Shopify appelle produit, commande et expédition, plus une règle sur chaque code qui dit s'il est autorisé à se combiner avec les autres. Deux codes promotionnels de la même classe ne s'additionnent pas : Shopify garde la plus avantageuse et abandonne l'autre. Entre différentes classes, la combinaison est autorisée, mais seulement quand chaque code se donne explicitement le droit de le faire. Il n'y a pas un interrupteur « empiler tout » unique, c'est pourquoi tant de magasins affichent un total empilé sur la page du panier puis facturent un total différent au paiement.
Ce guide explique comment Shopify décide ce qui se combine, pourquoi les codes promotionnels natifs ne choisissent que le meilleur, la règle d'une réduction de produit par ligne et son exception Shopify Plus, comment les codes et les codes promotionnels automatiques interagissent, le piège de la parité de paiement qui coûte de l'argent aux commerçants, et un guide étape par étape avec un exemple détaillé que vous pouvez suivre dès aujourd'hui.
Pouvez-vous empiler les codes promotionnels dans Shopify ?
Oui, mais uniquement entre les classes et seulement quand vous activez la combinaison. Une réduction d'une classe peut se combiner avec une réduction d'une classe différente, mais deux réductions de la même classe ne s'ajoutent jamais. Donc une réduction de volume (classe de produit), une réduction d'objectif de dépenses (classe de commande) et l'expédition gratuite (classe d'expédition) peuvent tous s'appliquer à la même commande. Ce que vous ne pouvez pas faire naturellement, c'est de mettre deux codes promotionnels de produit, deux codes promotionnels de commande, ou deux codes promotionnels d'expédition les uns sur les autres : quand deux codes promotionnels de même classe pourraient s'appliquer, Shopify garde celui qui vaut plus et ignore silencieusement le reste.
Le piège est que la combinaison est désactivée jusqu'à ce que vous l'activiez. Chaque code promotionnel s'exécute par défaut seul, donc si vous voulez votre niveau de volume et votre offre d'expédition gratuite sur la même commande, vous devez ouvrir chacun et le marquer comme combinable avec l'autre classe. Manquez cette étape et un client qui se qualifie pour les deux n'en obtient qu'un.
PLACEHOLDER D'IMAGE (Image 1) : Les trois classes de réduction Shopify
Visuel suggéré : Un diagramme propre en 16:9 sur fond blanc avec trois colonnes étiquetées en violet (réduction de produit), or profond (réduction de commande) et ardoise (réduction d'expédition). Des flèches entre les colonnes montrent des liens verts « peuvent se combiner » entre différentes classes et des boucles rouges « garde la valeur la plus élevée » dans la même classe. Minimal, plat, couleurs de marque violet et or, étiquettes sans-serif, pas de photographie.
Quelles sont les trois classes de réduction de Shopify ?
Chaque code promotionnel que vous créez dans Shopify, qu'il s'agisse d'une réduction automatique, d'un code promotionnel ou d'un code généré par une application via Shopify Functions, reçoit une classe. La classe contrôle le calcul de la réduction et, plus important encore, ce qu'elle est autorisée à combiner avec.
Réductions de produit
Une réduction de produit réduit le prix d'articles spécifiques du panier. Les niveaux de volume (« achetez 3, économisez 15 pour cent »), les offres achetez X obtenez Y, un pourcentage de réduction d'une collection, et un montant fixe de réduction d'un seul produit sont tous des réductions de classe de produit. Elles s'attachent à des lignes de panier individuelles, ce qui est important pour la règle par ligne couverte ci-dessous.
Réductions de commande
Une réduction de commande réduit le sous-total de la commande plutôt que n'importe quel produit. Un objectif de dépenses comme « 10 euros de réduction sur les commandes de plus de 100 euros », un montant fixe « 20 euros de réduction sur votre commande », ou une réduction de pourcentage à l'échelle du magasin du panier entier sont des réductions de classe de commande. Parce qu'elles agissent sur le sous-total, une seule peut s'appliquer à la fois. Deux codes promotionnels de commande ne se combinent jamais sur la même commande.
Réductions d'expédition
Une réduction d'expédition réduit ou supprime le coût d'expédition. L'expédition gratuite au-dessus d'un seuil et un pourcentage de réduction des tarifs d'expédition sont des réductions de classe d'expédition. Comme pour les codes promotionnels de commande, une seule réduction d'expédition s'applique par commande.
Cette taxonomie est importante car l'empilement est décidé par paire de classes, pas par paire de codes promotionnels. Vous ne demandez jamais « ces deux offres spécifiques peuvent-elles se combiner ». Vous demandez « une réduction de produit est-elle autorisée à se tenir à côté d'une réduction de commande, et chacune d'elles a-t-elle accepté ? » Selon le Shopify Help Center, les codes promotionnels ne se combinent que s'ils sont définis comme combinables et appartiennent à des classes admissibles, c'est pourquoi le comportement par défaut surprend tant de commerçants.
Pourquoi Shopify n'applique-t-il que la meilleure réduction ?
C'est la frustration numéro un que les commerçants soulèvent sur les forums communautaires Shopify, et ce n'est pas un bogue. Quand deux codes promotionnels de la même classe pourraient s'appliquer à une commande, Shopify ne les additionne pas. Il les compare et garde celui qui donne au client la plus grande réduction, puis abandonne l'autre sans avertissement et sans article de ligne pour expliquer ce qui s'est passé.
Imaginez un magasin exécutant une réduction de volume automatique « achetez 6, obtenez 10 pour cent de réduction » (classe de produit) tandis qu'un client entre un code « SAVE15 » qui est également classe de produit. Les deux sont des codes promotionnels de produit, donc Shopify ne les empilera pas en 25 pour cent. Il applique le code de 15 pour cent car il vaut plus, et le code de volume de 10 pour cent disparaît silencieusement. Le commerçant, qui s'attendait à ce que l'offre de volume se déclenche toujours, voit des résultats incohérents selon ce qui d'autre est dans le panier.
La même chose se produit avec deux codes promotionnels de commande ou deux codes promotionnels d'expédition : la valeur la plus élevée gagne, tout le reste est abandonné. C'est la protection par défaut de Shopify, pour que les magasins ne donnent pas accidentellement leurs marges en empilant les codes promotionnels de la même classe les uns sur les autres. C'est sensé, mais c'est invisible, et l'invisibilité est le problème. Les commerçants découvrent que leurs codes promotionnels ne s'empilent que quand ils lisent un reçu d'essai ligne par ligne, ou pire, quand un client demande pourquoi on lui a facturé plus que ce que le panier a montré.
Qu'est-ce que la règle d'une réduction de produit par ligne ?
Voici la nuance qui trompe même les commerçants expérimentés. La règle « la valeur la plus élevée gagne » pour les codes promotionnels de produit n'est pas appliquée au panier entier. Elle est appliquée par ligne du panier.
Une ligne de panier est une seule ligne de produit et variante dans le panier. Shopify ne permet qu'un seul code promotionnel de produit par ligne de panier par défaut, donc si deux codes promotionnels de classe de produit ciblent la même ligne, cette ligne garde le meilleur des deux. Mais deux codes promotionnels de produit ciblant différentes lignes peuvent tous deux s'appliquer à la même commande, car ils ne se disputent pas la même ligne.
C'est pourquoi un magasin peut exécuter « 20 pour cent de réduction sur les chapeaux » et « achetez 2 t-shirts, obtenez 1 gratuit » en même temps : la réduction sur les chapeaux atterrit sur les lignes de chapeau, l'offre sur les t-shirts atterrit sur les lignes de t-shirt, et tous deux s'appliquent. Ce que vous ne pouvez pas faire sur un plan standard, c'est mettre deux codes promotionnels de produit sur la même ligne de t-shirt.
L'exception Shopify Plus
L'empilement de deux codes promotionnels de produit sur la même ligne de panier est possible, mais uniquement sur Shopify Plus, et uniquement avec un mécanisme basé sur des balises que Shopify appelle empilement sur la même ligne. Selon la documentation des développeurs Shopify, l'empilement de produit sur la même ligne utilise une correspondance de balise et est une fonctionnalité Shopify Plus. Si vous n'êtes pas sur Plus, traitez « deux codes promotionnels de produit sur le même article exact » comme hors table, et concevez vos offres pour que les codes promotionnels de produit concurrents ciblent différents produits.
Cela vaut la peine d'être dit clairement car beaucoup de copies de marketing impliquent que vous pouvez librement empiler n'importe quel deux offres de produit. Vous ne pouvez pas. L'empilement entre classes (produit plus commande plus expédition) fonctionne sur chaque plan Shopify. L'empilement de produit de même classe sur une ligne ne le fait pas, à moins que vous ne soyez sur Plus.
Comment les codes promotionnels et les réductions automatiques interagissent-ils ?
Les codes et les réductions automatiques suivent les mêmes règles de classe, avec quelques limites supplémentaires au paiement.
Une réduction automatique et un code peuvent se combiner s'ils sont dans des classes admissibles et tous deux définis comme combinables, exactement comme n'importe quelle autre paire. Un code de classe de produit et une réduction automatique de classe de commande peuvent s'empiler. Deux codes promotionnels de classe de produit, l'un un code et l'autre automatique, ne peuvent pas s'empiler sur la même ligne : la valeur la plus élevée gagne.
Au paiement, Shopify limite le nombre de codes qu'un client peut entrer à jusqu'à 5 codes promotionnels de produit ou de commande plus 1 code promotionnel d'expédition par commande. Les réductions automatiques ne comptent pas dans cette limite, mais elles suivent toujours les règles de combinaison de classe, donc un client ne voit que les codes réellement autorisés à se combiner étant donné leurs classes et paramètres. Tout ce qui entre en conflit est résolu par la règle de la valeur la plus élevée.
Le point pratique à retenir : les codes ne sont pas un raccourci autour des règles d'empilement. Un code est juste une autre réduction avec une classe. Si vous voulez qu'un code se combine avec votre niveau de volume automatique, les deux doivent être dans des classes différentes et tous deux doivent être marqués comme combinables.
Pourquoi la réduction s'affiche-t-elle dans le panier mais pas au paiement ?
C'est le piège qui coûte aux magasins de l'argent réel, et c'est la plainte la plus courante sur les applications de réduction en général. La page du panier et le paiement sont, dans de nombreuses applications, deux systèmes différents calculant les réductions de deux façons différentes.
De nombreuses applications de réduction calculent le total empilé en utilisant JavaScript sur la page du panier ou un widget de thème. Cet aperçu semble parfait. Puis le client clique sur paiement, et le paiement Shopify, qui n'exécute pas ce JavaScript du thème, recalcule avec ses propres règles. Si les deux ne s'accordent pas, le client voit un chiffre dans le panier et un chiffre différent au paiement. La sous-facturation coûte au commerçant ses marges ; la surcharche coûte la vente. Cela empire avec les paiements accélérés : Shop Pay, Apple Pay et Google Pay ignorent complètement la page du panier, donc la logique de réduction basée sur le thème ne s'exécute jamais pour ces acheteurs et la réduction échoue silencieusement.
Le seul correctif fiable est de calculer les réductions du côté serveur, à l'intérieur du pipeline de paiement de Shopify lui-même, il y a une seule source de vérité. C'est pour quoi Shopify Functions existent. Une réduction construite sur Shopify Functions exécute le même calcul que l'acheteur soit sur la page du panier, la page de paiement, ou un paiement accéléré, car un seul moteur fait les calculs. L'aperçu du panier et la charge finale ne peuvent pas dériver, car ce sont le même calcul.
PLACEHOLDER D'IMAGE (Image 2) : Total du panier par rapport au total du paiement
Visuel suggéré : Une illustration de panneau divisé 16:9. Le panneau gauche intitulé « JavaScript du thème » montre un panier avec un total empilé de 92 euros et un petit avertissement rouge. Le panneau droit intitulé « Paiement Shopify » montre le même panier facturant 110 euros avec un badge de non-concordance rouge. Un séparateur central avec une icône de chaîne cassée. Ci-dessous, une bannière verte lit « Fonctions du côté serveur : un total, partout. » Couleurs de marque violet et or, style vecteur plat, pas de photographie.
Exemple détaillé : empiler un niveau de volume, une réduction de commande et l'expédition gratuite
Rendons cela concret. Un client construit ce panier :
- 3 écouteurs sans fil à 40 euros chacun, sous-total 120 euros
- L'expédition standard coûte normalement 8 euros
Le magasin exécute trois offres :
- Une réduction de volume : achetez 3 ou plus d'écouteurs, obtenez 15 pour cent de réduction (classe de produit)
- Un objectif de dépenses : 10 euros de réduction sur les commandes de plus de 100 euros (classe de commande)
- Expédition gratuite sur les commandes de plus de 75 euros (classe d'expédition)
Les trois sont dans des classes différentes, donc ils sont admissibles à se combiner, à condition que chacun soit configuré pour se combiner avec les autres. Voici comment les calculs se déroulent par rapport au comportement par défaut de Shopify.
Avec l'empilement configuré correctement, le client paie 92,00 euros et reçoit l'expédition gratuite. Avec la valeur par défaut de Shopify, où la combinaison est désactivée, une seule réduction de valeur la plus élevée s'applique. C'est la réduction de volume de 18 euros, donc le client paie 102 euros et paie toujours 8 euros d'expédition, pour un total de 110,00 euros. La réduction de commande et l'expédition gratuite ne se déclenchent jamais.
L'écart de 18 euros entre 110 et 92 euros est la différence entre « j'ai activé l'empilement » et « j'ai supposé que Shopify le ferait simplement ». Multipliez cela par un week-end BFCM et les enjeux sont évidents.
Comment configurer les réductions empilables dans Shopify, étape par étape
Vous pouvez faire beaucoup de cela avec les codes promotionnels natifs Shopify si vous êtes prudent. Voici la séquence fiable.
1. Décidez de la classe de chaque offre
Écrivez chaque offre et étiquetez-la produit, commande ou expédition. Cela vous dit instantanément quelles offres peuvent se combiner (classes différentes) et lesquelles se combattront (même classe). Deux offres de produit ciblant les mêmes articles ne s'empileront jamais sur un plan standard, donc planifiez cela maintenant, pas au paiement.
2. Gardez les réductions concurrentes dans des classes différentes
Si vous voulez que deux choses s'additionnent, assurez-vous que ce ne sont pas de la même classe. Vous voulez un pourcentage de réduction sur les produits plus un montant de réduction sur la commande ? Bon, ce sont les produits et la commande, ils peuvent se combiner. Vous voulez deux pourcentages de réduction sur le même produit ? C'est deux codes promotionnels de produit sur une ligne, qui a besoin Shopify Plus. Restructurez l'un d'eux, par exemple transformez le second en une réduction de commande, pour qu'ils vivent dans des classes différentes.
3. Activez la combinaison pour chaque réduction
Dans l'administrateur Shopify, chaque code promotionnel automatique et code a une section « Combinaisons » où vous cochez avec quels autres types de réduction il peut se combiner. C'est désactivé par défaut. Ouvrez chaque offre qui doit s'empiler et autorisez-la explicitement à se combiner avec les classes pertinentes. Si vous ignorez cela même sur une offre, cette offre s'exécute seule.
4. Respectez les limites par ligne et par commande
Rappelez-vous : une réduction de produit par ligne de panier, une réduction de commande par commande, une réduction d'expédition par commande, et un maximum de 25 codes promotionnels automatiques basés sur les fonctions actifs par magasin. Ne concevez pas une promotion qui a besoin de deux codes promotionnels de commande pour s'empiler, car c'est impossible.
5. Testez à la fois un panier qui devrait et un panier qui ne devrait pas s'appliquer
Construisez un vrai panier d'essai qui se qualifie pour toutes vos offres, placez une commande de projet ou d'essai, et lisez le résumé du paiement ligne par ligne pour confirmer que chaque réduction attendue est là. Puis construisez un panier qui ne devrait en obtenir que certains et confirmez que les autres restent correctement désactivés. Les défaillances silencieuses sont l'ennemi : une réduction qui ne se déclenche jamais ne lance également jamais d'erreur.
6. Vérifiez les paiements accélérés
Exécutez le même panier d'essai via Shop Pay. Les codes promotionnels natifs ou basés sur Functions s'appliquent de manière identique ; les codes promotionnels qui dépendent des scripts du thème sont là où vous attrapez le désaccord panier-versus-paiement avant vos clients.
PLACEHOLDER D'IMAGE (Image 3) : Les trois commutateurs de combinaison sur une offre
Visuel suggéré : Une maquette de capture d'écran de produit 16:9 de l'étape d'empilement de l'éditeur de campagne Stackable. Affiche une offre avec trois commutateurs à bascule étiquetés, « Combiner avec les réductions de produit », « Combiner avec les réductions de commande » et « Combiner avec les réductions d'expédition », deux activés et un désactivé, avec une ligne de résumé en langage clair en dessous lisant « Cette offre s'empile avec les réductions de commande et d'expédition. » Style admin Polaris Shopify propre, accent de marque en violet. Référencez les docs/screenshot-manifest.md fente discount-stacking-step-1 pour capturer l'écran réel plus tard.
Exécutez cela de manière fiable avec Stackable
Si vous préférez ne pas vérifier manuellement les cases à cocher combinables sur des dizaines d'offres et tester chaque permutation de commande, c'est exactement le problème Stackable a été construit pour résoudre, et il le fait honnêtement dans les vraies règles de Shopify.
- Chaque offre a trois commutateurs de combinaison, un pour chacune des réductions de produit, commande et expédition. Ils correspondent un à un à la façon dont Shopify décide les combinaisons, donc ce que vous définissez est ce que le paiement fait. Il n'y a pas de valeurs par défaut cachées à découvrir avec une commande d'essai.
- Un simulateur de panier exécute un exemple de panier via chaque offre active avant que vous n'alliez en direct et affiche le total exact ligne par ligne, plus quelles offres se sont déclenchées et lesquelles ne l'ont pas et pourquoi.
- Les calculs s'exécutent à l'intérieur d'une Shopify Function, donc la page du panier, la page du paiement et les paiements accélérés comme Shop Pay calculent tous le total identique à partir d'un moteur. Il n'y a pas de dérive thème-versus-paiement à chasser.
- Stackable ne change jamais vos prix de produit. Les réductions n'existent que sous forme d'ajustements de paiement, donc la désinstallation laisse votre catalogue exactement comme il l'était.
Installez Stackable gratuitement et voyez le panier, le paiement et Shop Pay concorder au centime près, sur usestackable.com/pricing. 🚀
Le résumé
- Shopify n'applique que votre meilleure réduction par défaut. L'empilement n'est pas automatique ; c'est un paramètre que vous activez par offre.
- Il y a trois classes de réduction : produit, commande et expédition. Les codes promotionnels se combinent entre les classes, jamais dans la même classe, où la valeur la plus élevée gagne.
- Les réductions de produit suivent une règle d'une par ligne de panier. Deux codes promotionnels de produit sur le même article s'empilent uniquement sur Shopify Plus, en utilisant l'empilement sur la même ligne basé sur des balises.
- Les codes promotionnels obéissent aux mêmes règles de classe, avec un plafond de paiement de 5 codes de produit ou de commande plus 1 code d'expédition par commande.
- Le désaccord panier-versus-paiement se produit quand les réductions sont calculées dans le thème au lieu du côté serveur. Shopify Functions gardent un total partout, y compris Shop Pay.
- Testez toujours un panier qui devrait obtenir chaque réduction et un qui ne devrait pas, et lisez le résumé du paiement ligne par ligne. Les défaillances silencieuses ne lancent jamais d'erreurs.
- Les outils comme Stackable exposent les trois commutateurs de combinaison par classe directement et prévisualiser le total exact avant que vous n'alliez en direct, donc ce que vous configurez est ce que le paiement facture.
Articles connexes
- Empilement de réductions, bien fait: comment les trois commutateurs de combinaison par classe fonctionnent avec un simulateur en direct.
- Réductions de volume et ruptures de quantité: comptez les unités du même produit, pas de la collection entière.
- Objectifs de dépenses et réductions de commande: récompensez les clients qui franchissent un seuil de valeur du panier.
- Offres d'expédition gratuite: ajoutez l'expédition gratuite en tant que couche de classe d'expédition qui s'empile avec vos offres de produit.
- Migration de Shopify Scripts: déplacez la logique de réduction basée sur les règles vers Functions avant la date limite du 30 juin 2026.
- Shopify Scripts se terminent : migrez sans développeur: le chemin sans code des Scripts.
- Ajouter automatiquement un cadeau gratuit quand le panier atteint un objectif de dépenses: le modèle de cadeau gratuit que l'achat Shopify natif X Get Y ne peut pas faire.
- Tarification Stackable: plans, niveau gratuit et ce que chacun inclut.



