Guide
Bundle discount without a separate bundle product
Shopify Bundles creates a bundle as its own product, and Buy X get Y knows one condition and one discounted group. Hand-E Discounts discounts your regular products as soon as every group of a bundle is filled in the cart, with a separate discount per group.

When a separate bundle product gets in the way
You sell a camera, a memory card and a bag separately and want the set to be cheaper. Shopify's free app Shopify Bundles is built for fixed bundles and multipacks and is available on all plans. There, the bundle is its own product, which is set to Draft status after you create it.
That has consequences: the bundle needs its own images, its own description and its own price. If the price of an included product changes, the bundle price doesn't update, according to Shopify's help center. And a customer who adds the three items one by one from their product pages isn't buying the bundle product.
Often something else is meant: anyone who buys the items together, from whichever product page, should pay less. That's exactly what the Bundle discount type in Hand-E Discounts does. There's no extra product. The discount happens in the cart.
| Shopify native | With Hand-E Discounts | |
|---|---|---|
| Separate bundle product | yes, with Shopify Bundles | no |
| Discount on items added individually | Buy X get Y: one condition, one discounted group | yes, as soon as every group is filled |
| Different discount per item | Buy X get Y: one value for the items the customer gets | per group a percentage, a fixed amount or no discount |
| Several sets in one cart | Buy X get Y: maximum number of uses per order | yes, redemptions per cart are adjustable |
| Price change on a single product | Shopify Bundles price doesn't update | percentage discount uses the price in the cart |
The native options and what they're good for
Shopify has two tools for products bought together. Both fit certain cases very well.
- Shopify Bundles is free, made by Shopify and runs on all plans. It fits when the set should be its own offer with its own product page, for example a gift set. According to the help center, fixed bundles hold up to 30 components.
- Buy X get Y fits the pattern buy A, get B cheaper. For example, the customer buys a camera and gets the bag 10% cheaper. The item the customer gets is discounted by a percentage, by an amount off each, or made free.
- Where it breaks, part 1: If the card should be 20% cheaper and the bag 10%, those are two values. A Buy X get Y discount has one value for the items the customer gets. You need two discounts with the same camera as the condition and maintain both separately.
- Where it breaks, part 2: The Buy X get Y condition is a quantity or an amount from specific products or collections. That the camera and the card and the bag all have to be in the cart together can't be expressed in one discount.
- Good enough if: a set should be sold as its own product, or one main product makes exactly one accessory cheaper with one discount value.
How to build the bundle in Hand-E Discounts
A bundle consists of groups, also called slots. Each group holds products or variants, a quantity and its own discount.
- Choose the Bundle discount type and give it a title.
- Create a group for the camera: quantity 1, discount No discount. That makes the camera a pure condition.
- Add more groups: memory card at 20%, bag at 10%. If a group holds several products, their order sets the priority.
- Set how often the bundle can be redeemed per cart.
- Use the cart preview with real products to check whether every group is filled and which line gets which discount.
- Save, then use Shopify's Combinations card to decide whether other discounts can apply alongside the bundle.
Worked example: camera set with three groups
Camera $549.00 (no discount, condition only), memory card $29.90 (20%), bag $39.95 (10%). Redemptions per cart: 2. A complete set saves $5.98 on the card and $3.99 on the bag, $9.97 in total. 10% of $39.95 is $3.995, which rounds down to $3.99.
| Cart | Sets complete | Subtotal | Discount | Customer pays |
|---|---|---|---|---|
| 1 camera, 1 card, 1 bag | 1 | $618.85 | $9.97 | $608.88 |
| 1 camera, 1 card | 0, the bag is missing | $578.90 | $0.00 | $578.90 |
| 2 cameras, 2 cards, 1 bag | 1 | $1,197.75 | $9.97 | $1,187.78 |
| 2 cameras, 2 cards, 2 bags | 2 | $1,237.70 | $19.94 | $1,217.76 |
Limits and pitfalls
- A product can belong to one group at most. So two units of the same product with different discounts can't be built as two groups.
- If one group is missing from the cart, no part of the bundle gets a discount.
- You design the hint about the set yourself, for example on the camera's product page. Without it, the customer doesn't know the combination pays off.
- The preview doesn't know about other discounts, active dates, customer eligibility, markets, taxes or shipping. Place a test order before going live.
- The bundle takes one of the 25 slots for active automatic discounts. If you uninstall the app, Shopify removes the discount.
Common questions
Do I need to create a new product for a bundle discount in Shopify?
Can a bundle group be a condition without getting a discount itself?
What happens when a customer buys two complete bundle sets?
Which product gets the discount when several from one bundle group are in the cart?
Related problems
Multiple quantity breaks don't fit in one discount
In Shopify's discount form you pick one minimum purchase requirement with one value, which means one threshold per discount. For 10% off 5 or more items and 15% off 10 or more, you need two separate automatic discounts natively, or an app that keeps every tier in one discount.
Read moreThe free gift doesn't land in the cart by itself
Shopify's Buy X get Y discount makes a gift free, but according to the help center it never adds it to the cart itself. Hand-E Discounts adds the gift through a theme app embed once the cart value is reached and removes it again when the value drops below.
Read moreDiscount scripts stopped running in June 2026
Since June 30, 2026, Shopify no longer runs Scripts, and Scripts that were still published have been deactivated. Discounts that a line item script used to calculate run through Shopify Functions today, for example out of a public app that stores on every plan are allowed to use.
Read more