Meta tags:
description= Shop over 50 eco-friendly bath, body, home, and beauty zero waste refills, delivered straight to your door. Gentle, all-natural formulas with custom scenting, thoughtfully included in most products. Get started with a more sustainable lifestyle today!;
Headings (most frequently used words):
it, the, for, your, refill, better, planet, at, home, gifts, make, pick, use, return, we, ve, soft, landed, our, new, midtown, and, shelves, are, mostly, stocked, come, see, us, 1727, main, st, face, beauty, bath, body, clean, kits, easy, to, be, eco, fan, favorites, essential, oils, eo, blends, signature, scent, way, good, even, with, points, one, tree, planted, re, topia, greenest, move, yet, spring, cleaning, but, green, simple, happy, holidays, shoppe,
Text of the page (most frequently used words):
appstle (93), _alconfig (68), const (65), subscription (57), document (52), your (46), loyalty (40), refills (36), body (31), get (30), function (28), and (28), bath (28), home (28), window (27), data (27), widget_setting (25), order (25), appstle_loyalty_iframe (24), the (24), for (23), queryselector (22), event (22), color (22), right (22), beauty (22), add (21), false (21), billingcycleblock (21), custom (21), classlist (20), location (19), border (19), open (18), else (18), return (18), button (18), formatdiscountedprice (18), let (17), discount (17), isshowwidget (17), shipped (17), sudscriptions (17), new (16), content (16), showsuboptionbeforeonetime (16), prepaidflag (16), error (15), essential (15), oils (15), scented (15), door (15), off (14), width (14), all (14), requires_selling_plan (14), true (13), product (13), more (13), catch (12), indexof (12), price (12), left (12), favorites (12), close (11), getelementbyid (11), href (11), name (11), one (11), blends (11), item (10), widget (10), includes (10), try (10), typeof (10), time (10), from (10), background (10), important (10), sellingplanvariants (10), clean (10), show (9), icon (9), some (9), url (9), length (9), orders (9), shipping (9), num (9), height (9), 89997c (9), settimeout (8), contentwindow (8), searchparams (8), json (8), remove (8), link (8), showstatictooltip (8), showtooltip (8), bundle (8), free (8), isperkonward (8), isperkrange (8), israngeend (8), onlyapplyonthis (8), amount (8), products (8), quantity (8), checkout (8), choose (8), showappstlelink (8), tooltipdescription (8), showonetimecompareprice (8), formattedprepaidperdeliverypricetext (8), showsecondformatteddiscounttext (8), isfixedprice (8), refill (8), proxy_path_prefix (7), replace (7), addeventlistener (7), metadescription (7), endraw (7), padding (7), hidden (7), 100 (7), delivery (7), our (7), onetimepuchasetext (7), are (7), things (7), blend (7), face (7), care (7), loadappstleloyaltywidget (6), text (6), customerloyalty (6), referralredirecturl (6), origin (6), pathname (6), widgetjsurl (6), widgetjspath (6), widgetcssurl (6), console (6), preload (6), raw (6), isdiscounttypepercentage (6), isdiscounttypeshipping (6), isdiscounttypefixed (6), isdiscounttypefixedprice (6), snackbar (6), token (6), transform (6), radius (6), max (6), flex (6), currentpage (6), please (6), cart (6), planet (6), simple (6), fragrance (6), under (6), widgettype (5), var (5), displayvalue (5), number (5), redirecturl (5), search (5), referralurlobj (5), then (5), widgetcsspath (5), tostring (5), customerid (5), shop (5), customurl (5), page (5), message (5), type (5), insertadjacenthtml (5), beforeend (5), gift (5), with (5), fixed (5), this (5), split (5), rounded (5), tolowercase (5), top (5), bottom (5), 1px (5), select (5), have (5), after (5), billingcycle (5), _rsconfig (5), onetimepuchaseamount (5), onetimepuchasecomparepriceamount (5), oil (5), you (5), scent (5), made (5), natural (5), iframe (4), foreach (4), launcherdatatype (4), points (4), loyalty_widget_available_points (4), storecreditbalance (4), string (4), enablewidget (4), appstle_referral (4), null (4), handleurlchange (4), versionurl (4), apps (4), fetch (4), res (4), set (4), response (4), htmldecoded (4), initiateappstleloyaltypage (4), appstleloyaltypageelement (4), createelement (4), appendchild (4), loaddedicatedpageasset (4), attempt (4), onsettle (4), asset (4), isavailablevisitshop (4), selected (4), purchase (4), reward (4), iszerobillingcycle (4), onwards (4), save (4), thousands (4), opacity (4), transition (4), box (4), 2px (4), display (4), items (4), tag (4), trim (4), restrictedpages (4), allowedpages (4), btn (4), frequency (4), fill (4), appstle_subscription_wrapper_option (4), label (4), solid (4), size (4), available (4), see (4), every (4), better (4), minimum (4), build (4), out (4), buy (4), powered (4), tooltiptitle (4), totalprice (4), formattedprice (4), secondformatteddiscounttext (4), showformatteddiscounttext (4), frequencydescription (4), showpriceperday (4), shoppe (4), quick (4), certified (4), gifts (4), nice (4), people (4), said (4), them (4), scrub (4), her (4), him (4), cards (4), sprays (4), bottles (4), jars (4), oral (4), hair (4), moisturizers (4), moisturize (4), treat (4), cleanse (4), exfoliate (4), accessories (4), clays (4), masks (4), togglewidget (3), launcher (3), toggle (3), showappstleloyaltywidget (3), 900 (3), aliframesrc (3), title (3), pointsel (3), currentviptier (3), format (3), handledeeplink (3), hash (3), referralpath (3), _self (3), lasturl (3), aldomobserver (3), executeloyaltywidget (3), err (3), dedicatedpageurl (3), parse (3), parsing (3), normalizedcustompath (3), head (3), createasset (3), settled (3), settle (3), math (3), executededicatedpagescript (3), widgetscriptappended (3), appendwidgetscriptonce (3), find (3), rule (3), sessionstorage (3), days (3), productprice (3), percentage (3), snackbarindex (3), roundtype (3), position (3), 24px (3), none (3), 4px (3), align (3), center (3), margin (3), restrictedcustomerstag (3), allowedcustomerstag (3), allowedtags (3), restrictedtags (3), year (3), nosubscriptionlabeltextv2 (3), cancelanytimelabeltextv2 (3), appstle_sub_widget (3), widgetsellingplanwrapper (3), 3e4f47 (3), font (3), not (3), superfood (3), can (3), plan (3), back (3), purchaseoptionstext (3), formatteddiscounttext (3), 2026 (3), scenting (3), faq (3), corp (3), 1727 (3), main (3), read (3), happy (3), good (3), favorite (3), regular (3), scentable (3), kits (3), queryselectorall (2), html (2), write (2), loyaltybuttontitle (2), shop_labels (2), widgettitle (2), parsehtmlstringcontent (2), launcherbuttonelement (2), fmt (2), availablepoints (2), formatstorecreditamount (2), formatnumberbypointroundtype (2), appstle_show_points (2), loyaltydeeplinks (2), earn (2), rewards (2), showwidget (2), widgetreferralurl (2), referralenabled (2), currentpath (2), mutationobserver (2), observe (2), subtree (2), childlist (2), mutations_list (2), mutation (2), added_node (2), app (2), version (2), finally (2), storecreditmismatch (2), customerstorecreditbalance (2), myshopify (2), com (2), updatecustomerurl (2), api (2), customer (2), method (2), post (2), decodeurl (2), dedicated_page (2), dedicatedpageeventlistener (2), log (2), refresh (2), appstleloyaltypage (2), firstchild (2), meta (2), description (2), appenddedicatedpagewidgetscript (2), script (2), async (2), rel (2), css (2), pointearnrules (2), visit_shop (2), syncvisitstore (2), loyaltycustomstyles (2), widget_type_7 (2), widget_type_2 (2), labels (2), onetimepurchasetextv2 (2), isdiscounttypefreeproduct (2), freeproductname (2), worth (2), div (2), only (2), toastereventlistener (2), showappstleloyaltytoaster (2), msg (2), elem (2), tofixed (2), value (2), safe (2), shopmoneyformat (2), tokenmatch (2), match (2), decimal (2), sign (2), 28px (2), index (2), 12px (2), 56px (2), ffffff (2), 40px (2), min (2), rgb (2), 100vh (2), scale (2), appstle_loyalty_widget_button_wrapper (2), transparent (2), gap (2), shrink (2), 14px (2), wrapper (2), right_snackbar (2), mainhtmlstring (2), widgeteventlistener (2), removeappstleloyaltywidget (2), customertags (2), allowedtag (2), restrictedtag (2), blockwidgetonpages (2), homepage (2), allowwidgetonspecificpages (2), __appstle_loyalty_launcher_allowed (2), launcherallowed (2), subscribe (2), monthly (2), week (2), appstle_subscription_wrapper (2), appstle_dot (2), appstle_select (2), style (2), tooltip_subscription_svg (2), appstle_subscription_final_price (2), 0px (2), template (2), appstle_subscription_save (2), appstle_subscription_widget0 (2), appstlesubscription (2), stringify (2), bundles (2), here (2), what (2), each (2), health (2), review (2), shopping (2), percent (2), next (2), step (2), subtotal (2), proceed (2), previous (2), coast (2), amount_with_comma_separator (2), onetimefrequencytext (2), isfrequencysubsequent (2), priceperday (2), formattedcompareatprice (2), pinterest (2), tiktok (2), instagram (2), facebook (2), mon (2), thurs (2), fri (2), sun (2), 10am (2), 362 (2), need (2), first (2), green (2), ventura (2), make (2), tree (2), areas (2), started (2), friends (2), love (2), place (2), fold (2), empties (2), drop (2), mail (2), send (2), hop (2), online (2), reorder (2), goodies (2), pouch (2), preference (2), pour (2), into (2), containers (2), lather (2), spritz (2), whatever (2), makes (2), use (2), scents (2), fancy (2), pick (2), now (2), refillable (2), waste (2), easy (2), eco (2), soft (2), landed (2), midtown (2), shelves (2), mostly (2), stocked (2), come (2), play (2), local (2), become (2), ambassador (2), parties (2), pop (2), ups (2), impact (2), awards (2), recognition (2), story (2), who (2), about (2), scentables (2), soaps (2), sanitizers (2), laundry (2), kitchen (2), purpose (2), essentials (2), candles (2), combustables (2), last (2), chance (2), fragrances (2), perfumes (2), shower (2), soak (2), shaving (2), beard (2), groom (2), scrubs (2), cleansers (2), touppercase, forceredirectdedicatedpage, innerhtml, showtier, showtiername, intl, numberformat, store_credits, vip_tier, textcontent, refer, redeem, referrals, vip, program, 200, observeurlchanges, popstate, hashchange, addednodes, disconnect, olineloyalty27, update, referralcustomredirecturl, startswith, refresh_appstle_loyalty_page, while, 500, onload, onerror, 1000, pow, setattribute, src, stylesheet, 8000, 2000, dedicatedpagereferralurl, status, active, getitem, referralloyalty, referraltype, await, visit, store, headers, application, setitem, widget_type_8, widget_type_3, widget_type_4, widget_type_5, billingcycleblockv2, carthiddenattributesselectorv2, daysfrequencytextv2, subscribeandsavesuccessv2, addtoshipmentsuccesstextv2, success, monthfrequencytextv2, month, addtoshipmentbuttontextv2, shipment, onetimedescriptiontextv2, loyaltyperkdescriptiontextv2, 1st, snackbarhtml, appstle_message_for_notification, 5000, closesnackbar, domcontentloaded, pointroundtype, no_round, round_up, ceil, round_down, floor, isinteger, isfinite, decimals, no_decimals, comma_separator, space_separator, apostrophe_separator, absolute, translate, 999, 19px, overflow, 300px, 400px, 516px, 100px, 1234567, shadow, 6px, white, calc, 120px, 80vw, media, screen, 800px, translatex, wrap, nowrap, 10px, auto, 8px, buttonimage, 30px, loyaltywidgetstyles, appstle_message_for_showwidget, appstle_widget_showhide, refresh_appstle_loyalty_widget, show_appstle_loyalty_widget, checkforwidgetrestrictions, customerstatus, excluded, showtologgedincustomeronly, click, widgetposition, left_snackbar, bundlediscounttextv2, extra, bundlediscount, atcbuttontextselectorv2, subscriptiondescriptiontextv2, onetimefrequencytextv2, allowfulfilmentcountviapropertiesv2, valdiateformselectorv2, monthsfrequencytextv2, months, prepaidsavebadgetextv2, selecteddiscountpercentage, managesubscriptionbuttontextv2, manage, removeclassfrompriceelementv2, yearfrequencytextv2, widgetpricechangelistenerselectorv2, atcbuttontextv2, cancel, anytime, addtoshipmenterrortextv2, weeksfrequencytextv2, weeks, weeklylabeltextv2, weekly, displayaddtoexistingsubscriptionbuttonfornotloggedinv2, addtoshipmentprocessingv2, processing, showwidgetstaticv2, deliveryeveryfrequencytextv2, subscribeandsaveinitalv2, allowrefreshoncartpagev2, prepaidlabeltextv2, prepaid, monthlylabeltextv2, displayaddtoexistingsubscriptionbuttontosubscribersonlyv2, yearsfrequencytextv2, years, addtoshipmenttooltiptextv2, avoid, double, charges, login, upcoming, weekfrequencytextv2, unsubscribefrequencytextv2, widgetvariantchangelistenerselectorv2, atcbuttontextselectorobserverv2, dayfrequencytextv2, day, showprepidperdeliveryproductpricev2, offfrequencytextv2, prepaylabeltextv2, prepay, productpageunitpriceselectorv2, shownewloyaltyui, frequencycombinedwidgettextv2, sellingplantitletextnonprepaid, sellingplanname, selectdeliveroptionv2, option, yearlylabeltextv2, yearly, appstle_subscription_widget, appstle_circle, appstle_tooltip, appstle_tooltip_border_top_color, appstle_widget_text_color, appstle_selected_background, elementcss, input, u003dradio, before, 0pxpx, customcss, 16px, black, 5px, appstle_tooltip_content, weight, normal, span, badge, customerportalcss, 2c810be3, 2090, 4b6c, 8f4f, f5235d7a887f, externalstyletag, themecss, appstlesubscriptionconfig, config, appstle_build_a_box_labels, perdeliverylabeltextv2, variantnotavailable, savediscounttext, bundlesummarytextv2, empty, summary, freeproductlabeltextv2, bundledescriptiontextv2, ultimate, delivers, exactly, promises, complete, solution, created, empower, aspect, wellbeing, immunity, gut, energy, focus, productdetails, details, failedtoaddmsgtext, than, maxproduct, reviewbundletextv2, addbuttontext, minimumquantitytocheckoutv2, buildboxerrormsgv2, invalid, reach, support, continueshopping, continue, failedtoaddtitletext, failed, spendamountgetdiscount, spend, maxiumquantitytocheckoutv2, maxium, contentsonmodaltextv2, contents, nextstepbuttontextv2, chooseplanlifestyletextv2, lifestyle, selectminimumproductbuttontext, minproduct, buyquantitygetdiscount, loyaltytablepercentagetextv2, loyaltytablepricetextv2, mydeliverytext, selectedsellingplandisplayname, removeitem, productstoproceedtext, previousstepbuttontextv2, loadmoretextv2, load, selectedfrequencylabeltext, addtocartbuttontextv2, basepriceformatfieldv2, unitprice, quantityunit, productpriceformatfield, reviewordedescriptiontextv2, check, required, quantitylabelv2, minimumorderamountlabeltextv2, minorderamount, subscriptionnotavailablebuttonv2, shoppingcart, checkoutmessage, taxes, calculated, discountpopupcheckoutmessagev2, selectedbuttontextv2, congratsmessagetext, okbtntext, tiereddiscount, tiered, chooseplanlifestyledescriptiontextv2, cutoff, amend, meals, midnight, thursday, schedule, follows, gold, mondays, brisbane, sunshine, wednesdays, ordernotelabeltextv2, note, minimumtocheckoutv2, loyaltytablefixedtextv2, editquantity, edit, chooseproductstextv2, loyaltytablefreeproducttextv2, productname, loyaltytableshippingtextv2, spenttext, quantitylabel, addbuttonv2, loyaltytablefreetrailtextv2, discounttype, trial, bundlecheckouttextv2, reviewordertextv2, gobackbuttontext, selectplantextv2, viewproduct, view, bundleonmodaltextv2, proceedtocheckoutbuttontext, pleasewaitlabeltextv2, wait, typetosearchplaceholdertextv2, selectedprogresslabeltextv2, outofstocktextv2, stock, qcdrh1, shopmoneyformatwithcurrencyformat, eur, sellingplanfrequencytext, privacy, policy, terms, service, phone, chat, help, contact, blog, links, tips, sustainable, swaps, early, access, exclusive, discounts, tory, burch, fellow, business, directions, 93001, december, 2025, holidays, april, spring, cleaning, but, june, greenest, move, yet, topia, ship, recyclable, packaging, plant, together, planting, trees, california, reforestation, like, amazon, rainforest, national, forests, forest, fire, recovery, planted, referring, special, birthday, something, point, even, frank, buying, because, small, part, keeping, plastic, environment, secondly, themselves, excellent, rachel, went, massage, which, has, turned, great, customize, included, cost, using, their, many, donna, just, they, too, craft, create, that, fits, mood, season, signature, way, over, salt, lip, balm, perfume, roller, most, loved, community, fan, today, delivered, conscious, sudscription, explore, collection, crafted, ingredients, best, sellers, account, skip, zero,
Text of the page (random words):
4b6c 8f4f f5235d7a887f n border radius 2px important n externalstyletag themecss window appstlesubscription window appstlesubscription json parse json stringify rs sessionstorage appstlesubscriptionconfig json stringify rs config try window appstle_build_a_box_labels perdeliverylabeltextv2 delivery variantnotavailable not available savediscounttext discount bundlesummarytextv2 your bundle is empty please add products to your bundles to see bundle summary here freeproductlabeltextv2 free bundledescriptiontextv2 our bundle of all bundles the ultimate superfood bundle delivers exactly what it promises a complete superfood solution with 7 superfood blends each created to empower every aspect of your health and wellbeing from immunity and gut health to energy better focus productdetails product details failedtoaddmsgtext your cart can t have more than maxproduct products cart cart reviewbundletextv2 review bundle addbuttontext add minimumquantitytocheckoutv2 minimum quantity quantity to checkout buildboxerrormsgv2 build a box token is invalid please reach out to support continueshopping continue shopping failedtoaddtitletext failed to add spendamountgetdiscount spend amount get percent discount maxiumquantitytocheckoutv2 maxium quantity quantity to checkout contentsonmodaltextv2 contents nextstepbuttontextv2 next step chooseplanlifestyletextv2 choose a plan to match your lifestyle selectminimumproductbuttontext please select minproduct minimum product subtotal subtotal buyquantitygetdiscount buy quantity get percent discount loyaltytablepercentagetextv2 after billingcycle order get discount off loyaltytablepricetextv2 after billingcycle order get at price mydeliverytext my selectedsellingplandisplayname delivery removeitem remove productstoproceedtext please select products to proceed previousstepbuttontextv2 previous step loadmoretextv2 load more selectedfrequencylabeltext selected frequency addtocartbuttontextv2 add to cart basepriceformatfieldv2 unitprice quantityunit title build a box productpriceformatfield price reviewordedescriptiontextv2 check your items and select your required frequency plan quantitylabelv2 quantity minimumorderamountlabeltextv2 minimum order amount minorderamount subscriptionnotavailablebuttonv2 subscription not available shoppingcart shopping cart checkoutmessage shipping and taxes calculated at checkout discountpopupcheckoutmessagev2 discount selectedbuttontextv2 selected congratsmessagetext null okbtntext ok tiereddiscount tiered discount chooseplanlifestyledescriptiontextv2 cutoff each week to amend your meals is midnight on thursday s delivery schedule is as follows gold coast mondays brisbane sunshine coast wednesdays ordernotelabeltextv2 order note minimumtocheckoutv2 minimum quantity to checkout loyaltytablefixedtextv2 after billingcycle order get price off editquantity edit quantity chooseproductstextv2 choose products loyaltytablefreeproducttextv2 after billingcycle order get free product productname loyaltytableshippingtextv2 after billingcycle order get shipping at price spenttext null quantitylabel null addbuttonv2 add loyaltytablefreetrailtextv2 get discount discounttype free trial bundlecheckouttextv2 checkout reviewordertextv2 review order gobackbuttontext go back selectplantextv2 select plan viewproduct view product onetimepurchasetextv2 one time purchase bundleonmodaltextv2 bundle proceedtocheckoutbuttontext proceed to checkout pleasewaitlabeltextv2 please wait typetosearchplaceholdertextv2 type to search selectedprogresslabeltextv2 selected outofstocktextv2 out of stock catch e console error error parsing build a box labels e var _rsconfig _rsconfig _rsconfig shop qcdrh1 sc myshopify com _rsconfig shopmoneyformat amount_with_comma_separator _rsconfig shopmoneyformatwithcurrencyformat amount_with_comma_separator eur document queryselector body insertadjacenthtml beforeend snackbarhtml window addeventlistener message toastereventlistener false function toastereventlistener event if event data typeof event data indexof function event data indexof appstle_message_for_notification 1 var message event data split 1 showappstleloyaltytoaster message let snackbarindex 0 function showappstleloyaltytoaster msg var snackbar document getelementbyid snackbar snackbar classlist add show snackbar insertadjacenthtml beforeend msg const el snackbarindex settimeout function if document getelementbyid elem el document getelementbyid elem el remove 5000 snackbarindex const closesnackbar el document getelementbyid el remove document addeventlistener domcontentloaded const executeloyaltywidget const parsehtmlstringcontent content if typeof content string return content try const htmldecoded content replace g return json parse htmldecoded catch error console error error parsing content error return content const formatnumberbypointroundtype num if typeof num number return num const roundtype _alconfig pointroundtype no_round const rounded roundtype round_up math ceil num roundtype round_down math floor num num return number isinteger rounded rounded 1 0 rounded tofixed 0 rounded tofixed 2 const formatstorecreditamount value try const num number value const safe number isfinite num num 0 const format _alconfig shopmoneyformat const tokenmatch string format match s amount a z_ s i const token tokenmatch 1 amount tolowercase amount const decimals token includes no_decimals 0 2 let thousands decimal if token includes comma_separator thousands decimal else if token includes space_separator thousands else if token includes apostrophe_separator thousands const sign safe appstle loyalty widget close icon width 28px height 28px opacity 0 position absolute top 50 left 50 transform translate 50 50 transition opacity 0 2s appstle loyalty button bottom 24px z index 999 border radius 12px position fixed border none transition max width 1s padding 0 19px overflow hidden height 56px transform origin left max width 300px background color 89997c color ffffff appstle loyalty right right 40px appstle loyalty left left 40px appstle_loyalty_iframe width 1px min width 400px border none height 516px position fixed bottom 100px z index 1234567 box shadow 0 4px 6px 1px rgb 0 0 0 10 0 2px 4px 2px rgb 0 0 0 10 background color white border radius 12px max height calc 100vh 120px transform scale 0 important transition all 0 5s transform origin bottom left max width 80vw media screen and max width 800px appstle_loyalty_iframe left 0 height 100vh top 0 min width 100 appstle_loyalty_iframe open appstle loyalty button left 50 transform translatex 50 appstle loyalty button transition all 0 5s appstle_loyalty_iframe open transform scale 1 important appstle_loyalty_iframe open show close icon button appstle loyalty widget close icon opacity 1 appstle_loyalty_iframe open button appstle_loyalty_widget_button_wrapper color transparent appstle_loyalty_widget_button_wrapper height 100 width 100 display flex flex wrap nowrap align items center gap 10px appstle loyalty widget button text flex shrink 0 loyalty_widget_available_points display none height 100 width auto flex shrink 0 appstle_show_points loyalty_widget_available_points display flex align items center padding 0 8px margin right 14px background color 89997c color ffffff appstle_loyalty_iframe open show close icon button background color 89997c appstle_loyalty_iframe open show close icon button appstle loyalty widget button text wrapper appstle_loyalty_iframe open show close icon button loyalty_widget_available_points opacity 0 appstle_loyalty_iframe open button max width 56px loyalty widget buttonimage height 24px width 24px appstle loyalty widget button text wrapper height 100 display flex gap 4px align items center right_snackbar right 30px document queryselector body insertadjacenthtml beforeend loyaltywidgetstyles const mainhtmlstring document queryselector body insertadjacenthtml beforeend mainhtmlstring window addeventlistener message widgeteventlistener false function widgeteventlistener event if event data typeof event data indexof function event data indexof appstle_message_for_showwidget 1 else if event data typeof event data indexof function event data indexof appstle_widget_showhide 1 togglewidget else if event data typeof event data indexof function event data indexof refresh_appstle_loyalty_widget 1 _alconfig widget_setting widgettype launcher loadappstleloyaltywidget console log refresh widget else if event data typeof event data indexof function event data indexof show_appstle_loyalty_widget 1 loadappstleloyaltywidget enablewidget function removeappstleloyaltywidget document queryselector appstle loyalty button classlist add appstle loyalty hidden document queryselector appstle_loyalty_iframe classlist add appstle loyalty hidden function checkforwidgetrestrictions let isshowwidget true if _alconfig customerloyalty customerstatus excluded isshowwidget false if _alconfig customerid isshowwidget _alconfig widget_setting restrictedcustomerstag _alconfig widget_setting allowedcustomerstag if _alconfig widget_setting allowedcustomerstag length isshowwidget let allowedtags _alconfig widget_setting allowedcustomerstag split if allowedtags length 0 _alconfig customertags some tag allowedtags some allowedtag allowedtag trim tolowercase tag trim tolowercase isshowwidget false if _alconfig widget_setting restrictedcustomerstag length isshowwidget let restrictedtags _alconfig widget_setting restrictedcustomerstag split if restrictedtags length 0 _alconfig customertags some tag restrictedtags some restrictedtag restrictedtag trim tolowercase tag trim tolowercase isshowwidget false if _alconfig widget_setting blockwidgetonpages length isshowwidget let restrictedpages _alconfig widget_setting blockwidgetonpages split const currentpage window location pathname if restrictedpages length 0 if restrictedpages includes homepage currentpage isshowwidget false else if restrictedpages some page currentpage includes page isshowwidget false if _alconfig widget_setting allowwidgetonspecificpages length isshowwidget let allowedpages _alconfig widget_setting allowwidgetonspecificpages split const currentpage window location pathname if allowedpages length 0 if allowedpages includes homepage currentpage isshowwidget true else if allowedpages some page currentpage includes page isshowwidget true else isshowwidget false if _alconfig customerid _alconfig widget_setting showtologgedincustomeronly isshowwidget false window __appstle_loyalty_launcher_allowed isshowwidget if isshowwidget showappstleloyaltywidget else removeappstleloyaltywidget function enablewidget document queryselector appstle_loyalty_iframe classlist add open document queryselector appstle_loyalty_iframe classlist remove appstle loyalty hidden settimeout function document queryselector appstle_loyalty_iframe classlist toggle show close icon 900 function showappstleloyaltywidget const launcherallowed window __appstle_loyalty_launcher_allowed false document queryselector appstle_loyalty_iframe classlist remove appstle loyalty hidden const btn document queryselector appstle loyalty button if btn return if launcherallowed btn classlist remove appstle loyalty hidden else btn classlist add appstle loyalty hidden document queryselector appstle loyalty button addeventlistener click togglewidget if _alconfig widget_setting widgetposition left document getelementbyid appstle_loyalty_iframe classlist add appstle loyalty left document queryselector appstle loyalty button classlist add appstle loyalty left document getelementbyid appstle_loyalty_iframe classlist add appstle loyalty left document getelementbyid snackbar classlist add left_snackbar else document getelementbyid appstle_loyalty_iframe classlist add appstle loyalty right document queryselector appstle loyalty button classlist add appstle loyalty right document getelementbyid snackbar classlist add right_snackbar const aliframesrc function togglewidget loadappstleloyaltywidget if _alconfig widget_setting widgettype touppercase launcher _alconfig widget_setting forceredirectdedicatedpage true window open _alconfig proxy_path_prefix else document queryselector appstle_loyalty_iframe classlist toggle open showappstleloyaltywidget settimeout function document queryselector appstle_loyalty_iframe classlist toggle show close icon 900 const loadappstleloyaltywidget var iframe document queryselectorall appstle_loyalty_iframe iframe foreach function item item contentwindow _alconfig _alconfig item contentwindow document open text html replace item contentwindow document write aliframesrc item contentwindow document close const launcherdatatype _alconfig widget_setting launcherdatatype points const loyaltybuttontitle document getelementbyid loyalty widget title if _alconfig shop_labels widgettitle loyaltybuttontitle innerhtml parsehtmlstringcontent _alconfig shop_labels widgettitle function const customerloyalty widget_setting _alconfig if customerloyalty return const showtier widget_setting showtiername const launcherbuttonelement document queryselector appstle loyalty button const pointsel document queryselector loyalty_widget_available_points if pointsel return const fmt new intl numberformat const storecreditbalance 0 availablepoints 0 currentviptier customerloyalty let displayvalue if launcherdatatype store_credits displayvalue formatstorecreditamount storecreditbalance else if launcherdatatype vip_tier currentviptier displayvalue string currentviptier else const n number availablepoints 0 displayvalue fmt format formatnumberbypointroundtype n pointsel textcontent displayvalue launcherbuttonelement classlist add appstle_show_points function handledeeplink const loyaltydeeplinks appstle loyalty appstle refer appstle loyalty earn rewards appstle loyalty redeem rewards appstle loyalty referrals appstle loyalty vip program if _alconfig widget_setting showwidget loyaltydeeplinks some hash location hash includes hash return loadappstleloyaltywidget enablewidget settimeout document queryselector appstle_loyalty_iframe classlist add show close icon 900 handledeeplink const widgetreferralurl new url window location href if _alconfig referralenabled widgetreferralurl searchparams get appstle_referral _alconfig widget_setting widgettype launcher let referralredirecturl _alconfig widget_setting referralredirecturl let redirecturl referralredirecturl window location search if referralredirecturl let referralurlobj try referralurlobj new url referralredirecturl window location origin catch referralurlobj null let referralpath referralurlobj referralurlobj pathname replace referralredirecturl replace let currentpath window location pathname replace if referralpath currentpath referralpath window open redirecturl _self settimeout loadappstleloyaltywidget enablewidget 200 function observeurlchanges let lasturl location href const handleurlchange if location href lasturl handledeeplink lasturl location href new mutationobserver handleurlchange observe document body subtree true childlist true window...
|