1<!doctype html><html class="no-js" lang="nl" dir="ltr"> 2 <head> 3 <meta name="google-site-verification" content="7iX5FsuAklgDoIASlH7MW9-MJ2rKX97_UvPHVyNbd_8" /> 4
4<script src="https://analytics.ahrefs.com/analytics.js" data-key="AofD63t9dlHuesMMDDMV7g" defer="true"></script>
4 5
5<script id="pandectes-rules">� /* PANDECTES-GDPR: DO NOT MODIFY AUTO GENERATED CODE OF THIS SCRIPT */� � window.PandectesSettings = {"store":{"plan":"basic","theme":"Grasscompany/main","primaryLocale":"nl","adminMode":false},"tsPublished":1700475278,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"We gebruiken cookies om de functionaliteit van de website te optimaliseren, de prestaties te analyseren en u een gepersonaliseerde ervaring te bieden. Sommige cookies zijn essentieel om de website goed te laten werken en correct te laten functioneren. Die cookies kunnen niet worden uitgeschakeld. In dit venster kunt u uw voorkeur voor cookies beheren.","showDateGenerated":true},"language":{"languageMode":"Single","fallbackLanguage":"nl","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"nl":"Wij respecteren uw privacy"},"consentText":{"nl":"Deze website maakt gebruik van cookies om u de beste ervaring te bieden."},"dismissButtonText":{"nl":"OK"},"linkText":{"nl":"Kom meer te weten"},"imprintText":{"nl":"Afdruk"},"preferencesButtonText":{"nl":"Voorkeuren"},"allowButtonText":{"nl":"Aanvaarden"},"denyButtonText":{"nl":"Afwijzen"},"leaveSiteButtonText":{"nl":"Verlaat deze site"},"cookiePolicyText":{"nl":"Cookie beleid"},"preferencesPopupTitleText":{"nl":"Toestemmingsvoorkeuren beheren"},"preferencesPopupIntroText":{"nl":"We gebruiken cookies om de functionaliteit van de website te optimaliseren, de prestaties te analyseren en u een gepersonaliseerde ervaring te bieden. Sommige cookies zijn essentieel om de website correct te laten werken en functioneren. Die cookies kunnen niet worden uitgeschakeld. In dit venster kunt u uw voorkeur voor cookies beheren."},"preferencesPopupCloseButtonText":{"nl":"Sluiten"},"preferencesPopupAcceptAllButtonText":{"nl":"Accepteer alles"},"preferencesPopupRejectAllButtonText":{"nl":"Alles afwijzen"},"preferencesPopupSaveButtonText":{"nl":"Voorkeuren opslaan"},"accessSectionTitleText":{"nl":"Gegevensportabiliteit"},"accessSectionParagraphText":{"nl":"U heeft te allen tijde het recht om uw gegevens in te zien."},"rectificationSectionTitleText":{"nl":"Gegevens rectificatie"},"rectificationSectionParagraphText":{"nl":"U hebt het recht om te vragen dat uw gegevens worden bijgewerkt wanneer u dat nodig acht."},"erasureSectionTitleText":{"nl":"Recht om vergeten te worden"},"erasureSectionParagraphText":{"nl":"U heeft het recht om al uw gegevens te laten wissen. Daarna heeft u geen toegang meer tot uw account."},"declIntroText":{"nl":"We gebruiken cookies om de functionaliteit van de website te optimaliseren, de prestaties te analyseren en u een gepersonaliseerde ervaring te bieden. Sommige cookies zijn essentieel om de website goed te laten werken en correct te laten functioneren. Die cookies kunnen niet worden uitgeschakeld. In dit venster kunt u uw voorkeur voor cookies beheren."}}
5,"categories":{"strictlyNecessaryCookiesTitleText":{"nl":"Strikt noodzakelijke cookies"},"functionalityCookiesTitleText":{"nl":"Functionele cookies"},"performanceCookiesTitleText":{"nl":"Prestatiecookies"},"targetingCookiesTitleText":{"nl":"Targeting-cookies"},"unclassifiedCookiesTitleText":{"nl":"Niet-geclassificeerde cookies"},"strictlyNecessaryCookiesDescriptionText":{"nl":"Deze cookies zijn essentieel om u in staat te stellen door de website te navigeren en de functies ervan te gebruiken, zoals toegang tot beveiligde delen van de website. Zonder deze cookies kan de website niet goed functioneren."},"functionalityCookiesDescriptionText":{"nl":"Deze cookies stellen de site in staat om verbeterde functionaliteit en personalisatie te bieden. Ze kunnen worden ingesteld door ons of door externe providers wiens diensten we aan onze pagina's hebben toegevoegd. Als u deze cookies niet toestaat, werken sommige of al deze diensten mogelijk niet correct."},"performanceCookiesDescriptionText":{"nl":"Deze cookies stellen ons in staat om de prestaties van onze website te monitoren en te verbeteren. Ze stellen ons bijvoorbeeld in staat om bezoeken te tellen, verkeersbronnen te identificeren en te zien welke delen van de site het populairst zijn."},"targetingCookiesDescriptionText":{"nl":"Deze cookies kunnen via onze site worden geplaatst door onze advertentiepartners. Ze kunnen door die bedrijven worden gebruikt om een profiel van uw interesses op te bouwen en u relevante advertenties op andere sites te tonen. Ze slaan geen directe persoonlijke informatie op, maar zijn gebaseerd op de unieke identificatie van uw browser en internetapparaat. Als je deze cookies niet toestaat, krijg je minder gerichte advertenties te zien."},"unclassifiedCookiesDescriptionText":{"nl":"Niet-geclassificeerde cookies zijn cookies die we aan het classificeren zijn, samen met de aanbieders van individuele cookies."}},"auto":{"declName":{"nl":"Naam"},"declPath":{"nl":"Pad"},"declType":{"nl":"Type"},"declDomain":{"nl":"Domein"},"declPurpose":{"nl":"Doel"},"declProvider":{"nl":"Aanbieder"},"declRetention":{"nl":"Behoud"},"declFirstParty":{"nl":"First-party"},"declThirdParty":{"nl":"Derde partij"},"declSeconds":{"nl":"seconden"},"declMinutes":{"nl":"minuten"},"declHours":{"nl":"uur"},"declDays":{"nl":"dagen"},"declMonths":{"nl":"maanden"},"declYears":{"nl":"jaren"},"declSession":{"nl":"Sessie"},"cookiesDetailsText":{"nl":"Cookiegegevens"},"preferencesPopupAlwaysAllowedText":{"nl":"altijd toegestaan"},"submitButton":{"nl":"Indienen"},"submittingButton":{"nl":"Verzenden..."},"cancelButton":{"nl":"Annuleren"},"guestsSupportInfoText":{"nl":"Log in met uw klantaccount om verder te gaan."},"guestsSupportEmailPlaceholder":{"nl":"E-mailadres"},"guestsSupportEmailValidationError":{"nl":"E-mail is niet geldig"},"guestsSupportEmailSuccessTitle":{"nl":"dankjewel voor je aanvraag"},"guestsSupportEmailFailureTitle":{"nl":"Er is een probleem opgetreden"},"guestsSupportEmailSuccessMessage":{"nl":"Als je bent geregistreerd als klant van deze winkel, ontvang je binnenkort een e-mail met instructies over hoe je verder kunt gaan."},"guestsSupportEmailFailureMessage":{"nl":"Uw verzoek is niet ingediend. Probeer het opnieuw en als het probleem aanhoudt, neem dan contact op met de winkeleigenaar voor hulp."},"confirmationSuccessTitle":{"nl":"Uw verzoek is geverifieerd"},"confirmationFailureTitle":{"nl":"Er is een probleem opgetreden"},"confirmationSuccessMessage":{"nl":"We zullen spoedig contact met u opnemen over uw verzoek."},"confirmationFailureMessage":{"nl":"Uw verzoek is niet geverifieerd. Probeer het opnieuw en als het probleem aanhoudt, neem dan contact op met de winkeleigenaar voor hulp"},"consentSectionTitleText":{"nl":"Uw toestemming voor cookies"},"consentSectionNoConsentText":{"nl":"U heeft niet ingestemd met het cookiebeleid van deze website."},"consentSectionConsentedText":{"nl":"U heeft ingestemd met het cookiebeleid van deze website op:"},"consentStatus":{"nl":"Toestemmingsvoorkeur"},"consentDate":{"nl":"Toestemmingsdatum"},"consentId":{"nl":"Toestemmings-ID"},"consentSectionChangeConsentActionText":{"nl":"Wijzig de toestemmingsvoorkeur"},"accessSectionGDPRRequestsActionText":{"nl":"Verzoeken van betrokkenen"},"accessSectionAccountInfoActionText":{"nl":"Persoonlijke gegevens"},"accessSectionOrdersRecordsActionText":{"nl":"Bestellingen"},"accessSectionDownloadReportActionText":{"nl":"Download alles"},"rectificationCommentPlaceholder":{"nl":"Beschrijf wat u wilt bijwerken"},"rectificationCommentValidationError":{"nl":"Commentaar is verplicht"},"rectificationSectionEditAccountActionText":{"nl":"Vraag een update aan"}
5,"erasureSectionRequestDeletionActionText":{"nl":"Verzoek om verwijdering van persoonlijke gegevens"}}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":7,"showLink":true,"showImprintLink":false,"enabled":true,"cookie":{"name":"_pandectes_gdpr","expiryDays":365,"secure":true},"dismissOnScroll":false,"dismissOnWindowClick":false,"dismissOnTimeout":false,"palette":{"popup":{"background":"#FFFFFF","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000","textForCalculation":{"a":1,"b":0,"g":0,"r":0},"border":"#000000"}},"content":{"href":"https://grasscompany.myshopify.com/policies/privacy-policy","imprintHref":"/","close":"✕","target":"","logo":"<img class=\"cc-banner-logo\" height=\"40\" width=\"40\" src=\"https://cdn.shopify.com/s/files/1/0739/7156/4852/t/4/assets/pandectes-logo.png?v=1695280593\" alt=\"Grasscompany\" />"},"window":"<div role=\"dialog\" aria-live=\"polite\" aria-label=\"cookieconsent\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-top-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\"><!--googleoff: all-->{{children}}<!--googleon: all--></div></div>","compliance":{"opt-both":"<div class=\"cc-compliance cc-highlight\">{{deny}}{{allow}}</div>"},"type":"opt-both","layouts":{"basic":"{{logo}}{{messagelink}}{{compliance}}{{close}}"},"position":"top","theme":"wired","revokable":true,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://cdn.shopify.com/s/files/1/0739/7156/4852/t/4/assets/pandectes-reopen-logo.png?v=1695280594","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""]},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"canadaOnly":false,"globalVisibility":true},"dsr":{"guestsSupport":false,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1695280591,"extraCss":" .cc-banner-logo {max-width: 24em!important;} @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}} .cc-message, .cc-header, .cc-logo {text-align: left} .cc-window-wrapper{z-index: 2147483647;} .cc-window{z-index: 2147483647;font-family: inherit;} .cc-header{font-family: inherit;} .pd-cp-ui{font-family: inherit; background-color: #FFFFFF;color:#000000;} button.pd-cp-btn, a.pd-cp-btn{} input + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 0.3)} .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(0, 0, 0, 0.3)} input:checked + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 1)} .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 1)} .pd-cp-ui-close{color:#000000;} .pd-cp-preferences-slider:before{background-color: #FFFFFF} .pd-cp-title:before {border-color: #000000!important} .pd-cp-preferences-slider{background-color:#000000} .pd-cp-toggle{color:#000000!important} @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #000000}} .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#000000!important} .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);} ","customJavascript":null,"showPoweredBy":false,"hybridStrict":false,"cookiesBlockedByDefault":"7","isActive":true,"implicitSavePreferences":false,"cookieIcon":false,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"_cmp_a","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"nl":"Used for managing customer privacy settings."}},{"name":"localization","domain":"grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"nl":"Shopify store localization"}},{"name":"secure_customer_sig","domain":"grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"nl":"Used in connection with customer login."}},{"name":"keep_alive","domain":"grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"nl":"Used in connection with buyer localization."}}],"1":[],"2":[{"name":"_y","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"nl":"Shopify analytics."}}
5,{"name":"_shopify_s","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"nl":"Shopify analytics."}},{"name":"_shopify_y","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"nl":"Shopify analytics."}},{"name":"_s","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"nl":"Shopify analytics."}},{"name":"_orig_referrer","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declSession","purpose":{"nl":"Tracks landing pages."}},{"name":"_shopify_sa_p","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"nl":"Shopify analytics relating to marketing & referrals."}},{"name":"_shopify_sa_t","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"nl":"Shopify analytics relating to marketing & referrals."}},{"name":"_landing_page","domain":".grasscompany.myshopify.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declSession","purpose":{"nl":"Tracks landing pages."}}],"4":[{"name":"__kla_id","domain":"grasscompany.myshopify.com","path":"/","provider":"Klaviyo","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"nl":"Tracks when someone clicks through a Klaviyo email to your website"}}],"8":[]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","isActive":false,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":true,"securityStorageCategory":0,"redactData":true,"urlPassthrough":false},"facebookPixel":{"id":"","isActive":false,"ldu":false},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"defaultBlocked":7,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}� � !function(){"use strict";window.PandectesRules=window.PandectesRules||{},window.PandectesRules.manualBlacklist={1:[],2:[],4:[]},window.PandectesRules.blacklistedIFrames={1:[],2:[],4:[]},window.PandectesRules.blacklistedCss={1:[],2:[],4:[]},window.PandectesRules.blacklistedBeacons={1:[],2:[],4:[]};var e="javascript/blocked",t="_pandectes_gdpr";function n(e){return new RegExp(e.replace(/[/\\.+?$()]/g,"\\$&").replace("*","(.*)"))}
5var r=function(e){try{return JSON.parse(e)}catch(e){return!1}},a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"log",n=new URLSearchParams(window.location.search);n.get("log")&&console[t]("PandectesRules: ".concat(e))};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,i=[],s=!0,o=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,a=e}finally{try{s||null==n.return||n.return()}finally{if(o)throw a}}return i}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f=!(void 0===window.dataLayer||!Array.isArray(window.dataLayer)||!window.dataLayer.some((function(e){return"pandectes_full_scan"===e.event})));a("userAgent ->
5 ".concat(window.navigator.userAgent.substring(0,50)));var p=function(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t,a="; "+document.cookie,i=a.split("; "+n+"=");if(i.length<2)e={};else{var s=i.pop(),o=s.split(";");e=window.atob(o.shift())}var c=r(e);return!1!==c?c:e}(),g=window.PandectesSettings,y=g.banner.isActive,h=g.blocker.defaultBlocked,m=p&&null!==p.preferences&&void 0!==p.preferences?p.preferences:null,w=f?0:y?null===m?h:m:0,v={1:0==(1&w),2:0==(2&w),4:0==(4&w)},b=window.PandectesSettings.blocker.patterns,k=b.blackList,L=b.whiteList,S=b.iframesBlackList,P=b.iframesWhiteList,A=b.beaconsBlackList,C=b.beaconsWhiteList,_={blackList:[],whiteList:[],iframesBlackList:{1:[],2:[],4:[],8:[]},iframesWhiteList:[],beaconsBlackList:{1:[],2:[],4:[],8:[]},beaconsWhiteList:[]};[1,2,4].map((function(e){var t;v[e]||((t=_.blackList).push.apply(t,l(k[e].length?k[e].map(n):[])),_.iframesBlackList[e]=S[e].length?S[e].map(n):[],_.beaconsBlackList[e]=A[e].length?A[e].map(n):[])})),_.whiteList=L.length?L.map(n):[],_.iframesWhiteList=P.length?P.map(n):[],_.beaconsWhiteList=C.length?C.map(n):[];var B={scripts:[],iframes:{1:[],2:[],4:[]},beacons:{1:[],2:[],4:[]},css:{1:[],2:[],4:[]}},E=function(t,n){return t&&(!n||n!==e)&&(!_.blackList||_.blackList.some((function(e){return e.test(t)})))&&(!_.whiteList||_.whiteList.every((function(e){return!e.test(t)})))},O=function(e){var t=e.getAttribute("src");return _.blackList&&_.blackList.every((function(e){return!e.test(t)}))||_.whiteList&&_.whiteList.some((function(e){return e.test(t)}))},I=function(e,t){var n=_.iframesBlackList[t],r=_.iframesWhiteList;return e&&(!n||n.some((function(t){return t.test(e)})))&&(!r||r.every((function(t){return!t.test(e)})))},j=function(e,t){var n=_.beaconsBlackList[t],r=_.beaconsWhiteList;return e&&(!n||n.some((function(t){return t.test(e)})))&&(!r||r.every((function(t){return!t.test(e)})))},R=new MutationObserver((function(e){for(var t=0;t<e.length;t++)for(var n=e[t].addedNodes,r=0;r<n.length;r++){var a=n[r],i=a.dataset&&a.dataset.cookiecategory;if(1===a.nodeType&&"LINK"===a.tagName){var s=a.dataset&&a.dataset.href;if(s&&i)switch(i){case"functionality":case"C0001":B.css[1].push(s);break;case"performance":case"C0002":B.css[2].push(s);break;case"targeting":case"C0003":B.css[4].push(s)}}}})),T=new MutationObserver((function(t){for(var n=0;n<t.length;n++)for(var r=t[n].addedNodes,a=function(t){var n=r[t],a=n.src||n.dataset&&n.dataset.src,i=n.dataset&&n.dataset.cookiecategory;if(1===n.nodeType&&"IFRAME"===n.tagName){if(a){var s=!1;I(a,1)||"functionality"===i||"C0001"===i?(s=!0,B.iframes[1].push(a)):I(a,2)||"performance"===i||"C0002"===i?(s=!0,B.iframes[2].push(a)):(I(a,4)||"targeting"===i||"C0003"===i)&&(s=!0,B.iframes[4].push(a)),s&&(n.removeAttribute("src"),n.setAttribute("data-src",a))}}else if(1===n.nodeType&&"IMG"===n.tagName){if(a){var o=!1;j(a,1)?(o=!0,B.beacons[1].push(a)):j(a,2)?(o=!0,B.beacons[2].push(a)):j(a,4)&&(o=!0,B.beacons[4].push(a)),o&&(n.removeAttribute("src"),n.setAttribute("data-src",a))}}else if(1===n.nodeType&&"LINK"===n.tagName){var c=n.dataset&&n.dataset.href;if(c&&i)switch(i){case"functionality":case"C0001":B.css[1].push(c);break;case"performance":case"C0002":B.css[2].push(c);break;case"targeting":case"C0003":B.css[4].push(c)}}else if(1===n.nodeType&&"SCRIPT"===n.tagName){var l=n.type,u=!1;if(E(a,l))u=!0;else if(a&&i)switch(i){case"functionality":case"C0001":u=!0,window.PandectesRules.manualBlacklist[1].push(a);break;case"performance":case"C0002":u=!0,window.PandectesRules.manualBlacklist[2].push(a);break;case"targeting":case"C0003":u=!0,window.PandectesRules.manualBlacklist[4].push(a)}if(u){B.scripts.push([n,l]),n.type=e;n.addEventListener("beforescriptexecute",(function t(r){n.getAttribute("type")===e&&r.preventDefault(),n.removeEventListener("beforescriptexecute",t)})),n.parentElement&&n.parentElement.removeChild(n)}}},i=0;i<r.length;i++)a(i)})),x=document.createElement,N={src:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"src"),t
5ype:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"type")};window.PandectesRules.unblockCss=function(e){var t=B.css[e]||[];t.length&&a("Unblocking CSS for ".concat(e)),t.forEach((function(e){var t=document.querySelector('link[data-href^="'.concat(e,'"]'));t.removeAttribute("data-href"),t.href=e})),B.css[e]=[]},window.PandectesRules.unblockIFrames=function(e){var t=B.iframes[e]||[];t.length&&a("Unblocking IFrames for ".concat(e)),_.iframesBlackList[e]=[],t.forEach((function(e){var t=document.querySelector('iframe[data-src^="'.concat(e,'"]'));t.removeAttribute("data-src"),t.src=e})),B.iframes[e]=[]},window.PandectesRules.unblockBeacons=function(e){var t=B.beacons[e]||[];t.length&&a("Unblocking Beacons for ".concat(e)),_.beaconsBlackList[e]=[],t.forEach((function(e){var t=document.querySelector('img[data-src^="'.concat(e,'"]'));t.removeAttribute("data-src"),t.src=e})),B.beacons[e]=[]},window.PandectesRules.unblockInlineScripts=function(e){var t=1===e?"functionality":2===e?"performance":"targeting";document.querySelectorAll('script[type="javascript/blocked"][data-cookiecategory="'.concat(t,'"]')).forEach((function(e){var t=e.textContent;e.parentNode.removeChild(e);var n=document.createElement("script");n.type="text/javascript",n.textContent=t,document.body.appendChild(n)}))},window.PandectesRules.unblock=function(t){t.length<1?(_.blackList=[],_.whiteList=[],_.iframesBlackList=[],_.iframesWhiteList=[]):(_.blackList&&(_.blackList=_.blackList.filter((function(e){return t.every((function(t){return"string"==typeof t?!e.test(t):t instanceof RegExp?e.toString()!==t.toString():void 0}))}))),_.whiteList&&(_.whiteList=[].concat(l(_.whiteList),l(t.map((function(e){if("string"==typeof e){var t=".*"+n(e)+".*";if(_.whiteList.every((function(e){return e.toString()!==t.toString()})))return new RegExp(t)}else if(e instanceof RegExp&&_.whiteList.every((function(t){return t.toString()!==e.toString()})))return e;return null})).filter(Boolean)))));for(var r=document.querySelectorAll('script[type="'.concat(e,'"]')),i=0;i<r.length;i++){var s=r[i];O(s)&&(B.scripts.push([s,"application/javascript"]),s.parentElement.removeChild(s))}var o=0;l(B.scripts).forEach((function(e,t){var n=c(e,2),r=n[0],a=n[1];if(O(r)){for(var i=document.createElement("script"),s=0;s<r.attributes.length;s++){var l=r.attributes[s];"src"!==l.name&&"type"!==l.name&&i.setAttribute(l.name,r.attributes[s].value)}i.setAttribute("src",r.src),i.setAttribute("type",a||"application/javascript"),document.head.appendChild(i),B.scripts.splice(t-o,1),o++}})),0==_.blackList.length&&0===_.iframesBlackList[1].length&&0===_.iframesBlackList[2].length&&0===_.iframesBlackList[4].length&&0===_.beaconsBlackList[1].length&&0===_.beaconsBlackList[2].length&&0===_.beaconsBlackList[4].length&&(a("Disconnecting observers"),T.disconnect(),R.disconnect())};var M,D,W=window.PandectesSettings.store.adminMode,F=window.PandectesSettings.blocker;M=function(){!function(){var e=window.Shopify.trackingConsent;try{var t=W&&!window.Shopify.AdminBarInjector,n={preferences:0==(1&w)||f||t,analytics:0==(2&w)||f||t,marketing:0==(4&w)||f||t};e.firstPartyMarketingAllowed()===n.marketing&&e.analyticsProcessingAllowed()===n.analytics&&e.preferencesProcessingAllowed()===n.preferences||e.setTrackingConsent(n,(function(e){e&&e.error?a("Shopify.customerPrivacy API - failed to setTrackingConsent"):a("Shopify.customerPrivacy API - setTrackingConsent(".concat(JSON.stringify(n),")"))}))}catch(e){a("Shopify.customerPrivacy API - exception")}}(),function(){var e=window.Shopify.trackingConsent,t=e.currentVisitorConsent();if(F.gpcIsActive&&"CCPA"===e.getRegulation()&&"no"===t.gpc&&"yes"!==t.sale_of_data){var n={sale_of_data:!1};e.setTrackingConsent(n,(function(e){e&&e.error?a("Shopify.customerPrivacy API - failed to setTrackingConsent({".concat(JSON.stringify(n),")")):a("Shopify.customerPrivacy API - setTrackingConsent(".concat(JSON.stringify(n),")"))}))}}()},D=null,window.Shopify&&window.Shopify.loadFeatures&&window.Shopify.trackingConsent?M():D=setInterval((function(){window.Shopify&&window.Shopify.loadFeatures&&(clearInterval(D),window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],(function(e){e?a("Shopify.customerPrivacy API - failed to load"):(a("Shopify.customerPrivacy API - loaded"),M())})))}),10);var z=window.PandectesSettings,U=z.banner.isActive,q=z.blocker.googleConsentMode,J=q.isActive,H=q.customEvent,$=q.redactData,G=q.urlPassthrough,K=q.adStorageCategory,V=q.analyticsStorageCategory,Y=q.functionalityStorageCategory,Q=q.personalizationStorageCategory,X=q.securityStorageCategory;function Z(){window.dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[];var ee,te,ne={hasInitialized:!1,ads_data_redaction:!1,url_passthrough:!1,storage:{ad_storage:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted",wait_for_update:500}};if(U&&J){var re=0==(w&K)?"granted":"denied",ae=0==(w&V)?"granted":"denied",ie=0==(w&Y)?"granted":"denied",se=0==(w&Q)?"granted":"denied",oe=0==(w&X)?"granted":"denied";ne.hasInitialized=!0,ne.ads_data_redaction="denied"===re&&$,ne.url_passthrough=G,ne.storage.ad_storage=re,ne.storage.analytics_storage=ae,ne.storage.functionality_storage=ie,ne.storage.personalization_storage=se,ne.storage.security_storage=oe,ne.ads_data_redaction&&Z("set","ads_data_redaction",ne.ads_data_redaction),ne.url_passthrough&&Z("set","url_passthrough",ne.url_passthrough),Z("consent","default",ne.storage),a("Google consent mode initialized")}U&&H&&(te=7===(ee=w)?"deny":0===ee?"allow":"mixed",window.dataLayer.push({event:"Pandectes_Consent_Update",pandectes_status:te,pandectes_categories:{C0000:"allow",C0001:v[1]?"allow":"deny",C0002:v[2]?"allow":"deny",C0003:v[4]?"allow":"deny"}}),a("PandectesCustomEvent pushed to the dataLayer")),window.PandectesRules.gcm=ne;var ce=window.PandectesSettings,le=ce.banner.isActive,ue=ce.blocker.isActive;a("Blocker -> "+(ue?"Active":"Inactive")),a("Banner -> "+(le?"Active":"Inactive")),a("ActualPrefs -> "+w);var de=null===m&&/\/checkouts\//.test(window.location.pathname);0!==w&&!1===f&&ue&&!de?(a("Blocker will execute"),document.createElement=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if("script"!==n[0].toLowerCase())return x.bind?x.bind(document).apply(void 0,n):x;var a=x.bind(document).apply(void 0,n);try{Object.defineProperties(a,{src:s(s({},N.src),{},{set:function(t){E(t,a.type)&&N.type.set.call(this,e),N.src.set.call(this,t)}}),type:s(s({},N.type),{},{get:function(){var t=N.type.get.call(this);return t===e||E(this.src,t)?null:t},set:function(t){var n=E(a.src,a.type)?e:t;N.type.set.call(this,n)}})}),a.setAttribute=function(t,n){if("type"===t){var r=E(a.src,a.type)?e:n;N.type.set.call(a,r)}else"src"===t?(E(n,a.type)&&N.type.set.call(a,e),N.src.set.call(a,n)):HTMLScriptElement.prototype.setAttribute.call(a,t,n)}}catch(e){console.warn("Yett: unable to prevent script execution for script src ",a.src,".\n",'A likely cause would be because you are using a third-party browser extension that monkey patches the "document.createElement" function.')}return a},T.observe(document.documentElement,{childList:!0,subtree:!0}),R.observe(document.documentElement,{childList:!0,subtree:!0})):a("Blocker will not execute")}(); 6�</script>
6 7 8 <meta charset="utf-8"> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0"> 10 <meta name="theme-color" content="#efece2"> 11 12 <title>Je winkelwagen</title><link rel="canonical" href="https://grasscompany.com/cart"><link rel="shortcut icon" href="//grasscompany.com/cdn/shop/files/favicon-32x32_96x96.png?v=1706110329" type="image/png"><link rel="preconnect" href="https://cdn.shopify.com"> 13 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"> 14 <link rel="dns-prefetch" href="https://www.google-analytics.com"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="preload" as="style" href="//grasscompany.com/cdn/shop/t/4/assets/theme.css?v=69002466515971871661732809920"> 15 <link rel="preload" as="script" href="//grasscompany.com/cdn/shop/t/4/assets/vendor.js?v=31715688253868339281681113866"> 16 <link rel="preload" as="script" href="//grasscompany.com/cdn/shop/t/4/assets/theme.js?v=100583677007587302941681113866"><meta property="og:type" content="website"> 17 <meta property="og:title" content="Je winkelwagen"><meta property="og:image" content="http://grasscompany.com/cdn/shop/files/Logo_Grasscompany_Nieuw_verkleint_b9742737-bf77-411e-9e62-1f8b6eb04e07.png?v=1698661162"> 18 <meta property="og:image:secure_url" content="https://grasscompany.com/cdn/shop/files/Logo_Grasscompany_Nieuw_verkleint_b9742737-bf77-411e-9e62-1f8b6eb04e07.png?v=1698661162"> 19 <meta property="og:image:width" content="1200"> 20 <meta property="og:image:height" content="628"><meta property="og:url" content="https://grasscompany.com/cart"> 21<meta property="og:site_name" content="Grasscompany.com"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Je winkelwagen"> 22 <meta name="twitter:description" content="Je winkelwagen"><meta name="twitter:image" content="https://grasscompany.com/cdn/shop/files/Logo_Grasscompany_Nieuw_verkleint_b9742737-bf77-411e-9e62-1f8b6eb04e07_1200x1200_crop_center.png?v=1698661162"> 23 <meta name="twitter:image:alt" content=""> 24 25 26 27
27<script type="application/ld+json"> 28 { 29 "@context": "https://schema.org", 30 "@type": "BreadcrumbList", 31 "itemListElement": [{ 32 "@type": "ListItem", 33 "position": 1, 34 "name": "Home", 35 "item": "https://grasscompany.com" 36 }] 37 } 38 </script>
38 39 40 41 <link rel="preload" href="//grasscompany.com/cdn/fonts/jost/jost_n7.921dc18c13fa0b0c94c5e2517ffe06139c3615a3.woff2" as="font" type="font/woff2" crossorigin><style> 42 /* Typography (heading) */ 43 @font-face { 44 font-family: Jost; 45 font-weight: 700; 46 font-style: normal; 47 font-display: swap; 48 src: url("//grasscompany.com/cdn/fonts/jost/jost_n7.921dc18c13fa0b0c94c5e2517ffe06139c3615a3.woff2") format("woff2"), 49 url("//grasscompany.com/cdn/fonts/jost/jost_n7.cbfc16c98c1e195f46c536e775e4e959c5f2f22b.woff") format("woff"); 50} 51 52@font-face { 53 font-family: Jost; 54 font-weight: 700; 55 font-style: italic; 56 font-display: swap; 57 src: url("//grasscompany.com/cdn/fonts/jost/jost_i7.d8201b854e41e19d7ed9b1a31fe4fe71deea6d3f.woff2") format("woff2"), 58 url("//grasscompany.com/cdn/fonts/jost/jost_i7.eae515c34e26b6c853efddc3fc0c552e0de63757.woff") format("woff"); 59} 60 61/* Typography (body) */ 62 63 64 65 66:root {--heading-color: 28, 3, 28; 67 --text-color: 0, 0, 0; 68 --background: 239, 236, 226; 69 --secondary-background: 255, 255, 255; 70 --border-color: 203, 201, 192; 71 --border-color-darker: 143, 142, 136; 72 --success-color: 63, 155, 64; 73 --success-background: 204, 220, 194; 74 --error-color: 222, 42, 42; 75 --error-background: 238, 222, 213; 76 --primary-button-background: 253, 161, 23; 77 --primary-button-text-color: 255, 255, 255; 78 --secondary-button-background: 80, 124, 75; 79 --secondary-button-text-color: 255, 255, 255; 80 --product-star-rating: 246, 164, 41; 81 --product-on-sale-accent: 63, 155, 64; 82 --product-sold-out-accent: 111, 113, 155; 83 --product-custom-label-background: 64, 93, 230; 84 --product-custom-label-text-color: 255, 255, 255; 85 --product-custom-label-2-background: 243, 255, 52; 86 --product-custom-label-2-text-color: 0, 0, 0; 87 --product-low-stock-text-color: 222, 42, 42; 88 --product-in-stock-text-color: 46, 158, 123; 89 --loading-bar-background: 0, 0, 0; 90 91 /* We duplicate some "base" colors as root colors, which is useful to use on drawer elements or popover without. Those should not be overridden to avoid issues */ 92 --root-heading-color: 28, 3, 28; 93 --root-text-color: 0, 0, 0; 94 --root-background: 239, 236, 226; 95 --root-border-color: 203, 201, 192; 96 --root-primary-button-background: 253, 161, 23; 97 --root-primary-button-text-color: 255, 255, 255; 98 99 --base-font-size: 15px; 100 --heading-font-family: Jost, sans-serif; 101 --heading-font-weight: 700; 102 --heading-font-style: normal; 103 --heading-text-transform: uppercase; 104 --text-font-family: Helvetica, Arial, sans-serif; 105 --text-font-weight: 400; 106 --text-font-style: normal; 107 --text-font-bold-weight: 700; 108 109 /* Typography (font size) */ 110 --heading-xxsmall-font-size: 10px; 111 --heading-xsmall-font-size: 10px; 112 --heading-small-font-size: 11px; 113 --heading-large-font-size: 32px; 114 --heading-h1-font-size: 32px; 115 --heading-h2-font-size: 28px; 116 --heading-h3-font-size: 26px; 117 --heading-h4-font-size: 22px; 118 --heading-h5-font-size: 18px; 119 --heading-h6-font-size: 16px; 120 121 /* Control the look and feel of the theme by changing radius of various elements */ 122 --button-border-radius: 8px; 123 --block-border-radius: 16px; 124 --block-border-radius-reduced: 8px; 125 --color-swatch-border-radius: 100%; 126 127 /* Button size */ 128 --button-height: 48px; 129 --button-small-height: 40px; 130 131 /* Form related */ 132 --form-input-field-height: 48px; 133 --form-input-gap: 16px; 134 --form-submit-margin: 24px; 135 136 /* Product listing related variables */ 137 --product-list-block-spacing: 32px; 138 139 /* Video related */ 140 --play-button-background: 239, 236, 226; 141 --play-button-arrow: 0, 0, 0; 142 143 /* RTL support */ 144 --transform-logical-flip: 1; 145 --transform-origin-start: left; 146 --transform-origin-end: right; 147 148 /* Other */ 149 --zoom-cursor-svg-url: url(//grasscompany.com/cdn/shop/t/4/assets/zoom-cursor.svg?v=180070568961737166521774004865); 150 --arrow-right-svg-url: url(//grasscompany.com/cdn/shop/t/4/assets/arrow-right.svg?v=89889918158891904811774004865); 151 --arrow-left-svg-url: url(//grasscompany.com/cdn/shop/t/4/assets/arrow-left.svg?v=178386178466108874631774004865); 152 153 /* Some useful variables that we can reuse in our CSS. Some explanation are needed for some of them: 154 - container-max-width-minus-gutters: represents the container max width without the edge gutters 155 - container-outer-width: considering the screen width, represent all the space outside the container 156 - container-outer-margin: same as container-outer-width but get set to 0 inside a container 157 - container-inner-width: the effective space inside the container (minus gutters) 158 - grid-column-width: represents the width of a single column of the grid 159 - vertical-breather: this is a variable that defines the global "spacing" between sections, and inside the section 160 to create some "breath" and minimum spacing 161 */ 162 --container-max-width: 1600px; 163 --container-gutter: 24px; 164 --container-max-width-minus-gutters: calc(var(--container-max-width) - (var(--container-gutter)) * 2); 165 --container-outer-width: max(calc((100vw - var(--container-max-width-minus-gutters)) / 2), var(--container-gutter)); 166 --container-outer-margin: var(--container-outer-width); 167 --container-inner-width: calc(100vw - var(--container-outer-width) * 2); 168 169 --grid-column-count: 10; 170 --grid-gap: 24px; 171 --grid-column-width: calc((100vw - var(--container-outer-width) * 2 - var(--grid-gap) * (var(--grid-column-count) - 1)) / var(--grid-column-count)); 172 173 --vertical-breather: 28px; 174 --vertical-breather-tight: 28px; 175 176 /* Shopify related variables */ 177 --payment-terms-background-color: #efece2; 178 } 179 180 @media screen and (min-width: 741px) { 181 :root { 182 --container-gutter: 20px; 183 --grid-column-count: 20; 184 --vertical-breather: 40px; 185 --vertical-breather-tight: 40px; 186 187 /* Typography (font size) */ 188 --heading-xsmall-font-size: 11px; 189 --heading-small-font-size: 12px; 190 --heading-large-font-size: 48px; 191 --heading-h1-font-size: 48px; 192 --heading-h2-font-size: 36px; 193 --heading-h3-font-size: 30px; 194 --heading-h4-font-size: 22px; 195 --heading-h5-font-size: 18px; 196 --heading-h6-font-size: 16px; 197 198 /* Form related */ 199 --form-input-field-height: 52px; 200 --form-submit-margin: 32px; 201 202 /* Button size */ 203 --button-height: 52px; 204 --button-small-height: 44px; 205 } 206 } 207 208 @media screen and (min-width: 1200px) { 209 :root { 210 --vertical-breather: 48px; 211 --vertical-breather-tight: 48px; 212 --product-list-block-spacing: 48px; 213 214 /* Typography */ 215 --heading-large-font-size: 58px; 216 --heading-h1-font-size: 50px; 217 --heading-h2-font-size: 44px; 218 --heading-h3-font-size: 32px; 219 --heading-h4-font-size: 26px; 220 --heading-h5-font-size: 22px; 221 --heading-h6-font-size: 16px; 222 } 223 } 224 225 @media screen and (min-width: 1600px) { 226 :root { 227 --vertical-breather: 48px; 228 --vertical-breather-tight: 48px; 229 } 230 } 231</style> 232
232<script> 233 // This allows to expose several variables to the global scope, to be used in scripts 234 window.themeVariables = { 235 settings: { 236 direction: "ltr", 237 pageType: "cart", 238 cartCount: 0, 239 moneyFormat: "â¬{{amount_with_comma_separator}}", 240 moneyWithCurrencyFormat: "â¬{{amount_with_comma_separator}} EUR", 241 showVendor: false, 242 discountMode: "saving", 243 currencyCodeEnabled: false, 244 cartType: "drawer", 245 cartCurrency: "EUR", 246 mobileZoomFactor: 2.5 247 }, 248 249 routes: { 250 host: "grasscompany.com", 251 rootUrl: "\/", 252 rootUrlWithoutSlash: '', 253 cartUrl: "\/cart", 254 cartAddUrl: "\/cart\/add", 255 cartChangeUrl: "\/cart\/change", 256 searchUrl: "\/search", 257 predictiveSearchUrl: "\/search\/suggest", 258 productRecommendationsUrl: "\/recommendations\/products" 259 }, 260 261 strings: { 262 accessibilityDelete: "Verwijderen", 263 accessibilityClose: "Sluiten", 264 collectionSoldOut: "Uitverkocht", 265 collectionDiscount: "SALE ", 266 productSalePrice: "Kortingsprijs", 267 productRegularPrice: "Normale prijs", 268 productFormUnavailable: "Niet beschikbaar", 269 productFormSoldOut: "Uitverkocht", 270 productFormPreOrder: "Pre-order", 271 productFormAddToCart: "Voeg toe aan winkelwagen", 272 searchNoResults: "Geen resultaten gevonden.", 273 searchNewSearch: "Nieuwe zoekopdracht", 274 searchProducts: "Producten", 275 searchArticles: "Journal", 276 searchPages: "Pagina\u0026#39;s", 277 searchCollections: "Collecties", 278 cartViewCart: "Bekijk winkelwagen", 279 cartItemAdded: "Product is toegevoegd aan je winkelwagen!", 280 cartItemAddedShort: "Toegevoegd aan je winkelwagen!", 281 cartAddOrderNote: "Voeg bestelnotitie toe", 282 cartEditOrderNote: "Bewerk bestelnotitie", 283 shippingEstimatorNoResults: "Sorry, we verzenden niet naar dit adres.", 284 shippingEstimatorOneResult: "Er is één verzendoptie voor dit adres:", 285 shippingEstimatorMultipleResults: "Er zijn verschillende verzendopties voor dit adres:", 286 shippingEstimatorError: "Er is een fout opgetreden bij het ophalen van de verzendopties:" 287 }, 288 289 libs: { 290 flickity: "\/\/grasscompany.com\/cdn\/shop\/t\/4\/assets\/flickity.js?v=160317638643873865291699448202", 291 photoswipe: "\/\/grasscompany.com\/cdn\/shop\/t\/4\/assets\/photoswipe.js?v=132268647426145925301681113871", 292 qrCode: "\/\/grasscompany.com\/cdn\/shopifycloud\/storefront\/assets\/themes_support\/vendor\/qrcode-1f6c2eb7.js" 293 }, 294 295 breakpoints: { 296 phone: 'screen and (max-width: 740px)', 297 tablet: 'screen and (min-width: 741px) and (max-width: 999px)', 298 tabletAndUp: 'screen and (min-width: 741px)', 299 pocket: 'screen and (max-width: 999px)', 300 lap: 'screen and (min-width: 1000px) and (max-width: 1199px)', 301 lapAndUp: 'screen and (min-width: 1000px)', 302 desktop: 'screen and (min-width: 1200px)', 303 wide: 'screen and (min-width: 1400px)' 304 } 305 }; 306 307 window.addEventListener('pageshow', async () => { 308 const cartContent = await (await fetch(`${window.themeVariables.routes.cartUrl}.js`, {cache: 'reload'})).json(); 309 document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {detail: {cart: cartContent}})); 310 }); 311 312 if ('noModule' in HTMLScriptElement.prototype) { 313 // Old browsers (like IE) that does not support module will be considered as if not executing JS at all 314 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 315 316 requestAnimationFrame(() => { 317 const viewportHeight = (window.visualViewport ? window.visualViewport.height : document.documentElement.clientHeight); 318 document.documentElement.style.setProperty('--window-height',viewportHeight + 'px'); 319 }); 320 }</script>
320 321 322 <link rel="stylesheet" href="//grasscompany.com/cdn/shop/t/4/assets/theme.css?v=69002466515971871661732809920"> 323 <link rel="stylesheet" href="//grasscompany.com/cdn/shop/t/4/assets/newfive.css?v=133863267787335580921699701988"> 324 325
325<script src="//grasscompany.com/cdn/shop/t/4/assets/vendor.js?v=31715688253868339281681113866" defer></script>
325 326
326<script src="//grasscompany.com/cdn/shop/t/4/assets/theme.js?v=100583677007587302941681113866" defer></script>
326 327
327<script src="//grasscompany.com/cdn/shop/t/4/assets/custom.js?v=167639537848865775061681113865" defer></script>
327<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
327<meta name="facebook-domain-verification" content="ymyueo3ikhxhh39dbry5l5hb8lnqv0"> 328<meta name="google-site-verification" content="do_jKZpuV0MNz6o55BpKoQalAfg775XRfj_jYJRcquE"> 329<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/73971564852/digital_wallets/dialog"> 330<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"> 331 332 333 334 335 336 337 338
339<script async="async" src="/checkouts/internal/preloads.js?locale=nl-NL"></script>
vendor: 1 bytes, line 339
339
340<script id="shopify-features" type="application/json">{"accessToken":"40c003071a384b945e1d8cd38ba7b350","betas":["rich-media-storefront-analytics"],"domain":"grasscompany.com","predictiveSearch":true,"shopId":73971564852,"locale":"nl"}</script>
vendor: 1 bytes, line 340
340
341<script>var Shopify = Shopify || {}; 342Shopify.shop = "grasscompany.myshopify.com"; 343Shopify.locale = "nl"; 344Shopify.currency = {"active":"EUR","rate":"1.0"}; 345Shopify.country = "NL"; 346Shopify.theme = {"name":"Grasscompany\/main","id":147907477812,"schema_name":"Focal","schema_version":"10.0.1","theme_store_id":null,"role":"main"}; 347Shopify.theme.handle = "null"; 348Shopify.theme.style = {"id":null,"handle":null}; 349Shopify.cdnHost = "grasscompany.com/cdn"; 350Shopify.routes = Shopify.routes || {}; 351Shopify.routes.root = "/"; 352Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 353Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 354Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 355Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 355
355
356<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 356
356
357<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 357
357
358<script> 359 window.Shopify = window.Shopify || {}; 360 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 361 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 362 window.Shopify.SignInWithShop.eligible = true; 363</script>
vendor: 1 bytes, line 363
363
364<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 364
364
365<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.nl.esm.js"></script>
vendor: 1 bytes, line 365
365
366<script type="module"> 367 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.nl.esm.js"); 368 369 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 370 371</script>
vendor: 1 bytes, line 371
371
372<script> 373 window.Shopify = window.Shopify || {}; 374 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 375 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.nl.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.nl.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.nl.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.nl.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.nl.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.nl.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.nl.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.nl.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.nl.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.nl.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.nl.esm.js"],"listener":["modules/v2/loader.listener.nl.esm.js"],"pay-button":["modules/v2/loader.pay-button.nl.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.nl.esm.js"],"shop-button":["modules/v2/loader.shop-button.nl.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.nl.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.nl.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.nl.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.nl.esm.js"],"shop-login":["modules/v2/loader.shop-login.nl.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.nl.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.nl.esm.js"]}; 376</script>
vendor: 1 bytes, line 376
376
377<script>(function() { 378 var isLoaded = false; 379 function asyncLoad() { 380 if (isLoaded) return; 381 isLoaded = true; 382 var urls = ["https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=RnVrx9\u0026shop=grasscompany.myshopify.com"]; 383 for (var i = 0; i < urls.length; i++) { 384 var s = document.createElement('script'); 385 s.type = 'text/javascript'; 386 s.async = true; 387 s.src = urls[i]; 388 var x = document.getElementsByTagName('script')[0]; 389 x.parentNode.insertBefore(s, x); 390 } 391 }; 392 if(window.attachEvent) { 393 window.attachEvent('onload', asyncLoad); 394 } else { 395 window.addEventListener('load', asyncLoad, false); 396 } 397})();</script>
vendor: 1 bytes, line 397
397
398<script id="__st">var __st={"a":73971564852,"offset":7200,"reqid":"d5a65882-7928-49f2-a430-2f2f9a26e602-1791290718","pageurl":"grasscompany.com\/cart","u":"21c2c72e923d","p":"cart"};</script>
vendor: 1 bytes, line 398
398
399<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 399
399
400<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Beschermd door hCaptcha',privacyText:'Privacy',termsText:'Voorwaarden'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
vendor: 1 bytes, line 400
400
401<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//grasscompany.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 401
401
402<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//grasscompany.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
402<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 402
402
403<script> 404 window.Shopify = window.Shopify || {}; 405 window.Shopify.MCP = window.Shopify.MCP || {}; 406 window.Shopify.MCP.enabled = true; 407 window.Shopify.MCP.shop = "grasscompany.myshopify.com"; 408 window.Shopify.MCP.mcpEndpoint = "https:\/\/grasscompany.com\/api\/mcp"; 409 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 410</script>
vendor: 1 bytes, line 410
410
411<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/grasscompany.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 412</script>
vendor: 1 bytes, line 412
412
413<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://grasscompany.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.nl.js",t.type="module",document.head.appendChild(t)}}; 414</script>
vendor: 1 bytes, line 414
414
415<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 416 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 417</script>
vendor: 1 bytes, line 417
417
418<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 419</script>
419 420
421<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script 422 <!-- BEGIN app block: shopify://apps/avp-age-verification/blocks/app-embed/0b530eb8-f19c-4a9b-87d4-bf625c71dec9 --> 423 424 425 426 <link 427 rel="preload" 428 href="https://cdn.shopify.com/extensions/01a110ac-3eb0-7347-88a1-04ec3c1966a2/avp-age-verification-189/assets/gm_age.min.css" 429 as="style" 430 onload="this.onload=null;this.rel='stylesheet'" 431 > 432 <noscript> 433 <link rel="stylesheet" href="https://cdn.shopify.com/extensions/01a110ac-3eb0-7347-88a1-04ec3c1966a2/avp-age-verification-189/assets/gm_age.min.css"> 434 </noscript> 435 436
437<script type="text/javascript" defer> 438 window.age_base_url = "https://age.gminfotech.net/"; 439 440 window.APP_PLAN_STATUS = 1; 441 442 window.gm_age_appmeta ="";window.gm_tac_appmeta ="";!function(){const e=window.Shopify?.locale||"",o=["PT-BR","PT-PT","ZH-CN","ZH-TW"].includes(e.toUpperCase())?e.replace("-","_"):e.split("-")[0],a=`${(window.Shopify?.country||"").toUpperCase()}-${o.toUpperCase()}`;window.gmavpPreloadImage=function(e){if(!e)return;if(document.querySelector(`link[rel="preload"][href="${e}"]`))return;const o=document.createElement("link");o.rel="preload",o.as="image",o.href=e,o.fetchPriority="high",document.head.appendChild(o)},window.gm_age_appmeta&&(window.x=window.gm_age_appmeta.data?.[a]??window.gm_age_appmeta.data?.[window.gm_age_appmeta.default_data],1===Number(window.x?.is_popup_bg_img_show)&&window.x.popup_bg_img&&window.gmavpPreloadImage(window.age_base_url+"assets/img/banner/"+window.x.popup_bg_img),1===Number(window.x?.is_popup_out_bg_img_show)&&window.x.popup_background_cover_img&&window.gmavpPreloadImage(window.age_base_url+"assets/img/banner/"+window.x.popup_background_cover_img),1===Number(window.x?.is_logo_show)&&window.x.logo&&window.gmavpPreloadImage(window.age_base_url+"assets/img/visual_images/"+window.x.logo)),window.gm_tac_appmeta&&(window.t=window.gm_tac_appmeta.data?.[a]??window.gm_tac_appmeta.data?.[window.gm_tac_appmeta.default_data]),function(){const e={"Nanum Brush Script":"NanumBrushScript-Regular","Cedarville Cursive":"Cedarville-Cursive",Lumanosimo:"Lumanosimo-Regular","EB Garamond":"EBGaramond","Courier Prime":"CourierPrime-Regular",Pangolin:"Pangolin-Regular",Rubik:"Rubik",Tahoma:"tahoma"},o=[window.x?.heading_text_font,window.x?.sub_heading_text_font,window.x?.button1_text_font,window.x?.button2_text_font,window.t?.cart_checkout_text_font,window.t?.cart_checkout_description_text_font],a=e=>{if(!e)return;const a=document.createElement("div");a.innerHTML=e,a.querySelectorAll("[style]").forEach(e=>{e.style.fontFamily&&o.push(e.style.fontFamily)})};a(window.x?.privacy_policy_text),a(window.x?.pop_up_tnc_description);[...new Set(o.filter(Boolean).map(e=>String(e).replace(/font-family\s*:/gi,"").replace(/!important/gi,"").replace(/['"]/g,"").replace(/;/g,"").split(",")[0].trim()).filter(o=>e[o]))].forEach(o=>{const a=window.age_base_url+"assets/font/"+e[o]+".woff2";if(document.querySelector(`link[rel="preload"][href="${a}"]`))return;const t=document.createElement("link");t.rel="preload",t.as="font",t.type="font/woff2",t.crossOrigin="anonymous",t.href=a,document.head.appendChild(t)})}()}(); 443 444 445 446 447 448 window.age_cartProductTags = "".split(','); 449 450 451 window.age_productTags = null; 452 453 window.ageProductId = ''; 454 455 456 457 window.ageCollectionId = []; 458 459 460 461 462 463 464 465 466 467 console.log( 468 '%c%s', 469 'background: #ff0000; color: #fff; font-size: 10px; font-weight:bold; padding: 5px 10px; border-radius: 3px', 470 'Age verification popup - By Gminfotech Inc' 471 ); 472</script>
472 473<!-- END app block --><!-- BEGIN app block: shopify://apps/frequently-bought/blocks/app-embed-block/b1a8cbea-c844-4842-9529-7c62dbab1b1f -->
473<script> 474 window.codeblackbelt = window.codeblackbelt || {}; 475 window.codeblackbelt.shop = window.codeblackbelt.shop || 'grasscompany.myshopify.com'; 476 </script>
476<script src="//cdn.codeblackbelt.com/widgets/frequently-bought-together/main.min.js?version=2026100614+0200" async></script>
476 477 <!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 478 479 480 481 482 483 484 485 486 487 488 489 490
490<script async src="https://static.klaviyo.com/onsite/js/RnVrx9/klaviyo.js?company_id=RnVrx9"></script>
490 491
491<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
491 492 493 494 495 496 497 498
498<script> 499 window.klaviyoReviewsProductDesignMode = false 500 </script>
500 501 502 503 504 505 506 507 508 509 510<!-- END app block --><!-- BEGIN app block: shopify://apps/inbox/blocks/chat/841fc607-4181-4ad1-842d-e24d7f8bad6b --><link rel='modulepreload' href='https://cdn.shopify.com/storefront/web-components/chat.js' crossorigin fetchpriority='low'> 511
512<script id='shopify-chat-app-embed-data' type='application/json'> 513 { 514 "settings": { 515 "invertActivatorColors": true, 516 "greetingMessage": "ð Hallo, stuur ons een bericht als je vragen hebt. We helpen je graag!", 517 "showFeaturedProducts": true, 518 "featuredProducts": [], 519 "horizontalPosition": "bottom_left", 520 "icon": "chat_bubble", 521 "buttonLabel": "Stuur ons een bericht" 522 } 523 } 524</script>
524 525 526<style data-shopify> 527 528 529 /* Shadow DOM content does not prevent theme-wide :empty rules from matching the host. */ 530 shopify-chat:defined:empty { 531 display: grid; 532 } 533 534 :root { 535 --shopify-chat-bg-color: #FFFFFF; 536 --shopify-chat-text-color: #000000; 537 --shopify-chat-accent-bg-color: #000000; 538 --shopify-chat-accent-text-color: #FFFFFF; 539 --shopify-chat-activator-offset: 20px; 540 541 542 543 --shopify-chat-activator-font-size: 16px; 544 --shopify-chat-border-radius: 16px; 545 } 546 547 548</style> 549
550<script src='https://cdn.shopify.com/storefront/web-components/chat.js' type='module' crossorigin fetchpriority='low' async></script>
550 551 552 553<!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 --><!-- BEGIN app snippet: elevar-cart-data -->
553<script type="application/json" id="elevar-cart-data" dynamic>{ 554 "isOnCartPage":true, 555 "marketId": "51549471028", 556 "localeCountryCode":"NL", 557 "attributes":{}, 558 "cartTotal": "0.0", 559 "currencyCode":"EUR", 560 "items": [] 561} 562</script>
562 563<!-- END app snippet --><!-- BEGIN app snippet: elevar-user -->
563<script type="application/json" id="elevar-user" dynamic> 564{ 565 "cartTotal": "0.0", 566 "currencyCode":"EUR", 567 "customer": {"id": null,"email": null,"firstName": null,"lastName": null,"phone": null,"city": null,"zip": null,"address1": null,"address2": null,"country": null,"countryCode": null,"province": null,"provinceCode": null,"tags": null} 568} 569</script>
569 570<!-- END app snippet --><!-- BEGIN app snippet: elevar-collection-view -->
570<script type="application/json" id="elevar-collection-view" dynamic>null</script>
570 571<!-- END app snippet --><!-- BEGIN app snippet: elevar-search-results-view -->
571<script type="application/json" id="elevar-search-results-view" dynamic>null</script>
571 572<!-- END app snippet --><!-- BEGIN app snippet: elevar-product-view -->
572<script type="application/json" id="elevar-product-view" dynamic>null</script>
572 573<!-- END app snippet --> 574
575<script type="module" dynamic> 576 const configUrl = "/a/elevar/static/configs/e790f445b082e087583179fd84675d48d55e7d4c/config.js"; 577 const config = (await import(configUrl)).default; 578 const scriptUrl = config.script_src_app_theme_embed; 579 580 if (scriptUrl) { 581 const { handler } = await import(scriptUrl); 582 583 const readDomLiquidSnippet = id => { 584 const element = document.querySelector(`#${id}`); 585 return JSON.parse(element?.textContent ?? "null"); 586 }; 587 588 const stripNullProperties = object => { 589 return Object.fromEntries( 590 Object.entries(object).filter(([_k, v]) => v !== null) 591 ); 592 }; 593 594 const getLiquidSnippetsFromDom = () => { 595 const cartData = readDomLiquidSnippet("elevar-cart-data"); 596 const user = readDomLiquidSnippet("elevar-user"); 597 598 return { 599 cartData, 600 user: { ...user, customer: stripNullProperties(user.customer) }, 601 isOnCartPage: cartData.isOnCartPage, 602 collectionView: readDomLiquidSnippet("elevar-collection-view"), 603 searchResultsView: readDomLiquidSnippet("elevar-search-results-view"), 604 productView: readDomLiquidSnippet("elevar-product-view") 605 }; 606 }; 607 608 await handler(config, getLiquidSnippetsFromDom()); 609 } 610</script>
610 611 612 613<!-- END app block --><!-- BEGIN app block: shopify://apps/platmart-color-swatches/blocks/collection-swatches/3d4801b8-13e2-488f-8d06-69ca04fc155d --><!-- BEGIN app snippet: widgets-config -->
613<script> 614 window.platmartSwatchesConfig = { 615 enabled: true, 616 country: 'NL', 617 language: 'NL', 618 productWidgetVersion: '5', 619 productWidgetEnabled: true, 620 showLabel: true, 621 label: "{{option_name}}: {{current_value}}", 622 collectionWidgetVersion: '5', 623 collectionWidgetEnabled: false, 624 unifiedCollectionWidget: false, 625 classicCollectionMarkup: false, 626 collectionGroupsNewTooltip: true, 627 collectionGroupsMode: 'navigate', 628 proxyPath: '/a/pl-swatches', 629 appHost: 'app.colorswatchesapp.com', 630 apiHost: 'api.colorswatchesapp.com', 631 suppressWidgetErrors: false, 632 storefrontToken: 'a396e85f286f8d3af80cb9be14550b94', 633 cssVariables: '--pl-swatch-radius: 50%; --pl-swatch-pill-radius: 1.2rem; --pl-swatch-size: 37px; --pl-swatch-margin-top: 0px; --pl-swatch-margin-bottom: 15px; --pl-swatch-collection-margin-top: 5px; --pl-swatch-collection-margin-bottom: 0px;', 634 swatchRadius: '50%', 635 buttonRadius: '1.2rem', 636 imageFit: 'cover', 637 handleOutOfStock: true, 638 outOfStockStyle: 'hide', 639 collectionSwatchSize: '20px', 640 collectionSwatchHeight: '20px', 641 collectionSwatchesLimit: 5, 642 collectionSwatchesLimitDesktop: 5, 643 collectionSwatchesLimitMobile: 5, 644 collectionShowHiddenCount: false, 645 collectionHiddenCountPosition: 'right', 646 collectionCardSelector: "", 647 collectionPositionSelector: "", 648 collectionTargetPosition: "", 649 collectionExcludedSelectors: "", 650 collectionSelectorMode: "override", 651 collectionImageSelector: "", 652 collectionPriceSelector: "", 653 collectionCompareAtPriceSelector: "", 654 collectionHideSelector: "", 655 collectionSwatchesPills: true, 656 collectionCurrentSwatchFirst: false, 657 collectionDisplay: 'swatches', 658 collectionCountOnlyText: '{{count}} color(s)', 659 collectionSwatchMobileAlignment: 'center', 660 collectionSwatchDesktopAlignment: 'center', 661 tooltipEnabled: false, 662 tooltipPosition: 'top', 663 variantSwatchesEnabled: false, 664 variantSwatchesStatus: 'disabled', 665 variantSwatchesProducts: [], 666 variantSwatchesDisplayedOn: 'products_and_collections', 667 optionsData: {"Color":{"swatch_style":"button","values":{},"_lookup":{"Schwarz":"Zwart","Black":"Zwart","Noir":"Zwart","Sortiment":"Assorti","Assorted":"Assorti","Assortiment":"Assorti","Sortiert":"Assorti","Silber":"Zilver","Silver":"Zilver","Argent":"Zilver","Blau":"Blauw","Blue":"Blauw","Bleu":"Blauw","Transparent":"Transparant","Grün":"Groen","Green":"Groen","Vert":"Groen","WeiÃ":"Wit","White":"Wit","Blanc":"Wit","Orange":"Oranje","Rot":"Rood","Red":"Rood","Rouge":"Rood","Gelb":"Geel","Yellow":"Geel","Jaune":"Geel","Gold":"Goud","Or":"Goud","Lila":"Paars","Purple":"Paars","Violet":"Paars","Grau":"Grijs","Gray":"Grijs","Gris":"Grijs","Rosa":"Roze","Pink":"Roze","Rose":"Ros�� Goud","Braun":"Bruin","Brown":"Bruin","Brun":"Bruin","Regenbogen":"Regenboog","Rainbow":"Regenboog","arc en ciel":"Regenboog","Chrom":"Chroom","Chrome":"Chroom","Käufer":"Koper","Buyer":"Koper","Acheteur":"Koper","Edelstahl":"RVS","Stainless steel":"RVS","Acier inoxydable":"RVS","Schwarzes Silber":"Zwart \/ Zilver","Black \/ Silver":"Zwart \/ Zilver","Noir argent":"Zwart \/ Zilver","Silber grau":"Zilver \/ Grijs","Silver gray":"Zilver \/ Grijs","Gris argent":"Zilver \/ Grijs","Rotguss":"Gun Metal","Gunmetal":"Gun Metal","Métal":"Gun Metal","Holz":"Hout","Wood":"Hout","Bois":"Hout","Metallisches Grau":"Metallic Grijs","Metallic Gray":"Metallic Grijs","Gris métallique":"Metallic Grijs","Schwarzgrau":"Zwart \/ Grijs","Black gray":"Zwart \/ Grijs","Gris-noir":"Zwart \/ Grijs","Schwarz Rot":"Zwart \/ Rood","Black red":"Zwart \/ Rood","Noir rouge":"Zwart \/ Rood","Schwarz Blau":"Zwart \/ Blauw","Black \/ Blue":"Zwart \/ Blauw","Noir \/ bleu":"Zwart \/ Blauw","Bronze":"Brons","bronze":"Brons","Roségold":"Ros�� Goud","Rose Gold":"Ros�� Goud","Natürliche Baumwolle":"Natuurlijk Katoen","Natural Cotton":"Natuurlijk Katoen","Coton naturel":"Natuurlijk Katoen","moosgrün":"Mosgroen","Moss green":"Mosgroen","Vert mousse":"Mosgroen"}},"Grootte":{"swatch_style":"button","values":{},"_lookup":{"100 Stück":"100 stuks","100 pieces":"100 stuks","40 Stücke":"40 Stuks","40 pieces":"40 Stuks","40 pièces":"40 Stuks"}},"Kleur":{"swatch_style":"button","values":{},"_lookup":{"Diamantplatte":"Traanplaat","Tear plate":"Traanplaat","Plaque de larme":"Traanplaat","Tarnung":"Camouflage","Dschungel":"Jungle"}},"Waardes":{"swatch_style":"button","values":{},"_lookup":{}},"_name_lookup":{"farbe":"Kleur","couleur":"Kleur","gröÃe":"Grootte","size":"Grootte","taille":"Grootte","colour":"Kleur","wertvoll":"Waardes","valuable":"Waardes","précieux":"Waardes","color":"Color","grootte":"Grootte","kleur":"Kleur","waardes":"Waardes"}}, 668 variantsCssVariables: '--variants-gap: 12px; --variants-button-font-size: 14px; --variants-button-v-padding: 8px; --variants-button-h-padding: 12px;
668 --variants-button-min-width: 20px; --variants-button-border-radius: 0.5rem; --variants-dropdown-font-size: 16px; --variants-dropdown-v-padding: 10px; --variants-dropdown-h-padding: 16px; --variants-dropdown-border-radius: 0.5rem; --variants-color-size: 32px; --variants-color-height: 32px; --variants-color-border-radius: 50%; --variants-color-image-fit: cover; --variants-image-size: 32px; --variants-image-height: 32px; --variants-image-border-radius: 50%; --variants-image-image-fit: cover', 669 bundlesEnabled: false, 670 variantsHideSingleValue: false, 671 variantsButtonOutOfStockStyle: 'strike_through', 672 variantsColorOutOfStockStyle: 'cross_out', 673 variantsOutOfStockLast: false, 674 productVariantPickerSelector: "", 675 productVariantExcludedSelectors: "", 676 productVariantOptionSelector: "", 677 moneyFormat: "â¬{{amount_with_comma_separator}}", 678 soldOutLabel: "uitverkocht" 679 } 680</script>
680 681<!-- END app snippet --> 682 683<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
684<script type="text/javascript"> 685 (function (c, l, a, r, i, t, y) { 686 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 687 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 688 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 689 690 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 691 if (error) { 692 console.error("Error loading Shopify features:", error); 693 return; 694 } 695 696 c[a]('consentv2', { 697 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 698 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 699 source: 101, 700 }); 701 }); 702 703 l.addEventListener("visitorConsentCollected", function (e) { 704 c[a]('consentv2', { 705 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 706 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 707 source: 101, 708 }); 709 }); 710 })(window, document, "clarity", "script", "x9ekec8af9"); 711</script>
711 712 713 714 715<!-- END app block --><!-- BEGIN app block: shopify://apps/sc-easy-redirects/blocks/app/be3f8dbd-5d43-46b4-ba43-2d65046054c2 --> 716 <!-- common for all pages --> 717 718 719 720
720<script src="https://cdn.shopify.com/extensions/019feafe-a942-7fff-96d6-964177dec909/sc-easy-redirects-16/assets/esc-redirect-app.js" async></script>
720 721 722 723 724 725 726 727<!-- END app block -->
727<script src="https://cdn.shopify.com/extensions/01a110ac-3eb0-7347-88a1-04ec3c1966a2/avp-age-verification-189/assets/front-avpage.min.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 727
727
728<script src="https://cdn.shopify.com/extensions/01a10abb-d2f1-70ea-97f5-6e34a8295f49/fast-product-colors-2097/assets/collection-swatches.js" type="text/javascript" defer="defer"></script>
728 729<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
730<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 73971564852,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "cart"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 730
730
731<script> 732 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 733</script>
vendor: 1 bytes, line 733
733
734<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
734).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 73971564852,storefrontBaseUrl: "https://grasscompany.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://grasscompany.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2825519427","configuration":"{\"projectId\":\"x9ekec8af9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
734,"dataSharingState":"unrestricted"},{"id":"2646180163","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-6PV8SL79DX\\\",\\\"GT-NNVDF8PX\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-6PV8SL79DX\\\",\\\"MC-89N8RMPVDX\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-6PV8SL79DX\\\",\\\"MC-89N8RMPVDX\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-6PV8SL79DX\\\",\\\"MC-89N8RMPVDX\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-6PV8SL79DX\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2609381699","configuration":"{\"accountID\":\"RnVrx9\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"423625027","configuration":"{\"pixel_id\":\"1113846126608724\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"65569091","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/e790f445b082e087583179fd84675d48d55e7d4c\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Grasscompany.com","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"grasscompany.myshopify.com","countryCode":"NL","storefrontUrl":"https:\/\/grasscompany.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://grasscompany.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"147907477812","themePublished":"true","eventMetadataId":"fc8fc71b-8e05-46d9-8ec3-894278617
734d60","pageType":"cart","shopId":"73971564852","storefrontBaseUrl":"https:\/\/grasscompany.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
734<script> 735 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 736 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 737 window.ShopifyAnalytics.meta.currency = 'EUR'; 738 var meta = {"page":{"pageType":"cart","requestId":"d5a65882-7928-49f2-a430-2f2f9a26e602-1791290718"}}; 739 for (var attr in meta) { 740 window.ShopifyAnalytics.meta[attr] = meta[attr]; 741 } 742</script>
vendor: 1 bytes, line 742
742
743<script class="analytics"> 744 (function () { 745 var customDocumentWrite = function(content) { 746 var jquery = null; 747 748 if (window.jQuery) { 749 jquery = window.jQuery; 750 } else if (window.Checkout && window.Checkout.$) { 751 jquery = window.Checkout.$; 752 } 753 754 if (jquery) { 755 jquery('body').append(content); 756 } 757 }; 758 759 var hasLoggedConversion = function(token) { 760 if (token) { 761 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 762 } 763 return false; 764 } 765 766 var setCookieIfConversion = function(token) { 767 if (token) { 768 var twoMonthsFromNow = new Date(Date.now()); 769 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 770 771 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 772 } 773 } 774 775 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 776 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 777 if (trekkie.integrations) { 778 return; 779 } 780 trekkie.methods = [ 781 'identify', 782 'page', 783 'ready', 784 'track', 785 'trackForm', 786 'trackLink' 787 ]; 788 trekkie.factory = function(method) { 789 return function() { 790 var args = Array.prototype.slice.call(arguments); 791 args.unshift(method); 792 trekkie.push(args); 793 if (method == 'track' || method == 'page') { 794 var pageUrl; 795 try { 796 pageUrl = window.location.href; 797 } catch (e) {} 798 var pageReferrer; 799 try { 800 pageReferrer = document.referrer; 801 } catch (e) {} 802 try { 803 if (window.__TREKKIE_SHIM_QUEUE == null) { 804 window.__TREKKIE_SHIM_QUEUE = []; 805 } 806 window.__TREKKIE_SHIM_QUEUE.push({ 807 from: 'trekkie-stub', 808 method: method, 809 args: args.slice(1), 810 pageContext: { 811 url: pageUrl, 812 referrer: pageReferrer 813 } 814 }); 815 } catch (e) { 816 // no-op 817 } 818 } 819 return trekkie; 820 }; 821 }; 822 for (var i = 0; i < trekkie.methods.length; i++) { 823 var key = trekkie.methods[i]; 824 trekkie[key] = trekkie.factory(key); 825 } 826 trekkie.load = function(config) { 827 trekkie.config = config || {}; 828 trekkie.config.initialDocumentCookie = document.cookie; 829 var first = document.getElementsByTagName('script')[0]; 830var script = document.createElement('script'); 831script.type = 'text/javascript'; 832script.onerror = function(e) { 833 var scriptFallback = document.createElement('script'); 834 scriptFallback.type = 'text/javascript'; 835 scriptFallback.onerror = function(error) { 836 var Monorail = { 837 produce: function produce(monorailDomain, schemaId, payload) { 838 var currentMs = new Date().getTime(); 839 var event = { 840 schema_id: schemaId, 841 payload: payload, 842 metadata: { 843 event_created_at_ms: currentMs, 844 event_sent_at_ms: currentMs 845 } 846 }; 847 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 848 }, 849 sendRequest: function sendRequest(endpointUrl, payload) { 850 // Try the sendBeacon API 851 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 852 var blobData = new window.Blob([payload], { 853 type: 'text/plain' 854 }); 855 856 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 857 return true; 858 } // sendBeacon was not successful 859 860 } // XHR beacon 861 862 var xhr = new XMLHttpRequest(); 863 864 try { 865 xhr.open('POST', endpointUrl); 866 xhr.setRequestHeader('Content-Type', 'text/plain'); 867 xhr.send(payload); 868 } catch (e) { 869 console.log(e); 870 } 871 872 return false; 873 }, 874 isIos12: function isIos12() { 875 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 876 } 877 }; 878 Monorail.produce('monorail-edge.shopifysvc.com', 879 'trekkie_storefront_load_errors/1.1', 880 {shop_id: 73971564852, 881 theme_id: 147907477812, 882 app_name: "storefront", 883 context_url: window.location.href, 884 source_url: "//grasscompany.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 885 886 }; 887 scriptFallback.async = true; 888 scriptFallback.src = '//grasscompany.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 889 first.parentNode.insertBefore(scriptFallback, first); 890}; 891script.async = true; 892script.src = '//grasscompany.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 893first.parentNode.insertBefore(script, first); 894 895 }; 896 trekkie.load( 897 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":73971564852,"isMerchantRequest":null,"themeId":147907477812,"themeCityHash":"12291910314061958562","contentLanguage":"nl","currency":"EUR","eventMetadataId":"fc8fc71b-8e05-46d9-8ec3-894278617
897d60"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 898 ); 899 900 var loaded = false; 901 trekkie.ready(function() { 902 if (loaded) return; 903 loaded = true; 904 905 window.ShopifyAnalytics.lib = window.trekkie; 906 907 var originalDocumentWrite = document.write; 908 document.write = customDocumentWrite; 909 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 910 document.write = originalDocumentWrite; 911 912 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 913 var token = match? match[1]: undefined; 914 if (!hasLoggedConversion(token)) { 915 setCookieIfConversion(token); 916 917 } 918 }); 919 920 window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"d5a65882-7928-49f2-a430-2f2f9a26e602-1791290718","shopifyEmitted":true}); 921 922 var eventsListenerScript = document.createElement('script'); 923 eventsListenerScript.async = true; 924 eventsListenerScript.src = "//grasscompany.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 925 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 926})();</script>
vendor: 1 bytes, line 926
926
927<script 928 defer 929 src="https://grasscompany.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.5.min.js" 930 data-application="storefront-renderer" 931 data-shop-id="73971564852" 932 data-render-region="gcp-europe-west1" 933 data-page-type="cart" 934 data-theme-instance-id="147907477812" 935 data-theme-name="Focal" 936 data-theme-version="10.0.1" 937 data-monorail-region="shop_domain" 938 data-resource-timing-sampling-rate="10" 939 data-shs="true" 940 data-shs-beacon="true" 941 data-shs-export-with-fetch="true" 942 data-shs-logs-sample-rate="1" 943 data-shs-beacon-endpoint="https://grasscompany.com/api/collect" 944></script>
vendor: 1 bytes, line 944
944
945<script id="shopify-chat-page-data" type="application/json">{"greetingMessage":"Welkom bij Grasscompany.com. Hoe kan ik je helpen?","customerServiceEmail":"[email protected]","onlineStorePasswordProtected":false,"continueAsChip":false,"exportCommand":false,"translations":[{"key":"agent_chat.panel.open_chat","value":"Chat openen"},{"key":"agent_chat.panel.ask_anything","value":"Stel een vraag"},{"key":"agent_chat.panel.title","value":"Storekick"},{"key":"agent_chat.panel.unread_replies","value":"Ongelezen antwoorden"},{"key":"agent_chat.panel.back_to_chat","value":"Terug naar chat"},{"key":"agent_chat.panel.see_history","value":"Chatgeschiedenis bekijken"},{"key":"agent_chat.panel.new_chat","value":"Nieuwe chat aanmaken"},{"key":"agent_chat.panel.close","value":"Chat sluiten"},{"key":"agent_chat.panel.undock","value":"Chat losmaken"},{"key":"agent_chat.panel.dock","value":"Chat vastzetten"},{"key":"agent_chat.panel.expand","value":"Chat uitklappen"},{"key":"agent_chat.panel.contract","value":"Chat inklappen"},{"key":"agent_chat.panel.jump_to_latest","value":"Naar nieuwste gaan"},{"key":"agent_chat.panel.loading_chat","value":"Chat laden"},{"key":"agent_chat.input.label","value":"Typ je bericht"},{"key":"agent_chat.input.placeholder","value":"Stel een vraag..."},{"key":"agent_chat.input.send","value":"Verzenden"},{"key":"agent_chat.input.stop","value":"Genereren stoppen"},{"key":"agent_chat.thinking","value":"Denken..."},{"key":"agent_chat.searching","value":"Zoeken..."},{"key":"agent_chat.message.sent_timestamp","value":"Verzonden · {{time}}"},{"key":"agent_chat.message.automated_label","value":"Geautomatiseerd"},{"key":"agent_chat.message.automated_timestamp","value":"Geautomatiseerd · {{time}}"},{"key":"agent_chat.liveAgentHandoff","value":"Iemand van ons team is zo bij je"},{"key":"agent_chat.human_handoff.action","value":"Chatten met ons team"},{"key":"agent_chat.human_handoff.request","value":"Ik wil graag iemand van jullie team spreken"},{"key":"agent_chat.human_handoff.ai_assistant","value":"AI-assistent"},{"key":"agent_chat.greeting.default","value":"Hallo!"},{"key":"agent_chat.greeting.with_name","value":"Hallo {{name}}!"},{"key":"agent_chat.greeting.welcome","value":"Je kunt vragen stellen over winkelen, maten\/afmetingen, verzending, retouren of je bestelstatus."},{"key":"agent_chat.greeting.welcome_back","value":"Welkom terug bij %{shop_name}! Hoe kan ik je helpen?"},{"key":"agent_chat.greeting.welcome_back_no_shop","value":"Welkom terug! Hoe kan ik je helpen?"},{"key":"agent_chat.greeting.welcome_to_shop","value":"Welkom bij %{shop_name}. Hoe kan ik je helpen?"},{"key":"agent_chat.greeting.generic","value":"Hoe kan ik je helpen?"},{"key":"agent_chat.disclaimer.text","value":"Deze chat wordt mogelijk gemaakt door kunstmatige intelligentie van Shopify en kan fouten maken. Je berichten zijn zichtbaar voor {{shop_name}}. Zie het"},{"key":"agent_chat.disclaimer.text_human","value":"Je berichten zijn zichtbaar voor {{shop_name}} en Shopify voor het leveren en verbeteren van de diensten. Zie"},{"key":"agent_chat.disclaimer.link_text","value":"privacybeleid"},{"key":"agent_chat.error.response_unavailable","value":"Reactie niet beschikbaar"},{"key":"agent_chat.error.generic","value":"Er is iets misgegaan."},{"key":"agent_chat.error.response_failed","value":"Kon dit bericht niet laden"},{"key":"agent_chat.error.message_send_failed","value":"Je bericht kon niet worden verzonden"},{"key":"agent_chat.error.attachment_upload_failed","value":"Je bijlage is niet geüpload"},{"key":"agent_chat.error.try_again","value":"Opnieuw proberen"},{"key":"agent_chat.error.unavailable","value":"De chat is momenteel niet beschikbaar. Probeer het later opnieuw."},{"key":"agent_chat.error.usage_limit","value":"Berichtenlimiet bereikt. Probeer het later opnieuw of stuur een e-mail naar {{email}}"},{"key":"agent_chat.error.usage_limit_no_email","value":"Berichtenlimiet bereikt. Probeer het later opnieuw"},{"key":"agent_chat.error.cost_quota_unhandled","value":"Chat is momenteel niet beschikbaar: stuur een e-mail naar {{email}}"},{"key":"agent_chat.error.cost_quota_unhandled_no_email","value":"Chat is momenteel niet beschikbaar"},{"key":"agent_chat.error.cost_quota_handover","value":"De AI-assistent is momenteel niet beschikbaar, maar ons team reageert snel"},{"key":"agent_chat.history.heading","value":"Chatgeschiedenis"},{"key":"agent_chat.history.loading","value":"Gespreksgeschiedenis laden"},{"key":"agent_chat.history.aria_label","value":"Gespreksgeschiedenis"},{"key":"agent_chat.history.no_conversations","value":"Geen gesprekken"},{"key":"agent_chat.history.conversation.one","value":"gesprek"},{"key":"agent_chat.history.conversation.other","value":"gesprekken"},{"key":"agent_chat.history.error_message","value":"Er is iets misgegaan."},{"key":"agent_chat.history.try_again","value":"Opnieuw proberen"},{"key":"agent_chat.history.no_past","value":"Geen eerdere gesprekken"},{"key":"agent_chat.history.start_new","value":"Nieuwe chat starten"}
945,{"key":"agent_chat.history.untitled","value":"Naamloos gesprek"},{"key":"agent_chat.history.resume","value":"Hervatten: {{title}}"},{"key":"agent_chat.history.resume_with_time","value":"Hervatten: {{title}}, {{time}}"},{"key":"agent_chat.history.delete","value":"Gesprek verwijderen: {{title}}"},{"key":"agent_chat.history.delete_failed","value":"Kan gesprek niet verwijderen"},{"key":"agent_chat.feedback.group_label","value":"Berichtfeedback"},{"key":"agent_chat.feedback.thumbs_up","value":"Duim omhoog"},{"key":"agent_chat.feedback.thumbs_down","value":"Duim omlaag"},{"key":"agent_chat.feedback.add_comment","value":"Opmerking toevoegen"},{"key":"agent_chat.feedback.thanks","value":"Bedankt voor je feedback"},{"key":"agent_chat.feedback.placeholder_up","value":"Vertel ons wat er goed ging"},{"key":"agent_chat.feedback.placeholder_down","value":"Vertel ons wat er beter kan"},{"key":"agent_chat.feedback.comment_label","value":"Feedbackopmerking"},{"key":"agent_chat.feedback.cancel","value":"Annuleren"},{"key":"agent_chat.feedback.submit","value":"Indienen"},{"key":"agent_chat.feedback.character_count","value":"{{current}}\/{{max}}"},{"key":"agent_chat.feedback.character_limit_reached","value":"Maximumlengte bereikt. Feedback is beperkt tot {{max}} tekens."},{"key":"agent_chat.buyer_profile.button.open","value":"Kopersprofiel"},{"key":"agent_chat.buyer_profile.title","value":"Kopersprofiel"},{"key":"agent_chat.buyer_profile.empty","value":"Geen kopersprofiel beschikbaar."},{"key":"agent_chat.buyer_profile.close","value":"Sluiten"},{"key":"agent_chat.suggestions.empty_state_label","value":"Voorgestelde vragen"},{"key":"agent_chat.suggestions.quick_reply_label","value":"Voorgestelde antwoorden"},{"key":"agent_chat.auth.sign_in_to_continue","value":"Inloggen om door te gaan"},{"key":"agent_chat.auth.sign_in","value":"Inloggen"},{"key":"agent_chat.auth.skip_and_chat","value":"Overslaan en beginnen met chatten"},{"key":"agent_chat.auth.pre_chat_title","value":"Inloggen om je chats te personaliseren en op te slaan"},{"key":"agent_chat.auth.pre_chat_subtitle","value":"Inloggen of een account aanmaken"},{"key":"agent_chat.auth.staff_chat_required_title","value":"Mis geen antwoord"},{"key":"agent_chat.auth.staff_chat_required_subtitle","value":"Log in om met ons team te chatten. We sturen je een e-mail als je de chat verlaat."},{"key":"agent_chat.auth.share_disclaimer","value":"Als je doorgaat, deelt Shop je naam en e-mailadres met deze winkel. Bekijk hun {{terms_link}} en {{privacy_link}}"},{"key":"agent_chat.auth.terms_link","value":"algemene voorwaarden"},{"key":"agent_chat.auth.privacy_link","value":"privacybeleid"},{"key":"agent_chat.auth.declined_pre_chat","value":"Ik kan je pas met de winkel doorverbinden als je inlogt."},{"key":"agent_chat.reply_by_email.continuation_prompt","value":"Als je de chat verlaat, sturen we je een e-mail wanneer er een antwoord is."},{"key":"agent_chat.reply_by_email.sign_in_prompt","value":"Log in om een e-mail te ontvangen zodra er een reactie is."},{"key":"agent_chat.order_lookup.track_order","value":"Mijn bestelling volgen"},{"key":"agent_chat.order_lookup.track_another_order","value":"Andere bestelling volgen"},{"key":"agent_chat.order_lookup.new_conversation","value":"Nieuw gesprek"},{"key":"agent_chat.order_lookup.follow_up_label","value":"Acties voor bestelling-lookup"},{"key":"agent_chat.order_lookup.enter_order_information","value":"Bestelgegevens invoeren"},{"key":"agent_chat.order_lookup.prompt","value":"Vul je bestelgegevens in om je bestelstatus te bekijken."},{"key":"agent_chat.order_lookup.form_title","value":"Mijn bestelling volgen"},{"key":"agent_chat.order_lookup.form_subtitle","value":"Vul je gegevens in."},{"key":"agent_chat.order_lookup.order_number_label","value":"Bestelnummer"},{"key":"agent_chat.order_lookup.email_label","value":"E-mailadres"},{"key":"agent_chat.order_lookup.submit","value":"Mijn bestelling volgen"},{"key":"agent_chat.order_lookup.cancel","value":"Annuleren"},{"key":"agent_chat.order_lookup.invalid_order_number","value":"Voer een geldig bestelnummer in met alleen cijfers en letters, zonder spaties (bijv. 1006)."},{"key":"agent_chat.order_lookup.invalid_order_number_whitespace","value":"Voer een geldig bestelnummer in met alleen cijfers en letters, zonder spaties (bijv. 1006)."},{"key":"agent_chat.order_lookup.invalid_email","value":"Voer een geldig e-mailadres in"},{"key":"agent_chat.order_lookup.generic_error","value":"Er is een probleem opgetreden bij het opzoeken van je bestelling. Probeer het opnieuw."},{"key":"agent_chat.order_lookup.rate_limited_error","value":"Te veel pogingen. Probeer het later opnieuw."},{"key":"agent_chat.order_lookup.locked_composer_status","value":"Bestelling-lookup wordt uitgevoerd. Start een nieuw gesprek om iets anders te vragen."},{"key":"agent_chat.legacy_contact.form_title","value":"Voordat we beginnen"},{"key":"agent_chat.legacy_contact.form_subtitle","value":"Vul je gegevens in, zodat we kunnen reageren als je de chat verlaat."},{"key":"agent_chat.legacy_contact.first_name_label","value":"Voornaam"},{"key":"agent_chat.legacy_contact.last_name_label","value":"Achternaam"},{"key":"agent_chat.legacy_contact.email_label","value":"E-mail"},{"key":"agent_chat.legacy_contact.marketing_opt_in","value":"E-mail me met nieuws en aanbiedingen"},{"key":"agent_chat.legacy_contact.submit","value":"Chat starten"},{"key":"agent_chat.legacy_contact.cancel","value":"Annuleren"}
945,{"key":"agent_chat.legacy_contact.invalid_first_name","value":"Voer een geldige voornaam in."},{"key":"agent_chat.legacy_contact.invalid_last_name","value":"Voer een geldige achternaam in."},{"key":"agent_chat.legacy_contact.invalid_email","value":"Voer een geldig e-mailadres in."},{"key":"agent_chat.legacy_contact.invalid_email_length","value":"E-mailadres is te lang."},{"key":"agent_chat.legacy_contact.generic_error","value":"Er is iets misgegaan."},{"key":"agent_chat.legacy_contact.rate_limited_error","value":"Te veel pogingen. Probeer het later opnieuw."},{"key":"agent_chat.discountCard.useDiscount","value":"Korting gebruiken"},{"key":"agent_chat.discountCard.discountApplicationContext","value":"Wordt automatisch toegepast bij de checkout"},{"key":"agent_chat.cart.checkout","value":"Checkout"},{"key":"agent_chat.product.add_to_cart","value":"Aan winkelwagen toevoegen"},{"key":"agent_chat.product.view_details","value":"Gegevens bekijken"},{"key":"agent_chat.product.out_of_stock","value":"Niet op voorraad"},{"key":"agent_chat.product.compare_suggestions","value":"Suggesties vergelijken"},{"key":"agent_chat.product.hide_suggestions","value":"Suggesties verbergen"},{"key":"agent_chat.product.sold_out","value":"Uitverkocht"},{"key":"agent_chat.order.item.one","value":"artikel"},{"key":"agent_chat.order.item.other","value":"artikelen"},{"key":"agent_chat.order.less_items.one","value":"- {{count}} artikel verbergen"},{"key":"agent_chat.order.less_items.other","value":"- {{count}} artikelen verbergen"},{"key":"agent_chat.order.more_items.one","value":"+ {{count}} extra artikel"},{"key":"agent_chat.order.more_items.other","value":"+ {{count}} extra artikelen"},{"key":"agent_chat.order.view_order","value":"Bestelling {{orderId}} bekijken"},{"key":"agent_chat.order.track_shipment","value":"Zending volgen"},{"key":"agent_chat.order.of_total","value":"{{index}} van {{total}}"},{"key":"agent_chat.order.label","value":"Bestelling {{number}}"},{"key":"agent_chat.order.count.one","value":"{{count}} bestelling"},{"key":"agent_chat.order.count.other","value":"{{count}} bestellingen"},{"key":"agent_chat.order.ordered_on","value":"Besteld op {{date}}"},{"key":"agent_chat.order.select","value":"Bestelling {{number}} selecteren"},{"key":"agent_chat.return.heading","value":"Artikelen selecteren om te retourneren"},{"key":"agent_chat.return.toggle_item","value":"{{name}} selecteren"},{"key":"agent_chat.return.select_item_non_returnable","value":"{{name}}, niet te retourneren"},{"key":"agent_chat.return.quantity_label","value":"Retouraantal"},{"key":"agent_chat.return.reason_label","value":"Retourreden"},{"key":"agent_chat.return.reason_placeholder","value":"Reden selecteren"},{"key":"agent_chat.return.confirm","value":"Retour aanvragen"},{"key":"agent_chat.return.confirmed","value":"Retour aangevraagd"},{"key":"agent_chat.return.reason.size_too_small","value":"Maat te klein"},{"key":"agent_chat.return.reason.size_too_large","value":"Maat te groot"},{"key":"agent_chat.return.reason.unwanted","value":"Ongewenst"},{"key":"agent_chat.return.reason.not_as_described","value":"Niet zoals beschreven"},{"key":"agent_chat.return.reason.wrong_item","value":"Verkeerd artikel"},{"key":"agent_chat.return.reason.defective","value":"Defect"},{"key":"agent_chat.return.reason.style","value":"Stijl"},{"key":"agent_chat.return.reason.color","value":"Kleur"},{"key":"agent_chat.return.reason.other_reason","value":"Overig"},{"key":"agent_chat.scroll.previous","value":"Vorige"},{"key":"agent_chat.scroll.next","value":"Volgende"}]}</script>
vendor: 1 bytes, line 945
945
946<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"73971564852","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Inloggen of account aanmaken"},{"key":"account_menu.signed_out_state.section_divider","value":"Meer manieren om in te loggen"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OF"},{"key":"account_menu.signed_out_state.email_field_label","value":"E-mail"},{"key":"account_menu.signed_out_state.orders_button","value":"Bestellingen"},{"key":"account_menu.signed_out_state.profile_button","value":"Profiel"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Inloggen met Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Doorgaan met Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Doorgaan met Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Stuur mij e-mails met nieuws en aanbiedingen"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hoi {{first_name}},"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Bestellingen"},{"key":"account_menu.signed_in_state.profile_button","value":"Profiel"},{"key":"account_menu.location_picker.sheet_title","value":"Locaties"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Zoeken"},{"key":"account_menu.aria_labels.close_menu","value":"Menu sluiten"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Terug naar hoofdmenu vanuit {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opent submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Menu laden"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Inloggen met e-mail"},{"key":"account_menu.aria_labels.sign_in","value":"Inloggen"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":true},"visitor":{"country":"NL","language":"nl"}}</script>
946 947<meta name="shopify-y" content="68444efa-26c8-4e39-9e50-522276644076" data-expiration="1822848318000"><meta name="shopify-s" content="91cb85eb-8886-4cd3-a083-28b237c041df" data-expiration="1791292518000"><meta name="new-cookie-storage-activated" content="t"> 948</head><body class="no-focus-outline features--image-zoom" data-instant-allow-query-string><svg class="visually-hidden"> 949 <linearGradient id="rating-star-gradient-half"> 950 <stop offset="50%" stop-color="rgb(var(--product-star-rating))" /> 951 <stop offset="50%" stop-color="rgb(var(--product-star-rating))" stop-opacity="0.4" /> 952 </linearGradient> 953 </svg> 954 955 <a href="#main" class="visually-hidden skip-to-content">Ga naar inhoud</a> 956 <loading-bar class="loading-bar"></loading-bar><!-- BEGIN sections: header-group --> 957<div id="shopify-section-sections--18653316645172__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 958 :root { 959 --enable-sticky-announcement-bar: 0; 960 } 961 962 #shopify-section-sections--18653316645172__announcement-bar { 963 --heading-color: 255, 255, 255; 964 --text-color: 255, 255, 255; 965 --primary-button-background: 255, 255, 255; 966 --primary-button-text-color: 255, 255, 255; 967 --section-background: 80, 124, 75;position: relative;} 968 969 @media screen and (min-width: 741px) { 970 :root { 971 --enable-sticky-announcement-bar: 0; 972 } 973 974 #shopify-section-sections--18653316645172__announcement-bar {position: relative; 975 z-index: unset;} 976 } 977</style><section> 978 <announcement-bar auto-play cycle-speed="15" class="announcement-bar announcement-bar--multiple"><button data-action="prev" class="tap-area tap-area--large"> 979 <span class="visually-hidden">Vorige</span> 980 <svg fill="none" focusable="false" width="12" height="10" class="icon icon--nav-arrow-left-small icon--direction-aware " viewBox="0 0 12 10"> 981 <path d="M12 5L2.25 5M2.25 5L6.15 9.16M2.25 5L6.15 0.840001" stroke="currentColor" stroke-width="1.8"></path> 982 </svg> 983 </button><div class="announcement-bar__list"><announcement-bar-item class="announcement-bar__item" ><div class="announcement-bar__message "><p>Gratis verzending vanaf ⬠60,- NL / BE</p></div></announcement-bar-item><announcement-bar-item hidden class="announcement-bar__item" ><div class="announcement-bar__message "><p>Let op: er zijn vertragingen B Post (BE)</p></div></announcement-bar-item><announcement-bar-item hidden class="announcement-bar__item" ><div class="announcement-bar__message "><p>Voor 22:00 bestellen, zelfde dag verzonden (ma-vr).</p></div></announcement-bar-item><announcement-bar-item hidden class="announcement-bar__item" ><div class="announcement-bar__message "><p>Discrete verpakking</p></div></announcement-bar-item></div><button data-action="next" class="tap-area tap-area--large"> 984 <span class="visually-hidden">Volgende</span> 985 <svg fill="none" focusable="false" width="12" height="10" class="icon icon--nav-arrow-right-small icon--direction-aware " viewBox="0 0 12 10"> 986 <path d="M-3.63679e-07 5L9.75 5M9.75 5L5.85 9.16M9.75 5L5.85 0.840001" stroke="currentColor" stroke-width="1.8"></path> 987 </svg> 988 </button></announcement-bar> 989 </section> 990 991
991<script> 992 document.documentElement.style.setProperty('--announcement-bar-height', document.getElementById('shopify-section-sections--18653316645172__announcement-bar').clientHeight + 'px'); 993 </script>
993</div><div id="shopify-section-sections--18653316645172__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 994 :root { 995 --enable-sticky-header: 1; 996 --enable-transparent-header: 0; 997 --loading-bar-background: 40, 40, 40; /* Prevent the loading bar to be invisible */ 998 } 999 1000 #shopify-section-sections--18653316645172__header {--header-background: 239, 236, 226; 1001 --header-text-color: 40, 40, 40; 1002 --header-border-color: 209, 207, 198; 1003 #shopify-section-sections--18653316645172__header { 1004 padding: var(--reduce-header-padding, 25px); /* Check deze regel of vergelijkbare padding-eigenschappen */ 1005}position: -webkit-sticky; 1006 position: sticky; 1007 top: 0;z-index: 4; 1008 }.shopify-section--announcement-bar ~ #shopify-section-sections--18653316645172__header { 1009 top: calc(var(--enable-sticky-announcement-bar, 0) * var(--announcement-bar-height, 0px)); 1010 }#shopify-section-sections--18653316645172__header .header__logo-image { 1011 max-width: 170px; 1012 } 1013 1014 @media screen and (min-width: 741px) { 1015 #shopify-section-sections--18653316645172__header .header__logo-image { 1016 max-width: 300px; 1017 } 1018 } 1019 1020 @media screen and (min-width: 1200px) {}</style> 1021 1022<store-header sticky class="header header--bordered " role="banner"><div class="container"> 1023 <div class="header__wrapper"> 1024 <!-- LEFT PART --> 1025 <nav class="header__inline-navigation" role="navigation"><desktop-navigation> 1026 <ul class="header__linklist list--unstyled hidden-pocket hidden-lap" role="list"><li class="header__linklist-item has-dropdown" data-item-title="BEKIJK ASSORTIMENT"> 1027 <a class="header__linklist-link link--animated" href="/collections" aria-controls="desktop-menu-1" aria-expanded="false">BEKIJK ASSORTIMENT</a><div hidden id="desktop-menu-1" class="mega-menu" > 1028 <div class="container"> 1029 <div class="mega-menu__inner"><div class="mega-menu__columns-wrapper"><div class="mega-menu__column"><a href="/collections/cannabisitems" class="mega-menu__title heading heading--small">Cannabis Items</a><ul class="linklist list--unstyled" role="list"><li class="linklist__item"> 1030 <a href="/collections/vloei" class="link--faded">Vloei</a> 1031 </li><li class="linklist__item"> 1032 <a href="/collections/tips" class="link--faded">Tips en Filters</a> 1033 </li><li class="linklist__item"> 1034 <a href="/collections/cones" class="link--faded">Hulzen en Cones</a> 1035 </li><li class="linklist__item"> 1036 <a href="/collections/blunts" class="link--faded">Blunts</a> 1037 </li><li class="linklist__item"> 1038 <a href="/collections/grinders" class="link--faded">Grinders</a> 1039 </li><li class="linklist__item"> 1040 <a href="/collections/joint-hulzenstoppers" class="link--faded">Joint Hulzenstoppers</a> 1041 </li><li class="linklist__item"> 1042 <a href="/collections/rolling-trays" class="link--faded">Rolling trays</a> 1043 </li><li class="linklist__item"> 1044 <a href="/collections/accessoire-kit" class="link--faded">Accessoire Kit</a> 1045 </li></ul></div><div class="mega-menu__column"><a href="/collections/rokersaccessoires" class="mega-menu__title heading heading--small">Rokers Items</a><ul class="linklist list--unstyled" role="list"><li class="linklist__item"> 1046 <a href="/collections/aanstekers" class="link--faded">Aanstekers</a> 1047 </li><li class="linklist__item"> 1048 <a href="/collections/asbakken" class="link--faded">Asbakken</a> 1049 </li><li class="linklist__item"> 1050 <a href="/collections/flavour-solutions" class="link--faded">Flavour solutions</a> 1051 </li><li class="linklist__item"> 1052 <a href="/collections/hulzenstoppers" class="link--faded">Hulzenstoppers</a> 1053 </li><li class="linklist__item"> 1054 <a href="/collections/opbergdoosjes" class="link--faded">Opbergdoosjes</a> 1055 </li><li class="linklist__item"> 1056 <a href="/collections/sigarettenhulzen" class="link--faded">Sigarettenhulzen</a> 1057 </li><li class="linklist__item"> 1058 <a href="/collections/sigarettenaccessoires" class="link--faded">Sigarettenaccessoires</a> 1059 </li><li class="linklist__item"> 1060 <a href="/collections/sigarenaccessoires" class="link--faded">Sigarenaccessoires</a> 1061 </li><li class="linklist__item"> 1062 <a href="/collections/zippo" class="link--faded">Zippo</a> 1063 </li></ul></div><div class="mega-menu__column"><a href="/collections/bong-s-shisha-en-pijpjes" class="mega-menu__title heading heading--small">Bongs, Shisha's en Pijpjes</a><ul class="linklist list--unstyled" role="list"><li class="linklist__item"> 1064 <a href="/collections/bongs" class="link--faded">Bongs</a> 1065 </li><li class="linklist__item"> 1066 <a href="/collections/waterpijpen-en-shisha" class="link--faded">Shisha's en Waterpijpen</a> 1067 </li><li class="linklist__item"> 1068 <a href="/collections/pijpjes" class="link--faded">Pijpjes</a> 1069 </li><li class="linklist__item"> 1070 <a href="/collections/onderdelen" class="link--faded">Onderdelen en accessoires</a> 1071 </li></ul></div><div class="mega-menu__column"><a href="/collections/verpakking-weeg-en-rolmachines" class="mega-menu__title heading heading--small">Verpakking & Weegschalen</a><ul class="linklist list--unstyled" role="list"><li class="linklist__item"> 1072 <a href="/collections/hulzenstoppers" class="link--faded">Rolmachines</a> 1073 </li><li class="linklist__item"> 1074 <a href="/collections/weegschalen" class="link--faded">Weegschalen</a> 1075 </li><li class="linklist__item"> 1076 <a href="/collections/verpakkingen" class="link--faded">Verpakkingen</a> 1077 </li></ul></div><div class="mega-menu__column"><a href="/collections/gadgets-en-kleding" class="mega-menu__title heading heading--small">Gadgets en Cadeaus</a><ul class="linklist list--unstyled" role="list"><li class="linklist__item"> 1078 <a href="/collections/bestsellers" class="link--faded">Bestsellers!</a> 1079 </li><li class="linklist__item"> 1080 <a href="/collections/cadeaus" class="link--faded">Cadeaus</a> 1081 </li><li class="linklist__item"> 1082 <a href="/collections/merchandise" class="link--faded">Merchandise</a> 1083 </li></ul></div></div></div> 1084 </div> 1085 </div></li><li class="header__linklist-item " data-item-title="NIEUW!"> 1086 <a class="header__linklist-link link--animated" href="/collections/nieuw" >NIEUW!</a></li><li class="header__linklist-item " data-item-title="SALE"> 1087 <a class="header__linklist-link link--animated" href="/collections/sale" >SALE</a></li></ul> 1088</desktop-navigation><div class="header__icon-list "><button is="toggle-button" class="header__icon-wrapper tap-area hidden-desk" aria-controls="mobile-menu-drawer" aria-expanded="false">
1089 <span class="visually-hidden">Navigatie</span><svg focusable="false" width="18" height="14" class="icon icon--header-hamburger " viewBox="0 0 18 14"> 1090 <path d="M0 1h18M0 13h18H0zm0-6h18H0z" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1091 </svg></button><a href="/search" is="toggle-link" class="header__icon-wrapper tap-area hidden-desk" aria-controls="search-drawer" aria-expanded="false" aria-label="Zoeken"><svg focusable="false" width="18" height="18" class="icon icon--header-search " viewBox="0 0 18 18"> 1092 <path d="M12.336 12.336c2.634-2.635 2.682-6.859.106-9.435-2.576-2.576-6.8-2.528-9.435.106C.373 5.642.325 9.866 2.901 12.442c2.576 2.576 6.8 2.528 9.435-.106zm0 0L17 17" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1093 </svg></a> 1094 </div></nav> 1095 1096 <!-- LOGO PART --><span class="header__logo"><a class="header__logo-link" href="/"><span class="visually-hidden">Grasscompany.com</span> 1097 <img class="header__logo-image" width="1137" height="306" src="//grasscompany.com/cdn/shop/files/Grasscompany-Logo_2_600x.svg?v=1732806771" alt=""></a></span><!-- SECONDARY LINKS PART --> 1098 <div class="header__secondary-links"><form method="post" action="/localization" id="header-localization-form" accept-charset="UTF-8" class="header__cross-border hidden-pocket" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/cart" /><div class="popover-container"> 1099 <input type="hidden" name="locale_code" value="nl"> 1100 <span class="visually-hidden">Taal</span> 1101 1102 <button type="button" is="toggle-button" class="popover-button text--small" aria-expanded="false" aria-controls="header-localization-form-locale">Nederlands<svg focusable="false" width="9" height="6" class="icon icon--chevron icon--inline " viewBox="0 0 12 8"> 1103 <path fill="none" d="M1 1l5 5 5-5" stroke="currentColor" stroke-width="1.8"></path> 1104 </svg></button> 1105 1106 <popover-content id="header-localization-form-locale" class="popover"> 1107 <span class="popover__overlay"></span> 1108 1109 <header class="popover__header"> 1110 <span class="popover__title heading h6">Taal</span> 1111 1112 <button type="button" class="popover__close-button tap-area tap-area--large" data-action="close" title="Sluiten"><svg focusable="false" width="14" height="14" class="icon icon--close " viewBox="0 0 14 14"> 1113 <path d="M13 13L1 1M13 1L1 13" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1114 </svg></button> 1115 </header> 1116 1117 <div class="popover__content"> 1118 <div class="popover__choice-list"><button type="submit" name="locale_code" value="nl" class="popover__choice-item"> 1119 <span class="popover__choice-label" aria-current="true">Nederlands</span> 1120 </button><button type="submit" name="locale_code" value="en" class="popover__choice-item"> 1121 <span class="popover__choice-label" >English</span> 1122 </button><button type="submit" name="locale_code" value="fr" class="popover__choice-item"> 1123 <span class="popover__choice-label" >Français</span> 1124 </button><button type="submit" name="locale_code" value="de" class="popover__choice-item"> 1125 <span class="popover__choice-label" >Deutsch</span> 1126 </button></div> 1127 </div> 1128 </popover-content> 1129 </div></form><div class="header__icon-list"> 1130 1131<button is="toggle-button" class="header__icon-wrapper tap-area hidden-phone " aria-controls="newsletter-popup" aria-expanded="false"> 1132 <span class="visually-hidden">Nieuwsbrief</span><svg focusable="false" width="20" height="16" class="icon icon--header-email " viewBox="0 0 20 16"> 1133 <path d="M19 4l-9 5-9-5" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1134 <path stroke="currentColor" fill="none" stroke-width="1.8" d="M1 1h18v14H1z"></path> 1135 </svg></button><a href="/search" is="toggle-link" class="header__icon-wrapper tap-area hidden-pocket hidden-lap " aria-label="Zoeken" aria-controls="search-drawer" aria-expanded="false"><svg focusable="false" width="18" height="18" class="icon icon--header-search " viewBox="0 0 18 18"> 1136 <path d="M12.336 12.336c2.634-2.635 2.682-6.859.106-9.435-2.576-2.576-6.8-2.528-9.435.106C.373 5.642.325 9.866 2.901 12.442c2.576 2.576 6.8 2.528 9.435-.106zm0 0L17 17" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1137 </svg></a><a href="https://grasscompany.com/customer_authentication/redirect?locale=nl®ion_country=NL" class="header__icon-wrapper tap-area hidden-phone " aria-label="Inloggen"><svg focusable="false" width="18" height="17" class="icon icon--header-customer " viewBox="0 0 18 17"> 1138 <circle cx="9" cy="5" r="4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"></circle> 1139 <path d="M1 17v0a4 4 0 014-4h8a4 4 0 014 4v0" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1140 </svg></a><a href="/cart" class="header__icon-wrapper tap-area " aria-label="Winkelwagen" data-no-instant><svg focusable="false" width="21" height="20" class="icon icon--header-shopping-cart " viewBox="0 0 21 20"> 1141 <path d="M0 1H4L5 11H17L19 4H8" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1142 <circle cx="6" cy="17" r="2" fill="none" stroke="currentColor" stroke-width="1.8"></circle> 1143 <circle cx="16" cy="17" r="2" fill="none" stroke="currentColor" stroke-width="1.8"></circle> 1144 </svg><cart-count class="header__cart-count header__cart-count--floating bubble-count">0</cart-count> 1145 </a> 1146 </div></div> 1147 </div></div> 1148</store-header><cart-notification global hidden class="cart-notification "></cart-notification><mobile-navigation append-body id="mobile-menu-drawer" class="drawer drawer--from-left"> 1149 <span class="drawer__overlay"></span> 1150 1151 <div class="drawer__header drawer__header--shadowed"> 1152 <button type="button" class="drawer__close-button drawer__close-button--block tap-area" data-action="close" title="Sluiten"><svg focusable="false" width="14" height="14" class="icon icon--close " viewBox="0 0 14 14"> 1153 <path d="M13 13L1 1M13 1L1 13" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1154 </svg></button> 1155 </div> 1156 1157 <div class="drawer__content"> 1158 <ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="1"><button is="toggle-button" class="mobile-nav__link heading h6" aria-controls="mobile-menu-1" aria-expanded="false">Cannabis Items<span class="animated-plus"></span> 1159 </button> 1160 1161 <collapsible-content id="mobile-menu-1" class="collapsible"><ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="2"><a href="/collections/vloei" class="mobile-nav__link">Vloei</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/tips" class="mobile-nav__link">Tips en Filters</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/cones" class="mobile-nav__link">Cones</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/blunts" class="mobile-nav__link">Blunts</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/grinders" class="mobile-nav__link">Grinders</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/joint-hulzenstoppers" class="mobile-nav__link">Joint Hulzenstoppers</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/rolling-trays" class="mobile-nav__link">Rolling trays</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/accessoire-kit" class="mobile-nav__link">Accessoire kits</a></li></ul></collapsible-content></li><li class="mobile-nav__item" data-level="1"><button is="toggle-button" class="mobile-nav__link heading h6" aria-controls="mobile-menu-2" aria-expanded="false">Rokers Items<span class="animated-plus"></span> 1162 </button> 1163 1164 <collapsible-content id="mobile-menu-2" class="collapsible"><ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="2"><a href="/collections/aanstekers" class="mobile-nav__link">Aanstekers</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/asbakken" class="mobile-nav__link">Asbakken</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/flavour-solutions" class="mobile-nav__link">Flavour Solutions</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/hulzenstoppers" class="mobile-nav__link">Hulzenstoppers</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/opbergdoosjes" class="mobile-nav__link">Opbergdoosjes</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/sigarettenhulzen" class="mobile-nav__link">Sigarettenhulzen</a></li><li class="mobile-nav__item" data-level="2"><button is="toggle-button" class="mobile-nav__link" aria-controls="mobile-menu-2-7" aria-expanded="false">Sigarettenaccessoires<span class="animated-plus"></span> 1165 </button> 1166 1167 <collapsible-content id="mobile-menu-2-7" class="collapsible"> 1168 <ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="3"> 1169 <a href="/collections/sigarettendoosjes" class="mobile-nav__link">Sigarettendoosjes</a> 1170 </li><li class="mobile-nav__item" data-level="3"> 1171 <a href="/collections/tabak-etuis" class="mobile-nav__link">Tabak etuis</a> 1172 </li><li class="mobile-nav__item" data-level="3"> 1173 <a href="/collections/tabaksteentjes" class="mobile-nav__link">Tabaksteentjes</a> 1174 </li></ul> 1175 </collapsible-content></li><li class="mobile-nav__item" data-level="2"><button is="toggle-button" class="mobile-nav__link" aria-controls="mobile-menu-2-8" aria-expanded="false">Sigarenaccessoires<span class="animated-plus"></span> 1176 </button> 1177 1178 <collapsible-content id="mobile-menu-2-8" class="collapsible"> 1179 <ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="3"> 1180 <a href="/collections/sigarenknippers" class="mobile-nav__link">Sigarenknippers</a> 1181 </li><li class="mobile-nav__item" data-level="3"> 1182 <a href="/collections/sigarenkokers-etuis" class="mobile-nav__link">Sigarenkokers & Etuis</a> 1183 </li></ul> 1184 </collapsible-content></li><li class="mobile-nav__item" data-level="2"><a href="/collections/zippo" class="mobile-nav__link">Zippo</a></li></ul></collapsible-content></li><li class="mobile-nav__item" data-level="1"><button is="toggle-button" class="mobile-nav__link heading h6" aria-controls="mobile-menu-3" aria-expanded="false">Bongs, Shisha's en Pijpjes<span class="animated-plus"></span> 1185 </button> 1186 1187 <collapsible-content id="mobile-menu-3" class="collapsible"><ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="2"><a href="/collections/bongs" class="mobile-nav__link">Bongs</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/waterpijpen-en-shisha" class="mobile-nav__link">Waterpijpen en shisha</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/pijpjes" class="mobile-nav__link">Pijpjes</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/onderdelen" class="mobile-nav__link">Onderdelen en Accessoires</a></li></ul></collapsible-content></li><li class="mobile-nav__item" data-level="1"><button is="toggle-button" class="mobile-nav__link heading h6" aria-controls="mobile-menu-4" aria-expanded="false">Verpakking, Weeg en Rolmachines<span class="animated-plus"></span> 1188 </button> 1189 1190 <collapsible-content id="mobile-menu-4" class="collapsible"><ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="2"><a href="/collections/hulzenstoppers" class="mobile-nav__link">Rolmachines</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/weegschalen" class="mobile-nav__link">Weegschalen</a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/verpakkingen" class="mobile-nav__link">Verpakkingen</a></li></ul></collapsible-content></li><li class="mobile-nav__item" data-level="1"><button is="toggle-button" class="mobile-nav__link heading h6" aria-controls="mobile-menu-5" aria-expanded="false">
1190Gadgets en Kleding<span class="animated-plus"></span> 1191 </button> 1192 1193 <collapsible-content id="mobile-menu-5" class="collapsible"><ul class="mobile-nav list--unstyled" role="list"><li class="mobile-nav__item" data-level="2"><a href="/collections/cadeaus" class="mobile-nav__link">Cadeaus </a></li><li class="mobile-nav__item" data-level="2"><a href="/collections/merchandise" class="mobile-nav__link">Merchandise</a></li></ul></collapsible-content></li><li class="mobile-nav__item" data-level="1"><a href="/collections/sale" class="mobile-nav__link heading h6">Sale</a></li><li class="mobile-nav__item" data-level="1"><a href="/collections/nieuw" class="mobile-nav__link heading h6">NIEUW!</a></li><li class="mobile-nav__item" data-level="1"><a href="/pages/contact" class="mobile-nav__link heading h6">Contact</a></li></ul> 1194 </div><div class="drawer__footer drawer__footer--tight drawer__footer--bordered"> 1195 <div class="mobile-nav__footer"><a class="icon-text" href="https://grasscompany.com/customer_authentication/redirect?locale=nl®ion_country=NL"><svg focusable="false" width="18" height="17" class="icon icon--header-customer " viewBox="0 0 18 17"> 1196 <circle cx="9" cy="5" r="4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"></circle> 1197 <path d="M1 17v0a4 4 0 014-4h8a4 4 0 014 4v0" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1198 </svg>Account</a><form method="post" action="/localization" id="header-sidebar-localization-form" accept-charset="UTF-8" class="header__cross-border" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/cart" /><div class="popover-container"> 1199 <input type="hidden" name="locale_code" value="nl"> 1200 <span class="visually-hidden">Taal</span> 1201 1202 <button type="button" is="toggle-button" class="popover-button text--xsmall tap-area" aria-expanded="false" aria-controls="header-sidebar-localization-form-locale">Nederlands<svg focusable="false" width="9" height="6" class="icon icon--chevron icon--inline " viewBox="0 0 12 8"> 1203 <path fill="none" d="M1 1l5 5 5-5" stroke="currentColor" stroke-width="1.8"></path> 1204 </svg></button> 1205 1206 <popover-content id="header-sidebar-localization-form-locale" class="popover popover--top popover--small"> 1207 <span class="popover__overlay"></span> 1208 1209 <header class="popover__header"> 1210 <span class="popover__title heading h6">Taal</span> 1211 1212 <button type="button" class="popover__close-button tap-area tap-area--large" data-action="close" title="Sluiten"><svg focusable="false" width="14" height="14" class="icon icon--close " viewBox="0 0 14 14"> 1213 <path d="M13 13L1 1M13 1L1 13" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1214 </svg></button> 1215 </header> 1216 1217 <div class="popover__content"> 1218 <div class="popover__choice-list"><button type="submit" name="locale_code" value="nl" class="popover__choice-item"> 1219 <span class="popover__choice-label" aria-current="true">Nederlands</span> 1220 </button><button type="submit" name="locale_code" value="en" class="popover__choice-item"> 1221 <span class="popover__choice-label" >English</span> 1222 </button><button type="submit" name="locale_code" value="fr" class="popover__choice-item"> 1223 <span class="popover__choice-label" >Français</span> 1224 </button><button type="submit" name="locale_code" value="de" class="popover__choice-item"> 1225 <span class="popover__choice-label" >Deutsch</span> 1226 </button></div> 1227 </div> 1228 </popover-content> 1229 </div></form></div> 1230 </div></mobile-navigation><predictive-search-drawer append-body reverse-breakpoint="screen and (min-width: 1200px)" id="search-drawer" initial-focus-selector="#search-drawer [name='q']" class="predictive-search drawer drawer--large drawer
1230--from-left"> 1231 <span class="drawer__overlay"></span> 1232 1233 <header class="drawer__header"> 1234 <form id="predictive-search-form" action="/search" method="get" class="predictive-search__form"><svg focusable="false" width="18" height="18" class="icon icon--header-search " viewBox="0 0 18 18"> 1235 <path d="M12.336 12.336c2.634-2.635 2.682-6.859.106-9.435-2.576-2.576-6.8-2.528-9.435.106C.373 5.642.325 9.866 2.901 12.442c2.576 2.576 6.8 2.528 9.435-.106zm0 0L17 17" fill="none" stroke="currentColor" stroke-width="1.8"></path> 1236 </svg><input class="predictive-search__input" type="text" name="q" autocomplete="off" autocorrect="off" aria-label="Zoeken" placeholder="Waar ben je naar op zoek?"> 1237 </form> 1238 1239 <button type="button" class="drawer__close-button tap-area" data-action="close" title="Sluiten"><svg focusable="false" width="14" height="14" class="icon icon--close " viewBox="0 0 14 14"> 1240 <path d="M13 13L1 1M13 1L1 13" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1241 </svg></button> 1242 </header> 1243 1244 <div class="drawer__content"> 1245 <div class="predictive-search__content-wrapper"> 1246 <div hidden class="predictive-search__loading-state"> 1247 <div class="spinner"><svg focusable="false" width="50" height="50" class="icon icon--spinner " viewBox="25 25 50 50"> 1248 <circle cx="50" cy="50" r="20" fill="none" stroke="#000000" stroke-width="4"></circle> 1249 </svg></div> 1250 </div> 1251 1252 <div hidden class="predictive-search__results" aria-live="polite"></div><div class="predictive-search__menu-list"><div class="predictive-search__menu"><a href="/collections" class="predictive-search__menu-title heading heading--small">BEKIJK ASSORTIMENT</a><ul class="linklist list--unstyled" role="list"><li class="linklist__item"> 1253 <a href="/collections/cannabisitems" class="link--faded">Cannabis Items</a> 1254 </li><li class="linklist__item"> 1255 <a href="/collections/rokersaccessoires" class="link--faded">Rokers Items</a> 1256 </li><li class="linklist__item"> 1257 <a href="/collections/bong-s-shisha-en-pijpjes" class="link--faded">Bongs, Shisha's en Pijpjes</a> 1258 </li><li class="linklist__item"> 1259 <a href="/collections/verpakking-weeg-en-rolmachines" class="link--faded">Verpakking & Weegschalen</a> 1260 </li><li class="linklist__item"> 1261 <a href="/collections/gadgets-en-kleding" class="link--faded">Gadgets en Cadeaus</a> 1262 </li></ul> 1263 </div><div class="predictive-search__menu"><a href="/collections/nieuw" class="predictive-search__menu-title heading heading--small">NIEUW!</a><ul class="linklist list--unstyled" role="list"></ul> 1264 </div><div class="predictive-search__menu"><a href="/collections/sale" class="predictive-search__menu-title heading heading--small">SALE</a><ul class="linklist list--unstyled" role="list"></ul> 1265 </div></div></div> 1266 </div> 1267 1268 <footer hidden class="drawer__footer drawer__footer--no-top-padding"> 1269 <button type="submit" form="predictive-search-form" class="button button--primary button--full">Bekijk alle resulaten</button> 1270 </footer> 1271</predictive-search-drawer>
1271<script> 1272 (() => { 1273 const headerElement = document.getElementById('shopify-section-sections--18653316645172__header'), 1274 headerHeight = headerElement.clientHeight, 1275 headerHeightWithoutBottomNav = headerElement.querySelector('.header__wrapper').clientHeight; 1276 1277 document.documentElement.style.setProperty('--header-height', headerHeight + 'px'); 1278 document.documentElement.style.setProperty('--header-height-without-bottom-nav', headerHeightWithoutBottomNav + 'px'); 1279 })(); 1280</script>
1280 1281
1282<script type="application/ld+json"> 1283 { 1284 "@context": "https://schema.org", 1285 "@type": "Organization", 1286 "name": "Grasscompany.com", 1287 1288 1289 "logo": "https:\/\/grasscompany.com\/cdn\/shop\/files\/Grasscompany-Logo_2_1137x.svg?v=1732806771", 1290 1291 "url": "https:\/\/grasscompany.com" 1292 } 1293</script>
1293 1294 1295</div> 1296<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 1297<div id="shopify-section-sections--18653316579636__privacy-banner" class="shopify-section shopify-section-group-overlay-group shopify-section--privacy-banner"><cookie-bar section="sections--18653316579636__privacy-banner" hidden class="cookie-bar text--xsmall"><p class="heading heading--xsmall">Cookie policy</p><p>I agree to the processing of my data in accordance with the conditions set out in the policy of Privacy.</p><div class="cookie-bar__actions"> 1298 <button class="button button--text button--primary button--small text--xsmall" data-action="accept-policy">Accepteren</button> 1299 <button class="button button--text button--ternary button--small text--xsmall" data-action="decline-policy">Afwijzen</button> 1300 </div> 1301</cookie-bar> 1302 1303</div> 1304<!-- END sections: overlay-group --><div id="main" role="main" class="anchor"><div id="shopify-section-template--18653317103924__main" class="shopify-section"><section> 1305 <div class="container container--medium"><div class="empty-state text-container"> 1306 <h1 class="heading h1">Winkelwagen</h1> 1307 <p class="text--large">Je winkelwagen is leeg</p> 1308 1309 <div class="button-wrapper"> 1310 <a href="/collections/all" class="button button--primary">Begin met winkelen</a> 1311 </div> 1312 </div></div> 1313</section> 1314 1315</div><div id="shopify-section-template--18653317103924__cart-recommendations" class="shopify-section shopify-section--cart-recommendations"><style> 1316 @media screen and (min-width: 999px) { 1317 #shopify-section-template--18653317103924__cart-recommendations { 1318 --section-products-per-row: 4; 1319 } 1320 } 1321</style> 1322 1323<product-recommendations section-id="template--18653317103924__cart-recommendations" intent="related" product-id="" recommendations-count="10" class="section section--flush" hidden></product-recommendations> 1324 1325</div> 1326 </div><!-- BEGIN sections: footer-group --> 1327<div id="shopify-section-sections--18653316612404__text-with-icons" class="shopify-section shopify-section-group-footer-group shopify-section--text-with-icons"><style> 1328 #shopify-section-sections--18653316612404__text-with-icons {--heading-color: 28, 3, 28; 1329 --text-color: 0, 0, 0; 1330 --section-background: 239, 236, 226; 1331 --vertical-breather: 40px; /* Inner spacing is smaller on this section */ 1332 } 1333</style><section class="section "> 1334 <div class="section__color-wrapper"> 1335 <div class="container "> 1336 <native-carousel class="text-with-icons"> 1337 <div class="text-with-icons__list hide-scrollbar"><native-carousel-item id="block-sections--18653316612404__text-with-icons-item-1" class="text-with-icons__item" > 1338 <div class="text-with-icons__icon-wrapper"><svg fill="none" focusable="false" width="24" height="24" class="icon icon--picto-gift " viewBox="0 0 24 24"> 1339 <path d="M19 11V21H12M19 11H5M19 11H21V7.00003H16.5M5 11V21H12M5 11H3V7.00003H7.5M12 7.00003V21M12 7.00003H7.5M12 7.00003C12 3.00003 6 1.50012 6 4.5C6 6.1 7.5 7.00003 7.5 7.00003M12 7.00003H16.5M12 7.00003C12 3 18 1.5 18 4.5C18 6 16.5 7.00003 16.5 7.00003" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path> 1340 </svg></div><div class="text-with-icons__content-wrapper"><p class="heading heading--small">Gratis verzending vanaf â¬60</p><p>Bestellingen boven de â¬60,- worden in Nederland en België gratis verzonden. </p></div></native-carousel-item><native-carousel-item hidden id="block-sections--18653316612404__text-with-icons-item-2" class="text-with-icons__item" > 1341 <div class="text-with-icons__icon-wrapper"><svg fill="none" focusable="false" width="29" height="24" class="icon icon--picto-fast-delivery " viewBox="0 0 29 24"> 1342 <path d="M4 3H20V8M20 17H11.68C11.68 17 11 16 10 16M20 17V8M20 17H22.32M20 8H26.5L28 12.5V17H25.68C25.68 17 25 16 24 16M24 16C25 16 26 17 26 18C26 19 25 20 24 20C23 20 22 19 22 18C22 17.6527 22.1206 17.3054 22.32 17M24 16C23.3473 16 22.6946 16.426 22.32 17M10 16C11 16 12 17 12 18C12 19 11 20 10 20C9 20 8 19 8 18C8 17.6527 8.12061 17.3054 8.31996 17M10 16C9.3473 16 8.69459 16.426 8.31996 17M8.31996 17H4M10 12H3M10 8H1" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path> 1343 </svg></div><div class="text-with-icons__content-wrapper"><p class="heading heading--small">snelle bezorging</p><p>Bestel jij voor 22:00u., dan wordt je bestelling dezelfde dag nog verzonden (ma-vrij).</p></div>
1343</native-carousel-item><native-carousel-item hidden id="block-sections--18653316612404__text-with-icons-item-3" class="text-with-icons__item" > 1344 <div class="text-with-icons__icon-wrapper"><svg fill="none" focusable="false" width="24" height="24" class="icon icon--picto-shield " viewBox="0 0 24 24"> 1345 <path d="M12 3C9.3 4.8 5.7 6 3 6C3 7.82938 3.02264 9.25876 3.5 11M12 3C14.7 4.8 18.3 6 21 6C21 7.82938 20.9774 9.25876 20.5 11M12 3V21M12 21C7.52938 19.084 4.66657 15.2552 3.5 11M12 21C16.4706 19.084 19.3334 15.2552 20.5 11M3.5 11H20.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path> 1346 </svg></div><div class="text-with-icons__content-wrapper"><p class="heading heading--small">Discrete verpakking</p><p>Jouw bestelling wordt verpakt in een verpakking zonder onze naam erop.</p></div></native-carousel-item></div><page-dots class="text-with-icons__dots dots-nav dots-nav--centered hidden-lap-and-up"><button class="dots-nav__item tap-area" aria-current="true"> 1347 <span class="visually-hidden">Ga naar slide 1</span> 1348 </button><button class="dots-nav__item tap-area" > 1349 <span class="visually-hidden">Ga naar slide 2</span> 1350 </button><button class="dots-nav__item tap-area" > 1351 <span class="visually-hidden">Ga naar slide 3</span> 1352 </button></page-dots></native-carousel> 1353 </div> 1354 </div> 1355</section> 1356 1357</div><div id="shopify-section-sections--18653316612404__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style> 1358 #shopify-section-sections--18653316612404__footer .footer {--background: 22, 14, 23; 1359 --heading-color: 245, 239, 245; 1360 --text-color: 245, 239, 245; 1361 --border-color: 55, 48, 56; 1362 } 1363</style> 1364 1365<footer class="footer "> 1366 <div class="container"> 1367 <div class="footer__inner"> 1368 <div class="footer__item-list"><div 1369 class="footer__item footer__item--text is-first" 1370 1371 ><p class="footer__item-title heading heading--small">Klantenservice</p><div class="footer__item-content"><p><a href="/pages/betaalmethoden" title="Betaalmethoden">Betaalmethoden</a><br/><a href="/pages/retourneren" title="Retourneren">Retouren en Garantie</a><br/><a href="/pages/betalen-verzenden" title="Verzendinformatie">Verzendinformatie<br/></a><a href="/pages/veelgestelde-vragen" title="Veelgestelde vragen">Veelgestelde vragen</a><br/><a href="/pages/veelgestelde-product-vragen" title="Veelgestelde Product vragen">Veelgestelde product vragen</a><br/><a href="/pages/contact" title="Contact">Contact</a><br/></p></div></div><div 1372 class="footer__item footer__item--text " 1373 1374 ><p class="footer__item-title heading heading--small">Grasscompany</p><div class="footer__item-content"><p><a href="/pages/over-ons" title="Over ons">Over ons</a><br/><a href="/blogs/blog" title="Blog">Blogs</a><br/><a href="/pages/werken-bij-grasscompany" title="Werken bij Grasscompany.com">Vacatures</a><br/><a href="/pages/algemene-voorwaarden" title="Algemene Voorwaarden">Algemene Voorwaarden</a><br/><a href="/pages/disclaimer" title="Disclaimer">Disclaimer</a><br/><a href="/pages/privacy-policy" title="Privacy Policy">Privacy Policy<br/></a><a href="/policies/terms-of-service" target="_blank" title="Terms of Service">Terms of use</a><br/></p></div></div><div 1375 class="footer__item footer__item--newsletter " 1376 1377 ><p class="footer__item-title heading heading--small">Nieuwsbrief</p><div class="footer__item-content"><p>Schrijf je in voor onze nieuwsbrief. Blijf op de hoogte van de laatste producten en profiteer van onze wekelijkse acties!</p><form method="post" action="/contact#footer-newsletter" id="footer-newsletter" accept-charset="UTF-8" class="footer__newsletter-form form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"> 1378 1379 <div class="input"> 1380 <input type="email" id="footer[contact][email]" name="contact[email]" class="input__field input__field--text"> 1381 <label for="footer[contact][email]" class="input__label">Jouw e-mail</label> 1382 <button type="submit" class="input__submit-icon tap-area" title="Inschrijven"><svg focusable="false" width="17" height="14" class="icon icon--nav-arrow-right icon--direction-aware " viewBox="0 0 17 14"> 1383 <path d="M0 7h15M9 1l6 6-6 6" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1384 </svg></button> 1385 </div></form></div></div><div 1386 class="footer__item footer__item--social-media " 1387 1388 ><p class="footer__item-title heading heading--small">Bekijk Ons assortiment</p><div class="footer__item-content"><p><a href="https://grasscompany.myshopify.com/collections/cannabisitems" title="https://grasscompany.myshopify.com/collections/cannabisitems">
1388Cannabis items</a><br/><a href="https://grasscompany.myshopify.com/collections/rokersaccessoires" title="https://grasscompany.myshopify.com/collections/rokersaccessoires">Rokers items</a><br/><a href="https://grasscompany.myshopify.com/collections/bong-s-shisha-en-pijpjes" title="https://grasscompany.myshopify.com/collections/bong-s-shisha-en-pijpjes">Bongs Shisha's & Pijpjes</a><br/><a href="https://grasscompany.myshopify.com/collections/verpakking-weeg-en-rolmachines" title="https://grasscompany.myshopify.com/collections/verpakking-weeg-en-rolmachines">Verpakking, weeg & Rolmachines</a><br/><a href="https://grasscompany.myshopify.com/collections/gadgets-en-kleding" title="https://grasscompany.myshopify.com/collections/gadgets-en-kleding">Gadgets & Kleding</a><br/><a href="https://grasscompany.myshopify.com/collections/sale" title="https://grasscompany.myshopify.com/collections/sale">Aanbiedingen</a> </p><ul class="social-media list--unstyled" role="list"> 1389 <li class="social-media__item social-media__item--facebook"> 1390 <a href="https://www.facebook.com/Grasscompany/" target="_blank" rel="noopener" class="social-media__link" aria-label="Volg ons op Facebook"><svg focusable="false" width="9" height="17" class="icon icon--facebook " viewBox="0 0 9 17"> 1391 <path fill-rule="evenodd" clip-rule="evenodd" d="M2.486 16.2084L2.486 8.81845H0L0 5.93845L2.486 5.93845L2.486 3.81845C2.38483 2.79982 2.73793 1.78841 3.45107 1.05407C4.16421 0.319722 5.16485 -0.0628415 6.186 0.00844868C6.9284 0.00408689 7.67039 0.0441585 8.408 0.128449V2.69845L6.883 2.69845C6.4898 2.61523 6.08104 2.73438 5.79414 3.01585C5.50724 3.29732 5.3803 3.70373 5.456 4.09845L5.456 5.93845H8.308L7.936 8.81845H5.46L5.46 16.2084H2.486Z" fill="currentColor"></path> 1392 </svg></a> 1393 </li><li class="social-media__item social-media__item--instagram"> 1394 <a href="https://www.instagram.com/Grasscompany_com" target="_blank" rel="noopener" class="social-media__link" aria-label="Volg ons op Instagram"><svg focusable="false" width="16" height="16" class="icon icon--instagram " viewBox="0 0 16 16"> 1395 <path fill-rule="evenodd" clip-rule="evenodd" d="M8 0C5.827 0 5.555.01 4.702.048 3.85.087 3.269.222 2.76.42a3.921 3.921 0 00-1.417.923c-.445.444-.719.89-.923 1.417-.198.509-.333 1.09-.372 1.942C.01 5.555 0 5.827 0 8s.01 2.445.048 3.298c.039.852.174 1.433.372 1.942.204.526.478.973.923 1.417.444.445.89.719 1.417.923.509.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.445-.01 3.298-.048c.852-.039 1.433-.174 1.942-.372a3.922 3.922 0 001.417-.923c.445-.444.719-.89.923-1.417.198-.509.333-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.298c-.039-.852-.174-1.433-.372-1.942a3.922 3.922 0 00-.923-1.417A3.921 3.921 0 0013.24.42c-.509-.198-1.09-.333-1.942-.372C10.445.01 10.173 0 8 0zm0 1.441c2.136 0 2.39.009 3.233.047.78.036 1.203.166 1.485.276.374.145.64.318.92.598.28.28.453.546.598.92.11.282.24.705.276 1.485.038.844.047 1.097.047 3.233s-.009 2.39-.047 3.233c-.036.78-.166 1.203-.276 1.485-.145.374-.318.64-.598.92-.28.28-.546.453-.92.598-.282.11-.705.24-1.485.276-.844.038-1.097.047-3.233.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.479 2.479 0 01-.92-.598 2.478 2.478 0 01-.598-.92c-.11-.282-.24-.705-.276-1.485-.038-.844-.047-1.097-.047-3.233s.009-2.39.047-3.233c.036-.78.166-1.203.276-1.485.145-.374.318-.64.598-.92.28-.28.546-.453.92-.598.282-.11.705-.24 1.485-.276.844-.038 1.097-.047 3.233-.047zm0 9.226a2.667 2.667 0 110-5.334 2.667 2.667 0 010 5.334zm0-6.775a4.108 4.108 0 100 8.216 4.108 4.108 0 000-8.216zm5.23-.162a.96.96 0 11-1.92 0 .96.96 0 011.92 0z" fill="currentColor"></path> 1396 </svg></a> 1397 </li> 1398 </ul></div></div></div> 1399 1400 <div class="footer__aside"><form method="post" action="/localization" id="localization_form_footer" accept-charset="UTF-8" class="footer__cross-border" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/cart" /><div class="popover-container"> 1401 <input type="hidden" name="country_code" value="NL">
1402 <span class="visually-hidden">Land</span> 1403 1404 <button 1405 type="button" 1406 is="toggle-button" 1407 class="select select--small select--collapse-end text--xsmall" 1408 aria-expanded="false" 1409 aria-controls="footer-currency-selector" 1410 >Nederland (EUR 1411 â¬)<svg focusable="false" width="9" height="6" class="icon icon--chevron icon--inline " viewBox="0 0 12 8"> 1412 <path fill="none" d="M1 1l5 5 5-5" stroke="currentColor" stroke-width="1.8"></path> 1413 </svg></button> 1414 1415 <popover-content 1416 id="footer-currency-selector" 1417 class="popover popover--top popover--left popover--small" 1418 > 1419 <span class="popover__overlay"></span> 1420 1421 <header class="popover__header"> 1422 <span class="popover__title heading h6">Land</span> 1423 1424 <button 1425 type="button" 1426 class="popover__close-button tap-area tap-area--large" 1427 data-action="close" 1428 title="Sluiten" 1429 ><svg focusable="false" width="14" height="14" class="icon icon--close " viewBox="0 0 14 14"> 1430 <path d="M13 13L1 1M13 1L1 13" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1431 </svg></button> 1432 </header> 1433 1434 <div class="popover__content popover__content--restrict"> 1435 <div class="popover__choice-list"><button 1436 type="submit" 1437 name="country_code" 1438 value="BE" 1439 class="popover__choice-item" 1440 > 1441 <span 1442 class="popover__choice-label" 1443 1444 >België (EUR 1445 â¬) 1446 </span> 1447 </button><button 1448 type="submit" 1449 name="country_code" 1450 value="DE" 1451 class="popover__choice-item" 1452 > 1453 <span 1454 class="popover__choice-label" 1455 1456 >Duitsland (EUR 1457 â¬) 1458 </span> 1459 </button><button 1460 type="submit" 1461 name="country_code" 1462 value="FR" 1463 class="popover__choice-item" 1464 > 1465 <span 1466 class="popover__choice-label" 1467 1468 >Frankrijk (EUR 1469 â¬) 1470 </span> 1471 </button><button 1472 type="submit" 1473 name="country_code" 1474 value="NL" 1475 class="popover__choice-item" 1476 > 1477 <span 1478 class="popover__choice-label" 1479 1480 aria-current="true" 1481 1482 >Nederland (EUR 1483 â¬) 1484 </span> 1485 </button><button 1486 type="submit" 1487 name="country_code" 1488 value="ES" 1489 class="popover__choice-item" 1490 > 1491 <span 1492 class="popover__choice-label" 1493 1494 >Spanje (EUR 1495 â¬) 1496 </span> 1497 </button></div> 1498 </div> 1499 </popover-content> 1500 </div><div class="popover-container"> 1501 <input type="hidden" name="locale_code" value="nl">
1502 <span class="visually-hidden">Taal</span> 1503 1504 <button 1505 type="button" 1506 is="toggle-button" 1507 class="select select--small select--collapse-start text--xsmall" 1508 aria-expanded="false" 1509 aria-controls="footer-locale-selector" 1510 >Nederlands<svg focusable="false" width="9" height="6" class="icon icon--chevron icon--inline " viewBox="0 0 12 8"> 1511 <path fill="none" d="M1 1l5 5 5-5" stroke="currentColor" stroke-width="1.8"></path> 1512 </svg></button> 1513 1514 <popover-content id="footer-locale-selector" class="popover popover--top popover--small"> 1515 <span class="popover__overlay"></span> 1516 1517 <header class="popover__header"> 1518 <span class="popover__title heading h6">Taal</span> 1519 1520 <button 1521 type="button" 1522 class="popover__close-button tap-area tap-area--large" 1523 data-action="close" 1524 title="Sluiten" 1525 ><svg focusable="false" width="14" height="14" class="icon icon--close " viewBox="0 0 14 14"> 1526 <path d="M13 13L1 1M13 1L1 13" stroke="currentColor" stroke-width="1.8" fill="none"></path> 1527 </svg></button> 1528 </header> 1529 1530 <div class="popover__content"> 1531 <div class="popover__choice-list"><button 1532 type="submit" 1533 name="locale_code" 1534 value="nl" 1535 class="popover__choice-item" 1536 > 1537 <span 1538 class="popover__choice-label" 1539 1540 aria-current="true" 1541 1542 >Nederlands</span> 1543 </button><button 1544 type="submit" 1545 name="locale_code" 1546 value="en" 1547 class="popover__choice-item" 1548 > 1549 <span 1550 class="popover__choice-label" 1551 1552 >English</span> 1553 </button><button 1554 type="submit" 1555 name="locale_code" 1556 value="fr" 1557 class="popover__choice-item" 1558 > 1559 <span 1560 class="popover__choice-label" 1561 1562 >Français</span> 1563 </button><button 1564 type="submit" 1565 name="locale_code" 1566 value="de" 1567 class="popover__choice-item" 1568 > 1569 <span 1570 class="popover__choice-label" 1571 1572 >Deutsch</span> 1573 </button></div> 1574 </div> 1575 </popover-content> 1576 </div></form><span class="footer__copyright text--xsmall text--subdued">Grasscompany.com 1577 <span class="square-separator square-separator--block square-separator--subdued"></span> 1578 <a class="link--faded" href="https://newfive.com" name="Shopify Webshop"> Newfive</a></span 1579 ></div> 1580 </div> 1581 </div> 1582</footer> 1583 1584 1585</div> 1586<!-- END sections: footer-group --><style> .product-item {background: white; padding: 1rem; border-radius: 5px; border: 1px solid #eee;} .button {font-weight: 800;} .price-list {font-weight: bold;} </style> 1587<div id="shopify-block-AQVVMRmRHUXdJQ0VGM__6079602236699480629" class="shopify-block shopify-app-block">
1587<script> 1588 // Surface the logged-in customer's tags so the add-to-cart script can 1589 // enforce `restrictions.customer_tags` on cart rules. Liquid exposes 1590 // `customer.tags` as an array; for guests `customer` is nil and we emit 1591 // an empty list so the script treats them as anonymous. 1592 1593 window.giftproCustomer = { id: null, tags: [] }; 1594 1595 1596 window.giftproShopper = { 1597 ordersCount: null, 1598 loggedIn: false 1599 }; 1600 // Current Shopify Market, so the add-to-cart script can enforce 1601 // `restrictions.filters` markets gates without any storefront lookup. 1602 // Liquid exposes the market id as a bare numeric id; the validator matches 1603 // it against stored Market GIDs by comparing the trailing id segment. 1604 // `country` / `language` feed the Storefront API `@inContext` directive so 1605 // gift product titles and prices come back in the shopper's market/language. 1606 window.giftproLocalization = { 1607 country: "NL", 1608 language: "nl", 1609 market: { 1610 id: 51549471028, 1611 handle: "nl" 1612 } 1613 }; 1614 1615 // design settings metaobject may be missing for new installs. Read early â 1616 // the cartRules filter below needs designSettings.test_mode_param_name. 1617 window.designSettings = null || {};window.giftproTranslations = null || {}; 1618 window.giftproLocale = "nl"; 1619 1620 // Single source of truth for which cart rules apply to this storefront 1621 // session (schedule, status, inventory). Silent storefront_experience is 1622 // NOT filtered here â those rules still auto-add / qualify; promotion 1623 // widgets suppress them via filterRulesForPromotionSurface. 1624 window.cartRules = (function giftproFilterRulesBySchedule(rules) { 1625 if (!Array.isArray(rules)) { 1626 return []; 1627 } 1628 1629 // A rule's `status` field ("active" | "test" | "disabled"), unwrapped 1630 // from the metaobject's `{ value }` scalar shape. 1631 function resolveStatus(rule) { 1632 var status = rule && rule.status; 1633 if (status && typeof status === 'object' && 'value' in status) { 1634 status = status.value; 1635 } 1636 return status || 'active'; 1637 } 1638 1639 // Test-mode rules are only visible to merchants previewing with the 1640 // test-session cookie/query param â never to real shoppers. 1641 function isTestSession() { 1642 var paramName = (window.designSettings && window.designSettings.test_mode_param_name) || 'giftpro_test'; 1643 if (window.location && window.location.search) { 1644 try { 1645 var value = new URLSearchParams(window.location.search).get(paramName); 1646 if (value === 'off' || value === '0' || value === 'false') return false; 1647 if (value) return true; 1648 } catch (e) { /* URLSearchParams unsupported â fall through to cookie */ } 1649 } 1650 var cookies = document.cookie.split(';').map(function (c) { return c.trim(); }); 1651 return cookies.indexOf('gp_test_session=1') !== -1; 1652 } 1653 1654 var now = Date.now(); 1655 var testSession = isTestSession(); 1656 return rules.filter(function (rule) { 1657 var status = resolveStatus(rule); 1658 if (status === 'disabled') { 1659 return false; 1660 } 1661 if (status === 'test' && !testSession) { 1662 return false; 1663 } 1664 var restrictions = rule && rule.restrictions; 1665 if (restrictions == null) { 1666 return true; 1667 } 1668 if (typeof restrictions === 'string') { 1669 try { 1670 restrictions = JSON.parse(restrictions); 1671 } catch (e) { 1672 return true; 1673 } 1674 } 1675 if (!restrictions || typeof restrictions !== 'object') { 1676 return true; 1677 } 1678 if (restrictions.start_date && now < new Date(restrictions.start_date).getTime()) { 1679 return false; 1680 } 1681 if (restrictions.end_date && now > new Date(restrictions.end_date).getTime()) { 1682 return false; 1683 } 1684 // Operational inventory pause (plan §15). System-owned; suppresses the 1685 // rule at runtime without touching merchant `enabled`. Test rules do NOT 1686 // bypass this â a paused gift must never be offered. 1687 var invPaused = rule && rule.inventory_paused; 1688 if (invPaused === true || invPaused === 'true') { 1689 return false;
1690 } 1691 return true; 1692 }).map(function (rule) { 1693 if (!rule || typeof rule !== 'object') return rule; 1694 var id = rule.id; 1695 if ((id == null || id === '') && rule.system && rule.system.id != null) { 1696 id = 'gid://shopify/Metaobject/' + rule.system.id; 1697 } else if (typeof id === 'number') { 1698 id = 'gid://shopify/Metaobject/' + id; 1699 } else if (typeof id === 'string' && /^\d+$/.test(id)) { 1700 id = 'gid://shopify/Metaobject/' + id; 1701 } 1702 if (id == null || id === '') return rule; 1703 return Object.assign({}, rule, { id: id }); 1704 }); 1705 })([]); 1706 1707 // Inventory safeguards seed (plan §15/§16). A shopper-context hint for the 1708 // gift-inventory resolver so the common add path avoids a Storefront call 1709 // while the seed is fresh. `variant.available` is fast but only trustworthy 1710 // inside the resolver's short cache TTL. Never encodes the pause/backup 1711 // policy â the resolver owns that. `v2Enabled` gates the NEW storefront 1712 // backup path; it stays false until Phase 3 wiring is fully rolled out. 1713 window.giftproInventoryContext = { 1714 country: "NL", 1715 seededAt: Date.now(), 1716 v2Enabled: false, 1717 variants: {} 1718 }; 1719 1720 // These defaults match the runtime fallback values in the add-to-cart scripts. 1721 // (window.designSettings is set earlier, above window.cartRules.) 1722 window.toastDesign = 1723 window.designSettings?.confirmation_toast ?? { 1724 position: 'bottom_right', 1725 headline: 'Added to your cart', 1726 showImage: true, 1727 backgroundColor: '#15172a', 1728 textColor: '#e5e7eb', 1729 borderColor: '#e5e7eb', 1730 borderRadius: 12, 1731 borderWidth: 1, 1732 borderStyle: 'solid', 1733 accentColor: '#10b981' 1734 }; 1735 1736 window.popupDesign = 1737 window.designSettings?.product_choice_popup ?? { 1738 backgroundColor: '#ffffff', 1739 textColor: '#111827', 1740 overlayColor: '#000000', 1741 borderRadius: 8, 1742 buttonBackgroundColor: '#000000', 1743 buttonTextColor: '#ffffff', 1744 accentColor: '#111827', 1745 showImages: true, 1746 imageSize: 'medium', // small | medium | large 1747 layout: 'responsive', // horizontal | vertical | responsive 1748 hidePermanentlyLabel: "Don't show this again", 1749 addToCartLabel: 'Add to Cart', 1750 outOfStockLabel: 'Out of Stock', 1751 selectedLabel: 'Selected' 1752 }; 1753 1754 // Offer FAB (the bottom-left offer board). Embed-driven, no theme block. 1755 // Off until the merchant saves `offer_fab.enabled`. A missing field must not 1756 // inherit the old popup launcher, which defaulted on. 1757 window.offerFabDesign = 1758 window.designSettings?.offer_fab ?? { 1759 enabled: false, 1760 pillNone: 'Free gift available', 1761 pillOne: 'Gift unlocked', 1762 pillMany: '{count} gifts unlocked' 1763 }; 1764 1765 window.giftproBuyNow = window.designSettings?.buy_now ?? { enabled: false }; 1766 1767 window.giftproMoneyFormat = "â¬{{amount_with_comma_separator}}"; 1768 window.giftproMoneyWithCurrencyFormat = "â¬{{amount_with_comma_separator}} EUR"; 1769 window.giftproCurrencyCode = "EUR";// Merchandising widget config. Each storefront widget web component is fully 1770 // prop-driven and reads its config from one of these globals, sourced from the 1771 // design-settings metaobject (falling back to the same defaults the component 1772 // and its in-app preview use). This keeps storefront and preview identical. 1773 window.milestoneBarDesign = 1774 window.designSettings?.milestone_bar ?? { 1775 hero_headline: "You're {remaining} away from your {reward}!", 1776 subheadline: 'Add more to unlock exciting rewards', 1777 headline_progress: 'Add {remaining} more to unlock {reward}', 1778 headline_unlocked: "You've unlocked {reward}!", 1779 cta_label: 'Claim gift', 1780 show_thumbnail: true, 1781 animate: true, 1782 drawer: { 1783 enabled: false, 1784 collapsed_default: false, 1785 position: 'top', 1786 selector: '' 1787 } 1788 }; 1789 // Ensure drawer sub-object exists when design settings omit it. 1790 if (!window.milestoneBarDesign.drawer || typeof window.milestoneBarDesign.drawer !== 'object') { 1791 window.milestoneBarDesign.drawer = { 1792 enabled: false, 1793 collapsed_default: false, 1794 position: 'top', 1795 selector: '' 1796 }; 1797 } 1798 1799 window.dealOfTheDayDesign = 1800 window.designSettings?.deal_of_the_day ?? { 1801 eyebrow: 'Deal of the day', 1802 heading: 'Claim these gifts!', 1803 accent_color: '#0f8a6a', 1804 surface_color: '#ffffff', 1805 text_color: '#111827' 1806 }; 1807 1808 window.tieredRewardDesign = 1809 window.designSettings?.tiered_reward_box ?? { 1810 title: 'Tiered rewards', 1811 subtitle: 'Rewards based on achieved tier', 1812 progress_label: '90%', 1813 accent_color: '#0f8a6a', 1814 track_color: '#e5e7eb', 1815 surface_color: '#ffffff', 1816 text_color: '#111827', 1817 subtitle_color: '#6b7280', 1818 reached_index: 0 1819 }; 1820 1821 window.promotionCardDesign = 1822 window.designSettings?.promotion_card ?? { 1823 heading: 'Add 1 product and get a free gift', 1824 button_label: 'Add to cart & choose a gift', 1825 claimed_label: 'Claimed', 1826 choice_note: 'Choose from :count: gifts in the next step.', 1827 auto_applied_label: 'Adds automatically when you unlock this offer', 1828 accent_color: '#0f8a6a', 1829 button_text_color: '#ffffff', 1830 surface_color: '#ffffff', 1831 text_color: '#111827' 1832 }; 1833 1834 window.promotionBadgeDesign = 1835 window.designSettings?.promotion_badge ?? { 1836 enabled: false, 1837 corner_label: 'Free gift', 1838 corner_position: 'top-right', 1839 accent_color: '#0f8a6a', 1840 badge_text_color: '#ffffff', 1841 border_radius: 999, 1842 font_size: 12, 1843 padding_x: 10, 1844 padding_y: 6, 1845 card_selector: '', 1846 custom_css: '' 1847 }; 1848 1849 // The promotion badge has no placeable theme block â it's an on-page overlay. 1850 // Load its scanner bundle on demand, only when the merchant has switched the 1851 // widget on in the GiftPro app (design_settings.promotion_badge.enabled). 1852 if (window.promotionBadgeDesign && window.promotionBadgeDesign.enabled) { 1853 var gpPromoBadgeScript = document.createElement('script'); 1854 gpPromoBadgeScript.src = "https:\/\/cdn.shopify.com\/extensions\/01a10b5b-8c5c-7deb-9ded-4f5a110f529c\/giftpro-201\/assets\/promotion-badge.js"; 1855 gpPromoBadgeScript.defer = true; 1856 (document.head || document.documentElement).appendChild(gpPromoBadgeScript); 1857 } 1858 1859 window.slideCartOfferDesign = 1860 window.designSettings?.slide_cart_offer ?? { 1861 eyebrow: "Today's offer", 1862 accent_color: '#0f8a6a', 1863 surface_color: '#ffffff', 1864 text_color: '#111827' 1865 }; 1866 1867 // Gift selection widgets. These use Shopify's default black as their accent. 1868 window.giftPopupDesign = 1869 window.designSettings?.gift_popup ?? { 1870 heading: "You've unlocked a special gift!", 1871 button_label: 'Check out', 1872 accent_color: '#1a1a1a', 1873 button_text_color: '#ffffff', 1874 surface_color: '#ffffff', 1875 text_color: '#111827', 1876 rows: 2, 1877 selected_index: 0 1878 }; 1879 1880 window.congratsBarDesign = 1881 window.designSettings?.congrats_bar ?? { 1882 heading: 'Yay! Your cart with auto-added gifts is waiting', 1883 subtext: 'Check now!', 1884 accent_color: '#1a1a1a', 1885 text_color: '#ffffff', 1886 surface_color: '#eef0f1' 1887 }; 1888 1889 window.giftsOnSlideCartDesign = 1890 window.designSettings?.gifts_on_slide_cart ?? { 1891 enabled: false, 1892 eyebrow: 'From your rewards progress', 1893 title: 'Your unlocked rewards', 1894 claim_label: 'Add free', 1895 choose_label: 'Choose gift', 1896 claimed_label: 'Added', 1897 accent_color: '#1a1a1a', 1898 button_text_color: '#ffffff', 1899 surface_color: '#ffffff', 1900 text_color: '#111827', 1901 inherit_theme: true, 1902 show_thumbnail: true 1903 }; 1904 1905 // Sibling TAE assets on Shopify's extension CDN. Core injects these as 1906 //
1906<script> tags only when a toast/popup is needed (or idle-prefetched). 1907 window.giftproAssets = { 1908 toast: "https:\/\/cdn.shopify.com\/extensions\/01a10b5b-8c5c-7deb-9ded-4f5a110f529c\/giftpro-201\/assets\/confirmation-toast.js", 1909 popup: "https:\/\/cdn.shopify.com\/extensions\/01a10b5b-8c5c-7deb-9ded-4f5a110f529c\/giftpro-201\/assets\/product-choice-popup.js", 1910 offerFab: "https:\/\/cdn.shopify.com\/extensions\/01a10b5b-8c5c-7deb-9ded-4f5a110f529c\/giftpro-201\/assets\/offer-fab.js" 1911 }; 1912 1913 // Cart-drawer rewards inject into the merchant's existing drawer; they never 1914 // replace theme-owned cart markup. Load only when the drawer widget is on, 1915 // or when the preview fixture query-param is set. 1916 var gpDrawerUiFixture = false; 1917 try { 1918 var gpFixtureParam = new URLSearchParams(window.location.search).get('giftpro_drawer_fixture'); 1919 gpDrawerUiFixture = gpFixtureParam === 'spacious' || gpFixtureParam === 'tight' || gpFixtureParam === '1'; 1920 } catch (e) {} 1921 window.__giftproDrawerUiFixture = gpDrawerUiFixture; 1922 var gpDrawerEnabled = !!(window.milestoneBarDesign && window.milestoneBarDesign.drawer && window.milestoneBarDesign.drawer.enabled === true); 1923 if (gpDrawerEnabled || gpDrawerUiFixture) { 1924 var gpLoadDrawerRewards = function () { 1925 var gpDrawerRewardsScript = document.createElement('script'); 1926 var gpDrawerRewardsAsset = "https:\/\/cdn.shopify.com\/extensions\/01a10b5b-8c5c-7deb-9ded-4f5a110f529c\/giftpro-201\/assets\/cart-drawer-rewards.js"; 1927 gpDrawerRewardsScript.src = gpDrawerUiFixture 1928 ? gpDrawerRewardsAsset + '?fixture=' + Date.now() 1929 : gpDrawerRewardsAsset; 1930 (document.head || document.documentElement).appendChild(gpDrawerRewardsScript); 1931 }; 1932 if (document.readyState === 'loading') { 1933 document.addEventListener('DOMContentLoaded', gpLoadDrawerRewards, { once: true }); 1934 } else { 1935 gpLoadDrawerRewards(); 1936 } 1937 } 1938</script>
1938 1939
1940<script src="https://cdn.shopify.com/extensions/01a10b5b-8c5c-7deb-9ded-4f5a110f529c/giftpro-201/assets/add-to-cart.js" defer></script>
1940 1941 1942</div><div id="shopify-block-AMDRxa0JIQ1ZvT3BKc__18443233120380120315" class="shopify-block shopify-app-block">
1942<script> 1943 // Read the JSON metafield value directly (not base64) 1944 const __backlipSettingsRaw = `{"countriesBlock":[],"countriesRedirect":["SG","CL","CR","EC","JM","MX","PA","PE","CO","BO","PY","UY","VE","CN"],"blockType":"block_blacklist","redirectType":"redirect_blacklist","redirectUrl":"https://www.google.com","blockMessage":["Access Denied in Your Area."],"backgroundColor":"#ecc73f","textColor":"#100f0f"}`; 1945 let __backlipSettings = {}; 1946 try { 1947 __backlipSettings = JSON.parse(__backlipSettingsRaw); 1948 } catch (e) { 1949 __backlipSettings = {}; 1950 } 1951 window.bl_blcb = __backlipSettings; 1952</script>
1952 1953
1954<script> 1955 function __backlipCountAction() { 1956 1957 (function () { 1958 try { 1959 const installationId = "878040056131"; 1960 const formattedDate = new Date().toISOString().split('T')[0].replace(/-/g, '_'); 1961 const cookieName = `bl_cb_${installationId}_${formattedDate}`; 1962 1963 function getCookie(name) { 1964 const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); 1965 return match ? match[2] : null; 1966 } 1967 1968 function setCookie(name, value, hours) { 1969 const date = new Date(); 1970 date.setTime(date.getTime() + (hours * 60 * 60 * 1000)); 1971 const expires = "expires=" + date.toUTCString(); 1972 document.cookie = `${name}=${value}; ${expires}; path=/; SameSite=Lax`; 1973 } 1974 1975 if (!getCookie(cookieName)) { 1976 const url = `https://www.backlip.com/wp-json/counter/v1/bl_cb/blocks_${installationId}_${formattedDate}`; 1977 const sent = navigator.sendBeacon(url); 1978 setCookie(cookieName, "1", 24); 1979 } 1980 1981 } catch (e) { 1982 // completely silent fail to protect storefront 1983 } 1984 })(); 1985 1986 } 1987 1988 function __backlipHandleBlock(settings, currentCountry = "") { 1989 //{"countriesBlock":["AF"],"countriesRedirect":["IL"],"blockType":"block_whitelist","redirectType":"redirect_whitelist","redirectUrl":"https://www.google.com","blockMessage":"Access Denied in Your Area.","backgroundColor":"#FFFFFF","textColor":"#000000"} 1990 if ( 1991 settings.countriesBlock.length > 0 && 1992 ((settings.blockType?.includes("blacklist") && settings.countriesBlock.includes(currentCountry)) || 1993 (settings.blockType?.includes("whitelist") && !settings.countriesBlock.includes(currentCountry))) 1994 ) { 1995 const blockElement = document.createElement('div'); 1996 blockElement.innerHTML = settings.blockMessage; 1997 blockElement.style.margin = '0'; 1998 blockElement.style.display = 'flex'; 1999 blockElement.style.alignItems = 'center'; 2000 blockElement.style.justifyContent = 'center'; 2001 blockElement.style.height = '100vh'; 2002 blockElement.style.background = settings.backgroundColor; 2003 blockElement.style.fontSize = '40px'; 2004 blockElement.style.color = settings.textColor; 2005 blockElement.style.zIndex = '2147483647'; 2006 document.body.innerHTML = ''; 2007 document.body.appendChild(blockElement); 2008 2009 __backlipCountAction(); 2010 } 2011 if ( 2012 settings.countriesRedirect.length > 0 && 2013 ((settings.redirectType?.includes("blacklist") && settings.countriesRedirect.includes(currentCountry)) || 2014 (settings.redirectType?.includes("whitelist") && !settings.countriesRedirect.includes(currentCountry))) 2015 ) { 2016 __backlipCountAction(); 2017 window.location = settings.redirectUrl; 2018 } 2019 } 2020 2021 2022 2023 async function __backlipGetCountry() { 2024 await fetch( 2025 window.Shopify.routes.root + 2026 'browsing_context_suggestions.json' + 2027 '?country[enabled]=true' + 2028 `&country[exclude]=${window.Shopify.country}` + 2029 '&language[enabled]=true' + 2030 `&language[exclude]=${window.Shopify.language}` 2031 ) 2032 .then(r => r.json()) 2033 .then(data => { 2034 const country = sessionStorage.getItem("bl_force_country") || data.detected_values?.country?.handle || data.country?.suggestions?.[0]?.code || window.Shopify.country; 2035 console.log("BLCP", country); 2036 window.bl_blcb_c=country; 2037 const settings = window.bl_blcb; 2038 __backlipHandleBlock(settings,country); 2039 }); 2040 } 2041 __backlipGetCountry(); 2042 2043 2044</script>
2044 2045 2046</div>
2046<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2046 2047<shopify-store store-domain="https://grasscompany.com" country="NL" language="nl"></shopify-store> 2048<shopify-chat></shopify-chat> 2049</body> 2050</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.