KoderKoder.ai
TarifsEntrepriseÉducationPour les investisseurs
Se connecterCommencer

Produit

TarifsEntreprisePour les investisseurs

Ressources

Contactez-nousSupportÉducationBlog

Légal

Politique de confidentialitéConditions d’utilisationSécuritéPolitique d’utilisation acceptableSignaler un abus

Réseaux sociaux

LinkedInTwitter
Koder.ai
Langue

© 2026 Koder.ai. Tous droits réservés.

Accueil›Blog›Pièges de la logique des coupons : règles d’empilement qui ne cassent pas le panier
15 nov. 2025·8 min

Pièges de la logique des coupons : règles d’empilement qui ne cassent pas le panier

La logique des coupons peut casser les totaux du checkout. Apprenez les règles d’empilement, les exclusions et des patterns testables pour éviter doubles remises et totaux négatifs.

Pièges de la logique des coupons : règles d’empilement qui ne cassent pas le panier

Pourquoi la logique des promos casse si souvent

Les promos semblent simples jusqu’à ce que vous les mettiez dans un vrai checkout. Un panier change tout le temps, mais les remises sont souvent écrites comme des règles ponctuelles. C’est dans cet écart que la plupart des pièges apparaissent.

Le plus difficile, c’est qu’une seule nouvelle règle peut modifier les totaux partout. Ajoutez « 10 % de réduction, mais pas sur les articles en promotion » et il faut décider ce que « promotion » signifie, quand on vérifie cette condition, et sur quel montant s’applique les 10 %. Si une autre promo touche les mêmes articles, l’ordre compte, et l’ordre change le prix.

Beaucoup d’équipes mélangent aussi la logique métier et les calculs. Un correctif rapide comme « caper la remise au sous-total » est recopié à trois endroits, et bientôt vous obtenez des réponses différentes selon l’endroit où le total est calculé (page panier, checkout, facture, email).

Les moments à haut risque sont ceux où votre système recompute les prix :

  • Mises à jour du panier : changement de quantité, suppression d’un article, modification du mode de livraison
  • Éditions après paiement : changement d’adresse, annulations partielles, substitutions d’articles
  • Remboursements et retours : prorata entre articles, ajustements de taxes, crédit boutique
  • Changes de devise ou de mode fiscal : prix net vs brut, totaux TVA incluse

Un petit exemple : un acheteur ajoute un bundle, applique ensuite un code « 20 $ de réduction dès 100 $ », puis retire un article. Si votre code « se souvient » encore de l’ancien sous-total, vous pouvez finir par accorder 20 $ sur un panier à 85 $, ou même faire passer une ligne d’article en négatif.

À la fin de cet article, vous devriez pouvoir prévenir les défaillances de promos les plus courantes : double remise, totaux discordants entre écrans, totaux négatifs, remises appliquées à des articles exclus, et remboursements qui ne correspondent pas à ce que le client a réellement payé.

Commencez par des règles claires d’empilement et de priorité

La plupart des pièges commencent par une phrase manquante : quelles remises peuvent s’appliquer ensemble, et dans quel ordre. Si vous ne pouvez pas expliquer les règles d’empilement en langage clair, votre panier finira par faire quelque chose de surprenant.

Définissez l’empilement par des énoncés simples oui/non. Par exemple : « Un coupon manuel par commande. Les promos automatiques peuvent toujours s’appliquer sauf si le coupon indique qu’elles sont bloquées. » Cette seule ligne empêche des combinaisons aléatoires qui mènent à des doubles remises.

Séparez tôt les remises au niveau article et celles au niveau commande. Les règles au niveau article changent le prix de produits spécifiques (par exemple 20 % sur les chaussures). Les règles au niveau commande changent le total (par exemple 10 $ sur le panier). Les mélanger sans structure est la cause des dérives entre pages produit, panier et checkout.

Décidez ce que signifie « meilleure offre » avant de coder. Beaucoup d’équipes choisissent « économies maximales », mais cela peut casser les planchers de prix. Vous pourriez aussi avoir besoin de règles comme « ne jamais réduire en dessous du coût » ou « ne jamais rendre la livraison négative ». Choisissez une règle claire gagnante pour que le moteur ne doive pas deviner.

Un ordre de priorité simple rend les conflits prévisibles :

  • Promos automatiques d’abord (catalogue ou saisonnières)
  • Coupon manuel ensuite (ce que le client a saisi)
  • Crédit boutique ou carte cadeau en dernier (moyen de paiement, pas une remise)
  • Taxes et livraison recalculées après remises

Exemple : un panier bénéficie d’une promo automatique de 10 % sur tous les articles, plus un coupon saisi de 15 $ dès 100 $. Si votre priorité indique automatique d’abord, vous pouvez clairement répondre : le seuil de 100 $ utilise-t-il le sous-total avant remise ou après remise ? Écrivez la règle, puis appliquez-la de manière cohérente partout.

Une fois ces choix formalisés, vos règles d’empilement deviennent testables, pas un comportement caché. C’est le moyen le plus rapide d’éviter les pièges plus tard.

Modélisez les remises comme des données simples et explicites

Beaucoup de pièges apparaissent quand les remises sont dispersées en if-else à travers le code de checkout. Une approche plus sûre est de traiter chaque promo comme des données avec un type, un périmètre et des limites clairs. Ainsi, le calcul du panier devient un petit évaluateur prévisible.

Commencez par nommer le type de remise, pas l’idée marketing. La plupart des promos se répartissent en quelques formes : pourcentage, montant fixe, article gratuit (ou achetez X obtenez Y), et livraison gratuite. Quand vous pouvez exprimer une promo par l’un de ces types, vous évitez les cas particuliers difficiles à tester.

Ensuite, rendez le périmètre explicite. Le même pourcentage se comporte très différemment selon ce qu’il cible. Définissez s’il s’applique à l’ensemble de la commande, à une catégorie, à un produit, à une ligne unique, ou à la livraison. Si le périmètre est flou, vous risquez de remiser le mauvais sous-total ou de remiser deux fois.

Capturez les contraintes comme des champs, pas des commentaires dans le code. Les plus courantes : seuil de dépense minimale, première commande uniquement, plage de dates. Enregistrez aussi le comportement attendu avec les prix soldés : empiler, appliquer sur le prix d’origine, ou exclure les articles remisés.

Un schéma de règle compact pourrait inclure :

  • type (percent, fixed, free_item, free_shipping)
  • scope (order, category, product, item, shipping)
  • constraints (min_spend, first_order, start_at, end_at)
  • floors (min_total = 0, min_item_price, optional min_margin)
  • rounding policy (par article vs par commande)

Enfin, ajoutez des planchers de prix que le moteur doit toujours respecter : les totaux ne doivent jamais être négatifs, et si votre business l’exige, les articles ne doivent pas passer en dessous du coût (ou en dessous d’un prix minimum défini). En intégrant cela, vous prévenez les totaux négatifs et les cas où « on paie le client ».

Si vous prototypez un moteur de remises dans Koder.ai, gardez ces champs visibles en mode planification pour que l’évaluateur reste simple et testable au fur et à mesure que vous ajoutez des promos.

Étape par étape : une façon sûre d’évaluer les promos

La plupart des pièges surviennent quand les vérifications d’éligibilité et la logique math se mélangent. Un modèle plus sûr est en deux phases : d’abord décider ce qui peut s’appliquer, puis calculer les montants. Cette séparation rend les règles plus lisibles et facilite la prévention des états invalides (comme les totaux négatifs).

Un ordre d’évaluation déterministe

Utilisez le même ordre à chaque fois, même si les promos arrivent dans un ordre différent depuis l’UI ou l’API. La détermination est importante parce qu’elle transforme « pourquoi ce panier a changé ? » en une question à laquelle on peut répondre.

Un flux simple qui fonctionne bien :

  • Valider les entrées : format du code promo, fenêtre de dates, périmètre client, devise, et que les prix sont non négatifs.
  • Sélectionner les promos éligibles : exécuter l’éligibilité seulement (pas d’argent encore). Construire une liste de candidates.
  • Résoudre l’empilement et la priorité : appliquer vos règles d’empilement (ex : « un promo de type commande max ») et les critères de départage (priorité, puis meilleure valeur, puis ID stable).
  • Appliquer les calculs : calculer les remises en utilisant une base cohérente (hors taxe vs TTC, livraison incluse ou non) et les règles d’arrondi.
  • Résumer les totaux : recomposer les totaux de la commande à partir des totaux par ligne, puis plafonner à zéro et appliquer les limites maximales de remise.

Conserver une ventilation et une piste d’audit

Lorsque vous appliquez des promos, ne stockez pas qu’un simple « total remise ». Conservez une ventilation par ligne et pour la commande afin de pouvoir rapprocher les totaux et les expliquer.

Au minimum, enregistrez :

  • Quelle règle ou promo a été appliquée (ID et version), et sa priorité
  • Pourquoi elle s’est appliquée (faits d’éligibilité comme « catégorie=chaussures », « sous-total du panier \u003e= 50 »)
  • Ce qu’elle a changé (IDs des lignes affectées, montant de base, montant de la remise, arrondi)
  • Ce qu’elle a empêché (ex : « bloqué par exclusion : a déjà une remise au niveau article »)

Exemple : un panier contient deux articles, dont un déjà en promotion. La phase 1 marque le code éligible uniquement pour l’article au prix plein. La phase 2 applique 10 % à cette ligne, laisse la ligne soldée inchangée, puis recalcule les totaux de la commande à partir de la ventilation pour éviter la double-remise.

Encoder les exclusions sans créer du spaghetti logique

Partagez une démo de checkout réelle
Placez votre checkout de staging sur un domaine personnalisé pour partager des tests réalistes avec les parties prenantes.
Ajouter un domaine

La plupart des pièges viennent quand les exclusions sont cachées dans des branches de cas particuliers comme « si code est X, sauter Y ». Ça marche pour une promo, puis casse quand arrive la suivante.

Un pattern plus sûr : gardez un seul flux d’évaluation, et faites des exclusions un ensemble de vérifications qui peuvent rejeter une combinaison de promos avant de calculer l’argent. Ainsi, les remises ne s’appliquent jamais partiellement.

Traitez les exclusions comme des données, pas du branching

Au lieu d’encoder les comportements en dur, donnez à chaque promo un petit « profil de compatibilité » explicite. Par exemple : type de promo (coupon vs promo automatique), périmètre (articles, livraison, commande), et règles de combinaison.

Supportez à la fois :

  • Liste « ne peut pas se combiner avec » (denylist) : la promo A bloque la promo B.
  • Liste « peut uniquement se combiner avec » (allowlist) : la promo A ne peut s’empiler qu’avec un ensemble nommé.
  • Flags de règle comme « bloque les soldes automatiques » ou « requiert aucune autre remise ».

La clé est que votre moteur pose les mêmes questions pour chaque promo, puis décide si l’ensemble est valide.

Rendre les conflits explicites, y compris les soldes automatiques

Les soldes automatiques sont souvent appliqués en premier, puis un coupon arrive et les écrase silencieusement. Décidez à l’avance ce qui doit se passer :

  • Le coupon s’empile sur la remise
  • Le coupon ne s’applique qu’aux articles non soldés
  • Le coupon est rejeté si une remise automatique est présente

Choisissez une option par promo et encodez-la comme une vérification, pas comme un chemin de calcul alternatif.

Une façon pratique d’éviter les surprises est de valider la symétrie. Si « WELCOME10 ne peut pas se combiner avec FREESHIP » est censé être mutuel, encodez-le de sorte que les deux directions bloquent. Si ce n’est pas mutuel, que ce soit intentionnel et visible dans les données.

Exemple : une vente automatique sitewide de 15 % est en cours. Un client entre un coupon de 20 % destiné aux articles au prix plein uniquement. Vos vérifications doivent exclure les articles soldés pour le coupon avant de calculer les totaux, plutôt que de les remiser puis d’essayer de corriger les chiffres ensuite.

Si vous construisez vos règles dans une plateforme comme Koder.ai, gardez ces vérifications comme une couche séparée et testable afin de pouvoir changer les règles sans réécrire la partie mathématique.

Cas limites qui provoquent des totaux discordants

La plupart des litiges sur les promos ne portent pas sur la remise annoncée. Ils surviennent quand le même panier est calculé de deux manières légèrement différentes, puis le client voit un chiffre dans le panier et un autre au checkout.

Commencez par verrouiller votre ordre d’opérations. Décidez, et documentez, si les remises au niveau article s’appliquent avant celles au niveau commande, et où se place la livraison. Une règle courante : remises article d’abord, puis remise de commande sur le sous-total restant, puis remises livraison en dernier. Quelle que soit votre décision, utilisez exactement la même séquence partout où vous affichez un total.

La taxe est le piège suivant. Si vos prix sont TTC, une remise réduit aussi la part de taxe. Si vos prix sont HT, la taxe est calculée après les remises. Mélanger ces modèles dans différentes parties du flux est un classique : deux calculs corrects peuvent tout de même diverger s’ils supposent des bases fiscales différentes.

Les problèmes d’arrondi semblent mineurs mais génèrent de gros tickets support. Décidez si vous arrondissez par ligne (chaque SKU après remise) ou seulement au niveau commande, et respectez la précision de la devise. Avec des coupons en pourcentage, l’arrondi par ligne peut diverger de quelques cents par rapport à l’arrondi commande, surtout avec beaucoup d’articles bon marché.

Voici des cas limites à traiter explicitement :

  • Retours et remboursements partiels : proratiser les remises entre articles pour que les remboursements ne dépassent pas ce qui a été payé.
  • Éditions du panier après application d’un coupon : réévaluer l’éligibilité et les plafonds lorsqu’on ajoute ou retire des articles.
  • Modifications de livraison : changer d’adresse ou de méthode peut modifier les montants imposables et l’éligibilité aux remises de livraison.
  • Changement de quantité : répéter le même article peut franchir des seuils (par ex. min_spend ou buy-X-get-Y).
  • Articles à fiscalité mixte : certains articles peuvent être non imposables, mais rester éligibles aux coupons.

Un exemple concret : un coupon de 10 % sur la commande plus livraison gratuite au-delà de 50 $. Si le coupon s’applique avant la vérification du seuil, le sous-total réduit peut passer sous 50 $ et la livraison gratuite disparaît. Choisissez une interprétation, encodez-la comme règle, et rendez-la cohérente dans panier, checkout et remboursements.

Bugs courants de promos et comment ils arrivent

La plupart des pièges apparaissent quand le panier est évalué par plus d’un chemin. Une promo peut s’appliquer au niveau ligne dans un endroit et de nouveau au niveau commande ailleurs, et les deux semblent « correctes » isolément.

Voici les bugs les plus fréquents et leur cause habituelle :

  • Double remise des mêmes articles : la même promo est appliquée une fois dans le prix des lignes et de nouveau lors du calcul du total commande, souvent parce que deux services appliquent « utilement » des remises.
  • Totaux négatifs ou lignes négatives : un montant fixe dépasse la base éligible (par ex. 20 $ sur un sous-total éligible de 12 $) sans plancher à zéro.
  • Pourcentage appliqué après une remise par erreur : le moteur applique 10 % sur un prix déjà réduit alors que la règle voulait « 10 % sur le prix catalogue », parce que le code utilise le prix courant au lieu du prix de référence.
  • Seuil minimum vérifié sur le mauvais sous-total : la règle vérifie le sous-total avant remise, alors que le business attendait après remise (ou l’inverse), ce qui fait que la promo s’applique ou échoue de façon surprenante.
  • Articles exclus qui reçoivent tout de même la remise : l’éligibilité repose sur des tags produits, mais un étiquetage manquant ou incohérent (ou un chemin de secours) considère les articles inconnus comme éligibles.

Un exemple concret : un panier a deux articles, un éligible et un exclu. Si le moteur calcule correctement le « sous-total éligible » pour la promo en pourcentage, mais qu’ensuite il retranche une remise fixe du total de la commande, l’article exclu se retrouve effectivement remisé.

Le pattern le plus sûr : calculer chaque promo contre un « montant éligible » explicite et retourner un ajustement borné (jamais en dessous de zéro), plus une trace claire de ce qui a été touché. Si vous générez votre moteur de remises dans un outil comme Koder.ai, faites-le sortir la trace en données simples pour que vos tests puissent affirmer exactement quelles lignes étaient éligibles et quel sous-total a été utilisé.

Rendre les règles testables avec la bonne suite de tests

Prototypez votre moteur de promos
Prototypez un évaluateur de promos déterministe dans un flux de chat, puis itérez avec des règles de priorité claires.
Essayer Koder.ai

La plupart des pièges apparaissent parce que les tests vérifient seulement le total final. Une bonne suite teste à la fois l’éligibilité (cette promo doit-elle s’appliquer ?) et la mathématique (combien doit-elle retirer ?), avec une ventilation lisible que vous pouvez comparer au fil du temps.

Construire des tests du petit au réel

Commencez par des tests unitaires qui isolent une règle à la fois. Gardez l’entrée minimale, puis élargissez aux scénarios complets.

  • Tests d’éligibilité unitaires : la promo s’applique-t-elle au vu du type de client, des dates, des tags produits et du seuil minimum ?
  • Tests mathématiques unitaires : pour un sous-total éligible donné, le calcul respecte-t-il les règles d’arrondi et de devise ?
  • Tests de scénario : articles mixtes, quantités, livraison, taxe, et quelques promos en compétition.
  • « Changement de panier » : prix mis à jour, article supprimé, ou quantité changée entre l’évaluation et le checkout.
  • Tests de snapshot de ventilation : enregistrez la répartition attendue par ligne, pas seulement le total final.

Après avoir une couverture, ajoutez quelques vérifications « toujours vraies ». Elles attrapent les cas bizarres que vous n’aviez pas pensé à écrire manuellement.

  • Le total ne descend jamais en dessous de 0.00.
  • Une remise n’augmente jamais le total.
  • La remise appliquée n’est jamais supérieure à sa base éligible.
  • Retirer un article inéligible ne peut pas rendre la remise plus importante.

Un petit exemple de panier

Imaginez un panier avec 2 articles : une chemise à 40 $ (éligible) et une carte cadeau à 30 $ (exclue). La livraison est à 7 $. Une promo est « 20 % sur l’habillement, max 15 $ », plus une seconde promo « 10 $ sur les commandes > 50 $ » qui ne peut pas s’empiler avec des remises en pourcentage.

Votre test de scénario doit affirmer quelle promo gagne (priorité), confirmer que la carte cadeau est exclue, et vérifier l’allocation exacte : 20 % de 40 $ = 8 $, livraison inchangée, total final correct. Sauvegardez cette ventilation comme snapshot pour que de futures refactorisations ne changent pas silencieusement la promo appliquée ou ne commencent à remiser les lignes exclues.

Checklist rapide avant déploiement

Avant de lancer une nouvelle promo, faites une dernière passe avec une checklist qui attrape les échecs que les clients remarquent instantanément : totaux étranges, messages confus, et remboursements qui ne tombent pas juste. Ces vérifs aident aussi à prévenir les pièges car elles forcent les règles à se comporter de la même façon dans tous les paniers.

Exécutez ces contrôles sur un petit ensemble de paniers « known tricky » (un article, plusieurs articles, taux de taxe mixte, livraison, et une ligne en grande quantité). Sauvegardez les paniers pour pouvoir les relancer à chaque modification du code de tarification.

Les cinq vérifications qui attrapent la plupart des échecs

  • Garde-fous sur les totaux : le total final et le prix net de chaque ligne ne doivent jamais être négatifs. Si une remise dépasse ce à quoi elle peut s’appliquer, plafonnez-la et enregistrez le montant plafonné.
  • Mathématique explicable : la ventilation affichée au client (par promo, par ligne, par livraison) doit être exactement la somme du montant payé final. Si vous ne pouvez pas l’expliquer en une phrase, les règles sont trop floues.
  • Une seule politique d’empilement, pas de surprises : décidez et vérifiez ce qui peut s’empiler (coupon avec promo auto, pourcentage avec montant fixe, remise livraison avec remise article). R rendez l’ordre de priorité explicite et confirmez que cela correspond à ce que le support va dire.
  • Arrondi cohérent : choisissez une règle d’arrondi (par ligne vs par commande, half-up vs bankers, décimales spécifiques à la devise). Documentez-la et testez-la avec des prix comme 0,99 $, quantités comme 3, et remises en pourcentage mixtes.
  • Remboursements corrects : les retours partiels doivent rembourser la bonne part des remises, taxes et livraison. Testez « retourner 1 sur 3 », « retourner d’abord l’article remisé », et « rembourser après expiration de la promo ».

Si vous construisez vos règles dans un générateur comme Koder.ai, ajoutez ces cas comme tests automatisés parallèlement aux définitions de règles. L’objectif : toute nouvelle promo doit échouer vite en tests plutôt que de casser le panier d’un client.

Un scénario d’empilement réaliste pour valider vos règles

Publiez un service de promos testable
Déployez et hébergez rapidement votre service de promos pour que les tests correspondent au comportement en production.
Déployer l’application

Voici un petit panier qui expose la plupart des pièges sans être compliqué.

Supposons ces règles (écrivez-les exactement comme ceci dans votre système) :

  • La promo auto s’applique en premier, au niveau article, seulement sur les articles pleins éligibles
  • Le coupon est au niveau commande, 15 $ de réduction, nécessite au moins 100 $ de marchandise éligible
  • « Marchandise éligible » exclut les articles soldés, la livraison et la taxe
  • La remise du coupon ne peut pas dépasser le sous-total éligible après les promos antérieures
  • La taxe est calculée après les remises (sur la marchandise remisée plus la livraison)

Panier et promos

Panier :

LignePrixRemarques
Article A60 $plein tarif, éligible
Article B40 $plein tarif, éligible
Article C30 $article en promotion, exclu
Livraison8 $frais

Promos :

  • Promo 1 : promo automatique 10 % le week-end sur les articles éligibles
  • Promo 2 : coupon 15 $ off, min 100 $ de marchandise éligible, exclut les articles soldés

Déroulé et ventilation finale

  1. Vérifier le minimum du coupon : la marchandise éligible avant remises est 60 $ + 40 $ = 100 $, donc le coupon peut s’appliquer.

  2. Appliquer la Promo 1 (10 % sur les articles éligibles) : 100 $ x 10 % = 10 $ de remise. Le sous-total éligible devient 90 $.

  3. Appliquer la Promo 2 (15 $) : le plafond est 90 $, donc les 15 $ s’appliquent en entier. Nouveau sous-total éligible : 75 $.

Totaux :

  • Marchandise : éligible 75 $ + article soldé 30 $ = 105 $
  • Livraison : 8 $
  • Taxe (8 %) : (105 + 8) x 0,08 = 9,04 $
  • Total final : 105 + 8 + 9,04 = 122,04 $

Changeons une chose : le client retire l’Article B (40 $). La marchandise éligible devient 60 $, donc le coupon de 15 $ ne passe plus le seuil. Seule la promo automatique de 10 % reste : l’Article A devient 54 $, la marchandise vaut 54 $ + 30 $ = 84 $, et le total final devient 99,36 $. C’est le genre de « petite modification » qui casse souvent les paniers si l’éligibilité et l’ordre ne sont pas explicites.

Étapes suivantes : déployer les promos en sécurité et les maintenir

La manière la plus rapide d’éviter les pièges est de traiter les promos comme des règles produit, pas comme « un peu de math dans le checkout ». Avant de lancer, rédigez une courte spécification que tout le monde dans l’équipe peut lire et approuver.

Incluez quatre choses, en langage clair :

  • Règles d’empilement (ce qui peut se combiner et ce qui ne peut pas)
  • Ordre de priorité (quelle remise l’emporte quand deux ciblent les mêmes articles)
  • Exclusions (catégories, marques, articles en promotion, abonnements, cartes cadeaux)
  • Planchers et plafonds (sous-total min, remise max, et « jamais en dessous de 0 $ »)

Après la mise en production, surveillez les totaux comme vous surveillez les erreurs. Un bug de remise ressemble souvent à une commande valide jusqu’à ce que la finance le voie.

Mettez en place une surveillance qui signale les commandes aux schémas inhabituels : totaux proches de zéro, totaux négatifs, remises supérieures au sous-total, ou pics soudains de paniers « 100 % off ». Envoyez les alertes au même endroit que vos erreurs de checkout et gardez un petit playbook pour désactiver une promo en toute sécurité.

Pour ajouter de nouvelles promos sans régressions, suivez un flux reproductible : mettez à jour la spec d’abord, encodez la règle comme des données (pas du code en branching), ajoutez des tests pour quelques paniers « normaux » et un ou deux cas limites méchants, puis lancez la suite complète avant de merger.

Si vous voulez implémenter et itérer plus vite, vous pouvez prototyper les flux du moteur de promos dans Koder.ai en mode planification, puis utiliser des snapshots et rollback pendant que vous affinez vos tests. Ça vous aide à essayer des changements de règles rapidement sans perdre une version connue bonne.

Sommaire
Pourquoi la logique des promos casse si souventCommencez par des règles claires d’empilement et de prioritéModélisez les remises comme des données simples et explicitesÉtape par étape : une façon sûre d’évaluer les promosEncoder les exclusions sans créer du spaghetti logiqueCas limites qui provoquent des totaux discordantsBugs courants de promos et comment ils arriventRendre les règles testables avec la bonne suite de testsChecklist rapide avant déploiementUn scénario d’empilement réaliste pour valider vos règlesÉtapes suivantes : déployer les promos en sécurité et les maintenir
Partager