Table of Contents
- Introduction
- The Problem: Why Shopify Applies Discounts to Everything
- Step-by-Step: The Automated Collection Workaround
- Clarifying the "Why" Behind Your Discounting
- Margin and Operations Check
- Bundling with Intention: The MBC Approach
- How Bundling and Discounts Actually Work in Shopify
- Performance and Measurement: Beyond the "Sale"
- When to Bring in Professional Help
- Summary of the Responsible Journey
- FAQ
Introduction
Every Shopify merchant eventually hits the same frustrating roadblock: you want to offer a "Welcome" discount to new subscribers, but you do not want that discount to apply to items that are already heavily marked down in your "Clearance" section. You see the order come through—a product already 40% off, now with an additional 15% discount code on top—and you realize your profit margin on that sale has effectively evaporated.
At MBC Bundles, we believe that discounts should be a strategic tool for growth, not a leak in your revenue bucket. While Shopify is an incredibly powerful platform, it does not currently offer a simple "exclude sale items" checkbox within the native discount settings. This forces merchants to get creative with collections and automated logic to protect their margins.
This guide is designed for growing Shopify brands and high-SKU stores that need to balance aggressive promotions with healthy bottom lines. We will walk you through the technical workarounds to ensure your discount codes only apply to full-priced items. More importantly, we will look at how you can move beyond simple codes and use intentional bundling to increase your Average Order Value (AOV)—the average dollar amount a customer spends each time they place an order—without sacrificing your profits.
Our philosophy at MBC Bundles for Shopify is grounded in a "foundations first" approach. Before you launch your next promotion, you must ensure your store’s foundations are solid, your goals are clear, and your margins are checked. Only then should you implement a bundle or discount strategy with intention.
The Problem: Why Shopify Applies Discounts to Everything
By default, when you create a "percentage off" or "fixed amount" discount code in Shopify and apply it to "All Products," the system does exactly what you asked: it applies it to everything. It does not distinguish between a product at its full retail price and a product that has a "Compare-at price" (the original price that appears crossed out next to the current sale price).
This lack of native exclusion creates a "discount stacking" scenario. Even if you have disabled the setting that allows multiple discount codes to be used together, a discount code can still be applied to a product that is already on sale through its "Compare-at price" setting.
To fix this, we have to change the way the discount code "sees" your inventory. Instead of telling the code to look at all products, we need to point it toward a specific group of products that we have pre-vetted as being full-price.
Step-by-Step: The Automated Collection Workaround
The most reliable way to ensure a Shopify discount code does not work on sale items is to use an automated collection. An automated collection uses specific "conditions" to pull in products. If a product meets the condition, it’s in; if it doesn't, it’s out.
Step 1: Standardize Your Pricing Data
For this workaround to work, you must be consistent with how you use the "Compare-at price" field in your Shopify admin.
- Full-Priced Items: The "Compare-at price" should be empty or set to $0.
- Sale Items: The "Compare-at price" must be higher than the "Price."
If you have a mix of products where some sale items have a "Compare-at price" and others are just manually lowered in price without a strike-through, this automated logic will fail.
Step 2: Create a "Full Price" Collection
- Navigate to Products > Collections in your Shopify admin.
- Click Create collection.
- Title it something internal like "Full Price Products" (you don't have to show this title to customers).
- Under Collection type, select Automated.
- Under Conditions, select all conditions.
- Set the condition to:
Compare at price+is empty. -
Note: In some Shopify themes or versions, you may need to set the condition to
Compare at price+is less than+$1.00. - Save the collection.
Step 3: Point Your Discount Code to This Collection
Now that you have a "bucket" that only contains full-priced items, you need to tell your discount code to only look inside that bucket.
- Go to Discounts and click Create discount.
- Choose Amount off products (for a code) or Automatic discount.
- In the Applies to section, select Specific collections.
- Search for and select your "Full Price Products" collection.
- Finish setting up your dates and usage limits, then save.
Now, if a customer tries to apply that code to a cart containing only sale items, Shopify will show an error message stating that the code is not valid for the items in their cart.
What to do next:
- Audit your current sale items to ensure they all have a "Compare-at price" listed.
- Create your "Full Price Only" automated collection.
- Test the discount code in a "private" or "incognito" browser window with both a sale item and a full-price item to ensure the logic is holding up.
Clarifying the "Why" Behind Your Discounting
Before you implement more codes, we encourage you to step back and ask: what is the actual goal of this discount? At MBC Bundles, we see merchants fall into the trap of "discounting by default."
Are you trying to:
- Increase Add-to-Cart Rates? (The percentage of visitors who add at least one item to their cart).
- Improve Conversion Rates? (The percentage of total visitors who actually complete a purchase).
- Move Old Inventory? (Clearing out the "sale" items that are currently clogging your warehouse).
- Raise Average Order Value (AOV)? (Encouraging people to buy two items instead of one).
If your goal is to move old inventory, a discount code that excludes sale items is actually counter-productive. If your goal is to raise AOV, a flat 10% off code is a weak tool because it doesn't incentivize the customer to add more to their cart; it just gives them a cheaper price on the item they were already going to buy.
Margin and Operations Check
Every discount is a direct hit to your gross margin. Before you launch a promotion, you need to know your "break-even" point.
If your product costs $20 to make and you sell it for $50, you have a $30 margin. If you offer a 20% discount ($10), your margin drops to $20. Now, factor in shipping, advertising costs, and credit card processing fees. You might find that a 20% discount on a single item actually results in a net loss once the "Customer Acquisition Cost" (what you spent on ads to get that person to the site) is factored in.
This is why bundling is often a superior strategy to simple discount codes. By bundling a full-priced item with a high-margin accessory or a second identical item at a slight discount (a "Quantity Break"), you increase the total revenue of the order, which helps "absorb" the fixed costs like shipping and ad spend.
Key Takeaway: A discount code is a blunt instrument. A bundle is a surgical tool. Use codes to get people in the door, but use bundles to make the order profitable.
Bundling with Intention: The MBC Approach
Instead of worrying about how to exclude sale items from a site-wide code, consider using intentional bundles that have the "exclusion" built into the offer itself. This is what we call Bundling with Intention.
Mix & Match Bundles
Instead of a code like "SAVE10," try a Mix & Match bundle offer: "Buy any 3 items from our New Arrivals and save 15%." Because you are selecting the collection that qualifies for the Mix & Match, the sale items are naturally excluded. This creates a better shopping experience because the "rules" of the discount are clear from the moment the customer lands on the collection page.
Buy X Get Y (BOGO)
BOGO offers are excellent for protecting margins. You can set a rule that says "Buy a Full-Price Jacket, Get a Sale T-Shirt for Free." This helps you move the clearance inventory (the "Y" item) while ensuring you get the full margin on the primary purchase (the "X" item).
Quantity Breaks (Volume Discounts)
Quantity breaks encourage shoppers to buy multiples of the same product. For example: "Buy 1 for $30, Buy 2 for $50." This is particularly effective for consumable products or giftable items. Again, because these are set at the product level, they don't interfere with your sale items.
How Bundling and Discounts Actually Work in Shopify
Understanding the mechanics of your store is vital for avoiding customer frustration at checkout.
Discount Stacking and Conflicts
Shopify has made improvements to "Discount Combinations," but it can still be a source of confusion. You can now set a discount code to "stack" with other product discounts or shipping discounts. However, if you are using an app to create bundles, you must ensure the app is compatible with Shopify’s native functions.
Most bundle apps (including the MBC Bundles app) work by creating a specific price for a group of items. If a customer then tries to add a "SAVE10" code on top of a bundle that is already discounted, the system needs to know which one takes priority.
Caution: Always test your discount stacking rules. Go through the checkout process as if you were a customer. If you see a "double discount" that makes the price too low, you need to adjust your settings in the Shopify Discounts admin.
Inventory and Variants
When you bundle products or apply discounts to specific collections, Shopify still tracks the individual "variants" (the specific size or color of a product). If you exclude "Sale Items" from a discount code, but one variant of a product is on sale and another is not, the code will apply only to the full-priced variant. This is technically correct, but it can be confusing for a shopper. Ensure your product pages clearly indicate which items are eligible for additional discounts.
Mobile UX Implications
Most of your shoppers are on their phones. A complex discount rule that requires a customer to read a long list of "Exclusions" is a conversion killer.
- Keep it fast: Don't make the customer guess if a code will work.
- Keep it clear: If an item is "Final Sale," tag it clearly so they don't try to use a code on it.
- Use the Cart: Display the savings clearly in the cart before they hit the checkout button.
Performance and Measurement: Beyond the "Sale"
To know if your strategy is working, you need to track more than just total revenue. At MBC Bundles, we recommend focusing on these bundle metrics you should track:
- Average Order Value (AOV): If excluding sale items from your codes causes your AOV to drop, it might mean your full-priced items aren't enticing enough on their own.
- Attach Rate: This is the percentage of orders that include a "secondary" item (like a bundle add-on). A high attach rate often means you don't need heavy discounting to drive sales.
- Revenue Per Visitor (RPV): This is the ultimate "truth" metric. It combines your conversion rate and your AOV. If you stop discounting sale items and your RPV goes up, you've successfully protected your margins without hurting your sales volume.
Try one change at a time. If you decide to implement the "Full Price Only" collection logic, wait a week before you also launch a new bundle offer. This allows you to see exactly which change influenced your data.
When to Bring in Professional Help
Running a Shopify store involves many moving parts. While the workarounds mentioned here are standard, certain situations require expert eyes.
Theme and Performance Issues
If you install multiple apps to handle discounts, bundles, and "compare-at" prices, your site's loading speed may decrease. This is called "app bloat." If your cart is lagging or the discount field takes forever to validate, it is time to consult a Shopify developer to clean up your theme's code.
Discount Conflicts
If you find that discounts are applying when they shouldn't—or not applying when they should—and you've already checked your collection settings, there may be a deeper conflict between your apps. Contact the support teams of the apps you are using through the Help Center. Reliable apps (like MBC Bundles) offer dedicated support to help resolve these "logic loops."
Legal and Compliance
In many regions, there are strict laws about "Compare-at" pricing and how discounts are advertised. For example, you cannot perpetually list an item "on sale" if it has never been sold at the "original" price. If you are running large-scale promotions across different countries (using Shopify Markets), we strongly recommend consulting a legal professional or a compliance specialist to ensure your pricing transparency meets local consumer laws.
Summary of the Responsible Journey
Mastering your Shopify discount strategy is not about finding a "secret" button; it's about intentional management.
- Foundations First: Ensure your pricing data (Compare-at prices) is clean and consistent across your entire catalog.
- Clarify the Goal: Know if you are trying to move old stock or protect the margins of new arrivals.
- Margin & Operations Check: Do the math. Ensure a discount doesn't turn a sale into a net loss.
- Bundle with Intention: Use tools like MBC Bundles to create curated offers (Mix & Match, BOGO) that have exclusion logic built-in, providing a cleaner experience than a buggy discount code.
- Reassess and Refine: Use your Shopify analytics to track RPV and AOV. Adjust your collections and rules based on what the data tells you.
"The most successful Shopify stores don't just 'offer discounts'; they curate value. By protecting your margins on sale items, you give yourself the financial breathing room to invest back into your brand's growth."
At the MBC Bundles team, we’re built by founders who understand that every percentage point matters. We encourage you to start simple: set up your automated "Full Price" collection today, test your codes, and then explore how intentional bundling can take your store to the next level.
FAQ
Why won't Shopify let me just click a button to exclude sale items?
Shopify’s core discount engine is built for simplicity and broad application. Because "sale" status is determined by the "Compare-at price" field (which is just a piece of metadata), the system doesn't automatically treat it as a separate category of product. Using the automated collection workaround is currently the most effective native method to bridge this gap.
Will these discount exclusions work on mobile and Shop Pay?
Yes. As long as the discount code is tied to a specific collection, the logic lives at the Shopify "Checkout" level. Whether a customer uses a desktop browser, a mobile app, or expresses checkout via Shop Pay, the system will check the items in the cart against the allowed collection before applying the price reduction.
Can I use this method for "Buy X Get Y" offers?
Absolutely. When setting up a BOGO offer, you are asked to select which products or collections qualify for the "Buy" part and which qualify for the "Get" part. Simply select your "Full Price Only" collection for the "Buy" portion to ensure shoppers can't trigger a free gift by purchasing an item that is already on clearance.
How do I handle customers who are frustrated that a code doesn't work on sale items?
Transparency is key. We recommend adding a small line of text near your discount code signup (like in your newsletter footer or popup) that says: "Valid on full-priced items only. Cannot be combined with other offers." Being proactive with your "foundations" reduces customer support tickets and builds trust.