[{"data":1,"prerenderedAt":546},["ShallowReactive",2],{"navigation_docs":3,"-bundles-reference-theme-compatibility":256,"-bundles-reference-theme-compatibility-surround":543},[4,102],{"title":5,"path":6,"stem":7,"children":8},"TreStack Timer","\u002Ftimer","1.timer",[9,12,30,51,68,89],{"title":10,"path":6,"stem":11},"TreStack Timer docs","1.timer\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"page":29},"Getting started","\u002Ftimer\u002Fstart","1.timer\u002F1.start",[17,21,25],{"title":18,"path":19,"stem":20},"Installing TreStack Timer","\u002Ftimer\u002Fstart\u002Finstalling-a-trestack-app","1.timer\u002F1.start\u002F1.installing-a-trestack-app",{"title":22,"path":23,"stem":24},"Turning on the app embed and placing the app block","\u002Ftimer\u002Fstart\u002Fplacing-your-first-app-block","1.timer\u002F1.start\u002F2.placing-your-first-app-block",{"title":26,"path":27,"stem":28},"Development stores and theme previews","\u002Ftimer\u002Fstart\u002Fdevelopment-stores-and-theme-previews","1.timer\u002F1.start\u002F3.development-stores-and-theme-previews",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Timer types","\u002Ftimer\u002Ftimer-types","1.timer\u002F2.timer-types",[35,39,43,47],{"title":36,"path":37,"stem":38},"TreStack Timer, setup and settings","\u002Ftimer\u002Ftimer-types\u002Ftrestack-timer","1.timer\u002F2.timer-types\u002F1.trestack-timer",{"title":40,"path":41,"stem":42},"Placement, countries, and translations","\u002Ftimer\u002Ftimer-types\u002Fplacement-and-targeting","1.timer\u002F2.timer-types\u002F2.placement-and-targeting",{"title":44,"path":45,"stem":46},"Cart page and cart drawer timers","\u002Ftimer\u002Ftimer-types\u002Fcart-timers","1.timer\u002F2.timer-types\u002F3.cart-timers",{"title":48,"path":49,"stem":50},"Email timers","\u002Ftimer\u002Ftimer-types\u002Femail-timers","1.timer\u002F2.timer-types\u002F4.email-timers",{"title":52,"path":53,"stem":54,"children":55,"page":29},"Performance and themes","\u002Ftimer\u002Freference","1.timer\u002F3.reference",[56,60,64],{"title":57,"path":58,"stem":59},"Performance notes","\u002Ftimer\u002Freference\u002Fperformance-notes","1.timer\u002F3.reference\u002F1.performance-notes",{"title":61,"path":62,"stem":63},"Theme compatibility","\u002Ftimer\u002Freference\u002Ftheme-compatibility","1.timer\u002F3.reference\u002F2.theme-compatibility",{"title":65,"path":66,"stem":67},"Running several timers at once","\u002Ftimer\u002Freference\u002Frunning-several-timers","1.timer\u002F3.reference\u002F3.running-several-timers",{"title":69,"path":70,"stem":71,"children":72,"page":29},"Billing, privacy, and data","\u002Ftimer\u002Faccount","1.timer\u002F4.account",[73,77,81,85],{"title":74,"path":75,"stem":76},"Billing, trials, and plan changes","\u002Ftimer\u002Faccount\u002Fbilling","1.timer\u002F4.account\u002F1.billing",{"title":78,"path":79,"stem":80},"Privacy and data, what the app stores","\u002Ftimer\u002Faccount\u002Fprivacy-and-data","1.timer\u002F4.account\u002F2.privacy-and-data",{"title":82,"path":83,"stem":84},"Data processing and subprocessors","\u002Ftimer\u002Faccount\u002Fdata-processing-and-subprocessors","1.timer\u002F4.account\u002F3.data-processing-and-subprocessors",{"title":86,"path":87,"stem":88},"Uninstalling TreStack Timer","\u002Ftimer\u002Faccount\u002Funinstalling-trestack-timer","1.timer\u002F4.account\u002F4.uninstalling-trestack-timer",{"title":90,"path":91,"stem":92,"children":93,"page":29},"When something is wrong","\u002Ftimer\u002Ftroubleshooting","1.timer\u002F5.troubleshooting",[94,98],{"title":95,"path":96,"stem":97},"When the timer does not appear","\u002Ftimer\u002Ftroubleshooting\u002Ftroubleshooting-app-blocks","1.timer\u002F5.troubleshooting\u002F1.troubleshooting-app-blocks",{"title":99,"path":100,"stem":101},"When the timer shows in the wrong place or looks wrong","\u002Ftimer\u002Ftroubleshooting\u002Ftroubleshooting-storefront-display","1.timer\u002F5.troubleshooting\u002F2.troubleshooting-storefront-display",{"title":103,"path":104,"stem":105,"children":106},"TreStack Bundles","\u002Fbundles","2.bundles",[107,110,131,160,185,198,219,244],{"title":108,"path":104,"stem":109},"TreStack Bundles docs","2.bundles\u002Findex",{"title":111,"path":112,"stem":113,"children":114,"page":29},"Getting a deal live","\u002Fbundles\u002Fstart","2.bundles\u002F1.start",[115,119,123,127],{"title":116,"path":117,"stem":118},"Getting started with TreStack Bundles","\u002Fbundles\u002Fstart\u002Fgetting-started","2.bundles\u002F1.start\u002F1.getting-started",{"title":120,"path":121,"stem":122},"Deal types and deal bars","\u002Fbundles\u002Fstart\u002Fdeal-types","2.bundles\u002F1.start\u002F2.deal-types",{"title":124,"path":125,"stem":126},"Creating, publishing and managing deals","\u002Fbundles\u002Fstart\u002Fcreating-and-publishing-deals","2.bundles\u002F1.start\u002F3.creating-and-publishing-deals",{"title":128,"path":129,"stem":130},"Development stores and testing safely","\u002Fbundles\u002Fstart\u002Fdevelopment-stores-and-testing","2.bundles\u002F1.start\u002F4.development-stores-and-testing",{"title":132,"path":133,"stem":134,"children":135,"page":29},"Building offers","\u002Fbundles\u002Fdeals","2.bundles\u002F2.deals",[136,140,144,148,152,156],{"title":137,"path":138,"stem":139},"Quantity breaks and Buy X, get Y","\u002Fbundles\u002Fdeals\u002Fquantity-breaks-and-buy-x-get-y","2.bundles\u002F2.deals\u002F1.quantity-breaks-and-buy-x-get-y",{"title":141,"path":142,"stem":143},"Bundles and mix and match","\u002Fbundles\u002Fdeals\u002Fbundles-and-mix-and-match","2.bundles\u002F2.deals\u002F2.bundles-and-mix-and-match",{"title":145,"path":146,"stem":147},"Free gifts and progressive gifts","\u002Fbundles\u002Fdeals\u002Fgifts-and-progressive-gifts","2.bundles\u002F2.deals\u002F3.gifts-and-progressive-gifts",{"title":149,"path":150,"stem":151},"Upsells, add-ons and personalisation","\u002Fbundles\u002Fdeals\u002Fupsells-add-ons-and-personalisation","2.bundles\u002F2.deals\u002F4.upsells-add-ons-and-personalisation",{"title":153,"path":154,"stem":155},"Subscriptions in a deal","\u002Fbundles\u002Fdeals\u002Fsubscriptions","2.bundles\u002F2.deals\u002F5.subscriptions",{"title":157,"path":158,"stem":159},"Products, dates and visibility","\u002Fbundles\u002Fdeals\u002Fproducts-dates-and-visibility","2.bundles\u002F2.deals\u002F6.products-dates-and-visibility",{"title":161,"path":162,"stem":163,"children":164,"page":29},"How a deal looks, and where","\u002Fbundles\u002Fdesign","2.bundles\u002F3.design",[165,169,173,177,181],{"title":166,"path":167,"stem":168},"Designing a deal","\u002Fbundles\u002Fdesign\u002Fdesign","2.bundles\u002F3.design\u002F1.design",{"title":170,"path":171,"stem":172},"Badges, timers and scratch-off","\u002Fbundles\u002Fdesign\u002Fbadges-timers-and-scratch-off","2.bundles\u002F3.design\u002F2.badges-timers-and-scratch-off",{"title":174,"path":175,"stem":176},"Variants, swatches and images","\u002Fbundles\u002Fdesign\u002Fvariants-swatches-and-images","2.bundles\u002F3.design\u002F3.variants-swatches-and-images",{"title":178,"path":179,"stem":180},"Prices, the sticky bar and the savings summary","\u002Fbundles\u002Fdesign\u002Fprices-sticky-bar-and-savings","2.bundles\u002F3.design\u002F4.prices-sticky-bar-and-savings",{"title":182,"path":183,"stem":184},"Translations, currencies and markets","\u002Fbundles\u002Fdesign\u002Ftranslations-and-markets","2.bundles\u002F3.design\u002F5.translations-and-markets",{"title":186,"path":187,"stem":188,"children":189,"page":29},"Prices at checkout","\u002Fbundles\u002Fcheckout","2.bundles\u002F4.checkout",[190,194],{"title":191,"path":192,"stem":193},"How the discount is applied at checkout","\u002Fbundles\u002Fcheckout\u002Fhow-the-discount-is-applied","2.bundles\u002F4.checkout\u002F1.how-the-discount-is-applied",{"title":195,"path":196,"stem":197},"Combining discounts, and store limits","\u002Fbundles\u002Fcheckout\u002Fcombinations-and-limits","2.bundles\u002F4.checkout\u002F2.combinations-and-limits",{"title":199,"path":200,"stem":201,"children":202,"page":29},"Tests and numbers","\u002Fbundles\u002Fmeasure","2.bundles\u002F5.measure",[203,207,211,215],{"title":204,"path":205,"stem":206},"Deal analytics","\u002Fbundles\u002Fmeasure\u002Fanalytics","2.bundles\u002F5.measure\u002F1.analytics",{"title":208,"path":209,"stem":210},"Added revenue","\u002Fbundles\u002Fmeasure\u002Fadded-revenue","2.bundles\u002F5.measure\u002F2.added-revenue",{"title":212,"path":213,"stem":214},"A\u002FB testing a deal","\u002Fbundles\u002Fmeasure\u002Fab-tests","2.bundles\u002F5.measure\u002F3.ab-tests",{"title":216,"path":217,"stem":218},"Smart A\u002FB tests","\u002Fbundles\u002Fmeasure\u002Fsmart-ab-tests","2.bundles\u002F5.measure\u002F4.smart-ab-tests",{"title":220,"path":221,"stem":222,"children":223,"page":29},"Billing, privacy, and when something is wrong","\u002Fbundles\u002Faccount","2.bundles\u002F6.account",[224,228,232,236,240],{"title":225,"path":226,"stem":227},"TreStack Bundles plans and billing","\u002Fbundles\u002Faccount\u002Fplans-and-billing","2.bundles\u002F6.account\u002F1.plans-and-billing",{"title":229,"path":230,"stem":231},"Going over your plan","\u002Fbundles\u002Faccount\u002Fgoing-over-your-plan","2.bundles\u002F6.account\u002F2.going-over-your-plan",{"title":233,"path":234,"stem":235},"Pausing, cancelling and uninstalling","\u002Fbundles\u002Faccount\u002Fpausing-cancelling-and-uninstalling","2.bundles\u002F6.account\u002F3.pausing-cancelling-and-uninstalling",{"title":237,"path":238,"stem":239},"Privacy, data and sub-processors","\u002Fbundles\u002Faccount\u002Fprivacy-and-data","2.bundles\u002F6.account\u002F4.privacy-and-data",{"title":241,"path":242,"stem":243},"When a deal does not show or prices look wrong","\u002Fbundles\u002Faccount\u002Ftroubleshooting","2.bundles\u002F6.account\u002F5.troubleshooting",{"title":245,"path":246,"stem":247,"children":248,"page":29},"Reference","\u002Fbundles\u002Freference","2.bundles\u002F7.reference",[249,252],{"title":57,"path":250,"stem":251},"\u002Fbundles\u002Freference\u002Fperformance-notes","2.bundles\u002F7.reference\u002F1.performance-notes",{"title":253,"path":254,"stem":255},"Theme compatibility and placement","\u002Fbundles\u002Freference\u002Ftheme-compatibility","2.bundles\u002F7.reference\u002F2.theme-compatibility",{"id":257,"title":253,"body":258,"description":536,"extension":537,"links":538,"meta":539,"navigation":540,"path":254,"seo":541,"stem":255,"__hash__":542},"docs\u002F2.bundles\u002F7.reference\u002F2.theme-compatibility.md",{"type":259,"value":260,"toc":519},"minimark",[261,276,306,311,314,317,320,334,337,341,344,358,361,364,367,371,377,383,389,393,400,404,437,441,485,489,492],[262,263,264,268,269,272,275],"p",{},[265,266,267],"strong",{},"Applies to:"," TreStack Bundles, every plan",[270,271],"br",{},[265,273,274],{},"Updated:"," 11 October 2026",[277,278,279,284],"callout",{},[262,280,281],{},[265,282,283],{},"At a glance",[285,286,287,294,300],"ul",{},[288,289,290,293],"li",{},[265,291,292],{},"Requires:"," The Bundle deals app embed on",[288,295,296,299],{},[265,297,298],{},"Theme files changed:"," None",[288,301,302,305],{},[265,303,304],{},"Verified live:"," Horizon and Dawn",[307,308,310],"h2",{"id":309},"where-the-widget-goes","Where the widget goes",[262,312,313],{},"The app needs one thing from your theme: the app embed Bundle deals, switched on in the theme editor under App embeds. On the app Home, Activate app embed opens the theme editor with it on; choose Save there. Home then shows Store widget is enabled. No theme files are edited, when you install or later.",[262,315,316],{},"With the embed on, the widget places itself on every product page that has a deal, just above the theme's Add to cart button. On the themes it knows, it uses the spot set for that theme; elsewhere it goes before the Add to cart button's container in the product form. It is never placed inside a cart drawer, a quick add window or a page builder's sticky bar.",[262,318,319],{},"For a different position, add the app block Bundle deal to any section that accepts app blocks, as Online Store 2.0 theme sections do. It has two settings:",[285,321,322,328],{},[288,323,324,327],{},[265,325,326],{},"Product:"," defaults to the product of the page. Set another product to show that product's deal elsewhere, for example in a section on the home page.",[288,329,330,333],{},[265,331,332],{},"Deal ID:"," shows this deal instead of the one chosen automatically, but only one of the deals that could show on that product anyway. The admin does not show deal ids yet, so leave it empty unless we gave you one.",[262,335,336],{},"Once a Bundle deal block for the page's product is on the page, the widget no longer places itself there, so you never get two. Blocks for other products do not count.",[307,338,340],{"id":339},"themes-the-widget-knows","Themes the widget knows",[262,342,343],{},"On the themes below, the widget knows the theme's variant picker, quantity box, price and product gallery:",[285,345,346,352],{},[288,347,348,351],{},[265,349,350],{},"The Dawn family:"," Dawn, Sense, Craft, Refresh, Studio, Ride, Taste, Crave, Colorblock, Origin, Spotlight, Publisher and Trade",[288,353,354,357],{},[265,355,356],{},"Others:"," Horizon, Impact, Prestige and Warehouse",[262,359,360],{},"On those themes, a variant picked in the theme's picker changes the widget and a variant picked in the widget changes the theme's form; the theme's quantity box is hidden and set to the chosen bar's quantity; Update theme product price in Settings, Pricing can change the theme's price; and a bar's featured image switches the gallery. The widget recognises a theme by the name in its code, so a copy you renamed in your theme library is still recognised.",[262,362,363],{},"On any other theme, generic rules apply. The widget still places itself, but the theme's variant picker, quantity box and price are not kept in step with the widget, and featured images do not switch the gallery. We can set custom selectors for your theme on request; there is no setting for them in the app.",[262,365,366],{},"Horizon and Dawn are verified live on a store. The other named themes are supported from their code but not verified on a live store yet. Vintage themes, which have no sections for app blocks, are not tested.",[307,368,370],{"id":369},"page-builders-quick-view-and-cart-drawers","Page builders, quick view and cart drawers",[262,372,373,376],{},[265,374,375],{},"Page builders:"," the widget recognises the Add to cart buttons of two page builders' product pages, whatever the theme (write to us to ask which). That is not verified on a live store yet.",[262,378,379,382],{},[265,380,381],{},"Quick view:"," the widget is never placed in a quick view or quick add window. Shoppers see the deal on the product page.",[262,384,385,388],{},[265,386,387],{},"Adding to the cart:"," the widget adds through the theme's own add to cart request, so the theme's cart drawer still refreshes. It opens the drawers of three cart drawer apps when one is present (write to us to ask which; not verified on a live store yet), and otherwise goes to the cart page after a normal form post. Each line carries a hidden property the checkout reads, which the app hides from cart displays. How a merged Mix & Match line lists its items depends on the theme: Horizon's cart page lists them, Dawn's does not.",[307,390,392],{"id":391},"other-bundle-apps","Other bundle apps",[262,394,395,396,399],{},"Keep one bundle app per product. Two bundle apps on the same product both set the theme's quantity and both tag the cart line, and checkout applies one product discount per line, so the shopper may not pay the price the widget showed. The app turns nothing off when another bundle app is on the page; it only writes a warning to the browser console for the one it recognises. To find out whether another app interferes, duplicate your theme, turn on only the Bundle deals embed in the copy, and preview it. See ",[397,398,195],"a",{"href":196},".",[307,401,403],{"id":402},"switching-themes-in-four-steps","Switching themes, in four steps.",[405,406,408,413,416,420,423,427,430,434],"steps",{"level":407},"3",[409,410,412],"h3",{"id":411},"note-your-app-blocks","Note your app blocks",[262,414,415],{},"Your deals live in the app, so a new theme changes none of them. The embed and any Bundle deal blocks belong to the theme: note where each block sits and its Product and Deal ID.",[409,417,419],{"id":418},"turn-the-embed-on-in-the-new-theme","Turn the embed on in the new theme",[262,421,422],{},"Keep the new theme unpublished. In its theme editor, open App embeds, turn on Bundle deals, and choose Save. Place your blocks again.",[409,424,426],{"id":425},"preview-a-product-page-with-a-deal","Preview a product page with a deal",[262,428,429],{},"Check where the widget sits, change a variant, pick a bar, and add it to the cart. Then check the cart and the checkout total.",[409,431,433],{"id":432},"publish-and-check-the-embed","Publish and check the embed",[262,435,436],{},"After publishing, Home should show Store widget is enabled. If Home and the storefront disagree, trust the switch under App embeds in the theme editor.",[307,438,440],{"id":439},"settings-reference","Settings reference",[442,443,444,449,453,457,461,465,469,473,477,481],"field-group",{},[445,446,448],"field",{"name":447},"App embed","Bundle deals, under App embeds in the theme editor. Per theme. Off means no deal shows anywhere.",[445,450,452],{"name":451},"App block","Bundle deal. Optional, for a custom position in a section that accepts app blocks.",[445,454,456],{"name":455},"Product","App block setting. Defaults to the product of the page.",[445,458,460],{"name":459},"Deal ID","App block setting. Picks one of that product's eligible deals. Deal ids are not shown in the admin yet.",[445,462,464],{"name":463},"Known themes","The Dawn family, Horizon, Impact, Prestige, Warehouse. Verified live: Horizon and Dawn.",[445,466,468],{"name":467},"Other themes","Placement works. Variant picker, quantity box, price and gallery are not synced.",[445,470,472],{"name":471},"Custom selectors","Set by support on request. No setting in the app.",[445,474,476],{"name":475},"Page builders","Two page builders' Add to cart buttons recognised. Not verified live.",[445,478,480],{"name":479},"Quick view","Never placed automatically.",[445,482,484],{"name":483},"Theme files","None edited.",[307,486,488],{"id":487},"if-this-does-not-work","If this does not work",[262,490,491],{},"The failures most likely on this procedure, with the check that resolves each one.",[493,494,495,500,504,508],"accordion",{},[496,497,499],"accordion-item",{"label":498},"The widget is in the wrong place","Add the Bundle deal app block where you want it, in the product section. With a block for the page's product on the page, the widget stops placing itself.",[496,501,503],{"label":502},"The quantity box or price does not follow the widget","Your theme is not one the widget knows, so only generic rules apply. Write to us with the theme name and a product URL, and we can set custom selectors for it.",[496,505,507],{"label":506},"The widget is missing in quick view","It is never placed in quick view or quick add windows. Shoppers see the deal on the product page.",[496,509,511,512,516,517,399],{"label":510},"The widget does not show at all on the new theme","Open the theme editor, App embeds, and check that Bundle deals is on and saved for that theme. Make sure the URL you test has no ",[513,514,515],"code",{},"?bndl=off",". For the other causes, see ",[397,518,241],{"href":242},{"title":520,"searchDepth":521,"depth":521,"links":522},"",2,[523,524,525,526,527,534,535],{"id":309,"depth":521,"text":310},{"id":339,"depth":521,"text":340},{"id":369,"depth":521,"text":370},{"id":391,"depth":521,"text":392},{"id":402,"depth":521,"text":403,"children":528},[529,531,532,533],{"id":411,"depth":530,"text":412},3,{"id":418,"depth":530,"text":419},{"id":425,"depth":530,"text":426},{"id":432,"depth":530,"text":433},{"id":439,"depth":521,"text":440},{"id":487,"depth":521,"text":488},"Where the widget places itself, the app block for a custom position, which themes the widget knows and which are verified, page builders, quick view, cart drawers, other bundle apps, and what to redo when you switch themes.","md",null,{},true,{"title":253,"description":536},"OHgcdU3lO14jr9MePf1ES8RbF6s2i7dbRgNCqliYF70",[544,538],{"title":57,"path":250,"stem":251,"description":545,"children":-1},"What the TreStack Bundles storefront code weighs, what loads on which page and when, one dated measurement on one theme, and how to measure your own store so the numbers compare.",1791656489804]