[{"data":1,"prerenderedAt":674},["ShallowReactive",2],{"navigation_docs":3,"-bundles-account-privacy-and-data":256,"-bundles-account-privacy-and-data-surround":669},[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":237,"body":258,"description":662,"extension":663,"links":664,"meta":665,"navigation":666,"path":238,"seo":667,"stem":239,"__hash__":668},"docs\u002F2.bundles\u002F6.account\u002F4.privacy-and-data.md",{"type":259,"value":260,"toc":645},"minimark",[261,276,306,311,317,323,329,335,339,346,354,361,364,368,436,439,459,463,466,499,516,520,566,570,607,611,614],[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],{},"Customer names, emails, addresses:"," Never received",[288,295,296,299],{},[265,297,298],{},"Cookies on your storefront:"," None",[288,301,302,305],{},[265,303,304],{},"Store data deleted:"," 48 hours after uninstall",[307,308,310],"h2",{"id":309},"about-your-store","About your store",[262,312,313,316],{},[265,314,315],{},"Access."," When you install the app, Shopify gives it the access scopes it asks for: products, publications, inventory, discounts, cart transforms, orders, themes, markets, languages, files, the web pixel and customer events, plus storefront read access to product listings, stock and subscription options. It asks for no access to your customer records or to payments.",[262,318,319,322],{},[265,320,321],{},"What it keeps."," Your shop domain and id, store name, contact email, currency, main language, Shopify plan type (for example whether it is a development store), markets and languages; encrypted access tokens; your plan, subscription and charge records as Shopify reports them, and the added revenue figure plans are billed on; your deals with their settings, translations, brand colors and custom CSS; and daily statistics per deal. If you send feedback from the \"How's your experience with the app?\" card on Home, it keeps the rating, the text and the reply email if you give one. If you cancel your plan, it keeps the reason you chose.",[262,324,325,328],{},[265,326,327],{},"Orders."," For orders that contain a deal's products, the app keeps the order id, its creation time and test flag, and for each matching line the product, variant, quantity, price, discounts and the app's own hidden line property. These come from Shopify's order webhook, set up so that Shopify leaves out every customer field, and on a reinstall from a one-time read of the last 60 days of orders, which asks for no customer fields either. No customer name, email, phone number or address reaches the app.",[262,330,331,334],{},[265,332,333],{},"Images."," Images you upload in the editor (JPG, PNG, GIF, WebP or SVG, up to 20 MB) go to your own Shopify Files, not to our server.",[307,336,338],{"id":337},"about-your-shoppers","About your shoppers",[262,340,341,342,345],{},"The app sets ",[265,343,344],{},"no cookies"," on your storefront.",[262,347,348,349,353],{},"The web pixel \"Bundle deal analytics\" counts deal views, add to carts and checkouts started. It runs only for shoppers who allowed analytics under your store's cookie and consent settings, inside Shopify's strict pixel sandbox. For each event it sends ",[350,351,352],"code",{},"bndl-px.trestack.app"," the deal, bar, A\u002FB variant and product ids, a timestamp and Shopify's anonymous browser id. The server keeps only a one-way hash of that id, so the data is pseudonymous, not anonymous: it cannot name a shopper, but it can tell repeat visits from one browser apart. The IP address of each request is used to limit how many requests one address can send and is not stored with the events.",[262,355,356,357,360],{},"For a running A\u002FB test, the shopper's own browser keeps a random id in local storage (",[350,358,359],{},"bndl_sid",") so the shopper sees the same variant on later visits. It is never sent to our servers.",[262,362,363],{},"Nothing is sold or used for advertising.",[307,365,367],{"id":366},"retention-and-shopify-privacy-requests","Retention and Shopify privacy requests",[369,370,371,384],"table",{},[372,373,374],"thead",{},[375,376,377,381],"tr",{},[378,379,380],"th",{},"Data",[378,382,383],{},"Kept",[385,386,387,396,404,412,420,428],"tbody",{},[375,388,389,393],{},[390,391,392],"td",{},"Raw pixel events",[390,394,395],{},"45 days",[375,397,398,401],{},[390,399,400],{},"Hourly statistics",[390,402,403],{},"7 days",[375,405,406,409],{},[390,407,408],{},"Daily statistics and order lines",[390,410,411],{},"While the app is installed",[375,413,414,417],{},[390,415,416],{},"Access tokens",[390,418,419],{},"Deleted at uninstall",[375,421,422,425],{},[390,423,424],{},"Everything about your store",[390,426,427],{},"Deleted 48 hours after uninstall",[375,429,430,433],{},[390,431,432],{},"Backups",[390,434,435],{},"Roll off within 30 days",[262,437,438],{},"Shopify forwards three kinds of privacy request to installed apps, and the app handles each automatically:",[285,440,441,447,453],{},[288,442,443,446],{},[265,444,445],{},"Customer data request",": answered with what the app holds about that customer, which is no personal information beyond order ids.",[288,448,449,452],{},[265,450,451],{},"Customer redaction",": deletes the app's records of that customer's orders.",[288,454,455,458],{},[265,456,457],{},"Shop redaction",", sent 48 hours after you uninstall: deletes the store record and everything tied to it, including deals, statistics, events, order lines and feedback.",[307,460,462],{"id":461},"sub-processors-and-the-agreement","Sub-processors and the agreement",[262,464,465],{},"The app uses four sub-processors, each only for its own service:",[285,467,468,474,480,493],{},[288,469,470,473],{},[265,471,472],{},"Shopify",": the platform the app runs on. It sends the store and order data above, runs the app's discount and cart functions, bills your plan, and holds your uploaded images in your Shopify Files.",[288,475,476,479],{},[265,477,478],{},"Contabo",": hosts the one server the app runs on, in the United States, operated by us. The same server runs TreStack Timer.",[288,481,482,485,486,489,490,492],{},[265,483,484],{},"Cloudflare",": sits in front of ",[350,487,488],{},"bndl.trestack.app"," and ",[350,491,352],{}," and sees the IP address of each request. Its R2 storage holds the nightly database backups, encrypted before upload.",[288,494,495,498],{},[265,496,497],{},"Chaport",": the live chat inside the app admin, never on your storefront. It receives your myshopify domain and plan, plus whatever you write in the chat.",[262,500,501,502,509,510,515],{},"For your shoppers' data, you are the controller and we are the processor. The data processing agreement is published at ",[503,504,508],"a",{"href":505,"rel":506},"https:\u002F\u002Ftrestack.app\u002Fbundles\u002Fdpa",[507],"nofollow","trestack.app\u002Fbundles\u002Fdpa"," and forms part of the terms; installing the app accepts it. The full privacy policy is at ",[503,511,514],{"href":512,"rel":513},"https:\u002F\u002Ftrestack.app\u002Fbundles\u002Fprivacy",[507],"trestack.app\u002Fbundles\u002Fprivacy",". We hold no security certification and do not claim one.",[307,517,519],{"id":518},"getting-your-position-straight-in-four-steps","Getting your position straight, in four steps.",[521,522,524,529,532,536,539,543,549,553],"steps",{"level":523},"3",[525,526,528],"h3",{"id":527},"read-the-lists-above","Read the lists above",[262,530,531],{},"That is what the app keeps. If something is not on them, the app does not hold it.",[525,533,535],{"id":534},"read-the-privacy-policy-and-the-dpa","Read the privacy policy and the DPA",[262,537,538],{},"Both are public at trestack.app\u002Fbundles\u002Fprivacy and trestack.app\u002Fbundles\u002Fdpa, so there is nothing to request before reading them.",[525,540,542],{"id":541},"update-your-own-privacy-policy","Update your own privacy policy",[262,544,545,546,548],{},"Name the app, its analytics pixel (which runs only with consent) and the ",[350,547,359],{}," browser storage it uses for A\u002FB tests. It sets no cookies.",[525,550,552],{"id":551},"ask-about-anything-unclear","Ask about anything unclear",[262,554,555,556,560,561,565],{},"Privacy requests go to ",[503,557,559],{"href":558},"mailto:legal@trestack.app","legal@trestack.app",". Other questions go to ",[503,562,564],{"href":563},"mailto:support@trestack.app","support@trestack.app"," or the live chat in the app admin.",[307,567,569],{"id":568},"settings-reference","Settings reference",[571,572,573,578,582,586,590,594,598],"field-group",{},[574,575,577],"field",{"name":576},"Access scopes","Products, discounts, cart transforms, orders, themes, markets, languages, files, pixel and storefront reads. No customer or payment scopes.",[574,579,581],{"name":580},"Order data","Order id, time, test flag, and per matching line the product, variant, quantity, price and discounts. No customer fields.",[574,583,585],{"name":584},"Pixel events","Deal viewed, added to cart, checkout started. Only with the shopper's analytics consent. Browser id stored as a one-way hash.",[574,587,589],{"name":588},"Cookies","None. A\u002FB tests use bndl_sid in local storage, never sent to us.",[574,591,593],{"name":592},"Retention","Raw events 45 days, hourly statistics 7 days, the rest until uninstall. All store data deleted 48 hours after uninstall.",[574,595,597],{"name":596},"Sub-processors","Shopify, Contabo, Cloudflare, Chaport.",[574,599,601,603,604,606],{"name":600},"Contact",[503,602,559],{"href":558}," for privacy requests, ",[503,605,564],{"href":563}," for everything else.",[307,608,610],{"id":609},"if-this-does-not-work","If this does not work",[262,612,613],{},"The failures most likely on this procedure, with the check that resolves each one.",[615,616,617,625,632,639],"accordion",{},[618,619,621,622,624],"accordion-item",{"label":620},"Analytics show fewer visitors than your store traffic","The pixel runs only for shoppers who allowed analytics in your store's consent banner. Shoppers who declined are not counted as visitors, although their orders still count. See ",[503,623,204],{"href":205}," for how each figure is built.",[618,626,628,629,631],{"label":627},"A customer asks what the app holds about them","Send the request through Shopify, or write to ",[503,630,559],{"href":558},". The app holds no personal information about a customer beyond the ids of their orders, and a customer redaction deletes those records.",[618,633,635,636,638],{"label":634},"Your legal team needs a signed DPA","Write to ",[503,637,559],{"href":558}," with your legal entity name and the name of the signatory, and we will countersign the published agreement.",[618,640,635,642,644],{"label":641},"You would rather not use the live chat",[503,643,564],{"href":563}," instead. The chat is optional, and email reaches the same people.",{"title":646,"searchDepth":647,"depth":647,"links":648},"",2,[649,650,651,652,653,660,661],{"id":309,"depth":647,"text":310},{"id":337,"depth":647,"text":338},{"id":366,"depth":647,"text":367},{"id":461,"depth":647,"text":462},{"id":518,"depth":647,"text":519,"children":654},[655,657,658,659],{"id":527,"depth":656,"text":528},3,{"id":534,"depth":656,"text":535},{"id":541,"depth":656,"text":542},{"id":551,"depth":656,"text":552},{"id":568,"depth":647,"text":569},{"id":609,"depth":647,"text":610},"What TreStack Bundles keeps about your store, its orders and your shoppers, how long, how Shopify privacy requests are handled, and the four sub-processors.","md",null,{},true,{"title":237,"description":662},"-zVMeUPTbzigFUfZ8_AsYPu-iOjDxdfQL3MtRhPPuDk",[670,672],{"title":233,"path":234,"stem":235,"description":671,"children":-1},"Why deals pause and how they come back, what cancelling a plan does, and what uninstalling removes, what it leaves in your store, and when your data is deleted.",{"title":241,"path":242,"stem":243,"description":673,"children":-1},"The store widget is off, deals are paused, a deal is not reaching one product, or the cart and checkout price surprise you. What to check, in order, and how to reach us.",1791656489523]