How to Block Shopify Discount Codes from Applying to Sale Items?

How to Block Shopify Discount Codes from Applying to Sale Items?

16 July, 2025 8 min read
Allan Vu

Allan Vu

Digital Marketing Specialist

If you’re incorporating discounts into your Shopify strategy, most likely you have already faced this issue: customers are able to apply coupon codes on top of the already discounted sale or clearance items. Or, in short, they are getting double discounts, purchasing items below a reasonable margin level.

At first glance, you might think excluding sale items from coupon codes should be a no-brainer. However, Shopify makes things way more complicated for merchants. So, in this article we’ll look into the setup of Shopify’s discount system and why it leads to an issue like this, as well as consider all the possible workarounds you can implement.

Shopify discount system and its limitations 

To better understand why this problem occurs and hasn’t been solved over the years, we need to look into the two different discount systems you can use on Shopify.  

1. Standard Shopify discounts (coupons and automatic discounts)

These are the discounts you can create in a couple of clicks right in your Shopify admin panel. You can choose them to work as manually entered coupon codes or to be applied automatically. Still, both options work the same – the discounts are visible only after a customer picks the products and attempts to check out. 

Thus, being completely invisible on product pages, these discounts aren’t really helpful in stimulating purchases and increasing sales. 

2. Compare-at price discounts (flash sales)

As opposed to the first type, compare-at-price discounts are built specifically to show the reduced price directly on product pages, accompanied by a crossed-out older price.  

To create the discount, you need to modify the actual product price: lower the original price and put the older price into the “compare-at price” field. 

Shopify Compare-at price

However, although you are actually lowering the price on some of your products, Shopify fails to recognize those products as discounted. And every coupon code you create on Shopify – even if you make sure to disable the code’s ability to combine with other discounts – will still apply on top of the lowered price. 

For many stores, this unintended discount doubling jeopardizes the revenue, leading to some items being sold at little to no profit, especially during big seasonal sales and clearances. 

Solutions and Workarounds

If you are looking for a way to prevent discount stacking and make sure you can control the final product price your customers get, let’s look into all the possible solutions and workarounds with their pros and cons. 

1. Manually edit the list of discounted products

One of the options you have when setting up a discount code is to manually choose the list of products it will apply to. Thus, one of the possible solutions would be to:

  • Edit the list of products and exclude any items you put on sale.
  • Add the items back into the list once the sale is over.
Edit the list of discounted products

For a small store selling just a few products, this method is likely sufficient, and there’s no need for a more complex solution.

However, for a store with hundreds of products and product variants, manual editing inevitably leads to human error. Plus, there’s a very annoying Shopify limitation, which caps the number of items you can add to this list – no more than 100 individual products or variants

2. Use a “Not on sale” smart collection

This is a very popular and relatively easy workaround. Shopify offers a way to create dynamic product groups based on different conditions. 

So, if you set up your collection to only include products without a compare-at price, every time you add a compare-at price and your product goes on sale, it gets automatically removed from the collection. 

Create a "not on sale" collection

In theory, if you set up your discount codes to only apply to this smart collection, all sale products should be automatically excluded. 

In practice, however, this method has one very important limitation – smart collections will include the entire product if at least one variant meets the setup condition. For example, if your product has four variants, three of which are on sale, all four variants get to the “Not on sale” collection because of the fourth variant without a compare-at price. This makes the method pretty useless if your store has a multi-variant product setup. 

3. Use the Alpha Sale & Discount Manager app

This option is ideal for anyone willing to invest an additional $10/month for increased flexibility and convenience.

When you create your discount codes in a discount app like Alpha, you get the same features and setup you have with standard Shopify coupons, but with extra flexibility. 

Excluding sale products in Alpha Sale & Discount Manager is a matter of one button click: 

Exclude products already on sale with Alpha Sale app

Unlike when setting up the exclusions via a collection, Alpha always excludes specific line items – i.e., a specific product variant with a compare-at price. 

If you already have your coupon codes set up in Shopify, all you need to do is recreate those coupons using Alpha Sale

The only case when this solution might not work is if you have hundreds of unique coupons – transferring them to the app would be time-consuming. 

4. Temporarily disable all coupon codes

If nothing else works, you can resort to a somewhat radical option – deactivate all discount codes you have created. In this case, the coupon code field will disappear from your checkout. 

Once your seasonal sale is over, you can simply re-activate the coupon codes, and everything will go back to normal. 

The obvious problem here is that this can interfere with your ongoing marketing campaigns, as all of a sudden, none of the customers will be able to apply the discount codes they have earned. 

Advanced use cases

Now that we’ve looked through the most common solutions, let’s explore a few more advanced use cases, which require a more thoughtful approach. 

1. Excluding specific product variants

Imagine you are running an apparel store and only some of your product variants (say, specific sizes or colors) get discounted. 

If you want to exclude those specific discounted variants from coupon codes, Shopify’s built-in functionality will not work. 

Shopify collections operate on a product level, meaning you can’t exclude specific variants, just the entire product. And only when all of the product variants meet the exclusion condition. 

Tag-based filtering is also ineffective in this case, since tags are also applied on the product level. 

Your best bet in this scenario is a discount app like Alpha Sale. The app lets you exclude specific product variants and make sure they don’t get double-discounted.

Exclude Variants

2. Preventing double discounting on the entire order

Another common strategy for Shopify stores is to offer different order-level discount codes. 

Unlike product-level discounts, these are the discounts applied to the total order sum, regardless of the products selected. So, not surprisingly, there is no way to control which products the discounts apply to. 

However, a workaround to protect profit margins in this case also exists, though it might seem a little less intuitive: instead of calculating the discount based on the current prices, you can set the order-level discount to apply to the compare-at price total.

This is not a built-in Shopify functionality, and you’ll need the Alpha Sale & Discount Manager app for this, but the added control often justifies the effort.

Apply discount on Compare-at price

Example:

  • Product A: $120 (no compare-at price)
  • Product B: $70 (compare-at: $100)
  • Product C: $125 (compare-at: $150)

Cart total: $315

If you apply a standard Shopify coupon (20% off) to this example cart, the resulting sum will be $252.

However, an Alpha Sale coupon, created to apply to the  sum of compare-at prices ($370), results in a $296 cart total. Which is almost equivalent to only the first product without the compare-at price getting the discount.  

3. Blocking Klaviyo or other external apps’ coupons

Many Shopify merchants rely on external apps to generate unique customer discount codes. For example, a 10% welcome discount for newly signed-up users. The apps help create complicated marketing automation flaws, sending the codes to customer emails when a specific condition is met. 

Unfortunately, there is no way to exclude sale items from these coupon codes. The only workaround here is creating the “Not on sale” collection, with all the limitations this method implies.

4. Working with a store that uses compare-at prices for other purposes

In some store setups, the compare-at price field may be used for purposes other than discounts – for example, to show supplier reference prices. This setup is pretty common when the store is integrated with external stock management systems.

In this case, make sure to: 

  1. Set up your “Not on sale” collections with a condition of “compare-at price > price” instead of “comparte-at price is empty”.
  2. Avoid applying discount codes to the compare-at price instead of the actual price, as this may result in larger discounts than intended.

Final Thoughts

Despite its extreme popularity, Shopify still lacks some basic flexibility and functionality you might expect. And even though workarounds exist, your work is a constant compromise between the desired outcome and actual possibilities. 

Many a time, third-party apps will offer a more user-friendly and flexible solution, so if an extra $10–$20/mo budget isn’t a problem for your store, exploring the best Shopify discount apps might be worth your while.  

Like what you see? Share with a friend.

Start 7 Free Day Trials With Bogos Your Powerful Shopify Promotion App

Related Articles

Background Form

Subscribe to our email list
to receive news and discounts.