Shopify’s discount engine works as an inclusion filter, not an exclusion filter. You tell it which products, collections, or customers qualify, and everything else is automatically left out. So when you want to exclude certain products from a discount on Shopify, you do it by shaping what is included rather than by listing what to skip. The same logic applies to discount codes, automatic discounts, sale items, gift cards, and whole collections.

Quick answer: the five ways to exclude products from a Shopify discount

  1. Native eligibility on a discount code or automatic discount: limit “Applies to” to specific products or specific collections, and put only the products you want discounted inside that collection.
  2. Tag-based exclusion: tag products you never want discounted (for example no-discount), then build the eligible collection with a “Product tag is not equal to no-discount” rule.
  3. Shopify Functions (replaces legacy Shopify Scripts since August 2025): write a discount function that checks tags, vendor, price, or inventory and skips matching line items.
  4. B2B price lists on Shopify Plus: price-list pricing takes priority over automatic discounts for B2B customers, so excluded products simply keep their list price.
  5. Combinations rules (2023 update): control whether order, product, and shipping discounts stack, so a sale item with a product discount is shielded from a sitewide order discount.

Exclude products from a discount code on Shopify

Discount codes are the simplest case. Shopify lets you point the code at a single product, a list of specific products, or one or more collections. Anything not on that list is excluded by default.

Steps in the Shopify admin

  1. Go to Discounts > Create discount > Amount off products (or Amount off order, depending on what you want).
  2. Under Applies to, choose Specific collections or Specific products.
  3. Pick the collection or products that should get the discount. Everything you don’t select is excluded.
  4. Under Purchase requirements, leave “Minimum purchase amount” blank if you want the code to work on a single eligible item.
  5. Under Combinations, decide whether this code can be used alongside other product or shipping discounts.
  6. Save.

If you want to exclude a single product from an otherwise sitewide promo, the cleanest path is to build an “Eligible for sitewide” automated collection that excludes that one product (using a tag or a Product title condition), then point the code at that collection.

Exclude products from an automatic discount on Shopify

Automatic discounts apply at checkout without a code. The setup mirrors the code flow.

  1. Go to Discounts > Create discount > Automatic.
  2. Under Customer buys, select Specific collections or Specific products.
  3. Only include the items that should be discounted. Anything not selected is excluded automatically.
  4. Under Customer gets, set the discount amount or percentage.
  5. Save and set the active date range.

Use this when you want tight control over which items qualify without merchants needing to enter a code.

Exclude sale items from a Shopify discount

This is the single most-asked variant of the question. Shopify does not have a one-click “exclude sale items” toggle, but you can build it two ways.

Option A - exclude already-discounted items via Combinations: When you create a sale on a specific collection, give it a “Product discount” type. Then on your sitewide order discount, open the Combinations setting and uncheck “Product discounts”. The order discount will no longer stack on top of items that already have a product discount. This is the cleanest 2026 method and works for both codes and automatic discounts.

Option B - exclude via an automated collection condition: Build an “Eligible for code” automated collection with the rule Compare at price is not greater than Price. Any product whose compare-at price is higher than its current price (the Shopify definition of “on sale”) is automatically excluded. Point your discount code at this collection.

Exclude a collection from a discount on Shopify

Shopify discounts target a positive selection, so the “exclude a collection” question is really about which collection you point the discount at. Build two collections: one for items you want included and one for items you want excluded. The excluded collection is a holding bay, the included collection is what the discount uses. Add a single “Product tag is not equal to no-discount” condition to the included collection and tag every excluded product with no-discount.

Exclude products by tag (the scalable approach)

Tags are the trick most growing stores settle on because they survive collection edits and don’t require remembering which products to manually pick.

  1. Pick a tag name and use it consistently. no-discount, full-price-only, and new-arrival are common.
  2. Apply the tag to every product you want shielded from discounts (bulk edit from the Products page makes this fast).
  3. Create an automated collection called something like “Discount eligible” with the condition Product tag is not equal to no-discount.
  4. Point any discount code or automatic discount at this “Discount eligible” collection.

Pro tip from shopthemedetector.com: a tag scales across every campaign you ever run. The moment you add a new product, just tag it correctly and your existing exclusions still hold.

Shopify Functions: code-based exclusion for complex rules

Shopify Scripts were retired on August 28, 2025 and replaced by Shopify Functions. Functions are available on every Shopify plan, not just Plus, and they let you write custom discount logic in JavaScript or Rust.

Use a discount Function when native eligibility is not enough, for example:

  • Exclude any line item with inventory below a threshold so you never discount near-stockouts.
  • Exclude line items whose unit cost is above a ratio of their price (margin protection).
  • Exclude bundle parents while still discounting their components, or the other way around.
  • Exclude products tagged premium from any cart-wide percentage off.

You can build a Function from scratch in the Shopify CLI or install a Functions-based discount app from the Shopify App Store. The Function reads your cart, applies its rules, and returns a list of line items to discount, skipping the rest.

B2B price lists (Shopify Plus)

On Shopify Plus B2B, price lists assign custom pricing to specific customer companies. Price-list pricing takes priority over automatic discounts. So if you want a B2B catalog to be effectively excluded from a consumer-facing sitewide automatic discount, give those B2B customers a price list and the automatic discount will not undercut it. This is useful when you run public promotions but need wholesale customers to keep their negotiated rates.

Combining discounts: order, product, and shipping rules

Since the 2023 combinations update, Shopify lets you classify each discount as a Product discount, Order discount, or Shipping discount, and choose which types can stack. This is one of the most effective exclusion tools in the platform.

  • Make your sitewide promo an Order discount, and your seasonal sale a Product discount. In the order discount, uncheck “Product discounts” under Combinations. Sale items are now shielded from the order discount.
  • Allow shipping discounts to stack with product discounts so customers still get free shipping on sale items.
  • Only one discount of each type can apply per order, which acts as a built-in cap on how generous a single purchase can be.

Exclude gift cards from discounts

Shopify automatically excludes gift cards from every discount type. You cannot apply a percentage off, an amount off, or a free-shipping offer to a gift-card line item even if your discount rules technically include it. Merchants sometimes assume they need a workaround for this. They do not. Gift cards are exempt by default.

Common mistakes when excluding products from Shopify discounts

  • Listing the products you want to exclude in the discount itself. Shopify’s “Applies to” field is an include-list, not an exclude-list. You exclude by leaving items out of the included collection.
  • Forgetting that gift cards are already excluded. Building a workaround for gift cards is wasted work.
  • Stacking an order discount on a sale collection. Without configuring Combinations correctly, a 20% off code can land on top of an already 50%-off sale, destroying margins.
  • Putting the tag condition on the wrong half of the rule. The “Discount eligible” collection should say “tag is not equal to no-discount”, not “tag is equal to no-discount”. Easy to flip by accident.
  • Not testing with a draft order. Build a draft order with one eligible and one excluded product and confirm Shopify only discounts the eligible one before going live.
  • Forgetting about discount automatic in the cart. Discounts and Functions run at checkout, not on the product page, so a customer may see a list price until they hit cart or checkout. Set expectations in your promo copy.

illustration how to exclude certain products instructions and infographic

Key Takeaways
1
Shopify’s discount engine is an inclusion filter, so you exclude products by leaving them out of the eligible collection rather than blocking them directly.
2
Tag products you never want discounted (for example no-discount) and build an automated “Discount eligible” collection with a Product tag is not equal to no-discount rule.
3
To exclude already-discounted items, use the Combinations setting on your sitewide discount and uncheck Product discounts, or filter by Compare at price is not greater than Price.
4
Gift cards are automatically excluded from every Shopify discount, so no workaround is needed.
5
Shopify Functions replaced Shopify Scripts in August 2025 and let any store, not just Plus, run code-based exclusion logic.

Does Shopify have a built-in exclusion feature?

No, Shopify does not have a dedicated “exclude these products” toggle on its discount creator. Every exclusion is done by shaping the included collection or by using Combinations rules. That is a feature, not a gap. Once you understand that the discount engine reads from an include-list, every exclusion task becomes a question of how to build the right collection or rule.

You can also pair this with broader pricing, discounts, and promotions setup across your store so exclusions plug into a wider promotional system.

Excluding products from discounts using the collection method

If you prefer the manual collection route over tags, here is the step-by-step.

Step 1, log into Shopify admin

Sign in with your owner or staff account that has access to Products and Discounts.

Step 2, identify the products to exclude

List the products you want to keep at full price. New arrivals, low-margin add-ons, age-restricted items, and high-ticket exclusives are the typical candidates.

Step 3, open Collections

Go to Products > Collections in the Shopify admin.

Step 4, create an automated “Discount eligible” collection

Click Create collection, name it Discount eligible, choose Automated, and add a condition such as Product title is not equal to [excluded product name] or Product vendor is not equal to [excluded vendor]. For multiple exclusions, the tag method scales better than chaining conditions.

Step 5, create the discount against this collection

Go to Discounts > Create discount, set “Applies to” or “Customer buys” to your “Discount eligible” collection, and save. The discount will only ever touch products inside that collection, and your excluded items keep their full price.

Once your exclusion logic is in place, the rest of your promotional system, including seasonal campaigns, shareable links, and sale collections, plugs in without changes.