Meta tags:
Headings (most frequently used words):
contact, us, customer, service, online, policies, our, company, shop, it, looks, like, you, re, visiting, from,
Text of the page (most frequently used words):
const (85), campaign (77), cart (54), return (37), product (33), triggerdata (28), triggerid (27), shopify (26), check (26), products (24), length (23), item (23), for (22), triggerproducts (22), cartproductids (22), includes (22), gid (20), error (19), and (18), all (18), numericid (18), gifts (17), the (16), gift (16), cartdata (16), giftdata (16), new (15), typeof (15), string (15), tostring (15), campaigns (15), else (14), function (14), back (13), items (12), 1815 (12), triggernumericid (12), replace (12), refresh (12), giftid (12), our (11), try (11), product_id (11), your (10), sale (10), add (10), price (10), quantity (10), handle (10), format (10), theme (10), await (10), united (9), discount (9), contact (9), requiredquantity (9), parseint (9), window (9), giftproducts (9), off (8), collections (8), key (8), set (8), document (8), get (8), market (8), this (7), you (7), from (7), sign (7), first (7), order (7), close (7), terms (7), customer (7), foreach (7), false (7), null (7), discountid (7), country (6), already (6), shop (6), use (6), search (6), trigger (6), type (6), old (6), async (6), button (6), are (6), cartresponse (6), giftsincart (6), isincart (6), qualify (6), some (6), qualifyingitems (6), qualifiedcampaign (6), tableware (5), requirementshtml (5), show (5), let (5), filter (5), data (5), click (5), toggle (5), catch (5), json (5), console (5), has (5), restrictions (5), threshold (5), sum (5), collection (5), localstorage (5), subscribe (4), only (4), privacy (4), policy (4), name (4), drawer (4), crystal (4), glassware (4), kitchen (4), cookie (4), service (4), per (4), unit (4), dinner (4), both (4), object (4), find (4), fetch (4), giftslist (4), push (4), customermarketid (4), auto (4), checkforautogift (4), carttotal (4), qualifiedcampaigns (4), free (4), selection (4), selectiontype (4), triggercollections (4), itemgid (4), cleanid (4), now (4), triggerselectiontype (4), alreadyprocessed (4), date (4), clean (4), states (3), kingdom (3), arab (3), emirates (3), switzerland (3), sweden (3), spain (3), qatar (3), poland (3), netherlands (3), italy (3), germany (3), france (3), finland (3), denmark (3), canada (3), belgium (3), austria (3), like (3), newsletter (3), email (3), last (3), more (3), pay (3), featured (3), story (3), discover (3), company (3), out (3), care (3), with (3), below (3), receive (3), bright (3), 105 (3), bowls (3), regular (3), getelementbyid (3), innerhtml (3), requirements (3), currentquantity (3), missingproducts (3), they (3), specific (3), dispatchevent (3), customevent (3), refreshbuttons (3), update (3), cartbuttons (3), title (3), will (3), populated (3), details (3), found (3), checking (3), returns (3), true (3), allowed (3), not (3), allow (3), allowedmarkets (3), open (3), any (3), qualified (3), cheapest_free (3), have (3), based (3), can (3), fall (3), every (3), before (3), continue (3), user (3), declined (3), cleanupoldtriggers (3), gettime (3), timestamp (3), number (3), code (3), menu (3), main (3), there (2), store (2), best (2), shopping (2), ireland (2), plus (2), delicious (2), recipes (2), exclusive (2), liquid (2), line (2), form (2), must (2), royal (2), doulton (2), waste (2), electrical (2), electronic (2), equipment (2), wee (2), modern (2), slavery (2), transparency (2), statement (2), gender (2), report (2), digital (2), marketing (2), opt (2), settings (2), notice (2), online (2), policies (2), replacement (2), promise (2), student (2), worker (2), promotion (2), guide (2), delivery (2), faq (2), save (2), cappuccino (2), saucer (2), mixed (2), bold (2), plate (2), blue (2), piece (2), undefined (2), change (2), buttons (2), queryselectorall (2), notification (2), map (2), each (2), see (2), giftproductsdata (2), available (2), collectionsresponse (2), collectionsdata (2), showgiftaddednotification (2), configured (2), formattedmarketid (2), startswith (2), markets (2), isallowed (2), webhook (2), token (2), carttoken (2), total_price (2), 100 (2), convert (2), cents (2), gidformat (2), numericformat (2), numericint (2), early (2), exit (2), just (2), don (2), cheapest (2), loyalty (2), login (2), isloggedin (2), hasmetthreshold (2), thresholdamount (2), triggercartitems (2), totalquantity (2), reduce (2), need (2), was (2), expanded (2), assume (2), might (2), validate (2), totalqualifyingquantity (2), hasrequiredquantity (2), triggers (2), hasanytrigger (2), hasalltriggers (2), allgiftsalreadyincart (2), giftalreadyincart (2), hasdeclinedgift (2), declinedkey (2), getitem (2), rapid (2), adds (2), campaignprocessedkey (2), processedtimestamp (2), timesinceprocessed (2), skip (2), within (2), 1000 (2), webhook_trigger_ (2), timestampstr (2), url (2), settimeout (2), tracking (2), needed (2), these (2), currently (2), assistance (2), inquiry (2), status (2), inquiries (2), reason (2), please (2), children (2), day (2), ramsay (2), glasses (2), table (2), sets (2), choose, another, stay, site, take, would, redirected, local, experience, looks, visiting, thanks, subscribing, applies, subscribers, cannot, used, discounted, silverware, exclusives, yes, wish, accept, hear, about, sales, grab, snippets, given, top, visa, mastercard, apple, american, express, pinterest, youtube, instagram, facebook, copyright, asia, north, america, europe, eur, updates, offers, signup, stock, notify, lowest, recent, 208, 260, most, popular, count, combined, missing, what, display, refreshcart, dispatch, custom, events, updated, silently, errors, checkforgiftincart, its, handles, fallback, getting, break, should, blocked, checkcampaignmarketrestrictions, marketrestricted, context, 93878747472, matches, block, extension, fail, functionality, flags, build, comprehensive, list, ids, multiple, formats, comparison, one, excluded, active, valid, real, isactive, segment, requirement, loyaltysegmentonly, logged, require, total, meets, euros, quantities, across, required, qualifying, different, types, belong, since, easily, membership, otherwise, validation, default, behavior, gwp, qualifies, time, their, process, during, session, gift_declined_, sessionstorage, log, skipping, attempted, recently, prevent, auto_gift_processed_, processed, seconds, prevents, duplicate, 300, small, delay, fully, entries, older, than, hour, onehourago, oneminuteago, extract, webhook_trigger_2025, 24t13, 000z, _retry, detectgiftremoval, 500, changes, run, directly, 1500, checkwebhookandaddgift, 2000, originalfetch, apply, args, initialize, page, load, initializecarttracking, previouscartitems, initializing, buy, spent, tofixed, met, empty, submit, agree, 32000, characters, message, optional, subject, recieved, faulty, wrong, features, recommendations, payment, procedure, placement, account, partnership, general, request, phone, information, team, complete, happy, assist, web, orders, availability, other, ensure, prompt, response, include, which, confirmation, goal, respond, quickly, possible, typically, business, days, urgent, matters, reach, monday, friday, 01782, 282652, host, him, her, recipient, housewarming, father, mother, wedding, engagement, occasion, sustainability, stories, flavours, inspiration, highgate, ashmere, james, bond, jack, bulldog, bunnykins, tilly, gordon, coffee, studio, pacific, vases, decanters, wine, champagne, flutes, highball, tumblers, accessories, cutlery, mugs, cups, serveware, plates, sellers, arrivals, mobile, content, webstore,
Text of the page (random words):
chen accessories children s tableware crystal glassware back all crystal glassware highball glasses tumblers wine glasses champagne flutes decanters vases bowls collections back discover all collections 1815 pacific coffee studio gordon ramsay tilly ramsay bunnykins james bond jack the bulldog ashmere highgate sale inspiration back stories and flavours our story sustainability gifts back by occasion back shop all gifts wedding engagement gifts mother s day gifts father s day gifts housewarming gifts by recipient back shop all gifts gifts for her gifts for him gifts for children gifts for the host sale sign in or sign up search search sign in or sign up cart contact us to contact our customer service team please complete our contact us form we are happy to assist you with web store orders product availability returns and any other inquiries to ensure a prompt response please include your order number which can be found in your confirmation email our goal is to respond as quickly as possible typically within 3 to 5 business days for urgent matters you can reach our customer service line at 01782 282652 available monday to friday from 10 00 am to 3 00 pm contact information name last name email country code country code country code phone number request details contact reason contact reason partnership company general inquiries order status inquiry my account login order placement assistance returns procedure and status payment discount inquiry product features recommendations product care assistance recieved a faulty wrong product subject order number optional message 32000 characters i agree to the terms of use and privacy policy submit close your cart 0 your cart is currently empty continue shopping else requirementshtml threshold met you ve spent carttotal tofixed 2 threshold campaign thresholdamount document getelementbyid trigger products innerhtml requirementshtml else if campaign type quantity campaign requiredquantity campaign requiredquantity 1 quantity campaign show quantity requirements if campaign triggerproducts campaign triggerproducts length 0 count combined quantity of all trigger products in cart let currentquantity 0 cartproductids foreach id campaign triggerproducts foreach triggerdata const triggerid typeof triggerdata string triggerdata triggerdata id const triggernumericid triggerid includes gid shopify product triggerid replace gid shopify product triggerid if id triggerid id triggernumericid id parseint triggernumericid tostring currentquantity requirementshtml to qualify add these products to your cart buy campaign requiredquantity of the trigger products currently have currentquantity else if campaign triggerproducts campaign triggerproducts length 0 regular campaign show missing products const missingproducts campaign triggerproducts filter triggerdata handle both old format string id and new format object const triggerid typeof triggerdata string triggerdata triggerdata id return cartproductids includes triggerid requirementshtml to qualify add these products to your cart missingproducts length missingproducts length 1 more products needed more product needed document getelementbyid trigger products innerhtml requirementshtml show what they ll get document getelementbyid gift products innerhtml campaign giftproducts length 1 free gifts you ll receive free gift you ll receive campaign giftproducts length free item campaign giftproducts length 1 s function to refresh cart display async function refreshcart try try theme specific cart refresh if typeof window theme undefined window theme cart typeof window theme cart refresh function window theme cart refresh return try shopify s cart refresh if typeof window shopify undefined window shopify theme window shopify theme cart typeof window shopify theme cart refresh function window shopify theme cart refresh return dispatch custom events document dispatchevent new customevent cart refresh document dispatchevent new customevent cart updated document dispatchevent new customevent cart change try cart refresh buttons const refreshbuttons document queryselectorall data cart refresh cart refresh update cart if refreshbuttons length 0 refreshbuttons foreach button if button click button click return try to find and click cart drawer toggle buttons const cartbuttons document queryselectorall data cart drawer toggle cart drawer toggle data cart toggle cart toggle if cartbuttons length 0 cartbuttons foreach button if button click button click return catch error silently handle cart refresh errors function to check if gifts are in cart and show notification async function checkforgiftincart try const cartresponse await fetch cart js const cartdata await cartresponse json const cartproductids cartdata items map item gid shopify product item product_id get all campaigns to check for gifts const campaigns check each campaign to see if its gifts are in the cart for const campaign of campaigns use giftproductsdata if available new format with handles fallback to giftproducts old format const giftslist campaign giftproductsdata campaign giftproducts if giftslist giftslist length 0 const giftsincart giftslist foreach giftdata handle both old format string id and new format object const giftid typeof giftdata string giftdata giftdata id const numericid giftid replace gid shopify product const isincart cartproductids includes giftid cartproductids includes numericid cartproductids includes parseint numericid tostring if isincart giftsincart push id numericid gid giftid title will be populated below handle will be populated below if giftsincart length 0 get the gift product details try const collectionsresponse await fetch collections all products json const collectionsdata await collectionsresponse json giftsincart foreach gift const product collectionsdata products find p p id tostring gift id if product gift title product title gift handle product handle showgiftaddednotification giftsincart catch error console error error getting product details error showgiftaddednotification giftsincart break only show notification for first found gift catch error console error error checking for gifts in cart error function to check if campaign has market restrictions returns true if campaign should be allowed false if blocked null if no restrictions async function checkcampaignmarketrestrictions discountid try get the campaign to check if it has market restrictions const campaigns const campaign campaigns find c c discountid discountid if campaign return null campaign not found allow check if this campaign has market restrictions configured if campaign discountid campaign marketrestricted true get customer s market id from liquid context const customermarketid 93878747472 const formattedmarketid customermarketid startswith gid customermarketid gid shopify market customermarketid check if customer market matches allowed markets if campaign allowedmarkets campaign allowedmarkets length 0 const isallowed campaign allowedmarkets includes formattedmarketid return isallowed else return false no allowed markets configured block else return null no market restrictions catch error console error theme extension market check error error return null on error allow campaign fail open auto gift functionality check for webhook set flags async function checkforautogift try get cart token from cart data const cartresponse await fetch cart js const cartdata await cartresponse json const carttoken cartdata token const carttotal cartdata total_price 100 convert from cents get campaigns and check if we qualify for auto gift const campaigns build comprehensive list of cart product ids in multiple formats for comparison const cartproductids cartdata items foreach item const gidformat gid shopify product item product_id const numericformat item product_id tostring const numericint parseint item product_id cartproductids push gidformat cartproductids push numericformat cartproductids push numericint tostring early exit first check if there are any campaigns at all if campaigns campaigns length 0 return find all qualified campaigns not just the first one cheapest_free campaigns are excluded they don t auto add products they only discount the cheapest item already in the cart const qualifiedcampaigns campaigns filter campaign if campaign type cheapest_free return false must be active and have valid data and a real discount id if campaign isactive campaign giftproducts campaign discountid campaign discountid null campaign discountid return false check loyalty segment requirement if campaign loyaltysegmentonly check if customer is logged in loyalty campaigns require login const isloggedin null null if isloggedin return false check campaign requirements based on type if campaign type threshold threshold campaign check if cart total meets threshold const carttotal cartdata total_price 100 convert from cents to euros const hasmetthreshold carttotal campaign thresholdamount return hasmetthreshold else if campaign type quantity campaign requiredquantity campaign requiredquantity 1 quantity campaign sum quantities across all trigger products if campaign triggerproducts campaign triggerproducts length 0 const triggercartitems cartdata items filter item return campaign triggerproducts some triggerdata const triggerid typeof triggerdata string triggerdata triggerdata id const triggernumericid triggerid includes gid shopify product triggerid replace gid shopify product triggerid return item product_id tostring triggernumericid item product_id tostring parseint triggernumericid tostring const totalquantity triggercartitems reduce sum item sum item quantity 0 return totalquantity campaign requiredquantity else if campaign type cheapest_free cheapest free campaign check if required quantity of qualifying products is in cart const requiredquantity campaign requiredquantity 1 handle different selection types const selectiontype campaign selectiontype products let qualifyingitems if selectiontype all all products qualify qualifyingitems cartdata items else if selectiontype collections campaign triggercollections campaign triggercollections length 0 for collection based selection we need to check if products belong to collections since we can t easily check collection membership in js check if triggerproducts was expanded if triggerproducts is populated use it otherwise fall back to all products in cart if campaign triggerproducts campaign triggerproducts length 0 qualifyingitems cartdata items filter item const itemgid gid shopify product item product_id const numericid item product_id tostring return campaign triggerproducts some triggerdata const triggerid typeof triggerdata string triggerdata triggerdata id const cleanid triggerid replace gid shopify product return triggerid itemgid triggerid numericid cleanid numericid else fall back let the shopify function handle collection validation for now assume cart items might qualify function will validate qualifyingitems cartdata items else specific products selection default behavior qualifyingitems cartdata items filter item const itemgid gid shopify product item product_id const numericid item product_id tostring return campaign triggerproducts some triggerdata const triggerid typeof triggerdata string triggerdata triggerdata id const cleanid triggerid replace gid shopify product return triggerid itemgid triggerid numericid cleanid numericid const totalqualifyingquantity qualifyingitems reduce sum item sum item quantity 0 const hasrequiredquantity totalqualifyingquantity requiredquantity return hasrequiredquantity else regular collection gwp campaign check trigger requirements const triggerselectiontype campaign triggerselectiontype products if triggerselectiontype all all products are triggers any product in cart qualifies return cartdata items length 0 else if triggerselectiontype collections campaign triggercollections campaign triggercollections length 0 collection based triggers if triggerproducts was expanded at save time use it if campaign triggerproducts campaign triggerproducts length 0 const hasanytrigger campaign triggerproducts some triggerdata const triggerid typeof triggerdata string triggerdata triggerdata id const triggernumericid triggerid replace gid shopify product return cartproductids includes triggerid cartproductids includes triggernumericid cartproductids includes parseint triggernumericid tostring return hasanytrigger else fall back assume might qualify let shopify function validate return cartdata items length 0 else if campaign triggerproducts campaign triggerproducts length 0 specific products selection const hasalltriggers campaign triggerproducts every triggerdata const triggerid typeof triggerdata string triggerdata triggerdata id const triggernumericid triggerid includes gid shopify product triggerid replace gid shopify product triggerid return cartproductids includes triggerid cartproductids includes triggernumericid cartproductids includes parseint triggernumericid tostring return hasalltriggers return false return false if qualifiedcampaigns length 0 early exit check if all qualified campaigns already have their gifts in cart const allgiftsalreadyincart qualifiedcampaigns every campaign return campaign giftproducts every giftdata handle both old format string id and new format object const giftid typeof giftdata string giftdata giftdata id const numericid giftid replace gid shopify product const isincart cartproductids includes giftid cartproductids includes numericid cartproductids includes parseint numericid tostring return isincart if allgiftsalreadyincart return process each qualified campaign for const qualifiedcampaign of qualifiedcampaigns check if gift is already in cart first before localstorage check const giftalreadyincart qualifiedcampaign giftproducts some giftdata handle both old format string id and new format object const giftid typeof giftdata string giftdata giftdata id const numericid giftid replace gid shopify product const isincart cartproductids includes giftid cartproductids includes numericid cartproductids includes parseint numericid tostring return isincart if giftalreadyincart continue gift is already in cart no need to add check if user has declined this gift during this session const hasdeclinedgift qualifiedcampaign giftproducts some giftdata const giftid typeof giftdata string giftdata giftdata id const numericid giftid replace gid shopify product const declinedkey gift_declined_ qualifiedcampaign id _ numericid return sessionstorage getitem declinedkey true if hasdeclinedgift console log skipping auto add for campaign qualifiedcampaign id user declined gift continue user has declined this gift don t re add check if we ve already attempted to add this gift recently prevent rapid re adds const campaignprocessedkey auto_gift_processed_ carttoken _ qualifiedcampaign id const alreadyprocessed localstorage getitem campaignprocessedkey const processedtimestamp alreadyprocessed parseint alreadyprocessed 0 ...
|