1<!doctype html> 2 3<html lang="de" dir="ltr"> 4 <head> 5 <meta charset="utf-8"> 6 <meta 7 name="viewport" 8 content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0" 9 > 10 <meta name="theme-color" content="#ffffff"> 11 <meta name="google-site-verification" content="ZygEyXZOUgKJ7nOJt78oanAxzKQ105BpuhaHW6KJ3NI"> 12 <title> 13 Dein Warenkorb 14 </title><link rel="canonical" href="https://www.next-level-verlag.de/cart"><link rel="shortcut icon" href="//www.next-level-verlag.de/cdn/shop/files/next-level-verlag-favi_a52f7434-5325-4016-9a29-db7f429b1d42.png?v=1747229912&width=96"> 15 <link rel="apple-touch-icon" href="//www.next-level-verlag.de/cdn/shop/files/next-level-verlag-favi_a52f7434-5325-4016-9a29-db7f429b1d42.png?v=1747229912&width=180"><link rel="preconnect" href="https://cdn.shopify.com"> 16 <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 17 <link rel="dns-prefetch" href="https://productreviews.shopifycdn.com"><link rel="preload" href="//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website"> 18 <meta property="og:title" content="Dein Warenkorb"><meta property="og:image" content="http://www.next-level-verlag.de/cdn/shop/files/next-level-verlag-favi_cf6e369b-c3ba-469d-8590-5c4d25512932.png?v=1747230118&width=2048"> 19 <meta property="og:image:secure_url" content="https://www.next-level-verlag.de/cdn/shop/files/next-level-verlag-favi_cf6e369b-c3ba-469d-8590-5c4d25512932.png?v=1747230118&width=2048"> 20 <meta property="og:image:width" content="180"> 21 <meta property="og:image:height" content="180"><meta property="og:url" content="https://www.next-level-verlag.de/cart"> 22<meta property="og:site_name" content="NXT LVL GmbH"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Dein Warenkorb"> 23 <meta name="twitter:description" content="Dein Warenkorb"><meta name="twitter:image" content="https://www.next-level-verlag.de/cdn/shop/files/next-level-verlag-favi_cf6e369b-c3ba-469d-8590-5c4d25512932.png?crop=center&height=1200&v=1747230118&width=1200"> 24 <meta name="twitter:image:alt" content="">
24<script type="application/ld+json"> 25 { 26 "@context": "https://schema.org", 27 "@type": "BreadcrumbList", 28 "itemListElement": [{ 29 "@type": "ListItem", 30 "position": 1, 31 "name": "Home", 32 "item": "https://www.next-level-verlag.de" 33 }] 34 } 35</script>
35<style>/* Typography (heading) */ 36 @font-face { 37 font-family: Barlow; 38 font-weight: 700; 39 font-style: normal; 40 font-display: fallback; 41 src: url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2") format("woff2"), 42 url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n7.4fdbb1cb7da0e2c2f88492243ffa2b4f91924840.woff") format("woff"); 43} 44 45@font-face { 46 font-family: Barlow; 47 font-weight: 700; 48 font-style: italic; 49 font-display: fallback; 50 src: url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_i7.50e19d6cc2ba5146fa437a5a7443c76d5d730103.woff2") format("woff2"), 51 url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_i7.47e9f98f1b094d912e6fd631cc3fe93d9f40964f.woff") format("woff"); 52} 53 54/* Typography (body) */ 55 @font-face { 56 font-family: Barlow; 57 font-weight: 500; 58 font-style: normal; 59 font-display: fallback; 60 src: url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2") format("woff2"), 61 url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n5.ae31c82169b1dc0715609b8cc6a610b917808358.woff") format("woff"); 62} 63 64@font-face { 65 font-family: Barlow; 66 font-weight: 500; 67 font-style: italic; 68 font-display: fallback; 69 src: url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_i5.714d58286997b65cd479af615cfa9bb0a117a573.woff2") format("woff2"), 70 url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_i5.0120f77e6447d3b5df4bbec8ad8c2d029d87fb21.woff") format("woff"); 71} 72 73@font-face { 74 font-family: Barlow; 75 font-weight: 700; 76 font-style: normal; 77 font-display: fallback; 78 src: url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2") format("woff2"), 79 url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_n7.4fdbb1cb7da0e2c2f88492243ffa2b4f91924840.woff") format("woff"); 80} 81 82@font-face { 83 font-family: Barlow; 84 font-weight: 700; 85 font-style: italic; 86 font-display: fallback; 87 src: url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_i7.50e19d6cc2ba5146fa437a5a7443c76d5d730103.woff2") format("woff2"), 88 url("//www.next-level-verlag.de/cdn/fonts/barlow/barlow_i7.47e9f98f1b094d912e6fd631cc3fe93d9f40964f.woff") format("woff"); 89} 90 91:root { 92 /** 93 * --------------------------------------------------------------------- 94 * SPACING VARIABLES 95 * 96 * We are using a spacing inspired from frameworks like Tailwind CSS. 97 * --------------------------------------------------------------------- 98 */ 99 --spacing-0-5: 0.125rem; /* 2px */ 100 --spacing-1: 0.25rem; /* 4px */ 101 --spacing-1-5: 0.375rem; /* 6px */ 102 --spacing-2: 0.5rem; /* 8px */ 103 --spacing-2-5: 0.625rem; /* 10px */ 104 --spacing-3: 0.75rem; /* 12px */ 105 --spacing-3-5: 0.875rem; /* 14px */ 106 --spacing-4: 1rem; /* 16px */ 107 --spacing-4-5: 1.125rem; /* 18px */ 108 --spacing-5: 1.25rem; /* 20px */ 109 --spacing-5-5: 1.375rem; /* 22px */ 110 --spacing-6: 1.5rem; /* 24px */ 111 --spacing-6-5: 1.625rem; /* 26px */ 112 --spacing-7: 1.75rem; /* 28px */ 113 --spacing-7-5: 1.875rem; /* 30px */ 114 --spacing-8: 2rem; /* 32px */ 115 --spacing-8-5: 2.125rem; /* 34px */ 116 --spacing-9: 2.25rem; /* 36px */ 117 --spacing-9-5: 2.375rem; /* 38px */ 118 --spacing-10: 2.5rem; /* 40px */ 119 --spacing-11: 2.75rem; /* 44px */ 120 --spacing-12: 3rem; /* 48px */ 121 --spacing-14: 3.5rem; /* 56px */ 122 --spacing-16: 4rem; /* 64px */ 123 --spacing-18: 4.5rem; /* 72px */ 124 --spacing-20: 5rem; /* 80px */ 125 --spacing-24: 6rem; /* 96px */ 126 --spacing-28: 7rem; /* 112px */ 127 --spacing-32: 8rem; /* 128px */ 128 --spacing-36: 9rem; /* 144px */ 129 --spacing-40: 10rem; /* 160px */ 130 --spacing-44: 11rem; /* 176px */ 131 --spacing-48: 12rem; /* 192px */ 132 --spacing-52: 13rem; /* 208px */ 133 --spacing-56: 14rem; /* 224px */ 134 --spacing-60: 15rem; /* 240px */ 135 --spacing-64: 16rem; /* 256px */ 136 --spacing-72: 18rem; /* 288px */ 137 --spacing-80: 20rem; /* 320px */ 138 --spacing-96: 24rem; /* 384px */ 139 140 /* Container */ 141 --container-max-width: 1600px; 142 --container-narrow-max-width: 1350px; 143 --container-gutter: var(--spacing-5); 144 --section-outer-spacing-block: var(--spacing-8); 145 --section-inner-max-spacing-block: var(--spacing-8); 146 --section-inner-spacing-inline: var(--container-gutter); 147 --section-stack-spacing-block: var(--spacing-8); 148 149 /* Grid gutter */ 150 --grid-gutter: var(--spacing-5); 151 152 /* Product list settings */ 153 --product-list-row-gap: var(--spacing-8); 154 --product-list-column-gap: var(--grid-gutter); 155 156 /* Form settings */ 157 --input-gap: var(--spacing-2); 158 --input-height: 2.625rem; 159 --input-padding-inline: var(--spacing-4); 160 161 /* Other sizes */ 162 --sticky-area-height: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px) + var(--sticky-header-enabled, 0) * var(--header-height, 0px)); 163 164 /* RTL support */ 165 --transform-logical-flip: 1; 166 --transform-origin-start: left;
167 --transform-origin-end: right; 168 169 /** 170 * --------------------------------------------------------------------- 171 * TYPOGRAPHY 172 * --------------------------------------------------------------------- 173 */ 174 175 /* Font properties */ 176 --heading-font-family: Barlow, sans-serif; 177 --heading-font-weight: 700; 178 --heading-font-style: normal; 179 --heading-text-transform: normal; 180 --heading-letter-spacing: -0.02em; 181 --text-font-family: Barlow, sans-serif; 182 --text-font-weight: 500; 183 --text-font-style: normal; 184 --text-letter-spacing: 0.0em; 185 186 /* Font sizes */ 187 --text-h0: 2.5rem; 188 --text-h1: 1.75rem; 189 --text-h2: 1.5rem; 190 --text-h3: 1.375rem; 191 --text-h4: 1.125rem; 192 --text-h5: 1.125rem; 193 --text-h6: 1rem; 194 --text-xs: 0.6875rem; 195 --text-sm: 0.75rem; 196 --text-base: 0.875rem; 197 --text-lg: 1.125rem; 198 199 /** 200 * --------------------------------------------------------------------- 201 * COLORS 202 * --------------------------------------------------------------------- 203 */ 204 205 /* Color settings */--accent: 26 26 26; 206 --text-primary: 26 26 26; 207 --background-primary: 255 255 255; 208 --dialog-background: 255 255 255; 209 --border-color: var(--text-color, var(--text-primary)) / 0.12; 210 211 /* Button colors */ 212 --button-background-primary: 26 26 26; 213 --button-text-primary: 255 255 255; 214 --button-background-secondary: 240 196 23; 215 --button-text-secondary: 26 26 26; 216 217 /* Status colors */ 218 --success-background: 224 244 232; 219 --success-text: 0 163 65; 220 --warning-background: 255 246 233; 221 --warning-text: 255 183 74; 222 --error-background: 254 231 231; 223 --error-text: 248 58 58; 224 225 /* Product colors */ 226 --on-sale-text: 248 58 58; 227 --on-sale-badge-background: 248 58 58; 228 --on-sale-badge-text: 255 255 255; 229 --sold-out-badge-background: 0 0 0; 230 --sold-out-badge-text: 255 255 255; 231 --primary-badge-background: 128 60 238; 232 --primary-badge-text: 255 255 255; 233 --star-color: 255 183 74; 234 --product-card-background: 255 255 255; 235 --product-card-text: 26 26 26; 236 237 /* Header colors */ 238 --header-background: 255 255 255; 239 --header-text: 26 26 26; 240 241 /* Footer colors */ 242 --footer-background: 255 255 255; 243 --footer-text: 26 26 26; 244 245 /* Rounded variables (used for border radius) */ 246 --rounded-xs: 0.25rem; 247 --rounded-sm: 0.375rem; 248 --rounded: 0.75rem; 249 --rounded-lg: 1.5rem; 250 --rounded-full: 9999px; 251 252 --rounded-button: 0.0rem; 253 --rounded-input: 0.5rem; 254 255 /* Box shadow */ 256 --shadow-sm: 0 2px 8px rgb(var(--text-primary) / 0.1); 257 --shadow: 0 5px 15px rgb(var(--text-primary) / 0.1); 258 --shadow-md: 0 5px 30px rgb(var(--text-primary) / 0.1); 259 --shadow-block: 0px 0px 50px rgb(var(--text-primary) / 0.1); 260 261 /** 262 * --------------------------------------------------------------------- 263 * OTHER 264 * --------------------------------------------------------------------- 265 */ 266 267 --stagger-products-reveal-opacity: 0; 268 --cursor-close-svg-url: url(//www.next-level-verlag.de/cdn/shop/t/4/assets/cursor-close.svg?v=147174565022153725511731938665); 269 --cursor-zoom-in-svg-url: url(//www.next-level-verlag.de/cdn/shop/t/4/assets/cursor-zoom-in.svg?v=154953035094101115921731938666); 270 --cursor-zoom-out-svg-url: url(//www.next-level-verlag.de/cdn/shop/t/4/assets/cursor-zoom-out.svg?v=16155520337305705181731938665); 271 --checkmark-svg-url: url(//www.next-level-verlag.de/cdn/shop/t/4/assets/checkmark.svg?v=77552481021870063511731938665); 272 } 273 274 [dir="rtl"]:root { 275 /* RTL support */ 276 --transform-logical-flip: -1; 277 --transform-origin-start: right; 278 --transform-origin-end: left; 279 } 280 281 @media screen and (min-width: 700px) { 282 :root { 283 /* Typography (font size) */ 284 --text-h0: 3.25rem; 285 --text-h1: 2.25rem; 286 --text-h2: 1.75rem; 287 --text-h3: 1.625rem; 288 --text-h4: 1.25rem; 289 --text-h5: 1.25rem; 290 --text-h6: 1.125rem; 291 292 --text-xs: 0.75rem; 293 --text-sm: 0.875rem; 294 --text-base: 1.0rem; 295 --text-lg: 1.25rem; 296 297 /* Spacing */ 298 --container-gutter: 2rem; 299 --section-outer-spacing-block: var(--spacing-12); 300 --section-inner-max-spacing-block: var(--spacing-10); 301 --section-inner-spacing-inline: var(--spacing-10); 302 --section-stack-spacing-block: var(--spacing-10); 303 304 /* Grid gutter */ 305 --grid-gutter: var(--spacing-6); 306 307 /* Product list settings */ 308 --product-list-row-gap: var(--spacing-12); 309 310 /* Form settings */ 311 --input-gap: 1rem; 312 --input-height: 3.125rem; 313 --input-padding-inline: var(--spacing-5); 314 } 315 } 316 317 @media screen and (min-width: 1000px) { 318 :root { 319 /* Spacing settings */ 320 --container-gutter: var(--spacing-12); 321 --section-outer-spacing-block: var(--spacing-14); 322 --section-inner-max-spacing-block: var(--spacing-12); 323 --section-inner-spacing-inline: var(--spacing-12); 324 --section-stack-spacing-block: var(--spacing-10); 325 } 326 } 327 328 @media screen and (min-width: 1150px) { 329 :root { 330 /* Spacing settings */ 331 --container-gutter: var(--spacing-12); 332 --section-outer-spacing-block: var(--spacing-14); 333 --section-inner-max-spacing-block: var(--spacing-12); 334 --section-inner-spacing-inline: var(--spacing-12); 335 --section-stack-spacing-block: var(--spacing-12); 336 } 337 } 338 339 @media screen and (min-width: 1400px) { 340 :root { 341 /* Typography (font size) */ 342 --text-h0: 4rem; 343 --text-h1: 3rem; 344 --text-h2: 2.5rem; 345 --text-h3: 1.75rem; 346 --text-h4: 1.5rem; 347 --text-h5: 1.25rem; 348 --text-h6: 1.25rem; 349 350 --section-outer-spacing-block: var(--spacing-16); 351 --section-inner-max-spacing-block: var(--spacing-14); 352 --section-inner-spacing-inline: var(--spacing-14); 353 } 354 } 355 356 @media screen and (min-width: 1600px) { 357 :root { 358 --section-outer-spacing-block: var(--spacing-16); 359 --section-inner-max-spacing-block: var(--spacing-16); 360 --section-inner-spacing-inline: var(--spacing-16); 361 } 362 } 363 364 /** 365 * --------------------------------------------------------------------- 366 * LIQUID DEPENDANT CSS 367 * 368 * Our main CSS is Liquid free, but some very specific features depend on 369 * theme settings, so we have them here 370 * --------------------------------------------------------------------- 371 */@media screen and (pointer: fine) {
372 .button:not([disabled]):hover, .btn:not([disabled]):hover, .shopify-payment-button__button--unbranded:not([disabled]):hover { 373 --button-background-opacity: 0.85; 374 } 375 376 .button--subdued:not([disabled]):hover { 377 --button-background: var(--text-color) / .05 !important; 378 } 379 }</style>
379<script> 380 // This allows to expose several variables to the global scope, to be used in scripts 381 window.themeVariables = { 382 settings: { 383 showPageTransition: null, 384 staggerProductsApparition: true, 385 reduceDrawerAnimation: false, 386 reduceMenuAnimation: false, 387 headingApparition: "split_fade", 388 pageType: "cart", 389 moneyFormat: "â¬{{amount_with_comma_separator}}", 390 moneyWithCurrencyFormat: "â¬{{amount_with_comma_separator}} EUR", 391 currencyCodeEnabled: false, 392 cartType: "popover", 393 showDiscount: false, 394 discountMode: "saving", 395 pageBackground: "#ffffff", 396 textColor: "#1a1a1a" 397 }, 398 399 strings: { 400 accessibilityClose: "SchlieÃen", 401 accessibilityNext: "Vor", 402 accessibilityPrevious: "Zurück", 403 closeGallery: "Galerie schlieÃen", 404 zoomGallery: "Bild vergröÃern", 405 errorGallery: "Bild kann nicht geladen werden", 406 searchNoResults: "Keine Treffer", 407 addOrderNote: "Bestellhinweis hinzufügen", 408 editOrderNote: "Bestellhinweis bearbeiten", 409 shippingEstimatorNoResults: "Tut uns leid, aber wir verschicken leider nicht an deine Adresse.", 410 shippingEstimatorOneResult: "Für deine Adresse gibt es einen Versandtarif:", 411 shippingEstimatorMultipleResults: "Für deine Adresse gibt es mehrere Versandtarife:", 412 shippingEstimatorError: "Beim Berechnen der Versandkosten ist ein Fehler aufgetreten:" 413 }, 414 415 breakpoints: { 416 'sm': 'screen and (min-width: 700px)', 417 'md': 'screen and (min-width: 1000px)', 418 'lg': 'screen and (min-width: 1150px)', 419 'xl': 'screen and (min-width: 1400px)', 420 421 'sm-max': 'screen and (max-width: 699px)', 422 'md-max': 'screen and (max-width: 999px)', 423 'lg-max': 'screen and (max-width: 1149px)', 424 'xl-max': 'screen and (max-width: 1399px)' 425 } 426 }; 427 428 // For detecting native share 429 document.documentElement.classList.add(`native-share--${navigator.share ? 'enabled' : 'disabled'}`);</script>
429<script> 430 if (!(HTMLScriptElement.supports && HTMLScriptElement.supports('importmap'))) { 431 const importMapPolyfill = document.createElement('script'); 432 importMapPolyfill.async = true; 433 importMapPolyfill.src = "//www.next-level-verlag.de/cdn/shop/t/4/assets/es-module-shims.min.js?v=140375185335194536761731938650"; 434 435 document.head.appendChild(importMapPolyfill); 436 } 437 </script>
437 438 439
439<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 439
439
440<script type="importmap">{ 441 "imports": { 442 "vendor": "//www.next-level-verlag.de/cdn/shop/t/4/assets/vendor.min.js?v=87984156289740595151731938650", 443 "theme": "//www.next-level-verlag.de/cdn/shop/t/4/assets/theme.js?v=46263768749489231761731938650", 444 "photoswipe": "//www.next-level-verlag.de/cdn/shop/t/4/assets/photoswipe.min.js?v=13374349288281597431731938650" 445 } 446 } 447 </script>
447 448 449
449<script type="module" src="//www.next-level-verlag.de/cdn/shop/t/4/assets/vendor.min.js?v=87984156289740595151731938650"></script>
449 450
450<script type="module" src="//www.next-level-verlag.de/cdn/shop/t/4/assets/theme.js?v=46263768749489231761731938650"></script>
450 451
451<script src="//www.next-level-verlag.de/cdn/shop/t/4/assets/custom.js?v=168197775787162638901782196393" defer></script>
451 452 453
453<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
453<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/89935774045/digital_wallets/dialog"> 454<meta id="in-context-paypal-metadata" data-shop-id="89935774045" data-venmo-supported="false" data-environment="production" data-locale="de_DE" data-paypal-v4="true" data-currency="EUR"> 455<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
455<script async="async" src="/checkouts/internal/preloads.js?locale=de-DE"></script>
455 456<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
457<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=de-DE&shop_id=89935774045" crossorigin="anonymous"></script>
vendor: 1 bytes, line 457
457
458<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":89935774045,"countryCode":"DE","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/89935774045","merchantName":"NXT LVL GmbH","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","amex"],"total":{"type":"pending","label":"NXT LVL GmbH","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 458
458
459<script id="shopify-features" type="application/json">{"accessToken":"6699354db4fe56b6482d8b8c3b165185","betas":["rich-media-storefront-analytics"],"domain":"www.next-level-verlag.de","predictiveSearch":true,"shopId":89935774045,"locale":"de"}</script>
vendor: 1 bytes, line 459
459
460<script>var Shopify = Shopify || {}; 461Shopify.shop = "52f6de-ed.myshopify.com"; 462Shopify.locale = "de"; 463Shopify.currency = {"active":"EUR","rate":"1.0"}; 464Shopify.country = "DE"; 465Shopify.theme = {"name":"NXT LVL Webshop","id":175475982685,"schema_name":"Impact","schema_version":"6.4.1","theme_store_id":1190,"role":"main"}; 466Shopify.theme.handle = "null"; 467Shopify.theme.style = {"id":null,"handle":null}; 468Shopify.cdnHost = "www.next-level-verlag.de/cdn"; 469Shopify.routes = Shopify.routes || {}; 470Shopify.routes.root = "/"; 471Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 472Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 473Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 474Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 474
474
475<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 475
475
476<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 476
476
477<script> 478 window.ShopifyPay = window.ShopifyPay || {}; 479 window.ShopifyPay.apiHost = "shop.app\/pay"; 480 window.ShopifyPay.redirectState = null; 481</script>
vendor: 1 bytes, line 481
481
482<script> 483 window.Shopify = window.Shopify || {}; 484 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 485 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 486 window.Shopify.SignInWithShop.eligible = true; 487</script>
vendor: 1 bytes, line 487
487
488<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 488
488
489<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.de.esm.js"></script>
vendor: 1 bytes, line 489
489
490<script type="module"> 491 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.de.esm.js"); 492 493 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 494 495</script>
vendor: 1 bytes, line 495
495
496<script> 497 window.Shopify = window.Shopify || {}; 498 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 499 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.de.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.de.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.de.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.de.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.de.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.de.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.de.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.de.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.de.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.de.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.de.esm.js"],"listener":["modules/v2/loader.listener.de.esm.js"],"pay-button":["modules/v2/loader.pay-button.de.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.de.esm.js"],"shop-button":["modules/v2/loader.shop-button.de.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.de.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.de.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.de.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.de.esm.js"],"shop-login":["modules/v2/loader.shop-login.de.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.de.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.de.esm.js"]}; 500</script>
vendor: 1 bytes, line 500
500
501<script>(function() { 502 var isLoaded = false; 503 function asyncLoad() { 504 if (isLoaded) return; 505 isLoaded = true; 506 var urls = ["https:\/\/cdn-app.sealsubscriptions.com\/shopify\/public\/js\/sealsubscriptions.js?shop=52f6de-ed.myshopify.com","https:\/\/cdn-bundler.nice-team.net\/app\/js\/bundler.js?shop=52f6de-ed.myshopify.com","https:\/\/cdn.opinew.com\/js\/opinew-active.js?shop=52f6de-ed.myshopify.com"]; 507 for (var i = 0; i < urls.length; i++) { 508 var s = document.createElement('script'); 509 s.type = 'text/javascript'; 510 s.async = true; 511 s.src = urls[i]; 512 var x = document.getElementsByTagName('script')[0]; 513 x.parentNode.insertBefore(s, x); 514 } 515 }; 516 if(window.attachEvent) { 517 window.attachEvent('onload', asyncLoad); 518 } else { 519 window.addEventListener('load', asyncLoad, false); 520 } 521})();</script>
vendor: 1 bytes, line 521
521
522<script id="__st">var __st={"a":89935774045,"offset":7200,"reqid":"7a5f4569-58fa-4909-b13f-bb3f7cbccf6b-1791090948","pageurl":"www.next-level-verlag.de\/cart","u":"11d7cccbd19c","p":"cart"};</script>
vendor: 1 bytes, line 522
522
523<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 523
523
524<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:'Durch hCaptcha geschützt',privacyText:'Datenschutz',termsText:'Allgemeine Geschäftsbedingungen'},(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'])})(!0,!0)}();</script>
vendor: 1 bytes, line 524
524
525<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.next-level-verlag.de/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 525
525
526<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 = "//www.next-level-verlag.de/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>
526<script crossorigin="anonymous" defer="defer" src="//www.next-level-verlag.de/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 526
526
527<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 527
527
528<script> 529 window.Shopify = window.Shopify || {}; 530 window.Shopify.MCP = window.Shopify.MCP || {}; 531 window.Shopify.MCP.enabled = true; 532 window.Shopify.MCP.shop = "52f6de-ed.myshopify.com"; 533 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.next-level-verlag.de\/api\/mcp"; 534 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?\"\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."}},"required":["query"]}}]; 535</script>
vendor: 1 bytes, line 535
535
536<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("\/\/www.next-level-verlag.de\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 537</script>
vendor: 1 bytes, line 537
537
538<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://www.next-level-verlag.de/cdn/shopifycloud/portable-wallets/latest/portable-wallets.de.js",t.type="module",document.head.appendChild(t)}}; 539</script>
vendor: 1 bytes, line 539
539
540<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 541 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); 542</script>
vendor: 1 bytes, line 542
542
543<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})}})); 544</script>
vendor: 1 bytes, line 544
544
545<script id='scb4127' type='text/javascript' async='' src='https://www.next-level-verlag.de/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
545<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.next-level-verlag.de/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 546<style id="shopify-accelerated-checkout-cart"> 547 #shopify-buyer-consent { 548 margin-top: 1em; 549 display: inline-block; 550 width: 100%; 551} 552 553#shopify-buyer-consent.hidden { 554 display: none; 555} 556 557#shopify-subscription-policy-button { 558 background: none; 559 border: none; 560 padding: 0; 561 text-decoration: underline; 562 font-size: inherit; 563 cursor: pointer; 564} 565 566#shopify-subscription-policy-button::before { 567 box-shadow: none; 568} 569 570 </style> 571
572<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
572 573<link href="//www.next-level-verlag.de/cdn/shop/t/4/assets/theme.css?v=151159139448717063861731938650" rel="stylesheet" type="text/css" media="all" /><link href="//www.next-level-verlag.de/cdn/shop/t/4/assets/custom.css?v=50839255642774905281782196992" rel="stylesheet" type="text/css" media="all" /> 574 575 576 577
577<script defer> 578 579 /** 580 * IMPORTANT! 581 * Do not edit this file. Any changes made could be overwritten by Multiship at 582 * any time. 583 * 584 * The below code is critical to the functionality of Multiship's multiple shipping 585 * address and bundle features. It also greatly improves the load time of the 586 * application. 587 */ 588 589 if (typeof(GIST) == 'undefined') { 590 window.GIST = GIST = {}; 591 } 592 if (typeof(GIST.f) == 'undefined') { 593 GIST.f = {}; 594 } 595 596 597 598 599 600 601 </script>
601 602 603 604 605 606 607
607<script type="text/javascript" src="https://multiship.app/build/storefront/storefront.js" defer></script>
607 608 <link rel="stylesheet" type="text/css" href="https://multiship.app/build/storefront/storefront.css"> 609 610 611 612 613<!-- BEGIN app block: shopify://apps/seal-subscriptions/blocks/subscription-script-append/13b25004-a140-4ab7-b5fe-29918f759699 -->
613<script defer="defer"> 614 /** SealSubs loader,version number: 2.0 */ 615 (function(){ 616 var loadScript=function(a,b){var c=document.createElement("script");c.setAttribute("defer", "defer");c.type="text/javascript",c.readyState?c.onreadystatechange=function(){("loaded"==c.readyState||"complete"==c.readyState)&&(c.onreadystatechange=null,b())}:c.onload=function(){b()},c.src=a,document.getElementsByTagName("head")[0].appendChild(c)}; 617 // Set variable to prevent the other loader from requesting the same resources 618 window.seal_subs_app_block_loader = true; 619 appendScriptUrl('52f6de-ed.myshopify.com'); 620 621 // get script url and append timestamp of last change 622 function appendScriptUrl(shop) { 623 var timeStamp = Math.floor(Date.now() / (1000*1*1)); 624 var timestampUrl = 'https://app.sealsubscriptions.com/shopify/public/status/shop/'+shop+'.js?'+timeStamp; 625 loadScript(timestampUrl, function() { 626 // append app script 627 if (typeof sealsubscriptions_settings_updated == 'undefined') { 628 sealsubscriptions_settings_updated = 'default-by-script'; 629 } 630 631 var locale = ''; 632 if (typeof window !== 'undefined' && 633 typeof window.Shopify !== 'undefined' && 634 typeof window.Shopify.locale !== 'undefined' 635 ) { 636 locale = window.Shopify.locale; 637 } 638 639 var scriptUrl = "https://cdn-app.sealsubscriptions.com/shopify/public/js/sealsubscriptions-main.js?shop="+shop+"&"+sealsubscriptions_settings_updated+`&locale=${locale}`; 640 loadScript(scriptUrl, function(){}); 641 }); 642 } 643 })(); 644 645 var SealSubsScriptAppended = true; 646 647</script>
647 648 649<!-- END app block --><!-- BEGIN app block: shopify://apps/sitemap-noindex-pro-seo/blocks/app-embed/4d815e2c-5af0-46ba-8301-d0f9cf660031 --><meta name="robots" content="noindex,nofollow" /> 650<!-- END app block --><!-- BEGIN app block: shopify://apps/bundler/blocks/bundler-script-append/7a6ae1b8-3b16-449b-8429-8bb89a62c664 -->
650<script defer="defer"> 651 /** Bundler script loader, version number: 2.0 */ 652 (function(){ 653 var loadScript=function(a,b){var c=document.createElement("script");c.type="text/javascript",c.readyState?c.onreadystatechange=function(){("loaded"==c.readyState||"complete"==c.readyState)&&(c.onreadystatechange=null,b())}:c.onload=function(){b()},c.src=a,document.getElementsByTagName("head")[0].appendChild(c)}; 654 appendScriptUrl('52f6de-ed.myshopify.com'); 655 656 // get script url and append timestamp of last change 657 function appendScriptUrl(shop) { 658 659 var timeStamp = Math.floor(Date.now() / (1000*1*1)); 660 var timestampUrl = 'https://bundler.nice-team.net/app/shop/status/'+shop+'.js?'+timeStamp; 661 662 loadScript(timestampUrl, function() { 663 // append app script 664 if (typeof bundler_settings_updated == 'undefined') { 665 console.log('settings are undefined'); 666 bundler_settings_updated = 'default-by-script'; 667 } 668 var scriptUrl = "https://cdn-bundler.nice-team.net/app/js/bundler-script.js?shop="+shop+"&"+bundler_settings_updated; 669 loadScript(scriptUrl, function(){}); 670 }); 671 } 672 })(); 673 674 var BndlrScriptAppended = true; 675 676 677 678 var BndlrMarketId = 89679135069; 679 680</script>
680 681 682<!-- END app block --><!-- BEGIN app block: shopify://apps/parkour-facebook-pixel/blocks/threasury_pixel/f23b2ffe-4c53-446e-ad3a-7976ffbee5c2 --> 683
684<script> 685 (function () { 686 const params = new URLSearchParams(window.location.search); 687 const hasBuilderMode = params.get('eventBuilderMode') === 'true'; 688 const encodedSelector = params.get('selector'); 689 690 if (hasBuilderMode) { 691 sessionStorage.setItem('eventBuilderMode', '1'); 692 } 693 694 const fromSession = sessionStorage.getItem('eventBuilderMode'); 695 696 // â Store the decoded selector globally 697 if (encodedSelector) { 698 try { 699 const decoded = decodeURIComponent(encodedSelector); 700 sessionStorage.setItem('eventBuilderSelector', decoded); 701 window.extractedSelector = decoded; 702 console.log('[Parkour] Builder selector loaded:', decoded); 703 } catch (err) { 704 console.warn('[Parkour] Failed to decode selector:', err); 705 } 706 } 707 708 // â Load eventBuilder.js if in builder mode 709 if (hasBuilderMode || fromSession) { 710 const s = document.createElement('script'); 711 s.src = "https://cdn.shopify.com/extensions/01a08191-1bc5-79e2-bd0a-2c7e134c9184/parkour-pixel-111/assets/eventBuilder.js"; 712 s.async = true; 713 document.head.appendChild(s); 714 } 715 })(); 716</script>
716 717
718<script> 719 document.addEventListener('DOMContentLoaded', function () { 720 // Metafield emitted via | json (with </ escaped): raw template-literal 721 // interpolation broke this whole block when the value contained a backtick or 722 // quote, and a closing script tag inside a value was stored XSS. 723 // base64_encode instead of | json: Shopify's json filter REFUSES multiline 724 // metafields (emits {"error":"json not allowed for this object"}), and base64 725 // output can never contain quotes/backslashes/closing tags â injection-proof 726 // for every metafield type. base64_encode encodes the UTF-8 BYTES, and atob() 727 // alone reads them back as Latin-1 â silent mojibake for any non-ASCII event 728 // name/trigger (JSON.parse still succeeds!). TextDecoder restores real UTF-8; 729 // for pure-ASCII values it is an exact identity. 730 const metaData = (() => { try { return new TextDecoder().decode(Uint8Array.from(atob(''), (c) => c.charCodeAt(0))); } catch (e) { return ''; } })(); 731 try { 732 // custom_events is a json-TYPE metafield, so `| json` can emit a real array â 733 // handle array, plain-JSON string, and the legacy base64 shape (mirrors 734 // safeParseMetaData) so the tracker loads on a fresh visitor's FIRST page view. 735 let customEvents = Array.isArray(metaData) ? metaData : null; 736 if (!customEvents && metaData) { 737 try { customEvents = JSON.parse(metaData); } 738 catch (e1) { 739 try { customEvents = JSON.parse(decodeURIComponent(atob(metaData))); } 740 catch (e2) { customEvents = null; } 741 } 742 } 743 const fromLocal = localStorage.getItem('Parkour_custom_events_fb'); 744 // Only load the tracker when there are actually events (an empty [] used to 745 // still boot the MutationObserver machinery on every page). 746 const hasCustomEvents = (Array.isArray(customEvents) && customEvents.length > 0) || (fromLocal && fromLocal !== '[]'); 747 if (hasCustomEvents) { 748 const script = document.createElement('script'); 749 script.src = "https://cdn.shopify.com/extensions/01a08191-1bc5-79e2-bd0a-2c7e134c9184/parkour-pixel-111/assets/customTracker.js"; 750 script.async = true; 751 document.head.appendChild(script); 752 } 753 } catch (e) { 754 console.warn('[Parkour] customTracker.js load failed', e); 755 } 756 }); 757</script>
757 758
759<script> 760const FacebookTracker = { 761 config: { 762 debug: localStorage.getItem('tdb') || null, 763 storageKeys: { 764 PREFERRED_ID: 'Parkour_preferred_id_fb', 765 AD_INFO: 'Parkour_ad_info_fb', 766 AD_LOGS: 'Parkour_ad_logs_fb', 767 PIXEL_STATUS: 'Parkour_pixel_app_status_fb', 768 PIXEL_CONFIG: 'Parkour_pixel_config_fb', 769 CUSTOMER_HASHED: 'Parkour_Customer_params_fb', 770 CUSTOM_EVENTS: 'Parkour_custom_events_fb', 771 WEB_PIXEL: 'Parkour_web_pixel_fb', 772 EXTERNAL_ID: 'Parkour_external_id', 773 PAGE_DATA: 'Parkour_page_data', 774 FBC: 'Parkour_fbc', 775 FBP: 'Parkour_fbp', 776 }, 777 fbParams: { 778 standard: ['fbclid', 'utm_campaign', 'ad_name', 'utm_source', 'adset_name', 'campaign_id', 'adset_id', 'ad_id', 'utm_id'] 779 } 780 }, 781 782 utils: { 783 log(message, data = null) { 784 if (FacebookTracker.config.debug === null) return; 785 console.log(`[Facebook Tracker] ${message}`, data); 786 }, 787 stripDiacritics(str) { 788 return str.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); 789 }, 790 normalizeField(value, field) { 791 if (!value) return ''; 792 let v = String(value).trim().toLowerCase(); 793 switch (field) { 794 case 'email': 795 return v; 796 case 'phone': 797 return v.replace(/[^0-9]/g, ''); 798 case 'city': 799 return FacebookTracker.utils.stripDiacritics(v).replace(/[^a-z]/g, ''); 800 case 'state': 801 v = FacebookTracker.utils.stripDiacritics(v); 802 v = v.replace(/\b(county|province|region|state|district)\b/g, ''); 803 return v.replace(/[^a-z]/g, ''); 804 case 'country': 805 v = FacebookTracker.utils.stripDiacritics(v).replace(/[^a-z]/g, ''); 806 return v.length === 2 ? v : ''; 807 case 'zipCode': 808 return v.replace(/[\s\-]/g, ''); 809 default: 810 return FacebookTracker.utils.stripDiacritics(v).replace(/[^a-z]/g, ''); 811 } 812 }, 813 async HashString(str) { 814 if (!str) return ''; 815 const encoder = new TextEncoder(); 816 const data = encoder.encode(str); 817 const hash = await crypto.subtle.digest('SHA-256', data); 818 return Array.from(new Uint8Array(hash)).map(b => b.toString(16).padStart(2, '0')).join(''); 819 }, 820 retry: async (fn, attempts = 3) => { 821 for (let i = 0; i < attempts; i++) { 822 try { return await fn(); } catch (e) { 823 if (i === attempts - 1) throw e; 824 await new Promise(r => setTimeout(r, (i + 1) * 1000)); 825 } 826 } 827 }, 828 generateId(prefix = 'CID') { 829 return `${prefix}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; 830 }, 831 getCookie(name) { 832 const match = document.cookie.match(new RegExp(`(^| )${name}=([^;]+)`)); 833 return match ? match[2] : null; 834 }, 835 setCookie(name, value, days = 90) { 836 const expires = new Date(Date.now() + days * 864e5).toUTCString(); 837 document.cookie = `${name}=${value}; expires=${expires}; path=/; SameSite=Lax`; 838 }, 839 getUrlParam(name) { 840 return new URLSearchParams(window.location.search).get(name); 841 }, 842 getRawUrlParam(name) { 843 // Returns the param EXACTLY as it appears in the URL, without percent-decoding. 844 // URLSearchParams.get() decodes %XX escapes and converts "+" to a space, which 845 // mangles fbclid values and makes Meta flag a "modified fbclid value in fbc". 846 const match = window.location.search.match(new RegExp('[?&]' + name + '=([^&#]*)')); 847 return match ? match[1] : null; 848 }, 849 getFormattedTimestamp() { 850 const now = new Date(); 851 return { timestamp: now.toISOString(), formattedDate: now.toLocaleString() }; 852 }, 853 safeParseMetaData(data) { 854 // Two writer generations exist in the wild: the service app stores RAW JSON 855 // (json-type metafields), older installs stored btoa(encodeURIComponent(JSON)) 856 // in multiline string metafields. Try both â and NEVER throw: any third/corrupt 857 // shape must degrade to null, because a throw here aborted the rest of init() 858 // (fbc/fbp capture, cart attribution) for the whole shop. 859 try { 860 return JSON.parse(data); 861 } catch (e) { 862 try { 863 return JSON.parse(decodeURIComponent(atob(data))); 864 } catch (e2) { 865 FacebookTracker.utils.log('Unparseable metafield shape â skipping', e2); 866 return null; 867 } 868 } 869 } 870 }, 871 872 storage: { 873 set(key, value) { 874 localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value)); 875 }, 876 get(key, type = 'json') { 877 const val = localStorage.getItem(key); 878 if (!val) return null; 879 return type === 'string' ? val : JSON.parse(val); 880 }, 881 remove(key) { 882 localStorage.removeItem(key); 883 }, 884 appendToArray(key, item) { 885 const arr = FacebookTracker.storage.get(key) || []; 886 FacebookTracker.storage.set(key, [...arr, item]); 887 } 888 }, 889 890 tracking: {
891 async initializeExternalId() { 892 let id = FacebookTracker.storage.get(FacebookTracker.config.storageKeys.EXTERNAL_ID, 'string'); 893 if (!id) { 894 id = FacebookTracker.utils.generateId(); 895 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.EXTERNAL_ID, id); 896 } 897 return id; 898 }, 899 900 isFbcExpired(fbc) { 901 if (!fbc) return true; 902 const parts = fbc.split('.'); 903 if (parts.length < 4) return true; 904 const timestamp = parseInt(parts[2], 10); 905 if (isNaN(timestamp)) return true; 906 const sevenDaysMs = 7 * 24 * 60 * 60 * 1000; 907 return (Date.now() - timestamp) > sevenDaysMs; 908 }, 909 910 handleFbc() { 911 // Read the fbclid EXACTLY as it appears in the URL (no decoding â that is what 912 // produced the "modified fbclid value in fbc" warning) and the current _fbc cookie. 913 let fbclid = FacebookTracker.utils.getRawUrlParam('fbclid'); 914 // Recovery for %XX-RE-ENCODED fbclids (email gateways / redirectors): decode 915 // exactly once, and only when the result is a clean base64url click id â this 916 // restores the original value and cannot reintroduce the +âspace corruption 917 // (decodeURIComponent leaves '+' untouched). 918 if (fbclid && fbclid.indexOf('%') !== -1) { 919 try { 920 const decoded = decodeURIComponent(fbclid); 921 if (/^[A-Za-z0-9_-]+$/.test(decoded)) fbclid = decoded; 922 } catch (e) { /* malformed escape â keep raw */ } 923 } 924 const existing = FacebookTracker.utils.getCookie('_fbc'); 925 926 if (fbclid && fbclid != 'fbclid') { 927 // A fbclid in the URL is a fresh click. If a _fbc cookie already exists for THIS 928 // same fbclid (e.g. set by Meta's own pixel), keep it as-is â it carries the 929 // authoritative timestamp/subdomain index. Only (re)build for a NEW click, which 930 // also refreshes the timestamp and prevents sending an expired fbclid later. 931 // Compare the click-id SEGMENT, not the string tail: Meta's fbevents.js writes a 932 // fifth "appendix" segment (fb.1.<ts>.<fbclid>.AQYCAQIB), so endsWith() saw a 933 // "different" click and overwrote Meta's cookie on every ad landing. 934 if (existing && existing.split('.')[3] === fbclid) { 935 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.FBC, existing); 936 return existing; 937 } 938 const fbc = `fb.1.${Date.now()}.${fbclid}`; 939 FacebookTracker.utils.setCookie('_fbc', fbc); 940 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.FBC, fbc); 941 return fbc; 942 } 943 // No fresh fbclid: reuse a stored/cookie fbc only if it is not expired; otherwise 944 // clear it from both stores so we never send an expired fbclid (its localStorage 945 // copy has no natural expiry). 946 const stored = FacebookTracker.storage.get(FacebookTracker.config.storageKeys.FBC, 'string'); 947 const cookie = FacebookTracker.utils.getCookie('_fbc'); 948 const fbc = stored || cookie; 949 if (fbc && !FacebookTracker.tracking.isFbcExpired(fbc)) { 950 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.FBC, fbc); 951 return fbc; 952 } 953 // Clear expired fbc 954 FacebookTracker.storage.remove(FacebookTracker.config.storageKeys.FBC); 955 FacebookTracker.utils.setCookie('_fbc', '', -1); 956 return null; 957 }, 958 959 handleFbp() { 960 let fbp = FacebookTracker.utils.getCookie('_fbp'); 961 if (!fbp) { 962 fbp = `fb.1.${Date.now()}.${Math.floor(Math.random() * 1e9)}`; 963 FacebookTracker.utils.setCookie('_fbp', fbp); 964 } 965 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.FBP, fbp); 966 return fbp; 967 }, 968 969 collectAdParameters() { 970 const adData = FacebookTracker.storage.get(FacebookTracker.config.storageKeys.AD_INFO) || {}; 971 let hasNew = false; 972 adData.facebook = adData.facebook || {}; 973 974 FacebookTracker.config.fbParams.standard.forEach(param => { 975 const value = FacebookTracker.utils.getUrlParam(param); 976 if (value && adData.facebook[param] !== value) { 977 adData.facebook[param] = value; 978 hasNew = true; 979 } 980 }); 981 982 adData.referrer = document.referrer; 983 if (hasNew) FacebookTracker.storage.set(FacebookTracker.config.storageKeys.AD_INFO, adData); 984 return adData; 985 }, 986 987 collectPageData() { 988 return { 989 product_name: null, 990 selected_variant: null, 991 product_id: null, 992 variant_id: null, 993 collection_ids: [], 994 tags: null, 995 page_type: "cart", 996 currency: "EUR", 997 price: null 998 } 999 }, 1000 1001 logAdData(adParams) { 1002 if (!adParams?.facebook || Object.keys(adParams.facebook).length === 0) return; 1003 const entry = { 1004 ...adParams, 1005 url: window.location.href, 1006 referrer: document.referrer, 1007 ...FacebookTracker.utils.getFormattedTimestamp() 1008 }; 1009 FacebookTracker.storage.appendToArray(FacebookTracker.config.storageKeys.AD_LOGS, entry); 1010 FacebookTracker.utils.log('Ad data logged', entry); 1011 }, 1012 1013 async hashCustomer() {
1014 try { 1015 const customerData = { 1016 email: null, 1017 first_name: null, 1018 last_name: null, 1019 phone: null, 1020 default_address: null 1021 }; 1022 1023 // Geo context: only fetched when Shopify's own customer data is missing 1024 // fields, only when marketing consent is not denied, and cached for 24h. 1025 // Previously BOTH endpoints were hit on EVERY page view for EVERY visitor â 1026 // ipinfo's unauthenticated tier rate-limits, and shipping visitor IPs to a 1027 // third party regardless of consent state is a compliance exposure. 1028 let browsingGeo = {}, ipinfoGeo = {}; 1029 const addrPeek = customerData.default_address; 1030 const needsGeo = !(addrPeek?.province_code || addrPeek?.province) || !addrPeek?.city || !addrPeek?.country_code || !addrPeek?.zip; 1031 const consentAllows = (() => { 1032 const cp = window.Shopify && window.Shopify.customerPrivacy; 1033 if (cp && typeof cp.marketingAllowed === 'function') { 1034 try { return cp.marketingAllowed() !== false; } catch (e) { return true; } 1035 } 1036 return true; 1037 })(); 1038 if (needsGeo && consentAllows) { 1039 const cachedGeo = FacebookTracker.storage.get('Parkour_geo_fb'); 1040 if (cachedGeo && cachedGeo.exp > Date.now()) { 1041 browsingGeo = cachedGeo.browsingGeo || {}; 1042 ipinfoGeo = cachedGeo.ipinfoGeo || {}; 1043 } else { 1044 try { 1045 const [browsingResp, ipinfoResp] = await Promise.all([ 1046 fetch('/browsing_context_suggestions.json'), 1047 fetch('https://ipinfo.io/json') 1048 ]); 1049 browsingGeo = await browsingResp.json(); 1050 ipinfoGeo = await ipinfoResp.json(); 1051 FacebookTracker.storage.set('Parkour_geo_fb', { browsingGeo, ipinfoGeo, exp: Date.now() + 864e5 }); 1052 } catch (geoErr) { 1053 FacebookTracker.utils.log('Geo fetch failed, using Shopify data only', geoErr); 1054 } 1055 } 1056 } 1057 const countryCode = browsingGeo?.detected_values?.country?.handle || ipinfoGeo.country || ''; 1058 1059 const addr = customerData.default_address; 1060 const raw = { 1061 firstName: customerData.first_name || addr?.first_name || '', 1062 lastName: customerData.last_name || addr?.last_name || '', 1063 email: customerData.email || '', 1064 phone: customerData.phone || addr?.phone || '', 1065 state: addr?.province_code || addr?.province || ipinfoGeo.region || '', 1066 city: addr?.city || ipinfoGeo.city || '', 1067 country: addr?.country_code || countryCode, 1068 zipCode: addr?.zip || ipinfoGeo.postal || '' 1069 }; 1070 1071 const formatted = {}; 1072 for (const key in raw) { 1073 const normalized = FacebookTracker.utils.normalizeField(raw[key], key); 1074 if (normalized) formatted[key] = normalized; 1075 } 1076 1077 const hashed = {}; 1078 for (const key in formatted) { 1079 hashed[key] = await FacebookTracker.utils.HashString(formatted[key]); 1080 } 1081 1082 const existing = FacebookTracker.storage.get(FacebookTracker.config.storageKeys.CUSTOMER_HASHED); 1083 const newHashed = { ...existing, ...hashed }; 1084 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.CUSTOMER_HASHED, newHashed); 1085 } catch (err) { 1086 FacebookTracker.utils.log('Customer hash error', err, 'error'); 1087 } 1088 }, 1089 1090 captureFirstTouch() { 1091 const PREFIX = '__parkour_'; 1092 const urlParams = new URLSearchParams(window.location.search); 1093 1094 const setOnce = (key, value) => { 1095 const existing = document.cookie.includes(`${key}=`); 1096 if (!existing) { 1097 localStorage.setItem(key, value); 1098 const expires = new Date(Date.now() + 90 * 864e5).toUTCString(); 1099 document.cookie = `${key}=${encodeURIComponent(value)}; expires=${expires}; path=/; SameSite=Lax`; 1100 } 1101 }; 1102 1103 const clickIds = ['fbclid', 'ttclid', 'gclid', 'ScCid', 'scCid', 'srsltid']; 1104 const utms = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content','ad_id','campaign_id','adset_id' ]; 1105
1106 [...clickIds, ...utms].forEach(param => { 1107 const val = urlParams.get(param); 1108 if (val) setOnce(`${PREFIX}${param}`, val); 1109 }); 1110 1111 setOnce(`${PREFIX}landing`, window.location.href); 1112 setOnce(`${PREFIX}referrer`, document.referrer || 'direct'); 1113 } 1114 }, 1115 1116 cart: { 1117 async updateAttributes(attributes) { 1118 // POST only OUR keys: /cart/update.js merges the provided attributes and leaves 1119 // every other attribute untouched. The old read-modify-write (GET /cart.js + 1120 // full-snapshot POST) doubled the request count on every page view and raced 1121 // the customer's own updates and the sibling TikTok/Snapchat trackers â a stale 1122 // snapshot could re-apply an OLD fbc over a freshly captured one. 1123 return FacebookTracker.utils.retry(async () => { 1124 return fetch('/cart/update.js', { 1125 method: 'POST', 1126 headers: { 'Content-Type': 'application/json' }, 1127 body: JSON.stringify({ attributes }) 1128 }).then(res => res.json()); 1129 }); 1130 } 1131 }, 1132 1133 async init() { 1134 try { 1135 // Metafields emitted via | json (with </ escaped): raw template-literal 1136 // interpolation meant a single quote/backtick in any metafield killed init() 1137 // for the whole shop (no fbc/fbp capture, no cart attribution) and a closing 1138 // script tag in a value was stored XSS. normalizeMetafield keeps downstream string 1139 // handling identical whether the metafield renders as a string or an object. 1140 const normalizeMetafield = (v) => (v == null ? '' : (typeof v === 'string' ? v : JSON.stringify(v))); 1141 // b64: Shopify's json filter refuses multiline metafields (renders 1142 // {"error":"json not allowed for this object"} â this broke pixel_config), 1143 // while base64 output is injection-proof for EVERY metafield type: its 1144 // alphabet cannot contain quotes, backslashes, or closing script tags. 1145 // TextDecoder is required: base64_encode emits UTF-8 BYTES and bare atob() 1146 // reads them as Latin-1 â silently mojibaking non-ASCII metafield content. 1147 // Identity for ASCII, so the legacy btoa(encodeURIComponent(...)) shape that 1148 // safeParseMetaData handles is unaffected. 1149 const b64 = (s) => { try { return new TextDecoder().decode(Uint8Array.from(atob(s), (c) => c.charCodeAt(0))); } catch (e) { return ''; } }; 1150 const pixelConfig = normalizeMetafield(b64('SlRWQ0pUZENKVEl5Wm1KVFpYUjBhVzVuY3lVeU1pVXpRU1UzUWlVeU1tTnZiblpsY25OcGIyNUJjR2tsTWpJbE0wRWxOMElsTWpKamIyNTJaWEp6YVc5dVFYQnBVM1JoZEhWekpUSXlKVE5CSlRJeWJtOGxNaklsTWtNbE1qSjBaWE4wUlhabGJuUkRiMlJsSlRJeUpUTkJKVEl5SlRJeUpUZEVKVEpESlRJeVlYVjBiMGx1Y0hWMFVHbDRaV3dsTWpJbE0wRWxOMElsTWpKelpXeGxZM1JDZFhOcGJtVnpjMEZqWTI5MWJuUWxNaklsTTBFbE1qSWxNaklsTWtNbE1qSnpaV3hsWTNSUWFYaGxiQ1V5TWlVelFTVXlNaVV5TWlVeVF5VXlNbkJwZUdWc1RtRnRaU1V5TWlVelFXNTFiR3dsTjBRbE1rTWxNakp0WVc1MVlXeEpibkIxZEZCcGVHVnNKVEl5SlROQkpUZENKVEl5Y0dsNFpXeE9ZVzFsSlRJeUpUTkJKVEl5U1hOMWRXNGxNakF0SlRJd1RXRjRKVEl3UjI5MGVteGxjaVV5TUNoRWFXVWxNakJHYkc5M0pUSXdSbTl5YldWc0tTVXlNaVV5UXlVeU1uQnBlR1ZzU1dRbE1qSWxNMEVsTWpJeE16UTBOamt6TlRBek5qWTJNalUySlRJeUpUZEVKVEpESlRJeWMyVjBkR2x1WjNNbE1qSWxNMEVsTjBJbE1qSmhaSFpoYm1ObFpGUnlZV05yYVc1bkpUSXlKVE5CSlRkQ0pUSXlkSGx3WlNVeU1pVXpRU1V5TW5ObGJHVmpkR1ZrSlRJd2NHRm5aWE1sTWpJbE1rTWxNakowWVdkekpUSXlKVE5CSlRWQ0pUVkVKVEpESlRJeWNISnZaSFZqZEhNbE1qSWxNMEVsTlVJbE4wSWxNakpwWkNVeU1pVXpRU1V5TW1kcFpDVXpRU1V5UmlVeVJuTm9iM0JwWm5rbE1rWlFjbTlrZFdOMEpUSkdNVFUxTURnd01EVTRORGN6T0RrbE1qSWxNa01sTWpKb1lXNWtiR1VsTWpJbE0wRWxNakpFYVdVbE1qQkdiRzkzSlRJd1JtOXliV1ZzSlRJeUpUZEVKVFZFSlRKREpUSXlZMjlzYkdWamRHbHZibk1sTWpJbE0wRWxOVUlsTlVRbE4wUWxNa01sTWpKbGRtVnVkRk5sZEhScGJtZHpKVEl5SlROQkpUZENKVEl5ZG1sbGQwTnZiblJsYm5RbE1qSWxNMEYwY25WbEpUSkRKVEl5Y0dGblpWWnBaWGNsTWpJbE0wRjBjblZsSlRKREpUSXlhVzVwZEdsaGRHVmtRMmhsWTJ0dmRYUWxNaklsTTBGMGNuVmxKVEpESlRJeVlXUmtWRzlEWVhKMEpUSXlKVE5CZEhKMVpTVXlReVV5TW5CMWNtTm9ZWE5sSlRJeUpUTkJkSEoxWlNVeVF5VXlNbE5sWVhKamFDVXlNaVV6UVhSeWRXVWxNa01sTWpKMmFXVjNRMjlzYkdWamRHbHZiaVV5TWlVelFXWmhiSE5sSlRKREpUSXlkbWxsZDBOaGNuUWxNaklsTTBGbVlXeHpaU1V5UXlVeU1tRmtaRkJoZVcxbGJuUkpibVp2SlRJeUpUTkJkSEoxWlNVM1JDVXlReVV5TW1OMWMzUnZiV1Z5U1c1bWIzSnRZWFJwYjI1UVlYSmhiV1YwWlhKekpUSXlKVE5CSlRkQ0pUSXlabWx5YzNST1lXMWxKVEl5SlROQmRISjFaU1V5UXlVeU1teGhjM1JPWVcxbEpUSXlKVE5CZEhKMVpTVXlReVV5TW1WdFlXbHNKVEl5SlROQmRISjFaU1V5UXlVeU1uQm9iMjVsSlRJeUpUTkJkSEoxWlNVeVF5VXlNbU5wZEhrbE1qSWxNMEYwY25WbEpUSkRKVEl5YzNSaGRHVWxNaklsTTBGMGNuVmxKVEpESlRJeVkyOTFiblJ5ZVNVeU1
1150pVXpRWFJ5ZFdVbE1rTWxNako2YVhCRGIyUmxKVEl5SlROQmRISjFaU1V5UXlVeU1tVjRkR1Z5Ym1Gc1NXUWxNaklsTTBGMGNuVmxKVGRFSlRkRUpUZEVKVEpESlRJeWFXUWxNaklsTTBFbE1qSTJPRGd5TURBeVpURXlPREUzTmpWa05HWTNPREU0TW1JbE1qSWxNa01sTWpKemFHOXdKVEl5SlROQkpUSXlOVEptTm1SbExXVmtMbTE1YzJodmNHbG1lUzVqYjIwbE1qSWxNa01sTWpKaFkzUnBkbVVsTWpJbE0wRjBjblZsSlRKREpUSXlkSGx3WlNVeU1pVXpRU1V5TWtaQlEwVkNUMDlMSlRJeUpUSkRKVEl5Y0dsNFpXeEpaQ1V5TWlVelFTVXlNakV6TkRRMk9UTTFNRE0yTmpZeU5UWWxNaklsTWtNbE1qSnlaWE53WldOMFEyOXZhMmxsUTI5dWMyVnVkQ1V5TWlVelFXWmhiSE5sSlRkRUpUSkRKVGRDSlRJeVptSlRaWFIwYVc1bmN5VXlNaVV6UVNVM1FpVXlNbU52Ym5abGNuTnBiMjVCY0drbE1qSWxNMEVsTjBJbE1qSmpiMjUyWlhKemFXOXVRWEJwVTNSaGRIVnpKVEl5SlROQkpUSXlibThsTWpJbE1rTWxNakowWlhOMFJYWmxiblJEYjJSbEpUSXlKVE5CSlRJeUpUSXlKVGRFSlRKREpUSXlZWFYwYjBsdWNIVjBVR2w0Wld3bE1qSWxNMEVsTjBJbE1qSnpaV3hsWTNSQ2RYTnBibVZ6YzBGalkyOTFiblFsTWpJbE0wRWxNaklsTWpJbE1rTWxNakp6Wld4bFkzUlFhWGhsYkNVeU1pVXpRU1V5TWlVeU1pVXlReVV5TW5CcGVHVnNUbUZ0WlNVeU1pVXpRVzUxYkd3bE4wUWxNa01sTWpKdFlXNTFZV3hKYm5CMWRGQnBlR1ZzSlRJeUpUTkJKVGRDSlRJeWNHbDRaV3hPWVcxbEpUSXlKVE5CSlRJeVNIVnRZVzRsTWpCRVpYTnBaMjRsTWpJbE1rTWxNakp3YVhobGJFbGtKVEl5SlROQkpUSXlNemM1TmpVME56TTRNVEF4TnpFM0pUSXlKVGRFSlRKREpUSXljMlYwZEdsdVozTWxNaklsTTBFbE4wSWxNakpoWkhaaGJtTmxaRlJ5WVdOcmFXNW5KVEl5SlROQkpUZENKVEl5ZEhsd1pTVXlNaVV6UVNVeU1uTmxiR1ZqZEdWa0pUSXdjR0ZuWlhNbE1qSWxNa01sTWpKMFlXZHpKVEl5SlROQkpUVkNKVFZFSlRKREpUSXljSEp2WkhWamRITWxNaklsTTBFbE5VSWxOMElsTWpKcFpDVXlNaVV6UVNVeU1tZHBaQ1V6UVNVeVJpVXlSbk5vYjNCcFpua2xNa1pRY205a2RXTjBKVEpHTVRVMU16UTBNekl3TWpZNU56TWxNaklsTWtNbE1qSm9ZVzVrYkdVbE1qSWxNMEVsTWpKWGIyWWxRek1sUWtOeUpUSXdaSFVsTWpCb2FXVnlKVEl3WW1semRDVXpRU1V5TUUxcGRDVXlNRWgxYldGdUpUSXdSR1Z6YVdkdUpUSXdaR2xsSlRJd1FXSnJKVU16SlVKRGNucDFibWNsTWpCNmRYSWxNakJUWld4aWMzUmxjbXRsYm01MGJtbHpKVEl3Ym1Wb2JXVnVKVEl5SlRkRUpUVkVKVEpESlRJeVkyOXNiR1ZqZEdsdmJuTWxNaklsTTBFbE5VSWxOVVFsTjBRbE1rTWxNakpsZG1WdWRGTmxkSFJwYm1kekpUSXlKVE5CSlRkQ0pUSXlkbWxsZDBOdmJuUmxiblFsTWpJbE0wRjBjblZsSlRKREpUSXljR0ZuWlZacFpYY2xNaklsTTBGMGNuVmxKVEpESlRJeWFXNXBkR2xoZEdWa1EyaGxZMnR2ZFhRbE1qSWxNMEYwY25WbEpUSkRKVEl5WVdSa1ZHOURZWEowSlRJeUpUTkJkSEoxWlNVeVF5VXlNbkIxY21Ob1lYTmxKVEl5SlROQmRISjFaU1V5UXlVeU1sTmxZWEpqYUNVeU1pVXpRWFJ5ZFdVbE1rTWxNakoyYVdWM1EyOXNiR1ZqZEdsdmJpVXlNaVV6UVhSeWRXVWxNa01sTWpKMmFXVjNRMkZ5ZENVeU1pVXpRWFJ5ZFdVbE1rTWxNakpoWkdSUVlYbHRaVzUwU1c1bWJ5VXlNaVV6UVhSeWRXVWxOMFFsTWtNbE1qSmpkWE4wYjIxbGNrbHVabTl5YldGMGFXOXVVR0Z5WVcxbGRHVnljeVV5TWlVelFTVTNRaVV5TW1acGNuTjBUbUZ0WlNVeU1pVXpRWFJ5ZFdVbE1rTWxNakpzWVhOMFRtRnRaU1V5TWlVelFYUnlkV1VsTWtNbE1qSmxiV0ZwYkNVeU1pVXpRWFJ5ZFdVbE1rTWxNakp3YUc5dVpTVXlNaVV6UVhSeWRXVWxNa01sTWpKamFYUjVKVEl5SlROQmRISjFaU1V5UXlVeU1uTjBZWFJsSlRJeUpUTkJkSEoxWlNVeVF5VXlNbU52ZFc1MGNua2xNaklsTTBGMGNuVmxKVEpESlRJeWVtbHdRMjlrWlNVeU1pVXpRWFJ5ZFdVbE1rTWxNakpsZUhSbGNtNWhiRWxrSlRJeUpUTkJkSEoxWlNVM1JDVTNSQ1UzUkNVeVF5VXlNbWxrSlRJeUpUTkJKVEl5TmpobE5qVmtOR1F3WkdVMVlUaGxOVGxrWkdJM09HTXdKVEl5SlRKREpUSXljMmh2Y0NVeU1pVXpRU1V5TWpVeVpqWmtaUzFsWkM1dGVYTm9iM0JwWm5rdVkyOXRKVEl5SlRKREpUSXlZV04wYVhabEpUSXlKVE5CZEhKMVpTVXlReVV5TW5SNWNHVWxNaklsTTBFbE1qSkdRVU5GUWs5UFN5VXlNaVV5UXlVeU1uQnBlR1ZzU1dRbE1qSWxNMEVsTWpJek56azJOVFEzTXpneE1ERTNNVGNsTWpJbE1rTWxNakp5WlhOd1pXTjBRMjl2YTJsbFEyOXVjMlZ1ZENVeU1pVXpRV1poYkhObEpUZEVKVEpESlRkQ0pUSXlabUpUWlhSMGFXNW5jeVV5TWlVelFTVTNRaVV5TW1OdmJuWmxjbk5wYjI1QmNHa2xNaklsTTBFbE4wSWxNakpqYjI1MlpYSnphVzl1UVhCcFUzUmhkSFZ6SlRJeUpUTkJKVEl5Ym04bE1qSWxNa01sTWpKMFpYTjBSWFpsYm5SRGIyUmxKVEl5SlROQkpUSXlKVEl5SlRkRUpUSkRKVEl5WVhWMGIwbHVjSFYwVUdsNFpXd2xNaklsTTBFbE4wSWxNakp6Wld4bFkzUkNkWE5wYm1WemMwRmpZMjkxYm5RbE1qSWxNMEVsTWpJbE1qSWxNa01sTWpKelpXeGxZM1JRYVhobGJDVXlNaVV6UVNVeU1pVXlNaVV5UXlVeU1uQnBlR1ZzVG1GdFpTVXlNaVV6UVc1MWJHd2xOMFFsTWtNbE1qSnRZVzUxWVd4SmJuQjFkRkJwZUdWc0pUSXlKVE5CSlRkQ0pUSXljR2w0Wld4T1lXMWxKVEl5SlROQkpUSXlVMjl3YUdsbEpUSXdUR0YxY21WdUxWSnZkR2dsTWpBdEpUSXdVMk5vY21WcFluTWxNakJFYVhJb
1150E1qQjJiMjRsTWpCa1pYSWxNakJUWldWc1pTVXlNaVV5UXlVeU1uQnBlR1ZzU1dRbE1qSWxNMEVsTWpJeE9UWXdNekUzTnpZME9EazJPVFk1SlRJeUpUZEVKVEpESlRJeWMyVjBkR2x1WjNNbE1qSWxNMEVsTjBJbE1qSmhaSFpoYm1ObFpGUnlZV05yYVc1bkpUSXlKVE5CSlRkQ0pUSXlkSGx3WlNVeU1pVXpRU1V5TW5ObGJHVmpkR1ZrSlRJd2NHRm5aWE1sTWpJbE1rTWxNakowWVdkekpUSXlKVE5CSlRWQ0pUVkVKVEpESlRJeWNISnZaSFZqZEhNbE1qSWxNMEVsTlVJbE4wSWxNakpwWkNVeU1pVXpRU1V5TW1kcFpDVXpRU1V5UmlVeVJuTm9iM0JwWm5rbE1rWlFjbTlrZFdOMEpUSkdNVFl3TVRjd01EZzRPRFl4TURrbE1qSWxNa01sTWpKb1lXNWtiR1VsTWpJbE0wRWxNakpHSlVNekpVSkRhR3dsTWpCbGN5VXlReVV5TUhOamFISmxhV0lsTWpCbGN5VXlReVV5TUd4aGMzTWxNakJsY3lVeU1HeHZjeVV5TWlVM1JDVXlReVUzUWlVeU1tbGtKVEl5SlROQkpUSXlaMmxrSlROQkpUSkdKVEpHYzJodmNHbG1lU1V5UmxCeWIyUjFZM1FsTWtZeE5UZzFNekF6T1RRNE5USTNOeVV5TWlVeVF5VXlNbWhoYm1Sc1pTVXlNaVV6UVNVeU1sTmphSEpsYVdJbmN5VXlNR1JwY2lVeU1IWnZiaVV5TUdSbGNpVXlNRk5sWld4bEpUTkJKVEl3VjJsbEpUSXdaSFVsTWpCc2IzTnNKVU16SlVFMGMzTjBKVEpESlRJd2QyRnpKVEl3WkdsamFDVXlNR3RzWldsdUpUSXdiV0ZqYUhRbE1qSWxOMFFsTlVRbE1rTWxNakpqYjJ4c1pXTjBhVzl1Y3lVeU1pVXpRU1UxUWlVMVJDVTNSQ1V5UXlVeU1tVjJaVzUwVTJWMGRHbHVaM01sTWpJbE0wRWxOMElsTWpKMmFXVjNRMjl1ZEdWdWRDVXlNaVV6UVhSeWRXVWxNa01sTWpKd1lXZGxWbWxsZHlVeU1pVXpRWFJ5ZFdVbE1rTWxNakpwYm1sMGFXRjBaV1JEYUdWamEyOTFkQ1V5TWlVelFYUnlkV1VsTWtNbE1qSmhaR1JVYjBOaGNuUWxNaklsTTBGMGNuVmxKVEpESlRJeWNIVnlZMmhoYzJVbE1qSWxNMEZtWVd4elpTVXlReVV5TWxObFlYSmphQ1V5TWlVelFYUnlkV1VsTWtNbE1qSjJhV1YzUTI5c2JHVmpkR2x2YmlVeU1pVXpRV1poYkhObEpUSkRKVEl5ZG1sbGQwTmhjblFsTWpJbE0wRjBjblZsSlRKREpUSXlZV1JrVUdGNWJXVnVkRWx1Wm04bE1qSWxNMEYwY25WbEpUZEVKVEpESlRJeVkzVnpkRzl0WlhKSmJtWnZjbTFoZEdsdmJsQmhjbUZ0WlhSbGNuTWxNaklsTTBFbE4wSWxNakptYVhKemRFNWhiV1VsTWpJbE0wRjBjblZsSlRKREpUSXliR0Z6ZEU1aGJXVWxNaklsTTBGMGNuVmxKVEpESlRJeVpXMWhhV3dsTWpJbE0wRjBjblZsSlRKREpUSXljR2h2Ym1VbE1qSWxNMEYwY25WbEpUSkRKVEl5WTJsMGVTVXlNaVV6UVhSeWRXVWxNa01sTWpKemRHRjBaU1V5TWlVelFYUnlkV1VsTWtNbE1qSmpiM1Z1ZEhKNUpUSXlKVE5CZEhKMVpTVXlReVV5TW5wcGNFTnZaR1VsTWpJbE0wRjBjblZsSlRKREpUSXlaWGgwWlhKdVlXeEpaQ1V5TWlVelFYUnlkV1VsTjBRbE4wUWxOMFFsTWtNbE1qSnBaQ1V5TWlVelFTVXlNalk1TldaaVkyRTNaakF3TkdRd1l6SmpORFpoWlRnMk55VXlNaVV5UXlVeU1uTm9iM0FsTWpJbE0wRWxNakkxTW1ZMlpHVXRaV1F1YlhsemFHOXdhV1o1TG1OdmJTVXlNaVV5UXlVeU1tRmpkR2wyWlNVeU1pVXpRWFJ5ZFdVbE1rTWxNakowZVhCbEpUSXlKVE5CSlRJeVJrRkRSVUpQVDBzbE1qSWxNa01sTWpKd2FYaGxiRWxrSlRJeUpUTkJKVEl5TVRrMk1ETXhOemMyTkRnNU5qazJPU1V5TWlVeVF5VXlNbkpsYzNCbFkzUkRiMjlyYVdWRGIyNXpaVzUwSlRJeUpUTkJabUZzYzJVbE4wUWxNa01sTjBJbE1qSm1ZbE5sZEhScGJtZHpKVEl5SlROQkpUZENKVEl5WTI5dWRtVnljMmx2YmtGd2FTVXlNaVV6UVNVM1FpVXlNbU52Ym5abGNuTnBiMjVCY0dsVGRHRjBkWE1sTWpJbE0wRWxNakp1YnlVeU1pVXlReVV5TW5SbGMzUkZkbVZ1ZEVOdlpHVWxNaklsTTBFbE1qSWxNaklsTjBRbE1rTWxNakpoZFhSdlNXNXdkWFJRYVhobGJDVXlNaVV6UVNVM1FpVXlNbk5sYkdWamRFSjFjMmx1WlhOelFXTmpiM1Z1ZENVeU1pVXpRU1V5TWlVeU1pVXlReVV5TW5ObGJHVmpkRkJwZUdWc0pUSXlKVE5CSlRJeUpUSXlKVEpESlRJeWNHbDRaV3hPWVcxbEpUSXlKVE5CYm5Wc2JDVTNSQ1V5UXlVeU1tMWhiblZoYkVsdWNIVjBVR2w0Wld3bE1qSWxNMEVsTjBJbE1qSndhWGhsYkU1aGJXVWxNaklsTTBFbE1qSk9aWFZ6ZEdGeWRDVXlNQzBsTWpCRVlXMXBaVzRsTWpCU2FXTm9kR1Z5SlRJeUpUSkRKVEl5Y0dsNFpXeEpaQ1V5TWlVelFTVXlNakUwTVRnd05EZzJOalV3TXpnNU5UVWxNaklsTjBRbE1rTWxNakp6WlhSMGFXNW5jeVV5TWlVelFTVTNRaVV5TW1Ga2RtRnVZMlZrVkhKaFkydHBibWNsTWpJbE0wRWxOMElsTWpKMGVYQmxKVEl5SlROQkpUSXljMlZzWldOMFpXUWxNakJ3WVdkbGN5VXlNaVV5UXlVeU1uUmhaM01sTWpJbE0wRWxOVUlsTlVRbE1rTWxNakp3Y205a2RXTjBjeVV5TWlVelFTVTFRaVUzUWlVeU1tbGtKVEl5SlROQkpUSXlaMmxrSlROQkpUSkdKVEpHYzJodmNHbG1lU1V5UmxCeWIyUjFZM1FsTWtZeE5qRXlOVEExTXpFME1UTTBNU1V5TWlVeVF5VXlNbWhoYm1Sc1pTVXlNaVV6UVNVeU1rUmxhVzRsTWpCT1pYVnpkR0Z5ZENVeU1HSmxaMmx1Ym5RbE1qQnFaWFI2ZENVeU1pVTNSQ1UxUkNVeVF5VXlNbU52Ykd4bFkzUnBiMjV6SlRJeUpUTkJKVFZDSlRWRUpUZEVKVEpESlRJeVpYWmxiblJUWlhSMGFXNW5jeVV5TWlVelFTVTNRaVV5TW5acFpYZERiMjUwWlc1MEpUSXlKVE5CZEhKMVpTVXlReVV5TW5CaFoyVldhV1YzSlRJeUpUTkJkSEoxWlNVeVF5VXlNbWx1YVhScFlYUmxaRU5vWldOcmIzVjBKVEl5SlROQmRISjFaU1V5UXlVeU1tRmtaRlJ2UTJGeWRDVXlNaVV6UVhSeWRXVWxNa01sTWpKd2RYSmphR0Z6WlNVeU1pVXpRWFJ5ZFdVbE1rTWxNakpUWldGeVkyZ2xNaklsTTBGMGNuVmxKVEpESlRJeWRtbGxkME52Ykd4bFkzUnBiMjRsTWpJbE0wRm1ZV3h6WlNVeVF5VXlNblpwWlhkRFlYSjBKVEl5SlROQlptRnNjMlVsTWtNbE1qSmhaR1JRWVhsdFpXNTBTVzVtYnlVeU1pVXpRWFJ5ZFdVbE4wUWxNa01sTWpKamRYTjBiMjFsY2tsdVptOXliV0YwYVc5dVVHRnlZVzFsZEdWeWN5VXlNaVV6UVNVM1FpVXlNbVpwY25OMFRtRnRaU1V5TWlVelFYUnlkV1VsTWtNbE1qSnNZWE4wVG1GdFpTVXlNaVV6UVhSeWRXVWxNa01sTWpKbGJX
1150RnBiQ1V5TWlVelFYUnlkV1VsTWtNbE1qSndhRzl1WlNVeU1pVXpRWFJ5ZFdVbE1rTWxNakpqYVhSNUpUSXlKVE5CZEhKMVpTVXlReVV5TW5OMFlYUmxKVEl5SlROQmRISjFaU1V5UXlVeU1tTnZkVzUwY25rbE1qSWxNMEYwY25WbEpUSkRKVEl5ZW1sd1EyOWtaU1V5TWlVelFYUnlkV1VsTWtNbE1qSmxlSFJsY201aGJFbGtKVEl5SlROQmRISjFaU1UzUkNVM1JDVTNSQ1V5UXlVeU1tbGtKVEl5SlROQkpUSXlObUUwTjJKaE5ETTRNREJsWkRrelltUTBPREV5TkRVeEpUSXlKVEpESlRJeWMyaHZjQ1V5TWlVelFTVXlNalV5Wmpaa1pTMWxaQzV0ZVhOb2IzQnBabmt1WTI5dEpUSXlKVEpESlRJeVlXTjBhWFpsSlRJeUpUTkJkSEoxWlNVeVF5VXlNblI1Y0dVbE1qSWxNMEVsTWpKR1FVTkZRazlQU3lVeU1pVXlReVV5TW5CcGVHVnNTV1FsTWpJbE0wRWxNakl4TkRFNE1EUTROalkxTURNNE9UVTFKVEl5SlRKREpUSXljbVZ6Y0dWamRFTnZiMnRwWlVOdmJuTmxiblFsTWpJbE0wRm1ZV3h6WlNVM1JDVTFSQT09')); 1151 const appStatus = normalizeMetafield(b64('ZEhKMVpRPT0=')); 1152 const preferredId = normalizeMetafield(b64('')); 1153 const customEvents = normalizeMetafield(b64('')); 1154 const webPixelEnabled = normalizeMetafield(b64('')); 1155 const supportExternalCheckout = normalizeMetafield(b64('')); 1156 1157 // null-guarded: an unparseable metafield must NOT clobber the last-known-good 1158 // value already in localStorage (the pixel keeps running on the previous config). 1159 if (pixelConfig) { 1160 const configDecoded = FacebookTracker.utils.safeParseMetaData(pixelConfig); 1161 if (configDecoded != null) FacebookTracker.storage.set(FacebookTracker.config.storageKeys.PIXEL_CONFIG, configDecoded); 1162 } 1163 1164 if (appStatus) { 1165 const statusDecoded = FacebookTracker.utils.safeParseMetaData((appStatus)); 1166 if (statusDecoded != null) FacebookTracker.storage.set(FacebookTracker.config.storageKeys.PIXEL_STATUS, statusDecoded); 1167 } 1168 if (webPixelEnabled) { 1169 const webPixelEnabledDecoded = FacebookTracker.utils.safeParseMetaData((webPixelEnabled)); 1170 if (webPixelEnabledDecoded != null) FacebookTracker.storage.set(FacebookTracker.config.storageKeys.WEB_PIXEL, webPixelEnabledDecoded); 1171 } 1172 if(preferredId) { 1173 FacebookTracker.storage.set(FacebookTracker.config.storageKeys.PREFERRED_ID, preferredId); 1174 } 1175 1176 if (customEvents) { 1177 const eventsDecoded = FacebookTracker.utils.safeParseMetaData(customEvents); 1178 if (eventsDecoded != null) FacebookTracker.storage.set(FacebookTracker.config.storageKeys.CUSTOM_EVENTS, eventsDecoded); 1179 } 1180 1181 // Check if external checkout support is enabled (defaults to true if metafield doesn't exist) 1182 let isExternalCheckoutEnabled = true; 1183 if (supportExternalCheckout) { 1184 try { 1185 const supportDecoded = FacebookTracker.utils.safeParseMetaData(supportExternalCheckout); 1186 isExternalCheckoutEnabled = supportDecoded?.enabled !== false; 1187 } catch (e) { 1188 FacebookTracker.utils.log('Failed to parse support_external_checkout metafield', e); 1189 // Default to true if parsing fails 1190 isExternalCheckoutEnabled = true; 1191 } 1192 } 1193 1194 // LOCAL capture first â a network failure below (cart 430 under load, geo 1195 // outage) must never cost first-touch attribution or fbc/fbp persistence. 1196 const externalId = await FacebookTracker.tracking.initializeExternalId(); 1197 FacebookTracker.tracking.handleFbc(); 1198 FacebookTracker.tracking.handleFbp(); 1199 FacebookTracker.tracking.captureFirstTouch(); 1200 1201 const pageData = FacebookTracker.tracking.collectPageData(); 1202 if (pageData) FacebookTracker.storage.set(FacebookTracker.config.storageKeys.PAGE_DATA, pageData); 1203 1204 const adParams = FacebookTracker.tracking.collectAdParameters(); 1205 if (adParams) FacebookTracker.tracking.logAdData(adParams); 1206 1207 const fbc = FacebookTracker.storage.get(FacebookTracker.config.storageKeys.FBC, 'string'); 1208 const fbp = FacebookTracker.storage.get(FacebookTracker.config.storageKeys.FBP, 'string'); 1209 1210 // Network side-effects LAST, individually guarded so one failing never 1211 // aborts the other. 1212 if (isExternalCheckoutEnabled) { 1213 try { 1214 await FacebookTracker.cart.updateAttributes({ 1215 [FacebookTracker.config.storageKeys.EXTERNAL_ID]: externalId, 1216 ...(fbc ? { [FacebookTracker.config.storageKeys.FBC]: fbc } : {}), 1217 ...(fbp ? { [FacebookTracker.config.storageKeys.FBP]: fbp } : {}) 1218 }); 1219 } catch (cartErr) {
1220 FacebookTracker.utils.log('Cart attribute update failed', cartErr); 1221 } 1222 } 1223 1224 try { 1225 await FacebookTracker.tracking.hashCustomer(); 1226 } catch (hashErr) { 1227 FacebookTracker.utils.log('hashCustomer failed', hashErr); 1228 } 1229 1230 FacebookTracker.utils.log('FacebookTracker initialized', { externalId, pageData, adParams }); 1231 } catch (e) { 1232 FacebookTracker.utils.log('Init failed', e, 'error'); 1233 } 1234 } 1235}; 1236 1237document.addEventListener('DOMContentLoaded', () => { 1238 FacebookTracker.init().catch(e => FacebookTracker.utils.log('Init error', e, 'error')); 1239}); 1240</script>
1240 1241<!-- END app block -->
1241<script src="https://cdn.shopify.com/extensions/019f3d70-04d8-73ef-85e7-7845fc0389f9/ship-sphere-v1-11/assets/app.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1241
1241
1242<script src="https://cdn.shopify.com/extensions/f979ed44-f594-46cd-b59f-496169a6ebc6/guarantees-features-icons-1/assets/kachingappz-icons-storefront.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1242
1242
1243<script src="https://cdn.shopify.com/extensions/01a0eecd-e3cf-72d9-81f3-f3f881b5b528/checkout-regeln-grosse-warenkoerbe-2026-09-29/assets/widerruf-button.js" type="text/javascript" defer="defer"></script>
1243 1244<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1245<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: 89935774045,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 1245
1245
1246<script> 1247 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1248</script>
vendor: 1 bytes, line 1248
1248
1249<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}
1249).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: 89935774045,storefrontBaseUrl: "https://www.next-level-verlag.de",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.next-level-verlag.de/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"5872714077","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1249,"dataSharingState":"unrestricted"},{"id":"5613715805","configuration":"{\"pixelCode\":\"D8T4G8BC77U8UFHD19T0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"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"},{"id":"2628223325","configuration":"{\"accountID\":\"6881ff8d1281765d4f78182a\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"36e3d4a51ce4f54c09fc3ba4b868fb3d","type":"APP","apiClientId":161884340225,"privacyPurposes":["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"},{"id":"231833949","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"64","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"55 Wege tracking code"},{"id":"249790813","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"9","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Facebook-Pixel MaxGotzler GW"},{"id":"269386077","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"7","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"FB Pixel - Human Design"},{"id":"322797917","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"10","type":"CUSTOM","privacyPurposes":[],"name":"Meister Dein Mindset - Bischof"},{"id":"338461021","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"6","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Fühl es Schreib es - SophieLau"},{"id":"351338845","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"Neustart - Damien Richter"},{"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":"NXT LVL GmbH","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"52f6de-ed.myshopify.com","countryCode":"DE","storefrontUrl":"https:\/\/www.next-level-verlag.de"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.next-level-verlag.de/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"175475982685","themeStoreId":"1190","themePublished":"true","eventMetadataId":"ac15f48c-2b52-4ac7-b983-5700e72ab8a8","pageType":"cart","shopId":"89935774045","storefrontBaseUrl":"https:\/\/www.next-level-verlag.de","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>
1249<script> 1250 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1251 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1252 window.ShopifyAnalytics.meta.currency = 'EUR'; 1253 var meta = {"page":{"pageType":"cart","requestId":"7a5f4569-58fa-4909-b13f-bb3f7cbccf6b-1791090948"}}; 1254 for (var attr in meta) { 1255 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1256 } 1257</script>
vendor: 1 bytes, line 1257
1257
1258<script class="analytics"> 1259 (function () { 1260 var customDocumentWrite = function(content) { 1261 var jquery = null; 1262 1263 if (window.jQuery) { 1264 jquery = window.jQuery; 1265 } else if (window.Checkout && window.Checkout.$) { 1266 jquery = window.Checkout.$; 1267 } 1268 1269 if (jquery) { 1270 jquery('body').append(content); 1271 } 1272 }; 1273 1274 var hasLoggedConversion = function(token) { 1275 if (token) { 1276 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1277 } 1278 return false; 1279 } 1280 1281 var setCookieIfConversion = function(token) { 1282 if (token) { 1283 var twoMonthsFromNow = new Date(Date.now()); 1284 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1285 1286 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1287 } 1288 } 1289 1290 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1291 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1292 if (trekkie.integrations) { 1293 return; 1294 } 1295 trekkie.methods = [ 1296 'identify', 1297 'page', 1298 'ready', 1299 'track', 1300 'trackForm', 1301 'trackLink' 1302 ]; 1303 trekkie.factory = function(method) { 1304 return function() { 1305 var args = Array.prototype.slice.call(arguments); 1306 args.unshift(method); 1307 trekkie.push(args); 1308 if (method == 'track' || method == 'page') { 1309 var pageUrl; 1310 try { 1311 pageUrl = window.location.href; 1312 } catch (e) {} 1313 var pageReferrer; 1314 try { 1315 pageReferrer = document.referrer; 1316 } catch (e) {} 1317 try { 1318 if (window.__TREKKIE_SHIM_QUEUE == null) { 1319 window.__TREKKIE_SHIM_QUEUE = []; 1320 } 1321 window.__TREKKIE_SHIM_QUEUE.push({ 1322 from: 'trekkie-stub', 1323 method: method, 1324 args: args.slice(1), 1325 pageContext: { 1326 url: pageUrl, 1327 referrer: pageReferrer 1328 } 1329 }); 1330 } catch (e) { 1331 // no-op 1332 } 1333 } 1334 return trekkie; 1335 }; 1336 }; 1337 for (var i = 0; i < trekkie.methods.length; i++) { 1338 var key = trekkie.methods[i]; 1339 trekkie[key] = trekkie.factory(key); 1340 } 1341 trekkie.load = function(config) { 1342 trekkie.config = config || {}; 1343 trekkie.config.initialDocumentCookie = document.cookie; 1344 var first = document.getElementsByTagName('script')[0]; 1345var script = document.createElement('script'); 1346script.type = 'text/javascript'; 1347script.onerror = function(e) { 1348 var scriptFallback = document.createElement('script'); 1349 scriptFallback.type = 'text/javascript'; 1350 scriptFallback.onerror = function(error) { 1351 var Monorail = { 1352 produce: function produce(monorailDomain, schemaId, payload) { 1353 var currentMs = new Date().getTime(); 1354 var event = { 1355 schema_id: schemaId, 1356 payload: payload, 1357 metadata: { 1358 event_created_at_ms: currentMs, 1359 event_sent_at_ms: currentMs 1360 } 1361 }; 1362 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1363 }, 1364 sendRequest: function sendRequest(endpointUrl, payload) { 1365 // Try the sendBeacon API 1366 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1367 var blobData = new window.Blob([payload], { 1368 type: 'text/plain' 1369 }); 1370 1371 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1372 return true; 1373 } // sendBeacon was not successful 1374 1375 } // XHR beacon 1376 1377 var xhr = new XMLHttpRequest(); 1378 1379 try { 1380 xhr.open('POST', endpointUrl); 1381 xhr.setRequestHeader('Content-Type', 'text/plain'); 1382 xhr.send(payload); 1383 } catch (e) { 1384 console.log(e); 1385 } 1386 1387 return false; 1388 }, 1389 isIos12: function isIos12() { 1390 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1391 } 1392 }; 1393 Monorail.produce('monorail-edge.shopifysvc.com', 1394 'trekkie_storefront_load_errors/1.1', 1395 {shop_id: 89935774045, 1396 theme_id: 175475982685, 1397 app_name: "storefront", 1398 context_url: window.location.href, 1399 source_url: "//www.next-level-verlag.de/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1400 1401 }; 1402 scriptFallback.async = true; 1403 scriptFallback.src = '//www.next-level-verlag.de/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1404 first.parentNode.insertBefore(scriptFallback, first); 1405}; 1406script.async = true; 1407script.src = '//www.next-level-verlag.de/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1408first.parentNode.insertBefore(script, first); 1409 1410 }; 1411 trekkie.load( 1412 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":89935774045,"isMerchantRequest":null,"themeId":175475982685,"themeCityHash":"95
141279501695685954767","contentLanguage":"de","currency":"EUR","eventMetadataId":"ac15f48c-2b52-4ac7-b983-5700e72ab8a8"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1413 ); 1414 1415 var loaded = false; 1416 trekkie.ready(function() { 1417 if (loaded) return; 1418 loaded = true; 1419 1420 window.ShopifyAnalytics.lib = window.trekkie; 1421 1422 var originalDocumentWrite = document.write; 1423 document.write = customDocumentWrite; 1424 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1425 document.write = originalDocumentWrite; 1426 1427 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1428 var token = match? match[1]: undefined; 1429 if (!hasLoggedConversion(token)) { 1430 setCookieIfConversion(token); 1431 1432 } 1433 }); 1434 1435 window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"7a5f4569-58fa-4909-b13f-bb3f7cbccf6b-1791090948","shopifyEmitted":true}); 1436 1437 var eventsListenerScript = document.createElement('script'); 1438 eventsListenerScript.async = true; 1439 eventsListenerScript.src = "//www.next-level-verlag.de/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1440 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1441})();</script>
vendor: 1 bytes, line 1441
1441
1442<script 1443 defer 1444 src="https://www.next-level-verlag.de/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1445 data-application="storefront-renderer" 1446 data-shop-id="89935774045" 1447 data-render-region="gcp-us-west1" 1448 data-page-type="cart" 1449 data-theme-instance-id="175475982685" 1450 data-theme-name="Impact" 1451 data-theme-version="6.4.1" 1452 data-monorail-region="shop_domain" 1453 data-resource-timing-sampling-rate="10" 1454 data-shs="true" 1455 data-shs-beacon="true" 1456 data-shs-export-with-fetch="true" 1457 data-shs-logs-sample-rate="1" 1458 data-shs-beacon-endpoint="https://www.next-level-verlag.de/api/collect" 1459></script>
1459 1460<meta name="shopify-y" content="e49aa40f-fd4c-45fd-a404-d11c7abb0a5d" data-expiration="1822648548000"><meta name="shopify-s" content="cdccbac9-97d7-489f-8f8c-eacf64148fa9" data-expiration="1791092748000"><meta name="new-cookie-storage-activated" content="t"> 1461</head> 1462 1463 <body class="zoom-image--enabled"><!-- DRAWER --> 1464<template id="drawer-default-template"> 1465 <style> 1466 [hidden] { 1467 display: none !important; 1468 } 1469 </style> 1470 1471 <button part="outside-close-button" is="close-button" aria-label="SchlieÃen"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 1472 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1473 </svg></button> 1474 1475 <div part="overlay"></div> 1476 1477 <div part="content"> 1478 <header part="header"> 1479 <slot name="header"></slot> 1480 1481 <button part="close-button" is="close-button" aria-label="SchlieÃen"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 1482 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1483 </svg></button> 1484 </header> 1485 1486 <div part="body"> 1487 <slot></slot> 1488 </div> 1489 1490 <footer part="footer"> 1491 <slot name="footer"></slot> 1492 </footer> 1493 </div> 1494</template> 1495 1496<!-- POPOVER --> 1497<template id="popover-default-template"> 1498 <button part="outside-close-button" is="close-button" aria-label="SchlieÃen"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24"> 1499 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1500 </svg></button> 1501 1502 <div part="overlay"></div> 1503 1504 <div part="content"> 1505 <header part="title"> 1506 <slot name="title"></slot> 1507 </header> 1508 1509 <div part="body"> 1510 <slot></slot> 1511 </div> 1512 </div> 1513</template><a href="#main" class="skip-to-content sr-only">Zum Inhalt springen</a><!-- BEGIN sections: header-group --> 1514<header id="shopify-section-sections--24124947530077__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 1515 :root { 1516 --sticky-header-enabled:1; 1517 } 1518 1519 #shopify-section-sections--24124947530077__header { 1520 --header-grid-template: "main-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); 1521 --header-padding-block: var(--spacing-4-5); 1522 --header-background-opacity: 1.0; 1523 --header-background-blur-radius: 0px; 1524 --header-transparent-text-color: 26 26 26;--header-logo-width: 100px; 1525 --header-logo-height: 29px;position: sticky; 1526 top: 0; 1527 z-index: 10; 1528 }.shopify-section--announcement-bar ~ #shopify-section-sections--24124947530077__header { 1529 top: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px)); 1530 }@media screen and (min-width: 700px) { 1531 #shopify-section-sections--24124947530077__header {--header-logo-width: 200px; 1532 --header-logo-height: 57px;--header-padding-block: var(--spacing-8-5); 1533 } 1534 }@media screen and (min-width: 1150px) {#shopify-section-sections--24124947530077__header { 1535 --header-grid-template: "logo main-nav secondary-nav" / minmax(0, 1fr) fit-content(70%) minmax(0, 1fr); 1536 } 1537 }</style> 1538 1539<height-observer variable="header"> 1540 <store-header class="header" hide-on-scroll="100" sticky> 1541 <div class="header__wrapper"><div class="header__main-nav"> 1542 <div class="header__icon-list"> 1543 <button type="button" class="tap-area lg:hidden" aria-controls="header-sidebar-menu"> 1544 <span class="sr-only">Menü</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-hamburger" viewBox="0 0 22 22"> 1545 <path d="M1 5h20M1 11h20M1 17h20" stroke="currentColor" stroke-linecap="round"></path> 1546 </svg></button> 1547 1548 <a href="/search" class="tap-area sm:hidden" aria-controls="search-drawer"> 1549 <span class="sr-only">Suche</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1550 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1551 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1552 </svg></a><nav class="header__link-list justify-center wrap" role="navigation"> 1553 <ul class="contents" role="list"> 1554 1555 <li>
1555<details class="relative" is="dropdown-disclosure" trigger="hover"> 1556 <summary class="text-with-icon gap-2.5 bold link-faded-reverse" >Imprints<svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1557 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1558 </svg></summary> 1559 1560 <div class="dropdown-menu dropdown-menu--restrictable"> 1561 <ul class="contents" role="list"><li><a href="/collections/next-level" class="dropdown-menu__item group" > 1562 <span><span class="reversed-link">NXT LVL</span></span> 1563 </a></li><li><a href="/collections/now" class="dropdown-menu__item group" > 1564 <span><span class="reversed-link">NOW</span></span> 1565 </a></li></ul> 1566 </div> 1567 </details></li> 1568 1569 <li><a href="/collections/frontpage" class="bold link-faded-reverse" >Neuerscheinungen</a></li> 1570 1571 <li><a href="/collections/spiegel-besteller" class="bold link-faded-reverse" >SPIEGEL-Beststeller</a></li> 1572 1573 <li><a href="/collections/alle-titel" class="bold link-faded-reverse" >Alle Verlagstitel</a></li></ul> 1574 </nav></div> 1575 </div> 1576 <a href="/" class="header__logo"><span class="sr-only">NXT LVL GmbH</span><img src="//www.next-level-verlag.de/cdn/shop/files/next-level-logo-new-bold_a6e02bb1-793f-4463-8c5c-09bf3a6fd8d2.png?v=1728901036&width=280" alt="" srcset="//www.next-level-verlag.de/cdn/shop/files/next-level-logo-new-bold_a6e02bb1-793f-4463-8c5c-09bf3a6fd8d2.png?v=1728901036&width=280 280w, //www.next-level-verlag.de/cdn/shop/files/next-level-logo-new-bold_a6e02bb1-793f-4463-8c5c-09bf3a6fd8d2.png?v=1728901036&width=280 280w" width="280" height="80" sizes="200px" class="header__logo-image"><img src="//www.next-level-verlag.de/cdn/shop/files/next-level-logo-new-bold_a6e02bb1-793f-4463-8c5c-09bf3a6fd8d2.png?v=1728901036&width=280" alt="" srcset="//www.next-level-verlag.de/cdn/shop/files/next-level-logo-new-bold_a6e02bb1-793f-4463-8c5c-09bf3a6fd8d2.png?v=1728901036&width=280 280w, //www.next-level-verlag.de/cdn/shop/files/next-level-logo-new-bold_a6e02bb1-793f-4463-8c5c-09bf3a6fd8d2.png?v=1728901036&width=280 280w" width="280" height="80" sizes="200px" class="header__logo-image header__logo-image--transparent"></a> 1577 1578<div class="header__secondary-nav"><ul class="header__icon-list"><li> 1579 <a href="/search" class="hidden tap-area sm:block" aria-controls="search-drawer"> 1580 <span class="sr-only">Suche</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-search" viewBox="0 0 22 22"> 1581 <circle cx="11" cy="10" r="7" fill="none" stroke="currentColor"></circle> 1582 <path d="m16 15 3 3" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1583 </svg></a> 1584 </li><li> 1585 <a href="https://www.next-level-verlag.de/customer_authentication/redirect?locale=de®ion_country=DE" class="hidden tap-area sm:block"> 1586 <span class="sr-only">Anmelden</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-account" viewBox="0 0 22 22"> 1587 <circle cx="11" cy="7" r="4" fill="none" stroke="currentColor"></circle> 1588 <path d="M3.5 19c1.421-2.974 4.247-5 7.5-5s6.079 2.026 7.5 5" fill="none" stroke="currentColor" stroke-linecap="round"></path> 1589 </svg></a> 1590 </li><li> 1591 <a href="/cart" data-no-instant class="relative block tap-area" > 1592 <span class="sr-only">Warenkorb</span><svg role="presentation" stroke-width="2" focusable="false" width="22" height="22" class="icon icon-cart" viewBox="0 0 22 22"> 1593 <path d="M9.182 18.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="currentColor"></path> 1594 <path d="M5.336 6.636H21l-3.636 8.182H6.909L4.636 3H1m8.182 15.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1595 </svg><div class="header__cart-count"> 1596 <cart-count class="count-bubble opacity-0">
1597 <span class="sr-only"></span> 1598 <span aria-hidden="true">0</span> 1599 </cart-count> 1600 </div> 1601 </a> 1602 </li> 1603 </ul> 1604 </div> 1605 </div> 1606 </store-header> 1607</height-observer><navigation-drawer mobile-opening="bottom" open-from="left" id="header-sidebar-menu" class="navigation-drawer drawer lg:hidden" > 1608 <button is="close-button" aria-label="SchlieÃen"class="sm-max:hidden"><svg role="presentation" stroke-width="2" focusable="false" width="19" height="19" class="icon icon-close" viewBox="0 0 24 24"> 1609 <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path> 1610 </svg></button><div class="panel-list__wrapper"> 1611 <div class="panel"> 1612 <div class="panel__wrapper" > 1613 <div class="panel__scroller v-stack gap-8"><ul class="v-stack gap-4"> 1614<li class="h3 sm:h4"><button class="text-with-icon w-full group justify-between" aria-expanded="false" data-panel="1-0"> 1615 <span>Imprints</span> 1616 <span class="circle-chevron group-hover:colors group-expanded:colors"><svg role="presentation" focusable="false" width="5" height="8" class="icon icon-chevron-right-small reverse-icon" viewBox="0 0 5 8"> 1617 <path d="m.75 7 3-3-3-3" fill="none" stroke="currentColor" stroke-width="1.5"></path> 1618 </svg></span> 1619 </button></li> 1620<li class="h3 sm:h4"><a href="/collections/frontpage" class="group block w-full"> 1621 <span><span class="reversed-link">Neuerscheinungen</span></span> 1622 </a></li> 1623<li class="h3 sm:h4"><a href="/collections/spiegel-besteller" class="group block w-full"> 1624 <span><span class="reversed-link">SPIEGEL-Beststeller</span></span> 1625 </a></li> 1626<li class="h3 sm:h4"><a href="/collections/alle-titel" class="group block w-full"> 1627 <span><span class="reversed-link">Alle Verlagstitel</span></span> 1628 </a></li></ul></div><div class="panel-footer v-stack gap-5"><div class="panel-footer__localization-wrapper h-stack gap-6 border-t md:hidden"><a href="/account" class="panel-footer__account-link bold text-sm">Konto</a></div></div></div> 1629 </div><div class="panel gap-8"> 1630 <div class="panel__wrapper" hidden> 1631 <ul class="v-stack gap-4"> 1632 <li class="lg:hidden"> 1633 <button class="text-with-icon h6 text-subdued" data-panel="0"><svg role="presentation" focusable="false" width="7" height="10" class="icon icon-chevron-left reverse-icon" viewBox="0 0 7 10"> 1634 <path d="M6 1 2 5l4 4" fill="none" stroke="currentColor" stroke-width="2"></path> 1635 </svg>Imprints 1636 </button> 1637 </li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/next-level"><span><span class="reversed-link">NXT LVL</span></span> 1638 </a></li><li class="h3 sm:h4"><a class="group block w-full" href="/collections/now"><span><span class="reversed-link">NOW</span></span> 1639 </a></li></ul></div> 1640 </div></div></navigation-drawer>
1640<script> 1641 document.documentElement.style.setProperty('--header-height', Math.round(document.getElementById('shopify-section-sections--24124947530077__header').clientHeight) + 'px'); 1642</script>
1642 1643 1644
1645<script type="application/ld+json"> 1646 { 1647 "@context": "http://schema.org/", 1648 "@type": "Product", 1649 1650 "name": null, 1651 "url": "https:\/\/www.next-level-verlag.de", 1652 1653 "description": "", 1654 1655 "brand": { 1656 "@type": "Thing", 1657 "name": null 1658 }, 1659 "offers": [] 1660 } 1661 </script>
1661</header> 1662<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 1663 1664<!-- END sections: overlay-group --><cart-notification-drawer open-from="bottom" class="quick-buy-drawer drawer"></cart-notification-drawer><main role="main" id="main" class="anchor"> 1665 <section id="shopify-section-template--24124946874717__main" class="shopify-section shopify-section--main-cart"> 1666 1667 1668 1669 1670 1671 1672 1673<div class="container"><div class="empty-state"> 1674 <div class="empty-state__icon-wrapper"><svg role="presentation" stroke-width="1" focusable="false" width="32" height="32" class="icon icon-cart" viewBox="0 0 22 22"> 1675 <path d="M9.182 18.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="currentColor"></path> 1676 <path d="M5.336 6.636H21l-3.636 8.182H6.909L4.636 3H1m8.182 15.454a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.818 0Zm7.272 0a.91.91 0 1 1-1.818 0 .91.91 0 0 1 1.819 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> 1677 </svg><span class="count-bubble count-bubble--lg">0</span> 1678 </div> 1679 1680 <div class="prose"> 1681 <p class="h4">Dein Warenkorb ist leer</p> 1682<a class="button button--xl button--outline" 1683 1684 1685 1686 1687 1688 href="/collections/all" 1689 1690 1691 >Weiter einkaufen</a></div> 1692 </div></div> 1693 1694 1695</section> 1696<!-- BEGIN sections: footer-group --> 1697<section id="shopify-section-sections--24124947497309__custom_liquid_jaKVwE" class="shopify-section shopify-section-group-footer-group shopify-section--custom-liquid"><style> 1698 #shopify-section-sections--24124947497309__custom_liquid_jaKVwE { 1699 --section-background-hash: 0; 1700 } 1701 1702 #shopify-section-sections--24124947497309__custom_liquid_jaKVwE + * { 1703 --previous-section-background-hash: 0; 1704 }</style><style> 1705 #shopify-section-sections--24124947497309__custom_liquid_jaKVwE { 1706 1707 1708 } 1709 </style> 1710 1711 <div class="section section-blends section-full"> 1712
1712<script>
1713<script> 1714(function () { 1715 function strip() { 1716 document.querySelectorAll('a[href="/apps/widerruf"]').forEach(function (el) { 1717 if (el.getAttribute('style')) el.removeAttribute('style'); 1718 }); 1719 } 1720 strip(); 1721 document.addEventListener('DOMContentLoaded', strip); 1722 // entfernt das Styling auch, wenn die App es nachträglich wieder setzt 1723 new MutationObserver(strip).observe(document.documentElement, { 1724 childList: true, subtree: true, attributes: true, attributeFilter: ['style'] 1725 }); 1726})(); 1727</script>
1727 1728</script>
1728 1729 </div> 1730</section><section id="shopify-section-sections--24124947497309__custom_html_wQxjam" class="shopify-section shopify-section-group-footer-group shopify-section--custom-html"><style> 1731 #shopify-section-sections--24124947497309__custom_html_wQxjam { 1732 1733 1734 } 1735 </style><style> 1736 #shopify-section-sections--24124947497309__custom_html_wQxjam { 1737 --section-background-hash: 0; 1738 } 1739 1740 #shopify-section-sections--24124947497309__custom_html_wQxjam + * { 1741 --previous-section-background-hash: 0; 1742 }</style><div class="section section-blends section-full"> 1743 <a style="float: right;" href="https://www.it-recht-kanzlei.de/" target="_blank"><img style="filter: grayscale(100%);" src="https://www.it-recht-kanzlei.de/logo/Logo_Juristisch_betreut_durch_IT-Recht_Kanzlei.png?i=5acc0-41442-39c6-907c-1" alt="Vertreten durch die IT-Recht Kanzlei"></a> 1744 </div> 1745<style> #shopify-section-sections--24124947497309__custom_html_wQxjam .section-full {padding-block-start: inherit; padding-block-end: inherit; padding-inline-start: inherit; padding-inline-end: inherit; width: 150px; --context-section-spacing-inline: inherit; position: absolute; bottom: -400px; right: calc(50% - 75px); z-index: 1;} @media screen and (min-width: 850px) {#shopify-section-sections--24124947497309__custom_html_wQxjam .section-full {width: 150px; bottom: -238px; right: calc(50% - 75px); }} </style></section><footer id="shopify-section-sections--24124947497309__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><div class="footer"> 1746 <div class="container"> 1747 <div class="footer__wrapper"><div class="footer__block-list empty:hidden"><div class="footer__block footer__block--menu" ><ul class="v-stack gap-3" role="list"><li> 1748 <a href="/pages/allgemeine-geschaftsbedingungen" class="inline-block link-faded break-all">AGB</a> 1749 </li><li> 1750 <a href="/pages/impressum" class="inline-block link-faded break-all">Impressum</a> 1751 </li><li> 1752 <a href="https://shop.next-level-verlag.de/?preview_privacy_banner=1" class="inline-block link-faded break-all">Cookie-Einstellungen</a> 1753 </li><li> 1754 <a href="/pages/zahlung-und-versand" class="inline-block link-faded break-all">Zahlung und Versand</a> 1755 </li><li> 1756 <a href="/pages/wiederrufsbelehrung" class="inline-block link-faded break-all">Widerrufsbelehrung</a> 1757 </li><li> 1758 <a href="/pages/datenschutz" class="inline-block link-faded break-all">Datenschutzerklärung</a> 1759 </li><li> 1760 <a href="/apps/widerruf" class="inline-block link-faded break-all">Vertrag widerrufen</a> 1761 </li></ul> 1762 </div></div><div class="footer__aside empty:hidden"><div class="footer__aside-top"><ul class="social-media " role="list"><li> 1763 <a href="https://www.facebook.com/NXT.LVL.Verlag?_rdr" class="tap-area" target="_blank" rel="noopener" aria-label="Auf Facebook folgen"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-facebook" viewBox="0 0 24 24"> 1764 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.183 21.85v-8.868H7.2V9.526h2.983V6.982a4.17 4.17 0 0 1 4.44-4.572 22.33 22.33 0 0 1 2.667.144v3.084h-1.83a1.44 1.44 0 0 0-1.713 1.68v2.208h3.423l-.447 3.456h-2.97v8.868h-3.57Z" fill="currentColor"/> 1765 </svg></a> 1766 </li><li> 1767 <a href="https://www.instagram.com/next_level_verlag/" class="tap-area" target="_blank" rel="noopener" aria-label="Auf Instagram folgen"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-instagram" viewBox="0 0 24 24"> 1768 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.
1768047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/> 1769 </svg></a> 1770 </li><li> 1771 <a href="https://www.youtube.com/@nextlevelverlag34?" class="tap-area" target="_blank" rel="noopener" aria-label="Auf YouTube folgen"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-youtube" viewBox="0 0 24 24"> 1772 <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/> 1773 </svg></a> 1774 </li><li> 1775 <a href="https://www.linkedin.com/company/next-level-verlag/?originalSubdomain=de" class="tap-area" target="_blank" rel="noopener" aria-label="Auf LinkedIn folgen"><svg role="presentation" focusable="false" width="27" height="27" class="icon icon-linkedin" viewBox="0 0 24 24"> 1776 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.349 5.478a1.875 1.875 0 1 0-3.749 0 1.875 1.875 0 1 0 3.749 0ZM7.092 19.2H3.857V8.78h3.235V19.2ZM12.22 8.78H9.121V19.2h3.228v-5.154c0-1.36.257-2.676 1.94-2.676 1.658 0 1.68 1.554 1.68 2.763V19.2H19.2v-5.715c0-2.806-.605-4.963-3.877-4.963-1.573 0-2.629.863-3.06 1.683h-.044V8.78Z" fill="currentColor"/> 1777 </svg></a> 1778 </li></ul><div class="h-stack gap-6"><link rel="stylesheet" href="//www.next-level-verlag.de/cdn/shop/t/4/assets/country-flags.css?v=53084990939934261921742372337" media="print" onload="this.media='all'; this.onload = null"><div class="relative"> 1779 <button type="button" class="text-with-icon gap-2.5 group" aria-label="Land oder Währung ändern" aria-controls="popover-localization-form-country--sections--24124947497309__footer" aria-expanded="false"> 1780 <div class="h-stack gap-2"><span class="country-flags country-flags--DE"></span><span class="bold text-sm">Deutschland (EUR â¬)</span> 1781 </div><svg role="presentation" focusable="false" width="10" height="7" class="icon icon-chevron-bottom" viewBox="0 0 10 7"> 1782 <path d="m1 1 4 4 4-4" fill="none" stroke="currentColor" stroke-width="2"></path> 1783 </svg></button> 1784 1785 <x-popover id="popover-localization-form-country--sections--24124947497309__footer" initial-focus="[aria-selected='true']" anchor-horizontal="end" anchor-vertical="start" class="popover"> 1786 <p class="h5" slot="title">Land</p><form method="post" action="/localization" id="localization-form-country--sections--24124947497309__footer" accept-charset="UTF-8" class="shopify-localization-form" 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" /><x-listbox class="popover-listbox popover-listbox--sm" role="listbox"><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="DE" aria-selected="true">
1787 <span class="country-flags country-flags--DE"></span> 1788 <span>Deutschland (EUR â¬)</span> 1789 </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="AT" > 1790 <span class="country-flags country-flags--AT"></span> 1791 <span>Ãsterreich (EUR â¬)</span> 1792 </button><button type="submit" class="popover-listbox__option" name="country_code" role="option" value="CH" > 1793 <span class="country-flags country-flags--CH"></span> 1794 <span>Schweiz (EUR â¬)</span> 1795 </button></x-listbox></form></x-popover> 1796 </div></div></div><div class="footer__aside-bottom"><div class="footer__copyright v-stack gap-1"> 1797 <p class="text-sm text-subdued">© 2026 - NXT LVL GmbH </p></div> 1798 </div> 1799 </div> 1800 </div> 1801 </div> 1802</div> 1803 1804<style> #shopify-section-sections--24124947497309__footer .footer__aside-top {position: absolute; top: -30px; left: 50%; transform: translateX(-50%); display: block;} #shopify-section-sections--24124947497309__footer .footer__aside-top ul {margin-left: 8px; gap: var(--spacing-2);} #shopify-section-sections--24124947497309__footer .social-media {margin-bottom: 24px !important;} </style></footer> 1805<!-- END sections: footer-group --></main> 1806 1807 1808 <style> /*DO NOT USE - assets/custom.css */ </style> 1809<div id="shopify-block-AdmdXU3VUQ3hMTm1rN__8764476057892802672" class="shopify-block shopify-app-block"><link rel="preconnect" href="https://app.restockrocket.io" crossorigin><!-- Config and setup JS -->
1810<script id="RestockRocketConfig"> 1811 window._RestockRocketConfig = window._RestockRocketConfig || {} 1812 window._RestockRocket = window._RestockRocket || {} 1813 window._Stoq = window._RestockRocket 1814 window._StoqConfig = window._RestockRocketConfig 1815 try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { } 1816 function normalizeLocale(locale) { 1817 if (!locale || locale.trim() === '') { 1818 return ''; 1819 } 1820 return locale.toString().toLowerCase().replace(/-/g, '_'); 1821 } 1822 1823 window._RestockRocketConfig.locale = 'de'; 1824 window._RestockRocketConfig.normalizedLocale = normalizeLocale('de'); 1825 window._RestockRocketConfig.shop = '52f6de-ed.myshopify.com'; 1826 window._RestockRocketConfig.pageType = 'cart'; 1827 window._RestockRocketConfig.liquidRenderedAt = 1791090948;window._RestockRocketConfig.marketId = 89679135069;window._RestockRocketConfig.countryName = 'Deutschland'; 1828 window._RestockRocketConfig.countryIsoCode = 'DE';window._RestockRocketConfig.languageIsoCode = 'de';window._RestockRocketConfig.cartInventoryQuantity = {}; 1829 if (!window._RestockRocketConfig.cartToken) { 1830 try { 1831 const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/); 1832 if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]); 1833 } catch (e) { } 1834 } 1835window._RestockRocketConfig.cachedSettings = {"id":21143,"shop_id":20987,"currency":"EUR","created_at":"2024-12-19T09:38:36.354Z","updated_at":"2025-12-28T13:36:26.884Z","enable_app":true,"enable_signup_widget":true,"storefront_button_text":"Benachrichtigen Sie mich, wenn verfügbar","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Benachrichtigen Sie mich","storefront_form_description":"Erhalten Sie eine Benachrichtigung, sobald dieses Produkt wieder verfügbar ist, indem Sie sich unten anmelden!","storefront_form_button_text":"Benachrichtigen Sie mich, wenn verfügbar","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Wir versprechen, nicht zu spammen. Sie erhalten nur Benachrichtigungen für dieses Produkt.","storefront_form_error":"Bitte geben Sie eine gültige E-Mail-Adresse ein","storefront_form_success":"Danke! Wir werden Sie benachrichtigen, wenn das Produkt verfügbar ist.","enable_powered_by":false,"show_button_on_preorder":false,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"E-Mail-Adresse","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Telefonnummer","storefront_form_email_label":"E-Mail","storefront_form_phone_error":"Bitte geben Sie eine gültige Telefonnummer ein","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":null,"js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Informieren Sie mich auch über andere Neuigkeiten, Verkäufe, Rabatte und Angebote","show_button_on_collection":false,"sms_default_country":"de","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":true,"optin_success_text":"Registrierung bestätigt! Sie erhalten eine Benachrichtigung, sobald das Produkt wieder auf Lager ist.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Menge","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"auto","storefront_form_duplicate_error":"Sie haben sich bereits für Benachrichtigungen zu diesem Produkt angemeldet.","storefront_mixed_cart_error":"This item needs to be purchased
1835separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"de","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":true,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":true,"storefront_form_push_label":"Push","storefront_form_push_description":"Klicken Sie auf 'Zulassen', um über Push-Benachrichtigung informiert zu werden","storefront_form_push_error":"Berechtigung abgelehnt! Bitte überprüfen Sie die Benachrichtigungseinstellungen und versuchen Sie es erneut.","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Bitte füllen Sie eine oder mehrere der oben genannten Optionen aus","storefront_form_push_input":"Senden Sie eine Benachrichtigung an Ihren Browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"Dieses Produkt ist ausverkauft. Werden Sie benachrichtigt, wenn es wieder auf Lager ist, indem Sie Ihre Details unten eingeben!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":null,"preorder_badge_selector":null,"preorder_button_out_of_stock_text":"Nicht vorrätig","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":null,"preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":null,"preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":null,"preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":null,"preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":null,"preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T15:01:49.948Z","multi_language_enabled":false,"translation_locale":"de"}; 1836 window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production'; 1837 window._RestockRocketConfig.storefrontApiVersion = '2026-07';window._RestockRocketConfig.cachedPreorderVariantIds = { preorder_variant_ids: [] };window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = { variant_preorder_limits: {} };window._RestockRocketConfig.cachedVariantShippingTexts = { variant_shipping_texts: {} }; 1838window._RestockRocketConfig.sellingPlans = [];(function() { 1839 const cachedData = {"plans":[],"disabled_plan_ids":[],"has_in_stock_offer":false,"has_preorder_offer":false,"read_flags":{},"cached_at":"2026-09-21T15:49:40Z"}; 1840 1841 if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { 1842 window._RestockRocketConfig.readFlags = cachedData.read_flags || {}; 1843 const oldPlans = window._RestockRocketConfig.sellingPlans; 1844 const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 1845 ? oldPlans.reduce(function(max, plan) { 1846 if (plan.updated_at) { 1847 const planDate = new Date(plan.updated_at); 1848 const maxDate = max ? new Date(max) : null; 1849 return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max; 1850 } 1851 return max; 1852 }, '') 1853 : null; 1854 const cachedDate = new Date(cachedData.cached_at); 1855 const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; 1856 const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); 1857 1858 if (useCached) { 1859 if (Array.isArray(cachedData.plans)) {
1860 window._RestockRocketConfig.sellingPlans = cachedData.plans; 1861 window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; 1862 console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); 1863 } 1864 } else { 1865 window._RestockRocketConfig.disabledSellingPlanIds = []; 1866 console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); 1867 } 1868 } 1869 })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = []; 1870 try { 1871 var _sqCfg = window._RestockRocketConfig; 1872 var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) && 1873 _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; }); 1874 var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds && 1875 _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length; 1876 _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount); 1877 } catch (e) { } 1878 try { 1879 var _sqc = window._RestockRocketConfig; 1880 var _sqOn = !(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout === false); 1881 var _sqPre = (_sqc.cachedPreorderVariantIds && 1882 _sqc.cachedPreorderVariantIds.preorder_variant_ids) || []; 1883 var _sqArm = false; 1884 if (_sqOn && _sqc.preordersConfigured) { 1885 if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) { 1886 _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; }); 1887 } else { 1888 _sqArm = (_sqc.integrations || []).some(function (i) { 1889 return i && i.type === 'featured_product' && i.enabled && 1890 Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1; 1891 }); 1892 } 1893 } 1894 if (_sqArm && document.documentElement) { 1895 _sqc.acceleratedGateArmed = true; 1896 document.documentElement.classList.add('stoq-buy-now-pending'); 1897 setTimeout(function () { 1898 document.documentElement.classList.remove('stoq-buy-now-pending'); 1899 }, 6000); 1900 } 1901 } catch (e) { } 1902 1903 window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-product.js' 1904 window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-collection.js' 1905 window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-product-bis.js' 1906 window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a0f67f-532e-7916-acb4-6f3af102b411/restockrocket-1-599/assets/restockrocket-collection-bis.js' 1907 window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) 1908 window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' 1909 try { 1910 const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); 1911 window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; 1912 } catch (e) { 1913 window._RestockRocketConfig.appVersion = ''; 1914 } 1915 const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; 1916 const LIQUID_CACHE_MAX_AGE = 15 * 60; 1917 const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; 1918 if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { 1919 console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); 1920 window._RestockRocketConfig.isLiquidCacheFresh = true; 1921 window._RestockRocketConfig.liquidCacheAge = null; 1922 } else { 1923 const now = Math.floor(Date.now() / 1000);
1924 const liquidCacheAge = now - liquidRenderedAt; 1925 window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge); 1926 if (liquidCacheAge < 0) { 1927 console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); 1928 window._RestockRocketConfig.isLiquidCacheFresh = true; 1929 } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) { 1930 console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); 1931 window._RestockRocketConfig.isLiquidCacheFresh = true; 1932 } else { 1933 console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); 1934 window._RestockRocketConfig.isLiquidCacheFresh = false; 1935 } 1936 } 1937 1938 function checkSettingsExpiry(settings) { 1939 try { 1940 if (!settings || !settings.updated_at) { 1941 console.debug('STOQ - Invalid settings data structure'); 1942 return null; 1943 } 1944 1945 if (!settings.cache) { 1946 console.debug('STOQ - settings caching disabled'); 1947 return null; 1948 } 1949 if (settings.multi_language_enabled) { 1950 if (!settings.translations) { 1951 console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); 1952 return null; 1953 } 1954 if (window._RestockRocketConfig.normalizedLocale && 1955 !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { 1956 console.debug('STOQ - locale not explicitly translated, will use default language from cache'); 1957 } 1958 } 1959 1960 const updatedAt = new Date(settings.updated_at); 1961 if (isNaN(updatedAt.getTime())) { 1962 console.debug('STOQ - Invalid updated_at date format in settings'); 1963 return null; 1964 } 1965 1966 const age = Date.now() - updatedAt.getTime(); 1967 if (age < SETTINGS_CACHE_DURATION) { 1968 console.debug('STOQ - settings changed recently, skipping cache'); 1969 return null; 1970 } 1971 1972 return settings; 1973 } catch (error) { 1974 console.debug('STOQ - Error checking settings cache:', error); 1975 return null; 1976 } 1977 } 1978 1979 function createRestockRocketContainer() { 1980 const restockRocketContainer = document.createElement('div'); 1981 restockRocketContainer.id = 'restock-rocket'; 1982 document.body.appendChild(restockRocketContainer); 1983 } 1984 1985 function createRestockRocketScript(scriptUrl) { 1986 const restockRocketScriptElement = document.createElement('script'); 1987 restockRocketScriptElement.setAttribute('defer', 'defer'); 1988 restockRocketScriptElement.src = scriptUrl; 1989 document.body.appendChild(restockRocketScriptElement); 1990 } 1991 1992 createRestockRocketContainer() 1993 1994 console.debug('STOQ - extension activated') 1995 try { 1996 const _stoqInitConfig = window._RestockRocketConfig; 1997 const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)
1997) 1998 ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) 1999 : []; 2000 const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; 2001 var _stoqPageSeq = 0; 2002 try { 2003 _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; 2004 window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); 2005 } catch (e) { } 2006 Shopify?.analytics?.publish?.('stoq_initialized', { 2007 cart_token: _stoqInitConfig.cartToken || '', 2008 page_url: window.location.href, 2009 page_type: _stoqInitConfig.pageType || '', 2010 shop_domain: _stoqInitConfig.shop || '', 2011 market_id: _stoqInitConfig.marketId || '', 2012 country_code: _stoqInitConfig.countryIsoCode || '', 2013 detected_variant_ids: _stoqDetectedVariantIds, 2014 selected_variant_id: _stoqSelectedVariantId || '', 2015 page_load_seq: _stoqPageSeq, 2016 liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0, 2017 app_version: _stoqInitConfig.appVersion || '', 2018 liquid_cache_age: _stoqInitConfig.liquidCacheAge, 2019 inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '', 2020 inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId], 2021 }); 2022 } catch (e) { 2023 console.debug('STOQ - stoq_initialized publish failed:', e); 2024 } 2025 try { 2026 var _sqTrack = window._RestockRocketConfig; 2027 if (_sqTrack.preordersConfigured) { 2028 document.addEventListener('click', function (e) { 2029 try { 2030 var t = e.target; 2031 if (!t || !t.closest) return; 2032 var host = t.closest('.shopify-payment-button, shopify-payment-terms'); 2033 if (!host) return; 2034 var channel = host.matches && host.matches('shopify-payment-terms') 2035 ? 'shop_pay_installments' : 'buy_now'; 2036 var form = host.closest('form'); 2037 var vidEl = form && form.querySelector('[name="id"]'); 2038 var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || ''; 2039 var _sqVidNum = Number(variantId); 2040 var _sqPlan = null; 2041 var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : []; 2042 var _sqMktId = Number(_sqTrack.marketId); 2043 var _sqForVariant = function (pl) { 2044 return pl && pl.enabled && Array.isArray(pl.variant_ids) && 2045 pl.variant_ids.indexOf(_sqVidNum) !== -1; 2046 }; 2047 _sqPlans.forEach(function (pl) { 2048 if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled && 2049 Array.isArray(pl.shopify_market_ids) && 2050 pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; } 2051 }); 2052 if (!_sqPlan) { 2053 _sqPlans.forEach(function (pl) { 2054 if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; } 2055 }); 2056 } 2057 Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', { 2058 variant_id: variantId, 2059 product_id: (_sqTrack.product && _sqTrack.product.id) || '', 2060 channel: channel, 2061 market_id: _sqTrack.marketId || '', 2062 country_code: _sqTrack.countryIsoCode || '', 2063 page_type: _sqTrack.pageType || '', 2064 cart_token: _sqTrack.cartToken || '', 2065 page_url: (window.location && window.location.href) || '', 2066 properties: { 2067 is_preorder_variant: (function () { 2068 var vid = Number(variantId); 2069 var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; }; 2070 return has(_sqTrack.preorderVariantIds) || 2071 has(_sqTrack.cachedPreorderVariantIds && 2072 _sqTrack.cachedPreorderVariantIds.preorder_variant_ids); 2073 })(), 2074 in_enabled_plan: !!_sqPlan, 2075 is_instock_variant: (function () { 2076 var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; }; 2077 return has(_sqTrack.inStockVariantIds) || 2078 has(_sqTrack.cachedInStockVariantIds && 2079 _sqTrack.cachedInStockVariantIds.in_stock_variant_ids); 2080 })(), 2081 enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '', 2082 enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '', 2083 block_enabled: !(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout === false), 2084 gate_armed: !!_sqTrack.acceleratedGateArmed, 2085 gate_active_at_click: !!(document.documentElement && 2086 document.documentElement.classList.contains('stoq-buy-now-pending')), 2087 blocked: (function () { 2088 try { 2089 var rr = window._RestockRocket; 2090 return !!(rr && typeof rr.willBlockAcceleratedCl
2090ick === 'function' && 2091 rr.willBlockAcceleratedClick(e)); 2092 } catch (err) { return false; } 2093 })(), 2094 }, 2095 }); 2096 } catch (err) { } 2097 }, true); 2098 } 2099 } catch (e) { } 2100 function applyTranslations(settings) { 2101 try { 2102 if (!settings || !settings.multi_language_enabled) { 2103 return settings; 2104 } 2105 2106 if (!settings.translations) { 2107 console.debug('STOQ - No translations found, skipping translation'); 2108 return settings; 2109 } 2110 2111 const normalizedLocale = window._RestockRocketConfig.normalizedLocale; 2112 const translations = settings.translations; 2113 2114 if (!normalizedLocale) { 2115 console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); 2116 delete settings.translations; 2117 return settings; 2118 } 2119 2120 console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); 2121 2122 const translatedFields = translations[normalizedLocale]; 2123 if (translatedFields && typeof translatedFields === 'object') { 2124 Object.keys(translatedFields).forEach(function(key) { 2125 const value = translatedFields[key]; 2126 if (value !== null && value !== undefined && value !== '') { 2127 settings[key] = value; 2128 } 2129 }); 2130 } else { 2131 console.debug('STOQ - No translated fields found for locale:', normalizedLocale); 2132 } 2133 2134 delete settings.translations; 2135 return settings; 2136 } catch (e) { 2137 console.debug('STOQ - error applying translations:', e); 2138 return settings; 2139 } 2140 } 2141 function setupCartSellingPlanUpdater(settings) { 2142 window.addEventListener('stoq:inventory-data-loaded', function(event) { 2143 console.debug('STOQ - Inventory data loaded, updating cart selling plans'); 2144 if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { 2145 window._RestockRocket.updateCartSellingPlans() 2146 .then(hasUpdates => { 2147 if (hasUpdates) { 2148 console.debug('STOQ - cart selling plans updated successfully'); 2149 } else { 2150 console.debug('STOQ - no cart selling plan updates needed'); 2151 } 2152 }) 2153 .catch(error => { 2154 console.error('STOQ - error updating cart selling plans:', error); 2155 }); 2156 } 2157 }); 2158 } 2159 function storefrontGraphql(query, variables) { 2160 const cfg = window._RestockRocketConfig; 2161 if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) { 2162 return Promise.reject(new Error('Storefront API unavailable')); 2163 } 2164 return fetch( 2165 `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`, 2166 { 2167 method: 'POST', 2168 headers: { 2169 'Content-Type': 'application/json', 2170 'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken, 2171 }, 2172 body: JSON.stringify({ query: query, variables: variables }), 2173 } 2174 ) 2175 .then(function(response) { 2176 if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); } 2177 return response.json(); 2178 }) 2179 .then(function(body) { 2180 if (body && body.errors && body.errors.length) { 2181 throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', ')); 2182 } 2183 return body && body.data; 2184 }); 2185 } 2186 function fetchStorefrontShopMetafield(key) { 2187 const cfg = window._RestockRocketConfig; 2188 const query = 'query StoqShopMetafield($namespace: String!, $key: String!) { shop { metafield(namespace: $namespace, key: $key) { value } } }'; 2189 return storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key }) 2190 .then(function(data) { 2191 const value = data && data.shop && data.shop.metafield && data.shop.metafield.value; 2192 if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); } 2193 return JSON.parse(value); 2194 }); 2195 } 2196 (function loadStorefrontSettings() { 2197 const cfg = window._RestockRocketConfig; 2198 if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return; 2199 function run() { 2200 // The live-settings read is one more shop-level metafield fetch, so it 2201 // shares fetchStorefrontShopMetafield with the integrations/selling_plans 2202 // reads rather than re-issuing the same query + parse. 2203 fetchStorefrontShopMetafield('settings') 2204 .then(function(settings) { 2205 cfg.storefrontSettings = settings; 2206 console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings'); 2207 }) 2208 .catch(function(e) { 2209 console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message); 2210 }); 2211 } 2212 2213 if (typeof window.requestIdleCallback === 'function') { 2214 window.requestIdleCallback(run, { timeout: 5000 }); 2215 } else { 2216 setTimeout(run, 0); 2217 } 2218 })(); 2219 const cachedSettings = window._RestockRocketConfig.cachedSettings; 2220 const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; 2221 2222 if (validCachedSettings) { 2223 console.debug('STOQ - using cached settings'); 2224 initializeScripts(validCachedSettings); 2225 } else { 2226 console.debug('STOQ - fetching fresh settings'); 2227 const headers = { 2228 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 2229 'ngrok-skip-browser-warning': 'skip' 2230 }; 2231 2232 if (window.Shopify?.theme?.role === 'main') { 2233 headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; 2234 headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; 2235 headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; 2236 } 2237 2238 fetch( 2239 `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, 2240 { headers } 2241 ) 2242 .then(function(response) { 2243 if (!response.ok) { 2244 throw new Error('Network response was not ok'); 2245 } 2246 return response.json(); 2247 }) 2248 .then(function(settings) { 2249 initializeScripts(settings); 2250 }) 2251 .catch(function(error) { 2252 if (cachedSettings) { 2253 console.debug('STOQ - using expired cached settings as fallback'); 2254 initializeScripts(cachedSettings); 2255 } else { 2256 console.error('STOQ - failed to load settings:', error); 2257 } 2258 }) 2259 .catch(function(e) { 2260 console.error(e) 2261 }) 2262 } 2263 2264 function fetchEmbedConfig(endpoint, apply) { 2265 return fetch( 2266 `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`, 2267 { 2268 headers: { 2269 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 2270 'ngrok-skip-browser-warning': 'skip' 2271 } 2272 } 2273 ) 2274 .then(function(response) { 2275 if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`); 2276 return response.json(); 2277 }) 2278 .then(function(data) {
2279 try { 2280 apply(data); 2281 } catch (applyError) { 2282 console.error('STOQ - apply failed for ' + endpoint + ':', applyError); 2283 throw applyError; 2284 } 2285 }) 2286 .catch(function(error) { 2287 console.debug(`STOQ - using cached ${endpoint}:`, error.message); 2288 }); 2289 } 2290 function refreshShopConfig(source) { 2291 const cfg = window._RestockRocketConfig; 2292 const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); }; 2293 const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true; 2294 if (!flagOn || source.embedOnly === true) { return viaEmbed(); } 2295 2296 return fetchStorefrontShopMetafield(source.metafieldKey) 2297 .then(function(value) { 2298 if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); } 2299 source.apply(value); 2300 console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API'); 2301 }) 2302 .catch(function(error) { 2303 console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message); 2304 return viaEmbed(); 2305 }); 2306 } 2307 function refreshIntegrations() { 2308 const cfg = window._RestockRocketConfig; 2309 return refreshShopConfig({ 2310 endpoint: 'integrations', 2311 metafieldKey: 'integrations', 2312 flag: 'enable_storefront_integrations_read', 2313 isValid: function(value) { return Array.isArray(value); }, 2314 apply: function(data) { 2315 cfg.integrations = data; 2316 } 2317 }); 2318 } 2319 function refreshSellingPlans(embedOnly) { 2320 const cfg = window._RestockRocketConfig; 2321 return refreshShopConfig({ 2322 embedOnly: embedOnly === true, 2323 endpoint: 'selling_plans', 2324 metafieldKey: 'cachedSellingPlans', 2325 flag: 'enable_storefront_selling_plans_read', 2326 isValid: function(value) { return !!value && Array.isArray(value.plans); }, 2327 apply: function(data) { 2328 cfg.sellingPlans = data.plans; 2329 cfg.disabledSellingPlanIds = data.disabled_plan_ids || []; 2330 if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) { 2331 cfg.readFlags = data.read_flags; 2332 } 2333 } 2334 }); 2335 } 2336 2337 function initializeScripts(settings) { 2338 settings = applyTranslations(settings); 2339 window._RestockRocketConfig.settings = settings; 2340 console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); 2341 const forceEmbedSellingPlans = settings.force_embed_selling_plans === true; 2342 const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid; 2343 if (forceEmbedSellingPlans || staleRefresh) { 2344 console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)')); 2345 const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)]; 2346 if (staleRefresh) { refreshes.push(refreshIntegrations()); } 2347 Promise.race([ 2348 Promise.all(refreshes), 2349 new Promise(function(resolve) { setTimeout(resolve, 1000); }) 2350 ]).then(function() { loadScripts(settings); }); 2351 return; 2352 } 2353 2354 loadScripts(settings); 2355 } 2356 2357 function loadScripts(settings) { 2358 setupCartSellingPlanUpdater(settings); 2359 2360 if(settings.enable_app) { 2361 const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { 2362 return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); 2363 }) 2364 const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) 2365 && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; }); 2366 const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds) 2367 && window._RestockRocketConfig.disabledSellingPlanIds.length > 0; 2368 const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds; 2369 2370 const collectionScriptUrl = usePreorderBuild 2371 ? window._RestockRocketConfig.scriptUrlCollection 2372 : window._RestockRocketConfig.scriptUrlCollectionBis; 2373 const productScriptUrl = usePreorderBuild 2374 ? window._RestockRocketConfig.scriptUrlProduct 2375 : window._RestockRocketConfig.scriptUrlProductBis; 2376 2377 const pageType = window._RestockRocketConfig.pageType; 2378 const collectionPageTypes = ['collection', 'index', 'search', 'page']; 2379
2380 if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) { 2381 createRestockRocketScript(collectionScriptUrl); 2382 } else if(pageType === 'product') { 2383 createRestockRocketScript(productScriptUrl); 2384 } else if(hijackIntegration) { 2385 createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); 2386 } else if(usePreorderBuild) { 2387 createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); 2388 } else { 2389 console.debug(`STOQ - no scripts enabled for ${pageType}`); 2390 } 2391 const appLoadedEvent = new CustomEvent('stoq:loaded', { 2392 detail: { 2393 pageType: window._RestockRocketConfig.pageType, 2394 enabled: settings.enable_app, 2395 settings: settings, 2396 preorderEnabled: settings.preorder_enabled 2397 } 2398 }); 2399 console.debug('STOQ - dispatching app loaded event'); 2400 window.dispatchEvent(appLoadedEvent); 2401 } 2402 } 2403</script>
2403<style id="RestockRocketStyle">html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}</style> 2404 2405 2406</div><div id="shopify-block-AM2U2bkZ4d1JoYW1WV__16420725565331586169" class="shopify-block shopify-app-block"> 2407<!-- BEGIN app snippet: configurations -->
2408<script id="appio_reviews_script"> 2409 2410 setTimeout(() => { 2411 if((!([...document.getElementsByTagName("script")].some(_=>_.src?.indexOf("appio-reviews.")>0))) || {...{"language":"Germany","customTexts":{"English":{"textFeaturedTitle":"Kunden empfehlen"}},"hideHeaderWhenNoReview":true,"showReviewButton":false,"showWidgetTitle":false,"showReviewFilters":false,"colorStar":"#e2a200","thumbSize":62,"maxLines":2,"showReply":false,"allowSortReview":false,"ratingFormatProduct":"(#raters)","showReviewDate":false,"showReviewerCountry":false,"showReviewerName":false,"showVerifiedBadge":false,"featuredLayout":"slide","featuredShowReviewsCount":false,"featuredMaxLines":17}}?.useCDN){let e=document.createElement("script"),s=document.createElement("link");e.src="https://cdn.jsdelivr.net/gh/edataviz/reviews@6/appio-reviews.min.js",s.href="https://cdn.jsdelivr.net/gh/edataviz/reviews@6/appio-reviews.min.css",s.rel="stylesheet",document.getElementsByTagName("head")[0].append(s,e);} 2412 }, 200) 2413 _appioCheck = "515628215247"; 2414 _appioVersion = '3.3'; 2415 2416 _appioConfig = {"language":"Germany","customTexts":{"English":{"textFeaturedTitle":"Kunden empfehlen"}},"hideHeaderWhenNoReview":true,"showReviewButton":false,"showWidgetTitle":false,"showReviewFilters":false,"colorStar":"#e2a200","thumbSize":62,"maxLines":2,"showReply":false,"allowSortReview":false,"ratingFormatProduct":"(#raters)","showReviewDate":false,"showReviewerCountry":false,"showReviewerName":false,"showVerifiedBadge":false,"featuredLayout":"slide","featuredShowReviewsCount":false,"featuredMaxLines":17}; 2417 2418 _appioData = {...window._appioData, 2419 page: 1, 2420 filter: 'all', 2421 sort: '' || 'featured', 2422 groupId: '', 2423 } 2424 _appioPage = "cart"; 2425 2426 �_appioPopupReviews = null 2427 2428 _appioRatings = {"der-protein-fasten-trick":{"productId":"14991305867613","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":191,"title":"Der Protein-Fasten-Trick"},"jeden-tag-einen-schritt":{"productId":"14751132057949","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":200,"title":"Jeden Tag einen Schritt"},"jan-ulrich-himmel-holle-und-zuruck-ins-leben":{"productId":"14751138840925","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":43,"title":"Jan Ulrich | Himmel, Hölle - und zurück ins Leben"},"das-jochen-schweizer-prinzip":{"productId":"14751171019101","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":33,"title":"Das Jochen Schweizer Prinzip"},"die-jungs-gaben-mir-mein-leben-zuruck":{"productId":"14751172886877","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":17,"title":"Die Jungs gaben mir mein Leben zurück"},"gute-gene-einschalten-schlechte-gene-ausschalten":{"productId":"14813991338333","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":13,"title":"Gute Gene einschalten, schlechte Gene ausschalten"},"poor-charlie-s-almanack-the-essential-wit-and-wisdom-of-charles-t-munger":{"productId":"14814050287965","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":29,"title":"Poor Charlieâs Almanach"},"12-nachte-die-dein-leben-verandern":{"productId":"14817467236701","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":51,"title":"12 Nächte, die dein Leben verändern"},"mein-bestes-jahr-dein-daily-workbook":{"productId":"14814129389917","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":15,"title":"Mein bestes Jahr"},"ich-muss-nen-scheiss-muss-ich":{"productId":"14835036553565","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":53,"title":"'Ich muss? 'Nen Scheià muss ich!"},"rehbellion-zeige-der-welt-was-in-dir-steckt":{"productId":"14835045695837","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":63,"title":"Rehbellion"},"how-to-marktfuhrer":{"productId":"14835081445725","groupAverage":null,"groupTotal":null,"rating":"4.4","raters":7,"title":"How to Marktführer"},"lieber-neureich-als-nie-reich":{"productId":"14835103301981","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":24,"title":"Lieber neureich als nie reich"},"tonis-mealprep-kuche-schnelle-rezeptideen-fur-die-ganze-familie":{"productId":"14835111002461","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":124,"title":"Toni's Mealprep Küche"},"escape-and-arrive":{"productId":"14835128828253","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":28,"title":"Escape and Arrive"},"365-tage-simplify-your-life-einfacher-und-glucklicher-leben":{"productId":"14835161235805","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":15,"title":"365 Tage simplify your life"},"anna-lernt-sich-selbst-zu-lieben":{"productId":"14835172704605","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":32,"title":"Anna lernt sich selbst zu lieben"},"if-you-can-dream-it-you-can-do-it":{"productId":"14835202982237","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":14,"title":"If you can dream it, you can do it"},"die-speaker-bibel":{"productId":"14835227656541","groupAverage":null,"groupTotal":null,"rating":"3.8","raters":13,"title":"Die Speaker-Bibel"},"its-in-you-visionen-erfolg-erfulltes-leben":{"productId":"14835258458461","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":70,"title":"It's in you - Visionen, Erfolg, erfülltes Leben"},"die-7-lugen-des-lebens":{"productId":"14835315081565","groupAverage":null,"groupTotal":null,"rating":"4.0","raters":3,"title":"Die 7 Lügen des Lebens"},"die-antwort-liegt-in-dir-48-karten-mit-denen-du-klarheit-heilung-und-verbindung-in-dir-finden-kannst":{"productId":"14835416007005","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":32,"title":"Die Antwort liegt in dir"},"fuchs_was-kinder-brauchen":{"productId":"14847158419805","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":29,"title":"Was Kinder brauchen - Erziehung aus Kinderperspektive"},"leuchtturm-in-der-dunkelheit":{"productId":"14847194005853","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":33,"title":"Leuchtturm in der Dunkelheit"},"ich-geh-mal-meine-gefuhle-fuhlen":{"productId":"14847210848605","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":37,"title":"Ich geh mal meine Gefühle fühlen"},"kuss-mich-toxisch-zwischen-leidenschaft-und-wahnsinn-was-es-wirklich-heisst-einen-narzissten-zu-lieben":{"productId":"14847278547293","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":9,"title":"Küss mich toxisch"},"wehe-du-gibst-auf-101-x-clartext-der-dich-stark-macht":{"productId":"14847285526877","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":142,"title":"Wehe du gibst auf"},"vier-worte-die-dein-leben-fur-immer-verandern":{"productId":"14847320654173","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":36,"title":"Vier Worte, die dein Leben für immer verändern"},"warum-alles-gut-wird-wie-ein-quantenphysiker-sich-die-welt-erklart":{"productId":"14847339200861","groupAverage":null,"groupTotal":null,"rating":"4.4","raters":54,"title":"Warum alles gut wird"},"verkappte-narzissten-wie-wir-sie-enttarnen-und-ihnen-die-macht-nehmen":{"productId":"14847347622237","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":32,"title":"Verkappte Narzissten"},"hatte-ich-das-mal-fruher-gefuhlt":{"productId":"14847376425309","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":20,"title":"Hätte ich das mal früher gefühlt"},"selbst-die-suche-hat-ein-ende":{"productId":"14847399166301","groupAverage":null,"groupTotal":null,"rating":"4.5","raters":23,"title":"Selbst"},"mollys-wundersame-reise":{"productId":"14847408177501","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":20,"title":"Mollys wundersame Reise"},"reisen-wie-die-reichen-purer-luxus-ohne-viel-geld-mit-der-million-points-club-methode-1":{"productId":"15077966545245","groupAverage":null,"groupTotal":null,"rating":"3.8","raters":22,"title":"Reisen wie die Reichen"},"jeden-tag-einen-schritt-kopie":{"productId":"15264611238237","groupAverage":null,"groupTotal":null,"rating":"4.4","raters":7,"title":"Buddha meets Badass"},"limitless-wie-du-schneller-lernst-und-dein-potenzial-befreist":{"productId":"15267738812765","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":23,"title":"Limitless"},"du-in-der-hauptrolle-ein-leben-nach-deinen-eigenen-regeln":{"productId":"15267768795485","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":4,"title":"Du in der Hauptrolle"},"du-in-der-hauptrolle-ein-leben-nach-deinen-eigenen-regeln-kopie":{"productId":"15267826958685","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":19,"title":"Dotcom Secrets"},"ich-geh-mal-meine-gefuhle-fuhlen-kopie":{"productId":"15267887284573","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":21,"title":"Unbox your Network"},"ermachtige-dein-selbst-altes-und-verloren-geglaubtes-wissen-das-dich-zu-deiner-personlichen-freiheit-fuhrt":{"productId":"15267917070685","groupAverage":null,"groupTotal":null,"rating":"3.3","raters":3,"title":"Ermächtige dein Selbst"},"warum-ubernaturliche-methoden-funktionieren-die-wissenschaft-hinter-meditation-und-alternativen-heilverfahren":{"productId":"15267964748125","groupAverage":null,"groupTotal":null,"rating":"3.7","raters":3,"title":"Warum übernatürliche Methoden funktionieren"},"traffic-secrets-die-geheimen-hacks-wie-du-deine-zielgruppe-auf-deine-website-und-in-deine-funnels-fuhrst":{"productId":"15268000399709","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":14,"title":"Traffic Secrets"},"warum-ubernaturliche-methoden-funktionieren-die-wissenschaft-hinter-meditation-und-alternativen-heilverfahren-kopie":{"productId":"15268030873949","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":1,"title":"Be
2428wusst schlafen und träumen"},"dein-weg-aus-der-erschopfung-der-12-schritte-plan-um-deine-energie-zu-steigern-deinen-korper-zu-heilen-und-deine-ziele-zu-erreichen":{"productId":"15268077568349","groupAverage":null,"groupTotal":null,"rating":"4.4","raters":5,"title":"Dein Weg aus der Erschöpfung"},"mindful-wie-moderne-meditation-dein-leben-verandert":{"productId":"15268109353309","groupAverage":null,"groupTotal":null,"rating":"3.0","raters":2,"title":"Mindful"},"das-buch-das-dein-gehirn-nicht-lesen-mochte-wie-du-dein-gehirn-umbaust-um-ein-gluckliches-und-erfulltes-leben-zu-fuhren":{"productId":"15268127834461","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":5,"title":"Das Buch, das dein Gehirn nicht lesen möchte"},"eat-for-energy-ausgelaugt-war-gestern-mit-klaren-ernahrungsstrategien-den-korper-auf-optimale-leistungsfahigkeit-ausrichten":{"productId":"15268191830365","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":1,"title":"Eat for Energy"},"expert-secrets-the-underground-playbook-for-converting-your-online-visitors-into-lifelong-customers":{"productId":"15268252287325","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":11,"title":"Expert Secrets"},"hatte-ich-das-mal-fruher-gefuhlt-der-code-fur-eine-liebevolle-beziehung-mit-dir-selbst-und-anderen-kopie":{"productId":"15279746777437","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":14,"title":"Hätte ich das Spiel des Lebens mal früher durchschaut!"},"das-buch-das-dein-gehirn-nicht-lesen-mochte-wie-du-dein-gehirn-umbaust-um-ein-gluckliches-und-erfulltes-leben-zu-fuhren-kopie":{"productId":"15348450459997","groupAverage":null,"groupTotal":null,"rating":"4.0","raters":2,"title":"Die 12 Schritte aus der Sucht"},"greator-journal-deine-tagliche-reise-zu-dir-selbst-wie-du-sofort-deine-konkurrenz-dominierst":{"productId":"15349010465117","groupAverage":null,"groupTotal":null,"rating":"2.6","raters":9,"title":"Greator Journal"},"niemand-schlagt-so-hart-zu-wie-das-schicksal-aber-ich-habe-es-versucht":{"productId":"15380614119773","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":10,"title":"Niemand schlägt so hart zu wie das Schicksal"},"neurofundamentals-leicht-gemacht-neurozentriertes-training-verstandlich-erklart":{"productId":"15387290173789","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":1,"title":"Neurofundamentals leicht gemacht"},"karpaltunnel-syndrom-ein-leitfaden-zur-selbsthilfe":{"productId":"15387296432477","groupAverage":null,"groupTotal":null,"rating":"4.5","raters":11,"title":"Karpaltunnel Syndrom â Ein Leitfaden zur Selbsthilfe"},"personal-trainer-von-der-vision-zum-erfolg":{"productId":"15387300725085","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":8,"title":"Personal Trainer â Von der Vision zum Erfolg"},"neurozentriertes-training-so-trainierst-du-gleichgewicht-und-stabilitat":{"productId":"15391080939869","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":20,"title":"Neurozentriertes Training"},"endlich-richtig-ausgeschlafen":{"productId":"15391090377053","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":10,"title":"Endlich richtig ausgeschlafen"},"licht-und-schatten-das-geschenk-der-gleichzeitigkeit":{"productId":"15397289886045","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":19,"title":"Licht und Schatten"},"alles-liebe-letzte-worte-von-kurt-tepperwein":{"productId":"15463166902621","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":8,"title":"Alles Liebe!"},"millionarin-mit-herz":{"productId":"15490351956317","title":"Millionärin mit Herz","rating":4.5,"raters":13},"die-13-hertz-formel":{"productId":"15490727739741","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":22,"title":"Die 13 Hertz Formel"},"die-flow-formel":{"productId":"15508005847389","title":"Die Flow Formel","rating":5,"raters":27},"jeden-tag-einen-schritt-limited-edition-taschenbuch-format":{"productId":"15409867784541","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":98,"title":"Jeden Tag einen Schritt | Limited Edition | kleine Schmuckausgabe"},"jeden-tag-einen-schritt-limited-edition":{"productId":"15409894392157","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":101,"title":"Jeden Tag einen Schritt | Limited Edition | groÃe Schmuckausgabe"},"philip-hopf-das-erfolgs-journal":{"productId":"15386413728093","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":29,"title":"Philip Hopf - Das Erfolgs Journal"},"deine-atmung-aendert-alles":{"productId":"15512486576477","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":34,"title":"Deine Atmung ändert alles!"},"55-wege-wie-ki-dein-leben-leichter-macht":{"productId":"15441085202781","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":9,"title":"55 Wege wie KI dein Leben leichter macht"}
2428,"vom-topverdiener-zum-privatier-wie-aus-ihrem-einkommen-vermogen-wird":{"productId":"15532678611293","title":"Vom Topverdiener zum Privatier: Wie aus Ihrem Einkommen Vermögen wird","rating":4.1,"raters":18},"loffelliebe":{"productId":"15512571445597","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":138,"title":"Löffelliebe"},"david-gelles-der-mann-der-patagonia-verschenkte":{"productId":"15561590866269","groupAverage":null,"groupTotal":null,"rating":"4.3","raters":3,"title":"David Gelles - Der Mann, der Patagonia verschenkte."},"der-digitale-euro":{"productId":"15567936946525","groupAverage":null,"groupTotal":null,"rating":"4.5","raters":88,"title":"Der digitale Euro"},"atem-die-losung-fur-dein-trauma":{"productId":"15651888595293","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":28,"title":"Atem â Die Lösung für dein Trauma"},"signierte-ausgabe-von-wehe-du-gibst-auf-101-x-clartext-der-dein-denken-verandert":{"productId":"15703567728989","title":"EXKLUSIV SIGNIERTE AUSGABE von Wehe du gibst auf","rating":4.5,"raters":212},"scheiss-auf-yoga-und-wie-du-auch-ohne-om-fliegen-kannst":{"productId":"15464040825181","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":22,"title":"Scheià auf Yoga!"},"wofur-du-hier-bist-mit-human-design-die-abkurzung-zur-selbsterkenntnis-nehmen":{"productId":"15534432026973","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":88,"title":"Wofür du hier bist"},"du-bist-der-bessere-chef-wie-du-die-werkzeuge-der-weltbesten-fuhrungskrafte-personlich-anwenden-kannst-und-dir-das-leben-leichter-machst":{"productId":"15665352147293","title":"Hardcover-Buch âDu bist der bessere Chefâ Bonus 1: Hörbuch â55 Führungstipps für Mitarbeitergesprächeâ Bonus 2: Online-Kurs âMitarbeiter besser verstehen mit dem 4-Farben-Modellâ Bonus 3: Gewinnchance: Führungskräfte-Ausbildung","rating":5,"raters":22},"jeder-kann-es-schaffen-schritt-fur-schritt-zu-mehr-kraft-selbstvertrauen-und-lebensfreude":{"productId":"15633312711005","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":40,"title":"Jeder kann es schaffen"},"du-bist-der-bessere-chef":{"productId":"15720772731229","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":30,"title":"Du bist der bessere Chef"},"manifestieren-fur-skeptiker-mythos-und-wahrheit-aus-der-sicht-eines-wissenschaftlers":{"productId":"15652067639645","groupAverage":null,"groupTotal":null,"rating":"3.3","raters":4,"title":"Manifestieren für Skeptiker"},"wehe-du-gibst-auf-die-kartenbox-45-motivationskarten-zum-mut-und-mitmachen-fur-jeden-tag":{"productId":"15705117163869","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":21,"title":"Wehe du gibst auf â Die Kartenbox"},"stunde-der-wahrheit-wir-sind-die-auf-die-wir-gewartet-haben":{"productId":"15464034730333","groupAverage":null,"groupTotal":null,"rating":"4.5","raters":26,"title":"Stunde der Wahrheit"},"unzerstorbar-die-kunst-niemals-aufzugeben-mentale-starke-disziplin-comeback-mindset-fur-sieger":{"productId":"15727837348189","groupAverage":null,"groupTotal":null,"rating":"4.9","raters":22,"title":"Unzerstörbar"},"toxisches-schweigen-die-psychologische-waffe-erkennen-und-entscharfen":{"productId":"15784081424733","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":14,"title":"Toxisches Schweigen"},"der-code-zum-erfolg":{"productId":"15567961260381","groupAverage":null,"groupTotal":null,"rating":"3.7","raters":14,"title":"Der Code zum Erfolg"},"wie-man-geschichte-schreibt":{"productId":"15831758045533","groupAverage":null,"groupTotal":null,"rating":"3.6","raters":21,"title":"Wie man Geschichte schreibt"},"iron-mindset-wie-du-mentale-starke-fur-ein-erfolgreiches-leben-entwickelst":{"productId":"15811594551645","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":4,"title":"Iron Mindset"},"der-elefant-in-deinem-bett":{"productId":"15831738843485","groupAverage":null,"groupTotal":null,"rating":"4.6","raters":25,"title":"Der Elefant in deinem Bett"},"alles-was-wirklich-zahlt-wie-du-der-star-im-drehbuch-deines-lebens-wirst":{"productId":"15464045543773","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":10,"title":"Alles was wirklich zählt"},"die-jetzt-box":{"productId":"15831774134621","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":2,"title":"Die Jetzt-Box"},"die-grosste-reise-deines-lebens":{"productId":"16014172586333","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":41,"title":"Die gröÃte Reise deines Lebens"},"spaziergang-zur-unsterblichkeit":{"productId":"15860863959389","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":27,"title":"Spaziergang zur Unsterblichkeit"},"auf-die-fresse":{"productId":"15875944218973","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":32,"title":"Auf die Fresse"},"was-wir-uberhaupt-noch-essen-konnen":{"productId":"15875904569693","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":42,"title":"Was wir überhaupt noch essen können"},"limitless-erweiterte-neuauflage":{"productId":"15932194750813","groupAverage":null,"groupTotal":null,"rating":"4.1","raters":41,"title":"Limitless - Erweiterte Neuauflage"},"eine-welt-ohne-manner":{"productId":"15993787384157","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":10,"title":"Eine Welt ohne Männer"},"babysteps":{"productId":"16029411574109","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":19,"title":"babysteps"},"darm-gut-alles-gut":{"productId":"16013236601181","groupAverage":null,"groupTotal":null,"rating":"4.4","raters":32,"title":"Darm gut, alles gut"},"wer-keinen-kennt-kann-keinen-anrufen":{"productId":"15966372725085","groupAverage":null,"groupTotal":null,"rating":"4.4","raters":16,"title":"Wer keinen kennt, kann keinen anrufen"},"meistere-dein-mindset":{"productId":"15977529180509","groupAverage":null,"groupTotal":null,"rating":"4.7","raters":56,"title":"Meistere dein Mindset"},"hor-auf-dein-herz-dein-kopf-ist-ein-arschloch":{"productId":"16033844068701","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":123,"title":"Hör auf dein Herz, dein Kopf ist ein Arschloch"},"das-kapitel-das-fehlt":{"productId":"16084113031517","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":9,"title":"Das Kapitel das fehlt"},"die-muskel-leiter":{},"dein-neustart-beginnt-jetzt":{"productId":"16125053141341","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":115,"title":"Dein Neustart beginnt jetzt"},"hauptsache-sie-reden-uber-dich":{"productId":"16068055138653","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":4,"title":"Hauptsache, sie reden über dich"},"die-1-fuhrungskraft":{},"365-tage-mentale-starke":{"productId":"15809959854429","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":1,"title":"365 Tage mentale Stärke"},"fuhl-es-schreib-es-lass-es-los":{"productId":"16017008886109","groupAverage":null,"groupTotal":null,"rating":"4.8","raters":6,"title":"Fühl es, schreib es, lass es los"},"vollgas-leben":{"productId":"16125229236573","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":13,"title":"Vollgas leben"},"dein-journal":{},"wenn-aus-dem-trauma-freiheit-wird-vom-verschickungskind-zum-erfolgreichen-unter
2428nehmer":{},"the-comeback-code":{},"die-neue-zeitspur":{},"ich-geh-mal-meine-gefuhle-fuhlen-die-kartenbox":{"productId":"16017028448605","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":7,"title":"Ich geh mal meine Gefühle fühlen â Die Kartenbox"},"auf-dem-weg-zu-deinem-nordstern":{"productId":"16121573507421","groupAverage":null,"groupTotal":null,"rating":"4.2","raters":16,"title":"Auf dem Weg zu deinem Nordstern"},"herz-uber-kopf":{},"du-in-der-hauptrolle-ein-leben-nach-deinen-eigenen-regeln-kopie-1":{"productId":"15268045029725","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":1,"title":"Eros"},"meistere-dein-mindset-1":{},"konigin-kniebeuge":{},"schreibs-dir-von-der-seele-wie-du-loslasst-was-dich-klein-macht":{"productId":"15853039485277","title":"Schreib's dir von der Seele: Wie du loslässt, was dich klein macht","rating":4.8,"raters":6},"rich-buddha":{"productId":"16212369867101","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":16,"title":"Rich Buddha"},"lebe-ehrlich-werde-frei":{},"was-wenn-heute-dein-letzter-tag-ware":{},"dein-neustart-beginnt-jetzt-1":{},"dein-neustart-beginnt-jetzt-2":{},"meistere-dein-mindset-2":{},"blutwerte-kompass":{"productId":"16289194246493","groupAverage":null,"groupTotal":null,"rating":"4.5","raters":20,"title":"Blutwerte-Kompass"},"exklusiv-signierte-ausgabe-von-alles-was-wirklich-zahlt-wie-du-der-star-im-drehbuch-deines-lebens-wirst":{},"exklusiv-signierte-ausgabe-von-die-vereinigung":{},"die-vereinigung":{},"hoffnung-schmeckt-nach-apfelkuchen":{},"die-energie-in-allem":{"productId":"16349538386269","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":7,"title":"Die Energie in Allem"},"was-dir-dein-leben-sagen-will":{},"my-miracle-mindset":{},"psychokybernetik-365":{},"wehe-du-gibst-auf-die-kartenbox-kopie":{},"jeden-tag-weniger-sorgen-kartenbox":{},"humans-are-happy":{"productId":"16409069191517","groupAverage":null,"groupTotal":null,"rating":"5.0","raters":11,"title":"Humans are happy"},"schneller-denken-mehr-fuhlen-mehr-bewirken":{},"nicht-zu-brechen":{},"cholesterinsenker-nein-danke":{},"die-wurzeln-deines-traumas":{},"slay-lehdy":{},"welt-macht-geschichte":{},"wie-viel-ist-dein-name-wert":{},"arthurs-grosse-reise":{}}; 2429 2430</script>
2430 2431<!-- END app snippet --> 2432<link 2433 rel="preload" 2434 href="https://cdn.shopify.com/extensions/01a0e773-3220-7dd3-a92b-5e6c751008fe/appio-amazon-reviews-707/assets/appio-reviews.min.css" 2435 as="style" 2436 onload="this.onload=null;this.rel='stylesheet'" 2437> 2438<noscript><link href="//cdn.shopify.com/extensions/01a0e773-3220-7dd3-a92b-5e6c751008fe/appio-amazon-reviews-707/assets/appio-reviews.min.css" rel="stylesheet" type="text/css" media="all" /></noscript>
2439<script src="https://cdn.shopify.com/extensions/01a0e773-3220-7dd3-a92b-5e6c751008fe/appio-amazon-reviews-707/assets/appio-reviews.min.js" defer></script>
2439 2440 2441 2442 2443</div><div id="shopify-block-ANklXVVloa01vUFBuM__2956622847032801399" class="shopify-block shopify-app-block"> 2444</div><div id="shopify-block-AYWlrTlpQRGRQaXlOZ__5280235153711299465" class="shopify-block shopify-app-block">
2444<script> 2445 window.__widerrufLocale = "de"; 2446 2447 2448 window.__widerrufSettings = JSON.parse("{\"buttonMode\":\"section\",\"menuItemNames\":[\"Vertrag widerrufen\"],\"euOnly\":false,\"backgroundColor\":\"#ffffff\",\"textColor\":\"#5c5c5c\",\"borderRadius\":\"4px\",\"displayMode\":\"page\",\"panelPosition\":\"right\",\"floatingButtonText\":\"Vertrag widerrufen\",\"floatingButtonPosition\":\"bottom-right\",\"panelTitle\":\"Widerruf\",\"fontWeight\":\"400\",\"buttonSize\":\"\",\"marginTop\":0,\"marginBottom\":0,\"i18n\":{}}"); 2449 2450</script>
2450 2451
2452<script> 2453 (function () { 2454 var src = "https:\/\/cdn.shopify.com\/extensions\/01a0eecd-e3cf-72d9-81f3-f3f881b5b528\/checkout-regeln-grosse-warenkoerbe-2026-09-29\/assets\/widerruf-button.js"; 2455 function ensure() { 2456 if (window.__widerrufButtonLoaded) return; 2457 var s = document.createElement("script"); 2458 s.src = src; 2459 s.defer = true; 2460 document.head.appendChild(s); 2461 } 2462 if (document.readyState === "complete") { 2463 ensure(); 2464 } else { 2465 window.addEventListener("load", ensure); 2466 } 2467 })(); 2468</script>
2468 2469 2470 2471</div>
2471<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
2471 2472</body> 2473</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.