π±Bundle discount
The Bundle Discounts feature allows you to create custom product bundles with a fixed price or percentage discount. Unlike standard bundled discounts, this feature operates at the product level, giving you more flexibility and control.
It is especially useful for POS (Point of Sale) workflows where bundles need to be applied instantly based on scanned items.
Key Capabilities
Create bundles using specific product combinations
Set bundle pricing as:
Fixed total price
Percentage discount
Define shared components across multiple bundles
Control bundle priority to determine which discount applies first
Support for multiple bundle repetitions
Optimized for handling large and complex bundle configurations
Block specific discount codes from stacking on an active bundle
How It Works
1. Define Bundle Components
Each bundle consists of:
Required products
Optional shared components (common across multiple bundles)
Example:
Shared components:
Hydrogen (Qty: 1)
Oxygen (Qty: 1)
Bundle-specific item:
Liquid (Qty: 1)
2. Set Bundle Pricing
You can assign:
A fixed bundle price (e.g., βΉ100 for the full bundle)
Or a percentage discount
3. Create Multiple Bundles
You can create multiple bundles using the same shared components.
Example:
Liquid Bundle
Hydrogen + Oxygen + Liquid β βΉ100
Snowboard Bundle
Hydrogen + Oxygen + Snowboard β βΉ200
4. Configure Priority
When multiple bundles can be formed from the same cart, priority determines which bundle is applied first.
Higher priority bundles are applied first
Lower priority bundles are ignored if items are already consumed
You can adjust priority using the arrow controls in the UI.
Example Scenarios
Scenario 1: Single Bundle Application
Cart contains:
Liquid + Hydrogen + Oxygen
Result:
Bundle is formed
Total price becomes βΉ100
Scenario 2: Competing Bundles
Cart contains:
Liquid + Hydrogen + Oxygen
Snowboard + Hydrogen + Oxygen
If Liquid Bundle has higher priority:
Liquid bundle is applied
Snowboard bundle is ignored
If Snowboard Bundle has higher priority:
Snowboard bundle is applied
Liquid bundle is ignored
Scenario 3: Multiple Bundle Formation
Cart contains:
2Γ Hydrogen
2Γ Oxygen
1Γ Liquid
1Γ Snowboard
Result:
Both bundles can be formed:
Liquid bundle β βΉ100
Snowboard bundle β βΉ200
Total = βΉ300
Repetition Control
You can configure how many times a bundle can be applied:
Limited repetitions
Unlimited repetitions
If unlimited, bundles will continue forming as long as required items exist in the cart.
Reject Discount Codes
Bundles are often priced deliberately, so you may not want customers stacking coupon codes on top of an active bundle. The Reject Discount Codes card in the bundle editor lets you block specific codes at checkout while this automatic bundle discount is active, and show the customer a clear reason instead of a silent failure.
This card only appears for automatic bundle discounts. Shopify only allows an automatic discount to reject entered codes, so code-based bundle discounts don't have this option.
How to set it up
Open your bundle discount and scroll to the Reject Discount Codes card.
Tick Enable.
Choose a Match Type:
Fixed (comma-separated codes)
You list the exact codes to block in Discount Codes (e.g. SUMMER20, WELCOME10). Matching is exact, so list each code exactly as it's defined.
Pattern (dynamic matching)
You enter one Pattern (e.g. SUMMER or PROMO) and pick a Match Operator: Starts with, Ends with, or Contains. Ideal for apps that mint codes with a prefix.
Write the Rejection Message the customer sees at checkout. It can be up to 120 characters, and you can use
{code}to display the rejected code, for example:{code} can't be combined with our bundle offer.If you leave it empty, the customer sees the default: "This discount code is not valid for this order."Save the discount.
Good to know
Codes are rejected whenever the bundle discount is live, even on carts where no bundle has actually formed yet. If you only run the bundle occasionally, deactivate the discount (rather than relying on cart contents) to let those codes work again.
Pattern matching is a plain text match against the entered code; there are no wildcards to configure. Use Starts with for prefixed loyalty codes like
BH_XXXX.The same option exists on unified discounts, with the same behavior. See Reject discount codes for the loyalty-coupon use case in depth.
When to Use This Feature
This feature is ideal when:
You need precise control over bundle composition
Bundles share common components
You operate in a POS environment
You want to avoid cart-level discount inconsistencies
You manage large or complex bundle catalogs
Important Notes
Bundles are applied only when all required items are present
Items used in one bundle cannot be reused in another (unless quantities allow)
Priority order directly impacts discount outcomes
Changes in cart (adding/removing items) will re-evaluate bundle application
Summary
The Bundle Discounts feature enables powerful, flexible bundling by:
Combining products at a granular level
Supporting shared components
Using priority-based logic for conflict resolution
This makes it highly effective for retail, POS systems, and complex product combinations.
Last updated