
The Problem: Two Apps That Couldn’t Coexist
Our Shopify Plus client, Heist Studios, wanted to do two things at once:
- Offer volume bundle discounts – buy a minimum quantity of the same product, get a percentage off.
- Show checkout upsells to customers.
Both goals made commercial sense, and both were initially implemented by apps that worked perfectly in isolation. But the moment a customer added a bundle to the cart and proceeded to checkout, the upsell widget disappeared entirely.
We dug into why.
The Root Cause: A Hidden Shopify Constraint
After investigation, we identified the issue: Shopify treats checkout as a controlled environment that only allows one cart modification at a time.
Most volume bundle discount apps apply their discounts at the checkout stage – technically, this counts as modifying the cart. Checkout upsell apps also modify the cart when a customer adds a recommended product at checkout. Shopify’s architecture simply does not allow both modifications to happen simultaneously, so one silently loses.
There is no setting to fix this. It is a platform-level constraint.
Why Native Shopify Discounts Don’t Solve It Either
Shopify’s built-in discount system doesn’t support a rule structured as: “apply a discount when a customer adds 3 or more units of the same specific collection.”
The closest native option is to create an individual automatic discount per product – manually, one by one, through the admin panel. For a catalogue with many products eligible for bundle pricing, this becomes an ongoing operational burden every time a product is added, changed, or removed from a bundle offer.
That’s not a workable solution for a growing brand.
Our Solution: A Custom Embedded App for Automatic Discounts
We rebuilt the volume bundle discount logic entirely – without relying on any third-party bundle app. Instead of applying discounts at checkout, our Bundle Discount app applies them at the cart level, which means they don’t conflict with checkout upsells at all.The app is embedded directly in the Shopify admin under, and it gives the merchant full control over volume discount offers from a single interface.
How It Works
The merchant creates a collection – a bundle group – by filling in one simple form: which products are included, the minimum quantity required, the discount amount, and the text for the CTA button and listing label.
That’s it. From there, the app automatically generates the discounts in Shopify, adds the bundle button to each product page, and applies the label on the collection page. The discount is reflected in the cart before checkout, so the upsell widget has nothing to conflict with.
Collections can be edited or deleted at any time, and all storefront elements update accordingly. Editing a collection updates both the Shopify discounts and the storefront elements automatically.
The Result
Heist Studios can now run bundle discounts and checkout upsells at the same time – something that wasn’t possible with off-the-shelf apps. Because the discount logic lives in a custom bundle discount app rather than a third-party tool, it plays well with the rest of the store’s setup.
The previous app injected bundle buttons on product pages via JavaScript, which caused layout shifts and slowed page load. Our implementation renders the button natively, so product pages load cleanly without any performance trade-off.
The client is happy – and so are we.

