Exclude sale items from Shopify discount codes
A Shopify discount code or automatic discount that applies to a product is applied on top of the sale price a Flash Sale task sets, so a shopper can get both the sale price and the discount. Our advice: limit each discount to a collection of full-price products, so it cannot reach a product that is already on sale.
A Flash Sale task in PriceDip lowers the product price and adds a compare-at price. PriceDip does not create discount codes. Shopify’s discounts are calculated from the price, so they take their share off the sale price. Shopify’s combinations setting is about how discounts combine with one another, not with a sale price.
Why does a double discount matter?
Section titled “Why does a double discount matter?”Here is an example with round numbers. A $50.00 product costs you $30.00, so it earns $20.00 gross.
| Step | Price | Gross profit |
|---|---|---|
| Full price | $50.00 | $20.00 |
| 25% flash sale | $37.50 | $7.50 |
| 15% code on top of the sale price | $31.88 | $1.88 |
The second discount takes the product from a $7.50 profit to under $2.00. See Do discounts increase profit? for the wider arithmetic.
Which discounts cause a double discount?
Section titled “Which discounts cause a double discount?”| Discount | Risk | Our advice |
|---|---|---|
| Automatic discount for all products and all customers | Highest. It reaches every sale item, and no one has to enter a code. | Limit it to a collection of full-price products |
| Discount code you share widely, such as a welcome code | Medium. Shoppers can add it to a sale price. | Decide on purpose: limit it, or accept the stack |
| Discount code for one audience, such as subscribers | Lower, but it still stacks on any product it applies to | Check its Applies to setting |
| Amount-off-order and shipping discounts | These have no collection setting, so the steps below do not limit them | Check their eligibility and combinations in Shopify admin |
A discount code stacking on a sale price may be fine for you, if the margin survives both. An automatic discount you forgot was running usually is not. Our advice: before every sale, open Discounts in Shopify admin and list what is active.
How do I limit a discount to full-price products?
Section titled “How do I limit a discount to full-price products?”Build an automated collection of products with no compare-at price, then point each product discount at it. A Flash Sale task on Price adds a compare-at price to every product in the task, so those products leave the collection while the sale runs.
1. Create the collection
Section titled “1. Create the collection”- In Shopify admin, go to Products > Collections and click Create collection.
- Name it, for example
Full-price products, and choose Automated. - Add the condition Compare-at price is not set. Shopify’s wording is in its collection conditions page.
- Save the collection.
2. Point each discount at it
Section titled “2. Point each discount at it”- In Shopify admin, go to Discounts and open the discount code or automatic discount.
- Under Applies to, choose Specific collections. This changes which products the discount applies to, so check the current selection first.
- Select the full-price collection and save.
Do this for every amount-off-products discount that should stay out of the sale. Shopify counts only items in the selected collection towards a minimum purchase amount or quantity, so a shopper with sale items in the cart may not reach the minimum.
3. Test it before and after the sale
Section titled “3. Test it before and after the sale”- Create the collection and edit the discounts before the sale.
- Start the sale and wait. A collection can lag after its products change, so a discount can still apply to a product for a short time after the sale starts.
- Place a test order with a sale product and the discount, and another with a full-price product. The discount should apply to the full-price product and not to the sale product.
- After the sale reverts, check that the products are back in the collection.
If shoppers are already getting both discounts, edit the discount’s Applies to setting or end the discount in Shopify admin, then check with a test order.
What should I know before I rely on it?
Section titled “What should I know before I rely on it?”- Products with a hand-set compare-at price are always excluded. A product you gave a compare-at price yourself is never in the collection, even outside a sale, so the discount never applies to it. Our advice: audit your existing compare-at prices first.
- Partly discounted products can stay in. Shopify’s “is not set” matches a product when any of its variants has no compare-at price. The discount applies to every variant of a product in the collection, so it can reach variants that are on sale.
- Leave a compare-at price empty to clear it. A compare-at price of 0 may count as set.
- A Flash Sale task on Compare-at price adds a compare-at price to products that had none, so they leave the collection too.
- A Price Edit task does not add a compare-at price. Those products stay in the collection, so discounts still apply to them.
- After a task reverts, a product that had no compare-at price has none again and returns to the collection.
Should sale items be excluded at all?
Section titled “Should sale items be excluded at all?”Our advice: exclude them from broad codes and from automatic discounts, and allow stacking only when the sale price plus the code still leaves a margin you would accept on a normal order. A loyalty code that stacks keeps repeat buyers happy, but you pay for both discounts on the same product.
If the offer is meant for one audience, Shopify’s own discounts fit better than a sale on the product price. See Discount codes vs sale prices on Shopify.
Frequently asked questions
Section titled “Frequently asked questions”Do Shopify discount codes stack with sale prices?
Section titled “Do Shopify discount codes stack with sale prices?”A discount code that applies to a product is applied on top of the sale price a Flash Sale task sets. Shopify applies it in the cart or at checkout. Check each code’s Applies to setting before a sale.
Do automatic discounts stack with sale prices too?
Section titled “Do automatic discounts stack with sale prices too?”An automatic discount that applies to a product is applied on top of the sale price as well. An automatic discount for all products and all customers is the biggest risk, because it reaches every sale item without a code. Limit it to a collection of full-price products.
Can I limit an order discount or a shipping discount to full-price products?
Section titled “Can I limit an order discount or a shipping discount to full-price products?”The collection steps work for amount-off-products discounts. Amount-off-order and shipping discounts have no collection setting, so the full-price collection cannot limit them. Check their eligibility and combinations in Shopify admin before the sale.
Do discounts stack on products in a Price Edit task?
Section titled “Do discounts stack on products in a Price Edit task?”A Price Edit task does not add a compare-at price, so its products stay in the full-price collection and the discounts you limited to that collection still apply to them. If a discount should not apply to them, you need to remove it from those products yourself in the discount’s settings.
Will the discount work on a product again after the sale ends?
Section titled “Will the discount work on a product again after the sale ends?”The discount applies to a product again after its task reverts: once the compare-at price is gone, the product returns to the full-price collection. A product with a hand-set compare-at price was never in the collection. Collections can lag, so allow a little time. A product that had no compare-at price before the task has none again afterwards. Place a test order after the revert to confirm.