Biscuits Bundles works alongside most cart drawer and upsell apps, but there is one common conflict to be aware of and fix.
A bundle has its own add-to-cart flow, because it adds several component products at once. Cart drawer and upsell apps work by attaching their own code to the add-to-cart buttons on your store, so they can run their version of "add to cart" and open their drawer. When that code also runs on the bundle's add-to-cart button, it intercepts the bundle's own add to cart and can break it, so the bundle does not add or the drawer does not open.
The fix is to stop the cart app from running its own add to cart on the bundle's button, so the bundle can add itself. This is not the same as getting the app to open its cart: opening the drawer after the fact does not help if the app has already broken the add. The sections below cover how to disable each app's add to cart on the bundle's button, page or template.
Note: Other apps' menus, settings and steps change over time and are outside our control. Always check the app's own documentation for the latest, and contact that app's support for anything specific to their app. The pointers below are a starting point.
There are three ways to stop a cart app taking over the bundle's add to cart, in order of preference:
Turn off the app's add-to-cart takeover with its public API, set through the Custom JS field on the Biscuits Bundles app block. That field only loads on templates where the bundle is placed, so this scopes the change to your bundle pages and leaves the app working everywhere else. UpCart is the clearest example (below).
Use a setting inside the cart app that disables or prevents its add-to-cart handling, if it has one (for example iCart's "Prevent" option).
Ask the cart app's support to exclude the bundle's button or template, if it offers neither of the above. Give them your bundle page URL and the bundle button's selector: the custom element biscuits-bundle-add-to-cart, whose button carries the class biscuits-bundle-add-to-cart__button.
Once the app is no longer taking over the add, check the drawer still shows the bundle's components neatly (see Expand items in cart). If disabling the takeover also stops the app opening its drawer on add, you can optionally reopen it on the bundle's biscuits--add-to-cart-success event (see Developer Javascript and events), as the UpCart example below shows.
Rebuy Smart Cart is designed to take over the cart, so it expects your theme's native cart to be hidden rather than to coexist, and it does not offer a setting or API to stop it intercepting a specific add-to-cart button or template. If Rebuy breaks the bundle's add to cart, the reliable fix is to have Rebuy's support (or us) exclude the bundle button or template. Give them the selector above and your bundle page URL.
Rebuy's own guides are a useful starting point: Using Shopify Bundles in Rebuy Smart Cart and Rebuy: hide an existing cart drawer. Because Rebuy replaces the cart entirely, getting it to cooperate with the bundle's add to cart can need a small custom callback, so contact Rebuy's support (or us) if you hit a conflict.
UpCart has a public API that can usually be leveraged so we can prevent UpCart from intercepting the Biscuits Bundles add to cart and breaking its functionality.
Try adding the JS below to disable the UpCart code from running on the Biscuits Bundles product page.
Paste this snippet into the Custom JS setting on the Biscuits Bundles App Block:
window.upcartShouldSkipAddToCartInterceptor = true;
window.upcartShouldOpenOnAddToCartBackgroundNetworkCall = false;
document.addEventListener("biscuits--add-to-cart-success", function() {
if (typeof window.upcartOpenCart === "function") {
window.upcartOpenCart();
}
});However, UpCart's own documentation notes that buttons added by bundle apps may not work even with this setting, so if UpCart keeps intercepting the bundle's add to cart, contact UpCart support to have the bundle button excluded on specific product templates that you are using for your bundles.
iCart can be told to stop running its add-to-cart handling, under General Settings > Advanced settings (Developers only):
To target just the bundle, put the bundle button's selector (.biscuits-bundle-add-to-cart__button) into the "To prevent click event of theme or iCart" HTML Selectors field, then test that the bundle still adds correctly.
Or, to switch iCart's add-to-cart handling off across the whole store, tick "Prevent iCart's add-to-cart event" under Prevent Actions. This is simpler but store-wide, and it also turns off iCart's add-to-cart pixel tracking, so test before going live.
[screenshot - iCart Advanced settings, showing the Prevent Actions and HTML Selectors fields]
Monster Cart does not offer a setting or public API to stop it intercepting a specific add-to-cart button or template; its public methods only open or refresh its drawer, which does not prevent it taking over the add. If Monster breaks the bundle's add to cart, ask Monster's support (or us) to exclude the bundle button or template, giving them the selector above and your bundle page URL.
If you also see Monster's drawer competing with your theme's own cart, turning off your theme's native cart drawer can help. See Monster Cart: developer methods and selectors and Monster Cart: theme drawer conflict fix.
Slide Cart is the same as Monster Cart here: it has no setting or API to stop it intercepting a specific button or template, only methods that open its drawer. If Slide Cart breaks the bundle's add to cart, ask Slide Cart's support (or us) to exclude the bundle button or template, giving them the selector above and your bundle page URL.
If Slide Cart's drawer competes with your theme's own cart, disable your theme's built-in cart drawer. See Slide Cart: installing in your theme and Slide Cart: callbacks and methods.
[screenshot - a bundle added correctly, with components expanded in a cart drawer]
These conflicts depend on how each store and cart app are set up, and the more advanced ones can need a small amount of custom code. Reach out with the cart app name and your store's .myshopify.com URL and we will help you get it working.