All posts
Shopify Store Development

How to Run Multiple Shopify Discounts Without Hurting Your Margins

Shopify's discount combination rules are protective by default — the risk is what happens when you loosen them. Because a discount comes entirely out of profit, not revenue, stacking promotions can quietly ship orders below your profit floor. Here's how Shopify combinations actually work, the break-even math, and the guardrails that let you run several discounts at once without eroding margin.

AD Digitech Engineering · Shopify Store TeamAugust 5, 20265 min read
Infographic titled 'How to Run Multiple Shopify Discounts Without Hurting Your Margins' — three discount-class cards (10% off order, 15% off product, free shipping) feeding a mock Shopify order summary where a $200 subtotal less $60 of combined discounts ($20 order, $30 product, $10 shipping) gives a $140 total with an estimated 28% margin — alongside a Margin Guardrails panel (set max discount cap, use minimum order threshold, exclude low-margin products, monitor and optimize) and four steps: Understand Combination Rules, Do the Break-even Math, Apply Smart Guardrails, and Monitor & Optimize.

The short version: Shopify's discount combination rules are actually protective by default — the danger isn't that Shopify won't let you stack, it's what happens when you loosen the rules without doing the math. Because a discount comes entirely out of profit, not revenue, stacking promotions can quietly ship orders below your profit floor. Here's how combinations really work, the break-even math, and the guardrails that let you run several at once safely.

We build and optimise Shopify stores, so this is how we actually set discounts up — mechanics first, then margin protection.

First, the uncomfortable math: discounts come out of profit

Before any mechanics, internalise this, because it's the whole reason "multiple discounts" is risky:

A discount is subtracted entirely from your gross profit, not your revenue. When you take 20% off, your COGS, shipping, and fulfillment costs don't drop by a cent — so that 20% comes straight out of the margin. Which means discounts shrink profit far faster than they shrink revenue.

The break-even question is: how much extra volume does a discount need to generate just to hold the same profit dollars? The formula is simple:

Extra unit sales needed = discount ÷ (gross margin − discount)

Run it and the numbers are sobering:

Gross marginDiscountExtra sales just to break even
50%10%+25%
50%20%+67%
40%20%+100% (you must double sales)
30%20%+200%

That's for one discount. Now stack a second on top, and you're compounding against your thinnest number. This is why running multiple discounts demands care — not because it's hard to set up, but because it's easy to give away all your profit without noticing.

How Shopify discount combinations actually work

Here's the reassuring part: Shopify's defaults are on your side. The combination system is built around three discount classes:

  • Product discounts (amount/percentage off specific items)
  • Order discounts (amount/percentage off the order total)
  • Shipping discounts (free or reduced shipping)

And the rules are protective:

  • Only one product discount can apply per line item — you can't double-discount the same item.
  • Shipping discounts can't combine with other shipping discounts.
  • An order discount can combine with a product discount — but only if both are explicitly set to allow it.
  • Nothing stacks unless you turn on combinations. By default a discount is standalone. You opt in, per discount, to which classes it may combine with.
  • On the code side, a single customer can use up to 5 product or order discount codes plus 1 shipping code on one order.
  • Automatic discounts and Buy X Get Y don't stack by default either.

In other words, Shopify won't accidentally stack you into oblivion. The exposure appears the moment you start ticking "combines with" boxes — that's when the margin math above becomes your responsibility, not the platform's.

The safe way to run several discounts at once

The instinct is to stack percentage on percentage. Don't — that's the fastest route through your profit floor. Instead:

Use different incentive types for different jobs. The cleanest multi-discount setup pairs incentives that do different things:

  • Free shipping above an order threshold (nudges basket size) + a percentage discount scoped to one collection (drives a specific category).

These combine cleanly under Shopify's classes (shipping + product/order) and each does a distinct job, rather than two percentages both eating the same margin.

Scope discounts to collections — and exclude the wrong products. Put low-margin items, MAP-restricted products, and new arrivals into an excluded collection so promotions never touch them. A store-wide percentage is the bluntest, most margin-destructive tool you own.

Attach minimum order thresholds so any discount rides a bigger basket instead of subsidising a single cheap item — and be especially wary of combining a product discount with free shipping on low-priced orders, which erodes profit fastest of all.

Decide combinability deliberately, per discount. Every "combines with" checkbox is a margin decision. Treat it as one.

Set a profit floor — the guardrail that matters most

One rule sits above all the others: no order should ship below your minimum margin. Everything else is in service of that.

Native Shopify settings get you part way — caps, thresholds, collection scoping, and combination controls. But when your rules get more sophisticated than the admin allows, the supported tool is Shopify Functions. A discount Function lets you build exactly the logic native discounts can't:

  • Tiered discounts (spend more, save more) with a hard ceiling
  • Per-order discount caps so stacking can't exceed a set maximum
  • Product / collection exclusions enforced in code
  • A minimum-margin floor that overrides promotions, so nothing ever ships below profit

This is precisely the custom discount logic Functions were designed for — it's worth understanding when to reach for a Function versus an app, and if you're still on legacy Scripts, that logic now lives in Functions after the Scripts-to-Functions migration.

Then check the discount is even working

A promotion can hit its "revenue target" and still lose you money — because, again, discounts shrink margin faster than revenue. So measure the right thing:

  • Track gross profit dollars, not revenue or units. Revenue up with profit down is a losing promo dressed as a win.
  • Test incrementality with a holdout. The real question is whether the discount created new sales or just subsidised demand you'd have captured anyway. A holdout group answers it; treat promotions like any other change worth measuring properly.
  • Prefer margin-neutral levers where you can. Raising average order value through post-purchase upsells grows profit without giving anything away — often a better first move than a deeper discount.

The bottom line

Running multiple Shopify discounts isn't dangerous because the platform makes it hard — it's dangerous because the platform makes it easy, and every stacked percentage comes straight out of your thinnest number.

Understand the combination classes, use different incentive types instead of stacking percentages, and enforce a profit floor. Then multiple discounts become a controlled lever — not a slow leak.

We help Shopify brands design and build margin-safe promotions — combination strategy, custom discount Functions, profit-floor enforcement, and the measurement that proves a promo actually made money. See our Shopify store development work, or talk to us about your discount strategy.

Frequently asked questions

Can you stack multiple discount codes on Shopify?

Partly. Shopify's combination system works by discount class — product, order, and shipping. Two product discounts can't apply to the same line item, and shipping discounts can't combine with each other, but an order discount can combine with a product discount if both are set to allow it. A single customer can use up to 5 product or order discount codes plus 1 shipping discount code on one order. Nothing stacks unless you explicitly enable combinations.

Do Shopify discounts combine automatically?

No — combinations are opt-in. By default a discount doesn't stack with others; you choose, per discount, which classes it's allowed to combine with (product, order, shipping). That default is protective, because it stops accidental over-discounting. The risk starts when you loosen it without first doing the margin math.

Why do discounts hurt margins more than they look?

Because the discount comes entirely out of your gross profit, not your revenue — your COGS, shipping, and fulfillment costs don't fall when you discount. A 20% discount on a product with a 50% gross margin means you need roughly 67% more unit sales just to hold the same profit dollars. Stacking multiple discounts compounds that against your thinnest number.

How do I stop discounts from stacking below my profit floor?

Set guardrails. Cap the maximum total discount per order, set minimum order thresholds so a discount rides a bigger basket, scope discounts to collections that exclude low-margin or MAP items, and — where the native settings stop — use a Shopify Function to enforce a minimum-margin rule so no order can ship below your profit floor.

Can I build custom discount logic on Shopify?

Yes, with Shopify Functions. Native discounts cover the common cases, but a discount Function lets you implement custom logic — tiered discounts, product or collection exclusions, per-order caps, and a hard minimum-margin floor. It's the supported replacement for the old Scripts, and it's the right tool when your promotion rules are more complex than the admin allows.

What's the safest way to run several promotions at once?

Use different incentive types for different jobs rather than piling percentage on percentage. For example: free shipping above an order threshold, plus a percentage discount reserved for a specific collection. That combines cleanly, protects margin, and nudges basket size. Then measure gross profit dollars — not revenue — ideally against a holdout group, to confirm the promotion is creating genuinely new sales.

Have a project in mind?

Building something on Shopify?

We design, build, and maintain Shopify apps, stores, and AI products — to the standard this article describes.

Related reading

Shopify Store Development 8 min

Shopify Analytics Annotations: How Merchants Can Add Context to Their Store Data

Shopify Analytics annotations let merchants add campaign, pricing and operational notes to reports. See how they work, the limits, and how to use them for BFCM.

Read article
Shopify Store Development 11 min

Shopify Canvas Explained: How AI Is Changing Shopify Store Design in 2026

Shopify Canvas, announced October 1, 2026, lets merchants design a store with Sidekick. See how it works, its current limits, and what it means for developers.

Read article
Shopify Store Development 9 min

Shopify's New Market-Driven Shipping Is Rolling Out: What Merchants Need to Know

Shopify Market-Driven Shipping began rolling out on October 1, 2026. See what changes, who is affected, and what to check before BFCM.

Read article
Shopify Store Development 8 min

Shopify Liquid Storefronts Now Start Loading 29% Faster: What Merchants Need to Know

Shopify now streams the top of eligible Liquid pages early, cutting TTFB about 29% at p75. What it means for FCP, LCP, your theme, and what still needs fixing.

Read article
Shopify Store Development 8 min

Shopify Return Shipping Fees: What U.S. Merchants Need to Know Before October 23, 2026

From October 23, 2026, Shopify Tax and Tax Platform tax return shipping fees on U.S. orders. Who's affected, what's excluded, and what to review.

Read article
Shopify Store Development 9 min

Shopify BFCM Product Page Optimization: What to Fix Before Black Friday

Shopify BFCM product page optimization: which pages to fix first, what to fix now vs later, a 9-week timeline to Black Friday 2026, and a final checklist.

Read article
Shopify Store Development 8 min

Shopify Analytics Changed in September 2026: Why Your Sessions & Conversion Rate May Look Different

Shopify's Sept 21, 2026 Analytics update changes how sessions are measured, so sessions and conversion rate may look different — but orders and sales aren't affected.

Read article
Shopify Store Development 9 min

Shopify Product Variants Now Support Multiple Barcodes: What Merchants Need to Know

Shopify product variants now support up to 20 barcodes each. What changed, how it works, who benefits, and what to review in your product, inventory, POS, and integrations.

Read article
Shopify Store Development 9 min

Shopify Shop Campaigns Analytics: How Merchants Can Measure ROAS, CAC & AOV

Shopify Shop Campaigns performance data is now in ShopifyQL. What ROAS, CAC, AOV, sales, and customer metrics actually mean — and how to read them together to make better budget decisions.

Read article