Theme requirements
On this page
Checkout rules don’t depend on your theme. Storefront widgets and upsell offers do, in three ways:
- Online Store 2.0: app blocks need it.
- The app embed: the cart drawer parts and one-line tags need it.
- Shopify’s storefront cart events: the cart drawer parts, and updates the moment the cart changes, need a theme that sends them.
Every widget draws when the page loads, on any theme that can hold it. That part needs no events.
What each feature needs
| Feature | OS 2.0 | App embed | Cart events | Without them |
|---|---|---|---|---|
| App blocks | Yes | No | No | No AndOr blocks under Add block. Use the app embed and one-line tags. |
| One-line tags | No | Yes | No | The tag stays empty. |
| Widgets when the page loads | Blocks only | No | No | Works. |
| Instant updates | No | No | Yes | Updates on the next page load. |
| Cart drawer parts | No | Yes | Yes | Nothing in the drawer. Shoppers see them on the cart page. |
| Cart drawer place on an offer | No | Yes | Yes | The offer shows on the cart page and product page only. |
| Upsell Add opens the drawer | No | No | Yes | The add works, then the page reloads. |
- OS 2.0 is Online Store 2.0. Cart events are Shopify’s storefront cart events.
- Instant updates: the goal bar, goal suggestions, the volume picker, the bundle card, and the Buy X get Y and gift banners follow the cart the moment it changes, with no reload.
- Cart drawer parts: the goal bar, the gift slot and the Buy X get Y claim row in the cart drawer.
Note An upsell add always works. On a theme without the events, it reloads the page instead of opening the drawer.
Online Store 2.0
App blocks need an Online Store 2.0 theme. Every theme in the Shopify Theme Store today is one. Older themes, like Debut and Brooklyn, are called vintage themes.
On a vintage theme:
- Add block has no AndOr blocks.
- The app embed works. Turn it on as usual.
- A developer can paste one-line tags and the product card recipes into theme code.
A 2.0 theme can still refuse a block in one place. A section takes app blocks only when the theme allows it there. Most product and cart sections do. Some custom sections do not. There, use a one-line tag.
To check your theme: open the theme editor on a product page, click Add block and open Apps. If you see the AndOr blocks, your theme takes app blocks.
Shopify’s storefront cart events
Shopify added standard storefront events in June 2026. A theme sends
shopify:cart:view when the cart drawer opens and
shopify:cart:lines-update when the cart changes. AndOr listens for
these two. Your theme has to send them. AndOr can’t add them for you.
Themes known to send them
- Horizon 4.0 or later, and the free themes built on it: Atelier, Dwell, Fabric, Heritage, Pitch, Ritual, Savor, Tinker and Vessel, at their latest version.
- Dawn 15.5 or later, and the free themes built on it: Colorblock, Crave, Craft, Origin, Publisher, Refresh, Ride, Sense, Spotlight, Studio, Taste and Trade, at their latest version.
Most paid themes don’t send them yet. A theme can add them in any update, so check after you update yours. Vintage themes never will.
For where blocks go and known quirks on each tested theme, see Themes.
Caution The version is a hint, not a promise. A theme that a developer changed, for example with a custom cart drawer, can stop sending the events. Preview the cart drawer to be sure.
To check your theme: add a product to the cart and open the cart drawer on your store. If your AndOr goal bar or gift slot shows there, your theme sends the events. In AndOr, the What’s next panel also warns you. It shows when your live theme is a Horizon or Dawn version too old for the cart drawer.
When your theme doesn’t send them
- The widgets on the page still draw when it loads.
- After a shopper changes the cart without a reload, the goal bar and the pickers show the old cart until the next page load.
- The cart drawer shows no AndOr parts. Add the AndOr Order goal and AndOr Offer picker blocks to the cart page, so shoppers see them there.
A developer can add the events to a custom theme. See Cart drawer.
See it in action