How to stop Shopify stacking discounts on items that are already on sale? Surely this should be native / built in?
Yes it’s built in. Shopify gives you the Discounts, which lists all the discounts you create and maintain. When you create a discount, it gives you the options and flexibility to stack it or not. It’s completely up to you. If you want them stacked, then you can stack them. If you want to limit that, you are free to limit the stackable discounts. It’s really very easy. You are in charge of your discounts.
Where is the setting for this in the discount setup? I don’t see a tickbox to not apply discounts to items already on sale.
- Yes, I want to not apply the overall order discount, if the item is already on discount (compare_at_price)
- What are they ways to acheive this?
- Why is this simply thing not a simply checkbox in the discount setup inside Shopify, I don’t get it.
There are a lot of ideas that Shopify could implement but did not.
One way to approach this is to apply this discount only to products in specific collection and then put in this collection only products which do not have a compare_at price higher then price.
This can be done with Flow or with some other collection automation app.
This would not work for “overall order discount” because order level discounts do not care about what products are in the order, they apply to entire order.
When on plus, custom app using checkout functions allow for more granular control.
Some public apps may have similar functionality for other plans.
You can’t achieve this with Shopify’s native discounts, so you would need to use an app.
If you’re open to using an app, you can easily achieve this with Stack Discounts Pro.
In the app settings, enable:
Sale price handling → Skip discounts for products on sale
Once changed, any discounts created in the app will automatically be skipped for products that have a compare-at price (are on sale).
- This honestly just makes me shake my head. It shouldn’t be that hard to implement.
- And there’s no where to ask for a “feature request” to the Shopify devs right?
- And there’s no way to know what they’re working on or what has been approved/scheduled to be done either right?
- Using a “specific” collection is not good, because that would break our website nagivation when items move in and out of individual sale
- We’re reluctant to use third party apps, we’ve been down that path many times before and usually ends up giving some sort of other issue with the website coding/theme or simply doesn’t work (though I will check out Stack Discounts Pro).
- I just firmly believe that a basic fundamental, to not apply discounts on items already on sale, should never require a third party app. Gets a bit ridiculous to be honest.
Hi @Chris13371337 , you should be able to include or exclude products using various conditions using our app, Discount Bot.
For your specific need regarding items on sale, you can use this section:
You can also combine that with other inclusion/exclusion conditions like collections, variants, customer tags etc. You can use this logic for product, order and shipping discounts.
Most importantly, Discount Bot is built on top of Shopify functions so they behave just like regular Shopify discounts and won’t affect your themes in any way.
If there are questions, please let us know.
Apply automatic discount with minimum requirement based on compare at price, product tags or certain collections to exclude on sale items. Another safe way is to duplicate the sale products into a different collection and hide codes over there. Apps running Scripts Functions can be used to also block stacking at checkout in a more elegant way now.
Thats not safe. It effects SEO & advertising
I just don’t understand how Shopify didn’t put a simply checkbox that if there’s any value in the compare at price, don’t apply discount code on top. It cannot be that difficult, it just cant.
if you have a nonplus store, then you have to use apps. There are free apps too which can resolve your issue the only thing is tryouts ![]()
but if you have a plus store, you can use your own logic as per requirement, let me know if you have a plus store i will give you logic
Also, the best way is to resolve this is using some JAVASCRIPT, i can do that for you let me know if you need the script will write for you
Hi @Chris13371337 , Shopify doesn’t natively support setting a condition like
Do not apply a discount on items that have a compare at price set on them
There are two approaches you could take to solve for this.
- Create a smart collection with condition compare at price exists and then set the discount to only apply for that collection (natively supported but with a catch)
- Create a discount on a app like Dollarlabs: Ultimate Discounts with the condition “Compare at price is not exist”
Limitation of approach (1)
It is that it only works on the product level since collections are fundamentally a list of products. If you need it to work on the variant level - you’d need to go for approach 2.
Here’s a quick screenshot of how this discount config would look like on the app.
If you need any further help / suggestions on how to approach this, please feel free to reply to this thread.
Best,
Hi @Chris13371337,
This is Vineet from Identixweb, a Shopify Development Agency.
Yeah, this is one of those things that feels like it should be built in, but Shopify doesn’t automatically treat a compare at sale price as something that should be excluded from discount codes.
One small warning, though before you do this, which I learned the hard way lol:
If your products have multiple variants, Shopify’s compare-at condition can behave differently depending on whether some variants have compare-at prices and some don’t. So test a few products before relying on it fully.
So now back to your solution. The cleanest workaround is to create a separate automated collection for full-price items only, then apply your discount code only to that collection.
Go to Products > Collections > Create collection > Automated, then set a condition like:
Compare at price is empty
Then, when creating the discount, choose Specific collections and select that full-price collection. That way, items already on sale should not receive the extra discount. Shopify supports discount eligibility by products/collections, and compare at price is how sale pricing is normally handled.
Hey everyone. Here’s one more option, that works differently from the ones above, so it might be worth a look.
Alpha Sale now has discount code blocking: you make a rule saying “if the cart contains items on sale, block discount codes”. There’s no collection structure to build or maintain and no SEO/navigation side effects — which was Chris’s objection to the workarounds here. Existing codes stay as they are; nothing is added to the theme.
Caveat: one sale item blocks the code for the whole order, not just that line item. For an order-level discount that’s what you want anyway.

Why , you don’t take products out of collections you put THEM IN specifics collections that discounts target.
Discounts stacking onto sales can just be a consequence of scatter shotting discounts.
So behind the scenes it’s probably some idea of organizational perfection why this ridiculous situation exists.
Devs building suchs platforms that don’t use the platform have to think in cold hard logic applicable to 5 MILLION+ people and not in daily usage or what’s “intuitive” for individuals.
Discount types without collection based eligibility like amount-of-order is it’s own logic issue and maybe the feature request to attack.
No, your reading @tim_tairli 's quote with bad faith and entitlement.
Is shopify INFINITE in resources and time? Yes or No
Do you think your the first to be like: it isn’t hard just build it.
If it’s so easy why do you need shopify to do it ![]()
reread: There are a lot of ideas that Shopify could implement but did not… because not all infinite ideas are infinitely good, time is finite and they cannot do everything for everyone and that includes building your processes for you
- And there’s no where to ask for a “feature request” to the Shopify devs right?
The are the peer to peer forums, to request a company does something do you ask randoms or contact the actual company DIRECTLY:
http://help.shopify.com/ → chat with a human(lower corner button)
and then search the forums as you should have done from the start and join existing posts on the issue encouraging others to contact support directly. Or just be yet another stand alone post in a sea of posts going it alone that get lost in the noise like so many others and reduce your effectiveness on a platform with 5 MILLION+ merchants and all their needs.
If you are a developer and need some part of the api changed to support this then use the dev forums
https://community.shopify.dev/
- We’re reluctant to use third party apps
Apps make you money, if third party isn’t cutting it then build the app you need; or the meta advice in this thread restructure your product organization
Shopify supplies the basics it’s up to you to build out your processes and gap fill.
It does not matter if a feature gap is ridiculous in the here and now you need to adapt to it or keep hemorrhaging money.
If’s a false expectation that one company should do everything just for you.
If you double down on this like so many others your gonna have a bad time and self sabotage the business instead of using the tools that are available:
Two paths, implement solutions today VS make feature request → wait & hope → maybe or maybe NOT ever get feature in the future
Be effective.
Why , you don’t take products out of collections you put THEM IN specifics collections that discounts target.
- We have a collection for On Sale Items, these are individually discounted using the compare-at-price
- We have all other collections, where we might discount some of the items in there using the compare-at-price
- If we then want to run a store wide discount (say black friday), we’d realistically need to turn those individual items off sale.
- All we wanted was to have a checkbox native in Shopify, to not apply it to items already on sale when creating a store wide discount (amount off order) , that’s it.
There are a lot of ideas that Shopify could implement but did not… because not all infinite ideas are infinitely good, time is finite and they cannot do everything for everyone and that includes building your processes for you
- I understand that, but I don’t feel what I asked for is is unreasonable / specific to ourselves.
Apps make you money, if third party isn’t cutting it then build the app you need; or the meta advice in this thread restructure your product organization
- Yes, apps can / do and if they operate correctly without issues, then it’s OK.
- But I can also attest that apps also give you a lot of grief when they do not operate correctly with bugs occurring, slow your website down, stop the theme operating correctly (right now one of our apps is stuffing up our cart theme - as an example), and then having to chase the developer for a fix going forward and back constantly.
- This is the reason for the hesistation, we’ve been burnt many times in the past, this is the reason why we feel that way.
You clearly have a different opinion and that’s fine. We’ll look into workarounds that others have suggested for the time being. But it is still something that I feel should be implemented.
How is this still a thing?
Just create an auto collection (no nav links) based on compare-at price. All non-sale items go into the collection, you apply the discount to only this collection. Done. As you move your compare-at prices for your sales, the items will automatically move in and out of this collection, which again is non-nav. Easy. Or just use a discount app.
Shopify does not and most likely will never exclude sale items from discounts.
I don’t understand the constant demand that Shopify solve every desire for the entire planet… Shopify relies on the revenue generated by apps. They want you to use apps. They don’t want to be your all-in-one. Urging them to cut that off to better serve you will only lead to higher monthly and fees. I
Just create an auto collection (no nav links) based on compare-at price. All non-sale items go into the collection, you apply the discount to only this collection. Done. As you move your compare-at prices for your sales, the items will automatically move in and out of this collection, which again is non-nav. Easy.
-
Perfect
-
This seems the best thing to do, will do that
-
Then will not use the amount off order, but the amount of products and select the collections
Maximus3:Shopify does not and most likely will never exclude sale items from discounts.
-
Noted your opinion
I don’t understand the constant demand that Shopify solve every desire for the entire planet… Shopify relies on the revenue generated by apps. They want you to use apps. They don’t want to be your all-in-one. Urging them to cut that off to better serve you will only lead to higher monthly and fa
- I understand they take a percentage of a cut off sales
- I understand they take a percentage of a cut off apps
- I understand that there’s no incentive to provide anything bar the basic functions otherwise they wouldn’t be able to generate money from apps
- As mentioned, apps when they work are OK, but they also give a lot of grief considering the amount of changes occurring within Shopify’s platform and theme developers.




