Discount Codes That Stack, and the Ones That Never Will
A customer enters two discount codes at checkout, and the second one replaces the first. They email you to say the promo is broken, and you check the settings and find nothing wrong, because nothing is wrong. Shopify accepts one discount code per order, and that rule is the whole story.
The stacking rules are simple once you know them, and they are the reason most promo complaints are not bugs. One code per order. Automatic discounts stack with codes only when configured to. Gift cards stack with everything because they are payment, not discount. The rest is configuration.
The one-code rule, and what it breaks
Shopify checkout accepts a single discount code. Enter a second code and it replaces the first, keeping whichever gives the better discount, and the customer sees one code applied. There is no setting that changes this. A promotion built as two codes, one for the product and one for shipping, cannot work, because the customer can only enter one of them.
The fix is to build the promotion as one code, or as an automatic discount plus a code. A free shipping offer works as an automatic discount on shipping, and the customer enters the product code on top of it. The two stack because they are different mechanisms, not because two codes were entered.
Automatic discounts and the combinations setting
Every automatic discount in Shopify has a combinations section, and it decides what the discount can stack with. You choose whether it combines with product discounts, order discounts, and shipping discounts, and the default is that it does not combine with any of them. Most stacking complaints trace to this setting: the store created an automatic discount, assumed it would stack, and never opened the combinations section.
The rule to remember is that combinations are set per discount, not per store. A store can have one automatic discount that stacks with codes and another that does not, and the checkout applies the combination that gives the customer the best result. Check the combinations on every automatic discount when you create it, not when a customer complains.
Gift cards, and the order that applies
Gift cards stack with everything, because they are a payment method rather than a discount. A customer can use a gift card and a discount code on the same order, and the gift card applies to the total after the discount. That is the one stacking combination that always works, and it is why gift card promotions rarely generate complaints.
When a code does not apply, the checkout error message names the reason: expired, minimum purchase not met, limited to products the cart does not contain, or blocked by a combination rule. Read the message before assuming the code is broken. The message is usually right, and the fix is usually in the discount settings, not in the code itself.
Related reading
Related reading: Shopify Analytics vs GA4: Why the Numbers Never Match, The Gift Card Flow Nobody Tests Until December, and Where Is My Order: Build a Tracking Page That Answers It.
Frequently asked questions
Can a customer use two discount codes on one Shopify order?
No. Shopify checkout accepts one discount code per order. A second code replaces the first, and the customer sees the better one applied. If your promo needs two codes to work, it will not work.
Can an automatic discount combine with a discount code?
Yes, if the automatic discount is configured to combine with discount codes. In the discount settings, each automatic discount has a combinations section where you choose whether it can stack with product discounts, order discounts, and shipping discounts. The default is not to combine.
Do gift cards stack with discount codes?
Yes. A gift card is a payment method, not a discount, so it applies alongside any discount code. A customer can use a gift card and a discount code on the same order without any special configuration.
Why did my discount code not apply at checkout?
The usual reasons are that the code expired, it has a minimum purchase requirement the cart does not meet, it is limited to specific products or customers, or another discount is already applied and the code cannot combine with it. The checkout error message names the reason, and the discount settings show the conditions.