The reasons merchants switch bundle apps are always the same: a price tier that jumped with revenue, a discount that fails in Shop Pay, no A/B testing, no Arabic, a widget that broke with a theme update, or support that stopped answering. The reason they do not switch is fear of the gap: a day with no offers, a theme with leftovers, a double discount. Done in the right order, the migration takes an afternoon and the store never shows a broken state.
We build MixMaxer, which is one possible destination; the checklist is the same whatever you move to.
Before you start: inventory
Write down every live offer in the old app: type, products or collections, tiers or price, discount codes it created in Shopify › Discounts, where its widget sits in the theme (product page, cart, collection badges), and any audience rules. Take screenshots of the old app's analytics for the last 90 days; you will not have them after uninstalling.
Check what the old app created in your store, because it will not all disappear with the app:
- Shopify › Discounts: automatic discounts or codes with the app's name.
- Products: hidden or placeholder products (filter by vendor or tag).
- Online Store › Themes › Edit code: search theme.liquid, the product and cart templates and snippets for the app's name or its script domain.
- Theme editor › App embeds: the app's embeds.
The order of operations
- Install the new app, build every offer, but leave them unpublished or paused. Rebuild from your inventory. In MixMaxer the nine templates (Buy 2 save 10% / 3+ save 15%, BOGO, Buy 2 get 1 free, free gift over an amount, Bundle & save, Any 3 for a price, Frequently bought together) cover most migrations in a few clicks each.
- Add the new widgets on a duplicate theme, not the live one. Duplicate the live theme, add the new app's product block, cart embed and badges there, and preview. In MixMaxer, Settings › Theme setup opens the editor with each element placed; make sure the editor header shows the duplicate.
- Test the new offers on the duplicate with real prices. Add the qualifying cart, go through checkout to the payment step (do not pay), and check the discount line; test once with the normal button and once with Shop Pay or PayPal. In MixMaxer, "Test at checkout" on the last wizard step runs the real discount on a sample cart first, so you know what checkout will charge before touching the storefront.
- Pick a quiet hour and cut over. In this order, within a few minutes: pause or delete the old app's offers; disable its automatic discounts in Shopify › Discounts; publish the new offers; publish the duplicate theme. The store shows no offers for the minutes between the first and the third step, and never two.
- Verify on the live store with a private window: product page, cart, checkout, Shop Pay, and a collection page for badges. Place one small real order if you can; refund it.
- Uninstall the old app only after the new one has run for a day without tickets. Then clean up: delete its hidden products, remove leftover snippets and script lines from the live theme (on a duplicate first), and delete any orphaned discounts.
Why two bundle apps must never be live on the same products
Two apps that both price the same product produce one of three outcomes: both discounts apply (you pay twice), Shopify keeps one unpredictably per line (customers see different prices), or two Cart Transforms try to merge the same lines and neither does. If you must overlap for a day, limit the new app's offers to products the old app does not touch, and never run two apps' cart bars at once.
What transfers and what does not
| Item | Transfers? | Note |
|---|---|---|
| Offer rules (tiers, prices, products) | By hand | No app imports another's offers; rebuild from your inventory |
| Widget placement | No | New blocks; a chance to move the widget above the buy button, which converts better for tiers |
| Historical analytics | No | Screenshot or export before uninstalling |
| Discount codes the old app created | No | Disable them; the new app creates its own automatic discounts |
| Customer-facing text and translations | By hand | Copy the phrases; in MixMaxer every phrase is editable per language and market |
| Theme code the old app pasted | Must be removed by hand | Extensions are removed with the app; pasted snippets are not |
Moving from a revenue-tiered plan
If the reason for switching is a plan that scales with orders or revenue, confirm the new app's pricing in writing before migrating: flat monthly price, no percentage of sales, no order or revenue cap on any plan, including the free one. The flat-price alternatives compared. MixMaxer's Free plan runs 2 live offers with no order cap, Growth is $9.99 a month for unlimited offers, Pro $19.99.
After the switch: what to measure
Give the new offers two full weeks, then compare the attach rate (orders with two or more units, or with a bundle) with the 90-day screenshots. A proper read needs an A/B test or a holdout group, both of which MixMaxer includes; the old app's "revenue generated" number and the new app's are not comparable. How to measure true AOV uplift.
FAQ
Will I lose sales while switching bundle apps?
Only during the minutes between pausing the old offers and publishing the new ones, if you follow the order above. Build and test everything on a duplicate theme first.
Can I run two bundle apps at the same time?
Not on the same products. Two product discounts never stack on one line, so the customer gets one of them unpredictably, and two bundle merges on the same cart lines conflict.
Does uninstalling the old bundle app remove its code from my theme?
Theme app extensions are removed by Shopify. Snippets or scripts the app pasted into theme.liquid stay until you delete them. Hidden placeholder products and automatic discounts the app created may also remain.
Can I import my offers from the old app?
No app imports another's offers. Write them down first; most rebuild in a few clicks from templates.
How do I know the new app's discount works in Shop Pay?
Test on the duplicate theme with the Shop Pay button on the product page and in the cart. Discounts built as Shopify Functions apply there; script-based discounts often do not.
MixMaxer: offer templates, a checkout test before publishing, nothing written into your theme, and a flat price from $0 with no order cap. Install from the Shopify App Store · Uninstalling and what is cleaned up. Last checked 1 November 2026.