Shopify Discount Code Not Working? Find the Rule Blocking It

11 minutes to read
28 Sep, 2026

Get the exact message the customer saw, match it in the table below, and open that one setting — the message almost always names the rule that failed. The two that catch people out are dates, which run on your store's timezone rather than your customer's, and combinations: an automatic discount is already on the order before anyone types a code, so a code not set to combine with it gets rejected while looking perfectly valid.

AI Summary

Shopify discount codes that fail usually reflect their own configuration rather than a fault: an inactive date range often caused by store timezone, a reached usage limit, an unmet minimum purchase, product or collection eligibility the cart does not meet, or customer eligibility. Combination settings are the most confusing cause, since an automatic discount can block a code not set to combine with it. Codes that apply but show a smaller saving usually reflect eligible-item or sale-price rules.

A customer says the code doesn't work. You try it and it works fine. Or you try it and it fails, and the settings look correct.

In almost every case the code is doing exactly what it was configured to do. Discounts carry a stack of rules — dates, limits, minimums, eligible products, eligible customers, combinations — and a code fails the moment any one of them is not met. The rule that failed is rarely the one you were thinking about.

Start with the error message. Shopify's checkout generally tells the customer why a code was rejected. Ask for the exact wording, or reproduce it yourself with the same cart. Then match it in the table below.

If you are creating a discount rather than fixing one, start with Shopify discounts setup. If checkout itself errors or will not load, that is a different problem — see Shopify checkout not working.

Discount options and combination rules change. Confirm current behaviour in Shopify's own documentation, and if an admin path below does not match, search the setting name in your admin.

Start here: match the error message

Find the row that matches what the customer saw, then jump to that cause.

What the customer seesMost likely causeWhere to look
Code isn't valid yet, or has expiredDates run on the store's timezone, not the customer'sDiscounts › the discount › Active dates
Code rejected for a customer who ordered beforeOne use per customer, matched by emailDiscounts › the discount › Maximum discount uses
Code worked yesterday, stopped todayTotal usage limit reachedDiscounts › the discount › Maximum discount uses
Minimum not metCart below the amount or quantity thresholdDiscounts › the discount › Minimum purchase requirements
Not applicable to the items in the cartCode limited to products or collections not in the cartDiscounts › the discount › Applies to
Valid code rejected while a sale is runningAn automatic discount without matching combination settingsDiscounts › Combinations, on both discounts
Works for you, fails for the customerAdmin session, or customer eligibility rulesTest logged out; check Customer eligibility
Code accepted but the saving looks smallApplies to eligible items, or to the current sale priceNothing to fix — see the section below
Works online but not in storeSales channel availabilityDiscounts › the discount › channels

If your row says nothing to fix, read It applied, but the amount looks wrong before changing a setting. Several correct behaviours generate support tickets.

The rules that block a code, in check order

Work through these in order. The first three account for most reports.

The dates, and the timezone behind them

A code scheduled to start at midnight starts at midnight in your store's timezone, not your customer's. A promotion announced to a US audience from a store set to a European timezone goes live hours early or late.

Check: Discounts › the discount › Active dates. Then Settings › General › store timezone, and compare against when the email or ad actually sends.

Fix: set the start time in store time so it lands when you intend in the customer's.

Confirm: check the discount's status reads Active, not Scheduled or Expired.

A usage limit has been reached

Total-use limits run out, sometimes faster than expected when a code is shared on a coupon site. One-use-per-customer limits reject anyone who has used it before, identified by email at checkout — so a repeat customer using the same address is refused.

Check: Discounts › the discount › Maximum discount uses, and the used count on the discount list.

The minimum isn't met

A minimum purchase amount or item quantity the cart falls short of. Watch for minimums measured against a different figure than the customer expects, such as the subtotal before other discounts.

Check: Discounts › the discount › Minimum purchase requirements, then compare against a real failing cart.

The cart contains no eligible products

A code limited to specific products or collections rejects a cart with none of them. This catches merchants out after collection changes — remove a product from a collection and the discount silently stops applying to it.

Check: Discounts › the discount › Applies to. If it targets a collection, open the collection and confirm the products are still in it.

The customer isn't eligible

Codes limited to particular customers or segments reject everyone else, and the checkout has to be able to identify the customer first.

Check: Discounts › the discount › Customer eligibility.

It won't combine with another discount

The most confusing cause, and it has its own section below.

Sales channel, market or product type

A discount may be available on one sales channel and not another, may behave differently across markets you sell to through Shopify Markets, and may not apply to subscription purchases unless configured to.

Combinations: why a valid code gets rejected

This is where the genuinely confusing reports come from.

Shopify groups discounts into classes — product discounts, order discounts and shipping discounts. Each discount has settings saying which other classes it may combine with. If two discounts are not both set to combine, they cannot be used together.

Automatic discounts count, and they are already applied. If you are running an automatic sitewide sale and the code the customer enters is not set to combine with it, the code is rejected — or the checkout keeps whichever discount is better, which to the customer looks like their code was ignored.

Check: open every discount that could be active on that cart, automatic and code, at Discounts › the discount › Combinations. Both sides must allow it. One discount set to combine is not enough if the other is not.

The decision worth making deliberately: combinations are a margin question, not a technical one. Allowing a 20% sitewide sale to stack with a 15% welcome code and free shipping produces a discount you would never approve as a single number. Decide what may stack before a promotion launches, not while customers are emailing.

If you need logic that combination settings cannot express — tiered stacking, customer-specific rules, B2B pricing — that is custom discount logic, covered in Shopify Functions.

It applied, but the amount looks wrong

A different problem from rejection, and usually the discount working correctly on a smaller base than the customer expected.

It only applies to eligible items. A 20% code on one collection takes 20% off those items, not the whole cart. Customers read "20% off" and expect it on everything.

It doesn't reduce shipping or tax the way customers assume. A percentage discount typically applies to eligible products, while shipping has its own discount class. Tax follows the discounted price, which is covered in Shopify tax calculating wrong.

A fixed amount is spread across items. A fixed-amount order discount can be allocated across line items, which looks odd on an itemised receipt even when the total is right.

Sale prices and compare-at prices. A discount on an item already marked down applies to the current price, not the original. Customers comparing against the crossed-out price see a smaller saving than expected.

B2B customers on price lists. Company customers buying against a catalog price may see codes behave differently from retail — see B2B and wholesale on Shopify.

When this generates tickets, the fix is usually clearer promotion wording rather than a settings change. "20% off selected styles" produces fewer complaints than "20% off".

Confirm the fix actually worked

Changing a discount setting without testing it is how one broken code becomes a broken campaign. Four checks, five minutes.

  1. Test as a customer, not as an admin. Use a private browser window, logged out. Admin sessions can behave differently.
  2. Rebuild the failing cart exactly. Same products, same quantities, same country. A code that works on your test cart and fails on theirs is an eligibility or minimum problem you have not found yet.
  3. Test alongside everything else running. Any automatic discount, any other active code, any free-shipping threshold. Combinations are where fixes quietly break something else.
  4. Check the total, not just that it applied. Confirm the saving is the amount you intended, on the items you intended.

Then watch the next few real orders using that code before assuming it is done.

How to stop it happening again

Discounts mostly fail on launch day, in front of the customers the promotion was meant to win. Ten minutes beforehand prevents nearly all of it.

Test the edges of every rule. A cart just below the minimum and just above it. An eligible product and an ineligible one. A new customer email and one that has ordered before, if the code is once per customer.

Test on mobile. That is where most customers will enter the code.

Check the start time in store timezone against when the email or ad actually sends.

Audit eligibility after collection changes. Collections change more often than discounts do, and a code tied to a collection breaks silently when products leave it.

Decide combinations before launch. Write down which discounts may stack, as a margin decision, rather than discovering the answer through a checkout.

Agree who watches launch day. Who monitors support, and who can edit the discount quickly. A code that fails for an hour on launch morning costs more than one that fails quietly on a Tuesday.

When to get help

Reading the error and checking the settings resolves most discount problems in minutes. Three situations are worth handing over.

Discount logic the settings cannot express. Tiered pricing, customer-specific rules, bundles priced as a unit, or B2B rules. On Plus that is custom logic built with Functions — Shopify Functions development experts.

Apps conflicting with native discounts. A bundle app, an upsell app and a native promotion all adjusting the same cart produce results that are hard to predict and harder to debug — bug fixing and troubleshooting experts.

Checkout customisation affecting discounts. If discounts have behaved differently since checkout was customised, that is specialist work — checkout customization experts.

Development specialists by market: United States, United Kingdom, Australia.

How to vet: ask what they would check first. If the answer is not the exact error message and the combination settings, they are guessing.

Promotion launching and codes failing?

Matias Lopez
ML
Front-End DeveloperBuenos Aires, ArgentinaFrom $70
4.97(159 reviews)
shopexpertsscore
85

I have over five years of experience in web development using technologies such as Shopify, Angular, Node.js, JavaScript, React, Vue, MongoDB, MySQL, and PHP. My journey with Shopify started when I joined Hey Carson, now known as 'Shop Experts', successfully completing their trial period. I have gained significant experience in Shopify development. I've worked in complex tasks such as integrating Shopify apps, Shopify Admin API, custom design development, apps extensions development, theme development and much more. Over the past few years, I've acquired what I believe is a solid understanding of Shopify development, which helps me deliver high-quality solutions to the clients I've worked with.

Sumit Chakradhar
SC
Shopify Plus EngineerKathmandu, NepalFrom $100
4.97(129 reviews)
shopexpertsscore
100

10+ years, 500+ Shopify store owners, and countless successful projects—I'm a top-rated Shopify expert dedicated to helping brands improve their store's conversion, speed, functionality, and aesthetics. As the longest-serving developer at Shopexperts (formerly HeyCarson), I've built my reputation on meticulous attention to detail, reliability, and unwavering commitment to client success. My work speaks for itself —check out reviews from past clients who can attest to my dedication and results-driven approach.

Erick Kagai
EK
Shopify ConsultantNairobi, KenyaFrom $285
4.93(69 reviews)
shopexpertsscore
85

Shopify speed and ad tracking fixes: for stores where the ads bring visitors but not sales I helped an apparel brand cut product-page load time from 15.4 seconds to 7.4 seconds - five weeks before Black Friday. That's what I do: I find what's slowing your store down and fix it. The same work keeps surfacing a second problem: stores where the numbers are broken. Pixels firing twice and double-counting conversions. Ad campaigns spending across the whole catalog with no filter on what actually earns. Apps billing every month for work nobody has measured. So alongside speed, I measure what your money - ad spend, apps, tracking - is actually doing, instead of trusting what the platforms and vendors report. Then I fix what the measurement finds. I specialize in Shopify speed optimization, Core Web Vitals, ad-spend and tracking measurement, and sales-channel recovery for established, founder-run stores. I treat speed and ad spend the same way: as revenue problems, not technical checkboxes. What I work on, six ways in: Speed and Core Web Vitals Read: I measure your mobile load on real visits, find what makes shoppers wait, and fix it. Accessibility Exposure Read: I test your store the way a keyboard user and a screen reader meet it, check whether a widget is sitting on top of problems it does not fix, and rank the findings by what a complaint would reach first. Shopify Deadline Check: which Shopify changes have already stopped something on your store, Scripts ended on 30 June and order status script tags on 26 August, and which are dated ahead, with the repairs made. Tracking and Attribution Fix: Meta Pixel, GA4 and server-side, double-counting removed and verified in your own dashboards. Ad spend by product and the app bill get read in the same pass. Builds and Theme Upgrades: new sections and modern themes with your custom work and your tracking still running, and a rollback plan on every change that touches the live site. Partner Seat: 25 hours a month with someone watching speed, the customer-facing experience, broken links, tracking and app bills, your work first in the queue. Every read is $285 and the fee credits toward the fix. Most of the stores I hold a monthly seat with started with one of these. Key results: Product-page load time cut from 15.4s to 7.4s - 52% faster Mobile PageSpeed on product pages from 18 to 28 - with the client's chosen app stack kept in place, at their call Two apps billing to track what the store's own Google channel already handled - removed, tracking verified clean, and $199/yr off the app bill Repeat clients going back to 2018 - one store at 14 projects across four years How I work: A diagnostic audit measures the actual problem - no guesswork, and the audit fee credits toward the fixes Phased implementation - you approve each milestone Every delivery closes with verified before/after numbers and a short list of the next opportunities I found 80+ projects completed. Clients across the US, Canada, UK, Australia, and Denmark. Send me your store URL and I'll tell you what's slowing it down, whether your numbers can be trusted, and what an accessibility complaint would find. No commitment needed.

Frequently asked questions about Shopify discount codes

Why is my Shopify discount code not working?
Usually because one of its rules is not met rather than because anything is broken. The common causes are the code not yet active or already expired, often because start and end times run on the store's timezone; a usage limit being reached; a minimum purchase amount or quantity not met; the cart containing no eligible products; the customer not being eligible; or combination settings blocking it alongside another discount. The exact error message the customer sees usually names the rule that failed.
Why won't my discount code work with an automatic discount?
Shopify only lets discounts combine when both are set to combine with each other's class. An automatic discount is already applied before the customer enters anything, so if the code is not set to combine with it, the code is rejected or the checkout keeps whichever discount is better. Open Combinations on every discount that could be active on that cart — both sides must allow it, and one set to combine is not enough if the other is not.
Why does my discount code work for me but not for customers?
Admin sessions can behave differently from real customers. Test in a private browser window while logged out, rebuilding the customer's cart exactly — same products, quantities and country. Also check whether the customer has used the code before, since once-per-customer codes are matched by email, and whether they fall outside the code's eligible customers or segments.
Why did my discount apply but take off less than expected?
Usually the discount is working on a smaller base than the customer assumed. It may apply only to eligible products rather than the whole cart, may not reduce shipping, may be spread across line items as a fixed amount, or may apply to the current sale price rather than the crossed-out compare-at price. Clearer promotion wording such as selected styles usually prevents the complaints.
Why did my discount start at the wrong time?
Discount start and end times follow your store's timezone setting under Settings, General. A promotion scheduled for midnight goes live at midnight in the store's timezone, which can be hours before or after midnight for your customers. Check the store timezone against when the promotional email or ad actually sends before launch.
My discount code stopped working mid-campaign. Why?
Most often the total usage limit was reached, which happens faster than expected when a code is shared on a coupon or deal site. Check the used count against the maximum uses on the discount. The other common cause is a collection change — if the code is limited to a collection and products were removed from it, the discount silently stops applying to those products.
How do I test a discount code before launching a promotion?
Test in a logged-out private browser window on mobile, since that is where most customers will enter it. Test the edges of each rule: a cart just below and just above the minimum, an eligible product and an ineligible one, and a new email versus one that has ordered before. Test alongside every automatic discount and free-shipping threshold that will be running, because combinations are where untested promotions break.

Next step

Get the exact error message, match it in the table at the top, and open that one setting. That is faster than reading through every discount rule looking for the problem.

If a sale is running, check Combinations on both the automatic discount and the code together — that is the cause most likely to look like a bug when it is not.

Then rebuild the customer's cart in a logged-out window and confirm the saving is the amount you intended, on the items you intended.

For custom discount logic or apps fighting over the cart, browse troubleshooting experts or get matched with the right expert for your store. Free matching, verified experience, no commissions.

Discount codes failing at checkout?

Get Matched