ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides9 min read

Shopify discount not showing? The common causes, in order

A discount that won't appear at checkout, ordered from most to least likely: eligibility, tags and collections, markets, compare-at, theme, cart transform, stacking, drafts.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Most "my discount isn't showing" cases resolve to one of seven causes. Check them in order: item eligibility first (products and collections are wrong more often than every other cause combined), then minimum requirements, market and currency scope, combination permissions, theme and cart-transform interference, compare-at display expectations, and finally draft orders, which never inherit automatic discounts.

Working the list in order matters because the tempting first move — deleting and recreating the discount — destroys the evidence. A broken discount's settings tell you what the checkout thinks is true. Read them before you touch them.

Start by deciding which failure you have

"There's no discount" describes four different symptoms with different causes. Place one test order in a private window, as a guest, in your main market, and note which one you see:

  1. Nothing at all — no badge, no line-item reduction, no message. An eligibility or scope failure.
  2. A badge but full price in the cart — advertised but not applied. Usually an eligibility edge or a broken theme snippet.
  3. A partial discount — some lines reduced, others not. Correct behaviour for a mixed cart, and usually an eligibility problem in disguise.
  4. The discount applies but the product page shows full price — an expectation problem, not a discount problem, and it's the compare-at field's job.

The diagnostic table

Order Cause How to confirm Typical fix
1 Items aren't in the discount's product/collection set Compare the cart's variants to the discount's item list, variant by variant Add the missing variants; check collection membership live
2 Minimum threshold not met Read the cart subtotal and item count against the requirement Lower the threshold or fix the cart being tested
3 Market or currency scope excludes the buyer Discount → Markets; test from the market's storefront Add the market, or build a market-specific discount
4 Combination permissions refused Check Combinations on both discounts Enable the matching flag on both
5 Product not published to that channel Product → Sales channels and markets Publish to the online store
6 Theme or cart drawer doesn't render discounts Check the cart page vs the checkout Test in checkout; if it's theme, contact theme support
7 Cart transform or bundle app rewrote the lines Disable the bundle app on a test cart Rebuild eligibility around the transformed products
8 Compare-at price missing, so no struck-through anchor Variant pricing and the product page Set compare-at above price
9 Draft order or manual order Order type in admin Apply the discount manually on the draft
10 Discount expired, paused, or exhausted its limits Discounts list, status column Reactivate or extend

Rows 1–3 account for most real cases; rows 6 and 7 generate the "Shopify is broken" tickets.

1. Item eligibility, variant by variant

The discount holds a list of products or collections. The cart holds variants. Those two things diverge constantly:

  • Collections move. An automated collection re-evaluates as products change; a product re-tagged last week may have left the sale collection. Open the collection in the admin and check three or four of the specific variants you're testing.
  • Variants aren't inherited the way you'd expect. A discount aimed at a product covers its variants; a discount aimed at one variant covers only that variant. If you built the list variant by variant, last month's new variant isn't in it.
  • The product exists twice. Duplicate products from a re-import mean the discount covers one handle and the customer is buying the other.
  • "All products" isn't always what you think. A gift card, a bundle parent, or a POS-only product in the cart still won't be discounted.

Test with a cart containing exactly one variant from your list, then a second cart with a variant you suspect is missing. Ten seconds, and eligibility is separated from everything else.

2. Minimum requirements

A minimum purchase amount is evaluated against the cart subtotal at the point the discount computes — after line-level discounts, before shipping and tax. So a cart that was over the threshold before a product discount can fall under it afterwards, and a cart that is over the threshold only because of shipping never qualifies.

Minimum quantity counts eligible items, not lines. "Buy 3, save 15%" on a cart with a 3-pack bundle line is one line and possibly three units, depending on how the bundle is represented in the cart.

3. Markets and currency

A discount scoped to specific markets is invisible everywhere else, and it's painful to debug because the person testing is usually in the market where it works. Check:

  • The discount's market scope.
  • Which market the storefront you're testing serves — the currency selector is the tell.
  • Whether the amount is achievable in that currency: a fixed "$10 off" has to mean something in each one, and conversion can round past your intent.
  • Whether a market price list is overriding the price you thought you were discounting.

If you run a single market and one currency, skip this — but confirm it, since multi-market setup is often inherited from a previous theme or app.

4. Combination permissions

If two discounts are supposed to appear together, both must permit the combination. A common version: an automatic product discount with combinations enabled, and a code that permits nothing. The code is accepted, the automatic discount applies, and the other silently drops.

Test each discount alone first. If each works alone and neither works together, the flags are the cause. The permission matrix is in what stacks and what doesn't.

5. Product availability by channel

A discount cannot apply to something the customer can't buy. Products unpublished from the online store, or published only to POS, are unreachable in an online checkout — often a side effect of migrating a catalog or restricting a market.

6. Theme and cart rendering

A theme's cart drawer often computes its own "you saved X" display. When the theme is out of date, or a cart-drawer app replaces the native cart, the display can show full price while the checkout applies the discount correctly.

The test: does the discount appear at checkout? If yes, this is a display bug and the checkout is the source of truth. Contact the theme developer and leave your discount settings alone — they're working.

7. Cart transform and bundles

Bundle apps using Shopify's cart transform capability can replace cart lines before the discount settles. The discount was evaluated against the original products; the transformed lines may be different products with different prices, and eligibility doesn't necessarily follow. Symptoms: bundles that never discount, discounts on only part of a bundle, totals that disagree between cart and checkout.

Reproduce with the bundle app disabled. If the discount applies then, the interaction is the cause and the fix belongs with the app's eligibility settings.

8. The compare-at expectation

If the discount works but the product page shows no struck-through price, you're looking at the other field. Discounts change what the customer pays at checkout; the struck-through "was" price comes from compare-at, and only renders when compare-at is higher than price. Sale price vs compare-at covers it field by field.

9. Draft orders

Automatic discounts don't apply to draft orders at the time of writing; draft orders carry their own discount entry that a merchant sets manually. If you're testing a phone or wholesale order, you're testing a path that ignores your automatic promotion entirely.

The 15-minute triage

In sequence, stopping as soon as something looks wrong:

  1. Is the discount Active and inside its scheduled window, end time included?
  2. Does the cart contain a variant from the item list, confirmed by opening that product?
  3. Is that product published to the online store?
  4. Does the cart meet the minimum amount and quantity?
  5. Is the market in scope, and the currency what you expect?
  6. Tested alone, does each discount apply? Then together?
  7. Any bundle, subscription, or cart app in play? Disable it and retest.
  8. Does it apply at checkout even if the cart page looks wrong? Then it's the theme.
  9. Last resort: duplicate the discount with minimal settings — all products, 10% off, no minimum. That tells you whether the problem was ever the settings or always the scope.

Common questions

Why is my Shopify discount not showing at checkout? Start with item eligibility: the cart's variants usually aren't in the discount's product or collection list, or a collection's membership changed. Then check the minimum threshold, the market scope, and whether both discounts permit the combination. Automatic discounts also never apply to draft orders, and products unpublished from the online store can't be discounted.

Why does the discount show in the cart but not on the product page? A discount reduces the price at checkout; the product page's displayed price is a separate field. To show a struck-through original beside a sale price, use the compare-at price — it only renders when it's higher than price, and it doesn't change what anyone pays.

Why isn't my discount code stacking with an automatic discount? Both discounts must permit the combination. Each carries its own combination settings, and the checkout only combines them when both sides allow it. Enable the matching flags on both, then retest with a guest checkout.

Does a discount apply to products not published to the online store? No — a discount can only apply to what the customer can actually buy on that channel.

Why did my discount apply to only some items in the cart? Line-level discounts only touch eligible lines. A mixed cart — one product in the sale collection, one outside it — is behaving correctly. If you expected full coverage, the item list is the thing to fix.

Next step: reproduce the failure with a controlled cart — a single variant you know is in the discount, guest checkout, private window — and note which of the four symptoms you get. That classification cuts the diagnostic table down to three rows. If the pattern is broader than one discount, read the mechanics in how Shopify automatic discounts work before rebuilding anything.