Storefront
Theme cart compatibility
When a shopper adds a bundle, Radius Bundles puts it in the cart and then asks your theme to show the updated cart: the item count in the header, and the cart drawer or popup. Every theme draws its cart differently, so how well that works depends on your theme.
The bundle is always in the cart, and checkout always shows the right items and discount. This page is only about whether the header and cart drawer update straight away.
#Which themes update automatically
| Theme | After a bundle is added |
|---|---|
| Horizon, Atelier, Dwell, Fabric, Heritage, Pitch, Savor, Tinker, Vessel | Count and cart drawer update in place |
| Dawn and themes built on it: Dawn, Refresh, Sense, Craft, Studio, Taste, Crave, Colorblock, Ride, Origin, Spotlight, Publisher, Trade, Be Yours, Enterprise, Ignite | Count and cart drawer or popup update in place |
| Themes that support Shopify's cart actions themselves, such as Local and Xtra | The theme updates its own cart |
| Impulse, Motion, Expanse, Prestige, Impact, Focal, Warehouse, Broadcast, Palo Alto, Symmetry, Shapes | Radius Bundles sends the theme's own refresh signal |
| Any other theme | The count or drawer may not change until the page reloads |
This was checked on each theme's demo store in September 2026. A copy of a theme you have renamed is still recognised. An older version of a theme may behave differently.
Your Settings → General → After "Add to cart" setting still applies. If it is set to Go to the cart or Go to checkout, shoppers go there straight after adding a bundle.
#If your theme is not listed
Your theme developer can make it update with a short script that listens for the event described below. Send them this page.
#For theme developers: radius-bundles:cart-updated
Radius Bundles dispatches this event on document whenever it has changed the cart. It bubbles, so a listener on window receives it too.
event.detail field | Type | Meaning |
|---|---|---|
source | "add" or "cart-sync" | "add": a shopper added a bundle. "cart-sync": Radius Bundles adjusted the cart on its own, for example keeping a Buy X Get Y free item in step after the shopper changed the paid item's quantity |
themeRefreshed | boolean | true when Radius Bundles already asked the theme to redraw its cart, through Shopify's cart actions or the theme's own refresh event. false when it could not |
When it fires:
- After the cart change has succeeded. A failed add does not fire it.
- After Radius Bundles has tried to refresh the theme itself.
- Before any redirect. If the merchant has chosen to send shoppers to the cart page or checkout, the page navigates immediately afterwards.
- Possibly more than once for a single shopper action, for example when a bundle is sold as its own product. Make your listener safe to run twice.
The event does not carry the cart contents. Fetch cart.js if you need them.
Register the listener in a script that loads with every page, such as layout/theme.liquid or a theme asset. It only needs to exist before the shopper adds a bundle.
#Example: redraw the cart
Replace the body with your theme's own refresh. This example updates a count element.
<script>
document.addEventListener("radius-bundles:cart-updated", async (event) => {
if (event.detail.themeRefreshed) return;
const root = window.Shopify?.routes?.root || "/";
const cart = await fetch(root + "cart.js").then((response) =>
response.json(),
);
document.querySelectorAll("[data-cart-count]").forEach((element) => {
element.textContent = cart.item_count;
});
});
</script>
#Example: open the cart drawer after an add
Only after a shopper's add, not after Radius Bundles' own adjustments:
<script>
document.addEventListener("radius-bundles:cart-updated", (event) => {
if (event.detail.source !== "add") return;
document.querySelector("#CartDrawer")?.open?.();
});
</script>
#CartDrawer and open() stand in for your theme's own drawer and the method that opens it.
#Savings banner in the cart
When a shopper has a bundle in their cart, Radius Bundles can show a savings banner on the cart page. It reads something like "You're saving 15% with Summer Bundle". The banner is injected by the App Embed and appears on the cart page for every theme where the embed is active.
Turn the banner on or off at Settings → General → Show savings in the cart. Its colors, font size, corner style, and icon are styled in Settings → Widget style → Style customizer → Cart Banner.