# On Sale and in a Set: When a Bundle Meets a Running Promotion How a camping store worked out what a customer pays when a stove on sale completes a 20% set, and why a price edited in Shopify behaves differently from a sale run in the app. URL: https://www.discountprime.app/case-studies/bundle-discount-on-sale-items Updated: 2026-11-02 ## Summary When a bundled product is already on sale, Best deal wins gives each line the larger saving and Stack on product discounts compounds the two. A price edited in Shopify is treated as the normal price, so the set discount comes off it even on Best deal wins. In the illustrative example, that costs $14.40 of gross profit per set. ## Short Answer When a product in a Product Bundle is already on sale, the result depends on how the sale was created and on one setting. With "Best deal wins", a sale run in Discount Prime never adds to the set discount: each line gets the larger saving. With "Stack on product discounts", the set discount is taken from the sale price, so the two compound. The trap is a sale made by editing the product's price in Shopify. Discount Prime sees that lower price as the normal price, so the set discount comes off it even on "Best deal wins". In the worked example below, the same 15% sale costs $14.40 more per set when it is run that way. Northpine Outfitters is a fictional store used to illustrate the decision. All numbers are illustrative assumptions, not results. ## Fits / Does Not Fit | Best deal wins fits when | Stack on product discounts fits when | |---|---| | The set and the sale are separate offers to retail shoppers | The set reward is meant to sit on a standing price, as with wholesale accounts | | You want one predictable maximum discount per line | You advertise the extra saving, for example "sale items get a further 20% in a set" | | Margins leave little room for two discounts on one item | You have checked the compounded rate against each product's cost | ## The Scenario and the Data You Need **Northpine Outfitters**, a fictional Shopify camping store, sells a camp kitchen set: a stove, a cook set and a mug set, at 20% off when all three are in the cart. A seasonal sale is about to start on stoves, and the team wants to know what a customer pays when a stove on sale completes the set. Illustrative assumptions (replace with your own): | Item | Price | Product cost | |---|---|---| | Stove | $120 | $60 | | Cook set | $80 | $32 | | Mug set | $50 | $20 | | **Set at list** | **$250** | **$112** | Data to collect first: how the sale will be created, which products are in both the sale and a set, and the product cost of each in Shopify (Cost per item). ## The Options Compared Gross profit here is price minus product cost; payment fees, shipping and returns are excluded. Each row is one complete set with the stove as the sale item. | How the stove is on sale | Setting | Stove pays | Customer pays for the set | Gross profit | |---|---|---|---|---| | Not on sale | Either | $96.00 | $200.00 | $88.00 | | Flat Product Discount, 15% | Best deal wins | $96.00 | $200.00 | $88.00 | | Flat Product Discount, 15% | Stack on product discounts | $81.60 | $185.60 | $73.60 | | Flat Product Discount, 30% | Best deal wins | $84.00 | $188.00 | $76.00 | | Flat Product Discount, 30% | Stack on product discounts | $67.20 | $171.20 | $59.20 | | Bulk Price Update to $102 (15%) | Best deal wins | $96.00 | $200.00 | $88.00 | | Price edited in Shopify to $102 | Best deal wins | $81.60 | $185.60 | $73.60 | The cook set ($64) and mug set ($40) keep their 20% in every row. ## How Each Case Is Calculated **Best deal wins with a discount.** The set share is worked out on the list price and compared with the sale saving. At a 15% sale, the stove's set share is $24 and the sale saving is $18, so the stove pays $96. At a 30% sale, the sale saving is $36, which is larger, so the stove keeps its sale price of $84 and only the other two lines take the set discount. The customer never gets both on one line. **Stack on product discounts.** The set discount is taken from the price after the sale, so the two compound. At a 15% sale, $120 becomes $102, and 20% of $102 is $20.40, so the stove pays $81.60. That is 32% off, not 35%, and it costs $14.40 of gross profit on each set compared with Best deal wins. **Best deal wins with a Discount Prime price change.** When a pricing campaign such as Bulk Price Update has lowered the price, Discount Prime still knows the original $120. The set share is worked out on the original and the price change already given is subtracted: $24 minus $18 leaves $6, so the stove pays $96. The customer pays the same as with the Flat Product Discount. **Best deal wins with a price edited in Shopify.** If the team types $102 into the product's price, with or without a compare-at price of $120, nothing tells Discount Prime that the product is on sale. The $102 is treated as the normal price, so 20% comes off it and the stove pays $81.60. The result matches stacking, even though "Best deal wins" is selected. ## Choosing the Setup The scenario keeps **Best deal wins** and runs the sale as a **Flat Product Discount**. The set still earns its $88 of gross profit, and the most any stove can lose is the larger of the two savings. Compare each result with the order the set is meant to beat. A stove alone at the 15% sale earns $42 of gross profit, so even the stacked set at $73.60 brings in more when the customer would otherwise have bought only the stove. The cost falls on customers who would have bought the set anyway, so the question is how many of them there are, not whether a stacked set is profitable on its own. If you do stack, add a floor. You choose the number in "Never let this bundle push an item below a minimum margin". If you set it to 30%, the stove's floor is $85.71 ($60 cost divided by 0.70), because the margin is measured on the selling price, not as a markup on cost. The stacked stove, which would earn only 26.5% at $81.60, stops at $85.71, the customer pays $189.71, and gross profit is $77.71. A variant with no Cost per item has no floor to work from, so choose in advance what should happen to it. ## Settings Used in This Scenario | Setting | Value | |---|---| | Campaign type | Product Bundle | | Template | Complete the look | | Slots | Stove, cook set and mug set, required quantity 1 each | | Reward type | Percentage off the set: 20% | | Apply | Once per order | | Combine with other discounts | Best deal wins | | Second campaign | Flat Product Discount, 15%, on stoves | Plan note: Product Bundle is available from the Premium plan. **Why a Flat Product Discount for the sale:** the sale ends on its own schedule, it is visible to Discount Prime, and Best deal wins can compare it with the set. **Why not edit the price in Shopify:** the set discount would then come off the sale price for every shopper who completes the set. ## What the Customer Sees | Cart | Result | |---|---| | Stove on sale, alone | $102, no set discount | | Stove on sale + cook set + mug set | $200 in total; the stove line shows the set discount, not the sale | | Stove at the 30% sale + cook set + mug set | $188 in total; the stove keeps its sale price, the other two lines show the set discount | The builder shows an overlap notice for other active campaigns on the same products. It is information, not a block, so it will not stop you launching both. ## Limits and Pre-Launch Tests - These rules compare Discount Prime's own discounts. A discount created elsewhere, such as a Shopify automatic discount or code, follows Shopify's combination settings instead, so test it separately. - Best deal wins compares savings per line, not across the set. One line can keep its sale while the others take the set discount. - A Combo product has its own price and takes no further discount, so none of these cases applies to it. - A floor limits the bundle's share of the discount. It does not change what the other campaign gives. - A Cross-sell add-on discount has the same two settings, Best deal wins and Stack on product discounts, so the same prices apply to a 20% add-on. This study's margin floor is a Product Bundle setting. | Test input | Expected result | |---|---| | Stove in the 15% sale + cook set + mug set, Best deal wins | Stove $96, set total $200 | | Stove in the 30% sale + cook set + mug set, Best deal wins | Stove $84, set total $188 | | Same cart, Stack on product discounts | Stove $81.60 at the 15% sale, $67.20 at the 30% sale | | Stack with a 30% margin floor, 15% sale | Stove no lower than $85.71 | | Any product whose price was edited in Shopify for a sale | Set discount comes off the edited price; decide whether you want that before launch | ## Measurement - **Primary metric:** gross profit per order for orders containing a sale item, with and without a completed set. - **Guardrail:** average discount rate on sale items. A rate above your sale rate means something is stacking, on purpose or not. - **Baseline:** the same metrics for the weeks before the sale, or a comparison group of products outside it. - **Confounders:** the sale itself changes who buys, and seasonal demand can hide a change in margin. - **Decide:** if the discount rate on sale items is higher than you planned, check for prices edited in Shopify first, then the combination setting. Without a controlled comparison, treat before/after changes as directional. ## Frequently Asked Questions **Q: Does a Shopify bundle discount stack with a sale on the same product?** A: It depends on how the sale was created and on the bundle's combination setting. In Discount Prime, Best deal wins gives each line the larger of the two savings, never both. Stack on product discounts takes the set discount from the sale price, so the two compound. A sale made by editing the price in Shopify is not seen as a sale, so the set discount comes off the lower price. **Q: What does a customer pay when a sale item completes a bundle?** A: With Best deal wins, the line pays whichever price is lower. A $120 stove in a 15% sale and a 20% set pays $96, because the $24 set share beats the $18 sale saving. At a 30% sale it keeps the $84 sale price, and the other lines still take the set discount. **Q: How do stacked bundle discounts compound?** A: The set discount is taken from the price after the sale. A $120 product at 15% off is $102, and 20% of $102 is $20.40, so it pays $81.60. That is 32% off the list price, not 35%. **Q: Why is my bundle discounting a sale price even with Best deal wins on?** A: The sale was probably created by editing the product's price in Shopify, with or without a compare-at price. Nothing marks that as a discount, so Discount Prime treats the lower price as the normal price. Run the sale as a Flat Product Discount or a Bulk Price Update and Best deal wins can compare it with the set. **Q: How do I protect margin if I stack a bundle on a sale?** A: Turn on the bundle's minimum margin floor, which reads each variant's Cost per item and measures margin on the selling price. You choose the number: with a $60 cost, if you set it to 30%, the price stops at $85.71 even if stacking would reach $81.60. A variant with no cost has no floor to work from, so choose in advance what should happen to it. **Q: When should I use Stack on product discounts for a bundle?** A: When the set reward is meant to sit on top of a standing price, as with wholesale accounts, or when you advertise the extra saving. For separate retail offers, Best deal wins keeps the maximum discount on each line predictable.