1 2 3 4 <!doctype html> 5 <html class="no-js" lang="en"> 6 <head> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <link rel="icon" type="image/x-icon" href="https://soulkeepercult.com/assets/icon/nixtoto-icon-toko.png"> 12 <!-- Title and description --> 13 <title>NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</title> 14 <meta name="description" content="Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."> 15 <meta name="keywords" content="nixtoto" /> 16 <meta name="robots" content="index,follow, nosnippet"> 17 <link rel="canonical" href="https://soulkeepercult.com/"> 18 <link rel="amphtml" href="https://toko.soulkeepercult.com/"/> 19 <link rel="alternate" hreflang="id-id" href="https://toko.soulkeepercult.com/"/> 20 <link rel="alternate" href="https://soulkeepercult.com/"/> 21 <link rel="alternate" hreflang="id" href="https://toko.soulkeepercult.com/"/> 22 <link rel="alternate" hreflang="en" href="https://soulkeepercult.com/"/> 23 24 <!-- /snippets/social-meta-tags.liquid --> 25 <meta property="og:type" content="NIXTOTO"> 26 <meta property="og:title" content="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"> 27 <meta property="og:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 28 <meta property="og:image:secure_url" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 29 <meta property="og:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 30 <meta property="og:image:secure_url" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 31 <meta property="og:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 32 <meta property="og:image:secure_url" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 33 <meta property="og:description" content="Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."> 34 <meta property="og:price:amount" content="10,000-,"> 35 <meta property="og:price:currency" content="IDR"> 36 <meta property="og:url" content="https://soulkeepercult.com/"> 37 <meta property="og:site_name" content="NIXTOTO"> 38 <meta name="twitter:site" content="@NIXTOTO"> 39 <meta name="twitter:card" content="summary"> 40 <meta name="twitter:title" content="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"> 41 <meta name="twitter:description" content="Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."> 42 <meta name="twitter:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 43 <meta name="twitter:image:width" content="600"> 44 <meta name="twitter:image:height" content="600"> 45 <link rel="shortcut icon" href="https://soulkeepercult.com/assets/nixtoto-icon-toko.png" type="image/png"> 46 <meta name="theme-color" content="#ffffff"> 47 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 48 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 49 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
49<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
49 50
50<script 51 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 52 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 53 crossorigin="anonymous" 54 referrerpolicy="no-referrer" 55 defer 56 ></script>
56 57
57<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
57 58
58<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
58<!-- Facebook Pixel Code --> 59
59<script>
vendor: 471 bytes, lines 59-68
59 60 !function(f,b,e,v,n,t,s) 61 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 62 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 63 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 64 n.queue=[];t=b.createElement(e);t.async=!0; 65 t.src=v;s=b.getElementsByTagName(e)[0]; 66 s.parentNode.insertBefore(t,s)}(window, document,'script', 67 'https://connect.facebook.net/en_US/fbevents.js'); 68 fbq('init', '
68165971065669324
vendor: 44 bytes, lines 68-70
68'); 69 fbq('track', 'PageView'); 70
70</script>
70 71 <noscript 72 ><img 73 height="1" 74 width="1" 75 style="display:none" 76 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 77 ></noscript> 78 <!-- End Facebook Pixel Code --> 79 80 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 81 <!-- 82 Global site tag (gtag.js) - Google Analytics --
vendor: 76 bytes, lines 82-83
82 83 <script async src="https://www.googletagmanager.com/gtag/js?id=
83G-X26HYP4083
vendor: 24 bytes, lines 83-84
83"></script> 84
84<script> 85
vendor: 174 bytes, lines 85-89
85window.dataLayer = window.dataLayer || []; 86 function gtag(){dataLayer.push(arguments);} 87 gtag('js', new Date()); 88 89 gtag('config', '
89G-X26HYP4083
vendor: 16 bytes, lines 89-90
89'); 90
90</script>
90 91 Global site tag (gtag.js) - Google Analytics 92 --> 93 94 <div class="button-login-daftar"> 95 <a class="login" href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" style="color: rgb(0, 0, 0);"> 96 LOGIN 97 </a> 98 <a class="register" href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" style="color: rgb(0, 0, 0);"> 99 DAFTAR 100 </a> 101 </div> 102 103
103<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
103 104 105 <!-- Bing UET --> 106
106<script> 107 (function(w,d,t,r,u) 108 { 109 var f,n,i; 110 w[u]=w[u]||[],f=function() 111 { 112 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 113 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 114 }, 115 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 116 { 117 var s=this.readyState; 118 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 119 }, 120 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 121 }) 122 (window,document,"script","//bat.bing.com/bat.js","uetq"); 123 </script>
123 124
124<script> 125 window.uetq = window.uetq || []; 126 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 127 </script>
127 128 <!-- End Bing UET --> 129 130 <!-- Microsoft Clarity --> 131
131<script type="text/javascript"> 132 (function(c,l,a,r,i,t,y){ 133 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 134 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 135 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 136 })(window, document, "clarity", "script", "h7rbxqry9k"); 137 </script>
137 138 <!-- End Microsoft Clarity --> 139 140 141 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 142 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 143 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 144
144<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
144 145
145<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
145 146
146<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
146 147
147<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
147 148 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 149 <link rel="alternate" type="application/json+oembed" href="https://soulkeepercult.com/.oembed"> 150
150<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
150 151
151<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
151 152
152<script>var Shopify = Shopify || {}; 153 Shopify.shop = "outerbloom1.myshopify.com"; 154 Shopify.locale = "en"; 155 Shopify.currency = {"active":"IDR","rate":"1.0"}; 156 Shopify.country = "ID"; 157 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 158 Shopify.theme.handle = "null"; 159 Shopify.theme.style = {"id":null,"handle":null}; 160 Shopify.cdnHost = "outerbloom.com/cdn"; 161 Shopify.routes = Shopify.routes || {}; 162 Shopify.routes.root = "/";</script>
162 163
163<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
163 164
164<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>
164 165
165<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
165 166
166<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 167 "></script>
167 168
168<script>(function() { 169 var isLoaded = false; 170 function asyncLoad() { 171 if (isLoaded) return; 172 isLoaded = true; 173 var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"]; 174 for (var i = 0; i < urls.length; i++) { 175 var s = document.createElement('script'); 176 s.type = 'text/javascript'; 177 s.async = true; 178 s.src = urls[i]; 179 var x = document.getElementsByTagName('script')[0]; 180 x.parentNode.insertBefore(s, x); 181 } 182 }; 183 if(window.attachEvent) { 184 window.attachEvent('onload', asyncLoad); 185 } else { 186 window.addEventListener('load', asyncLoad, false); 187 } 188 })();</script>
188 189
189<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
189 190
190<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
190 191
191<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.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
191 192
192<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
192 193
193<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://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 194 </script>
194 195
195<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 196 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); 197 </script>
197 198
198<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})}})); 199 </script>
199 200 201
201<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
201 202 <!-- /snippets/oldIE-js.liquid --> 203 204 205 <!--[if lt IE 9]> 206
206<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
206 207
207<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
207 208 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 209 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 210
210<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
210 211 <![endif]--> 212 213 214 215 216 217 <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all"> 218 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 219
219<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: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};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>
219 220
220<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":125500.0,"currencyCode":"IDR"},"product":{"title":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","url":"\/products\/blossom-shine","type":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":125500.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
220<script> 221 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 222 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 223 window.ShopifyAnalytics.meta.currency = 'IDR'; 224 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.","variants":[{"id":44083045826775,"price":1000000 225 ,"name":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 226 for (var attr in meta) { 227 window.ShopifyAnalytics.meta[attr] = meta[attr]; 228 } 229 </script>
229 230
230<script class="analytics"> 231 (function () { 232 var customDocumentWrite = function(content) { 233 var jquery = null; 234 235 if (window.jQuery) { 236 jquery = window.jQuery; 237 } else if (window.Checkout && window.Checkout.$) { 238 jquery = window.Checkout.$; 239 } 240 241 if (jquery) { 242 jquery('body').append(content); 243 } 244 }; 245 246 var hasLoggedConversion = function(token) { 247 if (token) { 248 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 249 } 250 return false; 251 } 252 253 var setCookieIfConversion = function(token) { 254 if (token) { 255 var twoMonthsFromNow = new Date(Date.now()); 256 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 257 258 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 259 } 260 } 261 262 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 263 if (trekkie.integrations) { 264 return; 265 } 266 trekkie.methods = [ 267 'identify', 268 'page', 269 'ready', 270 'track', 271 'trackForm', 272 'trackLink' 273 ]; 274 trekkie.factory = function(method) { 275 return function() { 276 var args = Array.prototype.slice.call(arguments); 277 args.unshift(method); 278 trekkie.push(args); 279 return trekkie; 280 }; 281 }; 282 for (var i = 0; i < trekkie.methods.length; i++) { 283 var key = trekkie.methods[i]; 284 trekkie[key] = trekkie.factory(key); 285 } 286 trekkie.load = function(config) { 287 trekkie.config = config || {}; 288 trekkie.config.initialDocumentCookie = document.cookie; 289 var first = document.getElementsByTagName('script')[0]; 290 var script = document.createElement('script'); 291 script.type = 'text/javascript'; 292 script.onerror = function(e) { 293 var scriptFallback = document.createElement('script'); 294 scriptFallback.type = 'text/javascript'; 295 scriptFallback.onerror = function(error) { 296 var Monorail = { 297 produce: function produce(monorailDomain, schemaId, payload) { 298 var currentMs = new Date().getTime(); 299 var event = { 300 schema_id: schemaId, 301 payload: payload, 302 metadata: { 303 event_created_at_ms: currentMs, 304 event_sent_at_ms: currentMs 305 } 306 }; 307 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 308 }, 309 sendRequest: function sendRequest(endpointUrl, payload) { 310 // Try the sendBeacon API 311 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 312 var blobData = new window.Blob([payload], { 313 type: 'text/plain' 314 }); 315 316 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 317 return true; 318 } // sendBeacon was not successful 319 320 } // XHR beacon 321 322 var xhr = new XMLHttpRequest(); 323 324 try { 325 xhr.open('POST', endpointUrl); 326 xhr.setRequestHeader('Content-Type', 'text/plain'); 327 xhr.send(payload); 328 } catch (e) { 329 console.log(e); 330 } 331 332 return false; 333 }, 334 isIos12: function isIos12() { 335 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 336 } 337 }; 338 Monorail.produce('monorail-edge.shopifysvc.com', 339 'trekkie_storefront_load_errors/1.1', 340 {shop_id: 15896833, 341 theme_id: 153139282135, 342 app_name: "storefront", 343 context_url: window.location.href, 344 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 345 346 }; 347 scriptFallback.async = true; 348 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 349 first.parentNode.insertBefore(scriptFallback, first); 350 }; 351 script.async = true; 352 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 353 first.parentNode.insertBefore(script, first); 354 }; 355 trekkie.load( 356 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 357 ); 358 359 var loaded = false; 360 trekkie.ready(function() { 361 if (loaded) return; 362 loaded = true; 363 364 window.ShopifyAnalytics.lib = window.trekkie; 365 366 var originalDocumentWrite = document.write; 367 document.write = customDocumentWrite; 368 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 369 document.write = originalDocumentWrite; 370 371 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 372 373 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 374 var token = match? match[1]: undefined; 375 if (!hasLoggedConversion(token)) {
376 setCookieIfConversion(token); 377 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","price":"125500.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 378 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","price":"125500.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 379 } 380 }); 381 382 383 var eventsListenerScript = document.createElement('script'); 384 eventsListenerScript.async = true; 385 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 386 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 387 388 })();</script>
388 389
389<script> 390 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 391 window.ga = function ga() { 392 (window.ga.q = window.ga.q || []).push(arguments); 393 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 394 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 395 } 396 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 397 }; 398 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 399 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 400 } 401 } 402 </script>
402 403
403<script 404 defer 405 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 406 data-application="storefront-renderer" 407 data-shop-id="15896833" 408 data-render-region="gcp-asia-southeast1" 409 data-page-type="product" 410 data-theme-instance-id="153139282135" 411 data-theme-name="" 412 data-theme-version="" 413 data-monorail-region="shop_domain" 414 data-resource-timing-sampling-rate="10" 415 data-shs="true" 416 data-shs-beacon="true" 417 data-shs-export-with-fetch="true" 418 data-shs-logs-sample-rate="1" 419 ></script>
419 420
421<script type="application/ld+json"> 422{ 423 "@context": "https://schema.org", 424 "@type": "Product", 425 "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel", 426 "image": "assets/logo/logonix-anim.gif", 427 "description": "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.", 428 "brand": { 429 "@type": "Brand", 430 "name": "NIXTOTO" 431 }, 432 "sku": "NIXTOTO-APPAREL-SOULKEEPER-CULT", 433 "mpn": "nixtoto-merchandise-resmi-soulkeeper", 434 "url": "https://soulkeepercult.com/", 435 "offers": { 436 "@type": "Offer", 437 "url": "https://soulkeepercult.com/", 438 "priceCurrency": "USD", 439 "price": "11", 440 "priceValidUntil": "2026-10-10", 441 "itemCondition": "https://schema.org/NewCondition", 442 "availability": "https://schema.org/InStock", 443 "seller": { 444 "@type": "Organization", 445 "name": "NIXTOTO" 446 } 447 }, 448 "aggregateRating": { 449 "@type": "AggregateRating", 450 "ratingValue": "5.0", 451 "reviewCount": 89426 452 }, 453 "review": [ 454 { 455 "@type": "Review", 456 "reviewRating": { 457 "@type": "Rating", 458 "ratingValue": "5", 459 "bestRating": "5" 460 }, 461 "author": { 462 "@type": "Person", 463 "name": "Dimas Aditya" 464 }, 465 "reviewBody": "NIXTOTO enak dipakai buat akses login harian pantau rilisan fisik terbaru. Halamannya ringan di HP, menu login cepat ditemukan, dan info katalog Soulkeeper tersusun sangat rapi." 466 }, 467 { 468 "@type": "Review", 469 "reviewRating": { 470 "@type": "Rating", 471 "ratingValue": "4.8", 472 "bestRating": "5" 473 }, 474 "author": { 475 "@type": "Person", 476 "name": "Kevin Pratama" 477 }, 478 "reviewBody": "Yang aku suka dari web NIXTOTO itu aksesnya simpel dan nggak ribet. Mau cek stok apparel terbaru atau masuk ke akun member terasa sangat praktis lewat mobile." 479 }, 480 { 481 "@type": "Review", 482 "reviewRating": { 483 "@type": "Rating", 484 "ratingValue": "4.9", 485 "bestRating": "5" 486 }, 487 "author": { 488 "@type": "Person", 489 "name": "Reza Mahendra" 490 }, 491 "reviewBody": "NIXTOTO andalan banget buat yang cari link alternatif pembelian merchandise resmi dengan tampilan bersih. Navigasinya mudah, akses cepat untuk checkout, dan transaksinya aman." 492 } 493 ] 494} 495</script>
495 496
497<script type="application/ld+json"> 498{ 499 "@context": "https://schema.org", 500 "@type": "BreadcrumbList", 501 "itemListElement": [ 502 { 503 "@type": "ListItem", 504 "position": 1, 505 "name": "NIXTOTO", 506 "item": "https://soulkeepercult.com/" 507 }, 508 { 509 "@type": "ListItem", 510 "position": 2, 511 "name": "AKUN TOTO", 512 "item": "https://soulkeepercult.com/" 513 }, 514 { 515 "@type": "ListItem", 516 "position": 3, 517 "name": "NIXTOTO LOGIN", 518 "item": "https://soulkeepercult.com/" 519 }, 520 { 521 "@type": "ListItem", 522 "position": 4, 523 "name": "NIXTOTO DAFTAR", 524 "item": "https://soulkeepercult.com/" 525 }, 526 { 527 "@type": "ListItem", 528 "position": 5, 529 "name": "SITUS NIXTOTO", 530 "item": "https://soulkeepercult.com/" 531 }, 532 { 533 "@type": "ListItem", 534 "position": 6, 535 "name": "NIXTOTO TERPERCAYA", 536 "item": "https://soulkeepercult.com/" 537 }, 538 { 539 "@type": "ListItem", 540 "position": 7, 541 "name": "NIXTOTO ALTERNATIF", 542 "item": "https://soulkeepercult.com/" 543 }, 544 { 545 "@type": "ListItem", 546 "position": 8, 547 "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel", 548 "item": "https://soulkeepercult.com/" 549 } 550 ] 551} 552</script>
552 553
553<script type="application/ld+json"> 554 { 555 "@context": "https://schema.org", 556 "@type": "Organization", 557 "name": "NIXTOTO", 558 "url": "https://soulkeepercult.com/", 559 "logo": "assets/logo/logonix-anim.gif", 560 "sameAs": ["https://www.facebook.com/NIXTOTO", "https://twitter.com/NIXTOTO", "https://www.instagram.com/NIXTOTO"], 561 "contactPoint": { 562 "@type": "ContactPoint", 563 "telephone": "+62-852-6520-3085", 564 "contactType": "customer support", 565 "areaServed": "ID", 566 "availableLanguage": ["Indonesian", "English"] 567 } 568 } 569 </script>
vendor: 2 bytes, line 569
569
570<script type="application/ld+json"> 571{ 572 "@context": "https://schema.org", 573 "@type": "FAQPage", 574 "name": "FAQ Tentang NIXTOTO", 575 "mainEntity": [ 576 { 577 "@type": "Question", 578 "name": "Apa itu NIXTOTO?", 579 "acceptedAnswer": { 580 "@type": "Answer", 581 "text": "NIXTOTO adalah platform link login resmi untuk pembelian merchandise dan apparel Soulkeeper Cult. Kami menyediakan akses cepat, tampilan ringan, serta layanan transaksi rilisan fisik terpercaya untuk member setiap hari." 582 } 583 }, 584 { 585 "@type": "Question", 586 "name": "Apa keunggulan NIXTOTO sebagai link login resmi?", 587 "acceptedAnswer": { 588 "@type": "Answer", 589 "text": "NIXTOTO unggul karena menghadirkan proses login yang sangat praktis, akses server stabil, dan menu katalog yang mudah dipahami. Tampilan kami 100% mobile-friendly untuk memudahkan pengalaman belanja lewat smartphone maupun desktop." 590 } 591 }, 592 { 593 "@type": "Question", 594 "name": "Apakah NIXTOTO menyediakan apparel dan rilisan eksklusif?", 595 "acceptedAnswer": { 596 "@type": "Answer", 597 "text": "Ya, NIXTOTO bertindak sebagai distributor resmi yang memberikan informasi katalog terbaru, susunan kategori produk yang rapi, dan sistem pre-order agar member mudah mengikuti update perilisan item setiap hari." 598 } 599 }, 600 { 601 "@type": "Question", 602 "name": "Apakah NIXTOTO bisa diakses lewat HP?", 603 "acceptedAnswer": { 604 "@type": "Answer", 605 "text": "Tentu saja. NIXTOTO dirancang khusus agar sangat ringan dan responsif diakses lewat HP. Member dapat melakukan login, daftar akun, cek status pesanan, serta memilih item koleksi favorit secara praktis kapan saja." 606 } 607 }, 608 { 609 "@type": "Question", 610 "name": "Kenapa banyak kolektor memilih daftar di NIXTOTO?", 611 "acceptedAnswer": { 612 "@type": "Answer", 613 "text": "Banyak member memilih NIXTOTO karena akses login cepat, jaminan barang 100% original, update stok terbaru, navigasi yang sederhana, dan sistem transaksi yang aman serta nyaman digunakan untuk akses harian." 614 } 615 } 616 ] 617} 618</script>
618 619
620<script type="application/ld+json"> 621{ 622 "@context": "https://schema.org", 623 "@type": "HowTo", 624 "name": "Cara Login dan Mengakses NIXTOTO", 625 "description": "Panduan singkat untuk mengakses NIXTOTO sebagai platform resmi pemesanan apparel dan merchandise Soulkeeper Cult dengan tampilan mobile-friendly yang aman terpercaya.", 626 "image": "assets/logo/logonix-anim.gif", 627 "totalTime": "PT5M", 628 "estimatedCost": { 629 "@type": "MonetaryAmount", 630 "currency": "IDR", 631 "value": "10000" 632 }, 633 "supply": [ 634 { 635 "@type": "HowToSupply", 636 "name": "Akun NIXTOTO aktif" 637 }, 638 { 639 "@type": "HowToSupply", 640 "name": "Perangkat mobile atau desktop" 641 }, 642 { 643 "@type": "HowToSupply", 644 "name": "Koneksi internet stabil" 645 } 646 ], 647 "tool": [ 648 { 649 "@type": "HowToTool", 650 "name": "Browser atau aplikasi akses internet" 651 } 652 ], 653 "step": [ 654 { 655 "@type": "HowToStep", 656 "name": "Buka halaman NIXTOTO", 657 "text": "Akses halaman utama NIXTOTO melalui browser dari perangkat mobile, tablet, atau desktop dengan koneksi internet yang stabil untuk mulai menjelajah.", 658 "url": "https://soulkeepercult.com/" 659 }, 660 { 661 "@type": "HowToStep", 662 "name": "Pilih menu login", 663 "text": "Klik menu login yang tersedia di halaman utama NIXTOTO untuk masuk ke akun member yang sudah terdaftar." 664 }, 665 { 666 "@type": "HowToStep", 667 "name": "Masukkan data akun", 668 "text": "Isi username dan password akun NIXTOTO Anda dengan benar agar proses masuk berjalan lancar dan aman." 669 }, 670 { 671 "@type": "HowToStep", 672 "name": "Cek katalog rilisan dan status pesanan", 673 "text": "Setelah berhasil masuk, member dapat langsung melihat informasi katalog apparel terbaru, stok merchandise eksklusif, serta mengecek status transaksi harian." 674 }, 675 { 676 "@type": "HowToStep", 677 "name": "Gunakan akses dengan nyaman", 678 "text": "Nikmati tampilan NIXTOTO yang ringan, mobile-friendly, dan mudah digunakan untuk akses ke rilisan fisik melalui berbagai perangkat." 679 } 680 ] 681} 682</script>
682 683 684 </head><body 685 data-template="product" 686 id="blossom-shine" 687 class="template-product template-product" 688 > 689 <!-- Google Tag Manager (noscript) --> 690 <noscript 691 ><iframe 692 src="https://www.googletagmanager.com/gtag/js?id=G-21Y6RDGNEM" 693 height="0" 694 width="0" 695 style="display:none;visibility:hidden" 696 ></iframe 697 ></noscript> 698 <!-- End Google Tag Manager (noscript) --> 699 700 701 702 <div class="header-wrapper"> 703 704 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 705 706<style> 707 #notification { 708 z-index: 99; 709 width: 100%; 710 transition: top 0.2s ease-in-out; 711 } 712 713 #notification.promo-up { 714 top: -48px !important; 715 } 716 717 .promo-bg { 718 width: 100%; 719 padding: 6px 0; 720 background: linear-gradient(to bottom, #ff000f 0%, #ff6666 50%, #ff0000 100%); 721 box-shadow: 0 0 14px rgba(255, 0, 15, 0.65); 722 } 723 724 .notification__message p { 725 margin: 0; 726 color: #ffffff; 727 font-size: 20px !important; 728 font-weight: bold; 729 text-shadow: 0 0 8px rgba(255, 0, 123, 0.75); 730 } 731 732 .notification__message p a { 733 text-decoration: underline; 734 color: #eaf6ff; 735 } 736 737 @media (max-width: 991px) { 738 .notification__message p { 739 font-size: 14px !important; 740 } 741 } 742</style> 743 744<input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 745 <div id="notification" class="promo-down promo-bg pl-2 pr-2" data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 746 <div class="page-width notification__inner "> 747 748 749 <div class="notification__message text-center"> 750 <p>Belanja koleksi apparel dan merchandise resmi di NIXTOTO terasa lebih eksklusif dengan penawaran spesial setiap hari!</p> 751 </div> 752 </div> 753 </div> 754 755 756 757 758 </div> 759 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 760 761 762 <header style="background: #0e0e0e;"> 763 <div class="container"> 764 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 765 <a href="https://soulkeepercult.com/"> 766 <img src="assets/logo/logonix-anim.gif" alt="LOGO NIXTOTO" style="width: 190px;"></a> 767 <link href="assets/icon/icon-footer.gif" rel="shortcut icon" type="image/x-icon" /> 768 <div id="menu-hamburger" class="d-lg-none"> 769 <svg xmlns="assets/logo/logonix-anim.gif" width="16" height="10" viewBox="0 0 16 10" fill="none"> 770 <path d="M15.5995 0.949976H0.400342C0.320777 0.949976 0.244471 0.918369 0.18821 0.862108C0.131949 0.805847 0.100342 0.729541 0.100342 0.649976C0.100342 0.570411 0.131949 0.494104 0.18821 0.437843C0.244471 0.381582 0.320777 0.349976 0.400342 0.349976H15.5995C15.6791 0.349976 15.7554 0.381582 15.8117 0.437843C15.8679 0.494104 15.8995 0.570411 15.8995 0.649976C15.8995 0.729541 15.8679 0.805847 15.8117 0.862108C15.7554 0.918369 15.6791 0.949976 15.5995 0.949976ZM15.5995 5.29998H0.400342C0.320777 5.29998 0.244471 5.26837 0.18821 5.21211C0.131949 5.15585 0.100342 5.07954 0.100342 4.99998C0.100342 4.92041 0.131949 4.8441 0.18821 4.78784C0.244471 4.73158 0.320777 4.69998 0.400342 4.69998H15.5995C15.6791 4.69998 15.7554 4.73158 15.8117 4.78784C15.8679 4.8441 15.8995 4.92041 15.8995 4.99998C15.8995 5.07954 15.8679 5.15585 15.8117 5.21211C15.7554 5.26837 15.6791 5.29998 15.5995 5.29998ZM15.5995 9.64998H0.400342C0.320777 9.64998 0.244471 9.61837 0.18821 9.56211C0.131949 9.50585 0.100342 9.42954 0.100342 9.34998C0.100342 9.27041 0.131949 9.1941 0.18821 9.13784C0.244471 9.08158 0.320777 9.04998 0.400342 9.04998H15.5995C15.6791 9.04998 15.7554 9.08158 15.8117 9.13784C15.8679 9.1941 15.8995 9.27041 15.8995 9.34998C15.8995 9.42954 15.8679 9.50585 15.8117 9.56211C15.7554 9.61837 15.6791 9.64998 15.5995 9.64998Z" fill="#ffffff"/> 771 </svg> 772 773 <a href="https://soulkeepercult.com/"><svg xmlns="assets/logo/logonix-anim.gif" viewBox="0 0 854 78.29"> 774 <g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M36.85.11a36.6,36.6,0,0,1,14.91,3,34.84,34.84,0,0,1,11.71,8.35,38.29,38.29,0,0,1,7.6,12.48,43.13,43.13,0,0,1,2.69,15.36,41.58,41.58,0,0,1-4.65,19.78,35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,36.85,78,36.65,36.65,0,0,1,17.37,73,34.34,34.34,0,0,1,4.54,59.15,42.43,42.43,0,0,1,0,39.29,42.2,42.2,0,0,1,2.71,24.1a38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,36.85.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11A34.19,34.19,0,0,0,8.3,39.29a30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.84,25.84,0,0,0,11.2,2.44,25.2,25.2,0,0,0,11.2-2.55,30.26,30.26,0,0,0,9.19-6.86,32.46,32.46,0,0,0,6.17-9.74,29.2,29.2,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16A27.77,27.77,0,0,0,51.54,12.45,28.15,28.15,0,0,0,36.85,8.58Z"></path><path d="M97.26,4.76a4.13,4.13,0,0,1,1.19-2.88A3.59,3.59,0,0,1,101.14.61q4.36,0,4.42,4.15L106,42.33a44.26,44.26,0,0,0,2.27,14.5,19.83,19.83,0,0,0,7,9.73q4.78,3.5,12.53,3.49,8.58,0,13.72-3.49A19.72,19.72,0,0,0,148.94,57a38.56,38.56,0,0,0,2.33-13.83L151.16,4.7v0a4,4,0,0,1,1.19-2.93A3.87,3.87,0,0,1,155.25.5a4.06,4.06,0,0,1,3,1.22,3.93,3.93,0,0,1,1.24,2.93v0l.12,38.4q0,16.5-7.83,25.84T128,78.29q-10.18,0-16.88-4.56a27.51,27.51,0,0,1-10-12.67,50.37,50.37,0,0,1-3.43-18.68L97.26,4.81Z"></path><path d="M180.3,4.48a4.2,4.2,0,0,1,1.25-3,4,4,0,0,1,3-1.27H239.9a4.13,4.13,0,0,1,2.93,1.13,3.75,3.75,0,0,1,1.22,2.85,4.31,4.31,0,0,1-1.22,3,4,4,0,0,1-3,1.3H216.27V73.59A3.9,3.9,0,0,1,215,76.52a4.16,4.16,0,0,1-3,1.22,3.81,3.81,0,0,1-2.88-1.22A4.11,4.11,0,0,1,208,73.59V8.47H184.45a4.13,4.13,0,0,1-2.93-1.14A3.72,3.72,0,0,1,180.3,4.48Z"></path><path d="M264.73,4.48A4,4,0,0,1,266,1.55,4,4,0,0,1,268.88.33l51.84.06h.06a4,4,0,0,1,2.93,1.21,4,4,0,0,1,1.22,2.94,4,4,0,0,1-1.22,2.93,4,4,0,0,1-2.93,1.22h-.06L273,8.63l.05,26a1.48,1.48,0,0,0,.31,0l.25,0,42.55.28a4,4,0,0,1,3,1.19,4.38,4.38,0,0,1,1.19,3.24A3.58,3.58,0,0,1,319.06,42a4.14,4.14,0,0,1-2.87,1.16h-.06l-42.55-.28h-.44l.05,25.73,47.53,0h.06a4.15,4.15,0,0,1,0,8.3h-.06l-51.68,0a4.17,4.17,0,0,1-4.15-4.15Z"></path><path d="M405.09,74.2A3.73,3.73,0,0,1,403.9,77a3.48,3.48,0,0,1-2.4,1.16,4.15,4.15,0,0,1-2.05-.53c-.63-.35-1.09-.62-1.38-.8a40.76,40.76,0,0,1-8.5-8.13,51.74,51.74,0,0,1-6.11-10,33.41,33.41,0,0,0-4.9-8,14.69,14.69,0,0,0-6.17-4.26A28,28,0,0,0,363.26,45l-6.42,0,.06,28.38v.12a4.13,4.13,0,0,1-7.08,2.9,4.1,4.1,0,0,1-1.22-3l-.17-69.16a3.9,3.9,0,0,1,1.22-2.94A4.22,4.22,0,0,1,352.53.06L367.25,0h1.27A51.16,51.16,0,0,1,385,2.43a23.75,23.75,0,0,1,11.18,7.5q4,5.07,4,13a19.65,19.65,0,0,1-2.33,9.71,22.07,22.07,0,0,1-6.09,7,27,27,0,0,1-8.13,4.2,29.33,29.33,0,0,1,4.93,7.2c2.13,4.09,4.26,7.78,6.36,11.06a32.1,32.1,0,0,0,8.35,8.69A4,4,0,0,1,405.09,74.2ZM368.8,8.3H356.73l.11,29.16a3.59,3.59,0,0,1,.72-.06l11.35-.11q10.17-.1,16.65-3.45T392,22.63a11.53,11.53,0,0,0-3.16-8.55,17.83,17.83,0,0,0-8.44-4.45A47.47,47.47,0,0,0,368.8,8.3Z"></path><path d="M480.67,21.63a18.59,18.59,0,0,1-1.61,8.17,20.81,20.81,0,0,1-4.65,6.11A19.72,19.72,0,0,1,481.19,43a21.32,21.32,0,0,1,2.63,10.85q0,11.4-6.14,17.23T460,76.86l-28.39-.06a4.56,4.56,0,0,1-2.85-.91,3.07,3.07,0,0,1-1.19-2.58l-.11-68.94a4,4,0,0,1,1.22-2.85,4,4,0,0,1,2.77-1.3l19,0A48.24,48.24,0,0,1,466,2.46a23.21,23.21,0,0,1,10.76,7.06Q480.67,14.27,480.67,21.63ZM450.9,8.69l-15.11.05L435.85,33l23-.33c4.16-.08,7.46-.94,9.87-2.58s3.63-4.4,3.63-8.27a10.42,10.42,0,0,0-2.83-7.64A16.41,16.41,0,0,0,461.88,10,42.3,42.3,0,0,0,450.9,8.69Zm9,60.25q7.8,0,11.73-3.34t3.93-11.49q0-7.08-4.09-10.12t-11.51-3H459l-23.18.33,0,27.77Z"></path><path d="M511.64,76.75a4.17,4.17,0,0,1-4.15-4.15l-.17-68v0a4,4,0,0,1,1.22-2.94,4.16,4.16,0,0,1,5.87,0,4,4,0,0,1,1.21,2.94v0l.17,63.86h43.33a4.15,4.15,0,0,1,0,8.3Z"></path><path d="M619.75.11a36.6,36.6,0,0,1,14.91,3,34.7,34.7,0,0,1,11.7,8.35A38.14,38.14,0,0,1,654,23.93a43.12,43.12,0,0,1,2.68,15.36A41.69,41.69,0,0,1,652,59.07a35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,619.75,78,36.63,36.63,0,0,1,600.27,73a34.44,34.44,0,0,1-12.84-13.8,42.54,42.54,0,0,1-4.53-19.86,42.2,42.2,0,0,1,2.71-15.19,38.78,38.78,0,0,1,7.66-12.51A35.23,35.23,0,0,1,619.75.11Zm0,8.47a27.74,27.74,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.62,30.62,0,0,0,2.18,11.53,31.53,31.53,0,0,0,6.09,9.69,29,29,0,0,0,9.07,6.66,25.91,25.91,0,0,0,11.21,2.44A25.2,25.2,0,0,0,631,67.06a30.26,30.26,0,0,0,9.19-6.86,32.66,32.66,0,0,0,6.17-9.74,29.39,29.39,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16,27.64,27.64,0,0,0-25-14.66Z"></path><path d="M715.9.11a36.61,36.61,0,0,1,14.92,3,34.9,34.9,0,0,1,11.7,8.35,38.31,38.31,0,0,1,7.61,12.48,43.34,43.34,0,0,1,2.68,15.36,41.58,41.58,0,0,1-4.65,19.78,35.42,35.42,0,0,1-12.95,13.86A36.21,36.21,0,0,1,715.9,78,36.59,36.59,0,0,1,696.43,73a34.3,34.3,0,0,1-12.84-13.8,42.43,42.43,0,0,1-4.54-19.86,42.42,42.42,0,0,1,2.71-15.19,38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,715.9.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.87,25.87,0,0,0,11.2,2.44,25.24,25.24,0,0,0,11.21-2.55,30.34,30.34,0,0,0,9.18-6.86,32.27,32.27,0,0,0,6.17-9.74,29.21,29.21,0,0,0,2.22-11.17,32.94,32.94,0,0,0-3.79-16,27.87,27.87,0,0,0-10.3-10.79A28.15,28.15,0,0,0,715.9,8.58Z"></path><path d="M776.31,4.32a4.15,4.15,0,0,1,1.17-2.85,3.86,3.86,0,0,1,5.14-.58,5.18,5.18,0,0,1,1.61,1.66L815.1,53.06,846.31,2.21a3.92,3.92,0,0,1,3.54-2,4,4,0,0,1,2.93,1.22A4,4,0,0,1,854,4.37V73.7a4.15,4.15,0,0,1-8.3,0V19.09l-27.06,44.1a4.14,4.14,0,0,1-7.08,0l-26.95-44V73.48a4.15,4.15,0,0,1-8.3,0Z"></path></g></g> 775 </svg> 776 </a> 777 </div> 778 779 <div class="header-icon-right header-icons col-3"> 780 <div class="icon icon-account-header d-none d-lg-block"> 781 <a href="https://soulkeepercult.com/"> 782 <svg xmlns="assets/logo/logonix-anim.gif" width="20" height="21" viewBox="0 0 20 21" fill="none"> 783 <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/> 784 <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/> 785 </svg> 786
787 </a> 788 </div> 789 <div class="icon icon-wishlist-header"> 790 <a href="https://soulkeepercult.com/"> 791 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 792 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
79211233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 793 </svg> 794 795 <span class="wishlist-count d-none">0</span> 796 </a> 797 </div> 798 <div class="icon icon-cart-header"> 799 <a href="https://soulkeepercult.com/"> 800 <svg xmlns="assets/logo/logonix-anim.gif" width="22" height="21" viewBox="0 0 22 21" fill="none"> 801 <path d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" stroke="#ffffff" stroke-linecap="round"/> 802 <path d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" stroke="#ffffff"/> 803 </svg> 804 805 </a> 806 </div> 807 </div> 808 </div> 809 </div> 810 </header> 811 812 <nav class="nav-header" style="background: linear-gradient(to bottom, #ff0000 0%, #ff6681 50%, #ff0000 100%);"> 813 <div class="nav-account-mobile row m-0 d-lg-none"> 814 <div class="col-6 welcome-cust p-0"> 815 816 <h1 class="logo"> 817 <a href="https://soulkeepercult.com/"> 818 <img src="https://soulkeepercult.com/assets/logo/logonix-anim.gif" alt="NIXTOTO" style="max-height:60px;"> 819 </a> 820 </h1> 821 822 823 </div> 824 825 <div class="col-6 login-register text-right p-0"> 826 <a href="https://toko.soulkeepercult.com/">Log In</a> | <a href="https://toko.soulkeepercult.com/">Sign Up</a> 827 </div> 828 </div> 829 <ul class="nav-menu container"> 830 <li class="nav-menu-item"> 831 <a href="https://soulkeepercult.com/" title="Beranda NIXTOTO"> 832 <span style="color: #000000;">NIXTOTO</span> 833 </a> 834 </li> 835 836 <li class="nav-menu-item"> 837 <a href="https://soulkeepercult.com/" title="Login Member NIXTOTO"> 838 <span style="color: #000000;">NIXTOTO LOGIN</span> 839 </a> 840 </li> 841 842 <li class="nav-menu-item"> 843 <a href="https://soulkeepercult.com/" title="Daftar Akun NIXTOTO"> 844 <span style="color: #000000;">NIXTOTO DAFTAR</span> 845 </a> 846 </li> 847 848 <li class="nav-menu-item"> 849 <a href="https://soulkeepercult.com/" title="Situs NIXTOTO Resmi"> 850 <span style="color: #000000;">SITUS NIXTOTO</span> 851 </a> 852 </li> 853 854 <li class="nav-menu-item"> 855 <a href="https://soulkeepercult.com/" title="NIXTOTO Terpercaya & Original"> 856 <span style="color: #000000;">NIXTOTO TERPERCAYA</span> 857 </a> 858 </li> 859 860 <li class="nav-menu-item"> 861 <a href="https://soulkeepercult.com/" title="Akses Link Alternatif NIXTOTO"> 862 <span style="color: #000000;">NIXTOTO ALTERNATIF</span> 863 </a> 864 </li> 865</ul> 866 867 <div class="overlay-nav"> 868 <!-- Mobile Close Button in Overlay --> 869 <button id="nav-close" class="nav-close-btn d-lg-none"> 870 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="assets/logo/logonix-anim.gif"> 871 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 872 </svg> 873 </button> 874 </div> 875 876
876<script> 877 if ($(window).width() < 992) { 878 // Level 1 menu accordion (main menu items) 879 $(".nav-menu .nav-menu container > a").click(function(e){ 880 e.preventDefault() 881 const parentLi = $(this).parent() 882 const isCurrentlyOpen = parentLi.hasClass("menu-open") 883 884 // Close all other open menus (accordion behavior) 885 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 886 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 887 888 // Toggle current menu 889 if (isCurrentlyOpen) { 890 parentLi.removeClass("menu-open") 891 $(this).next(".megamenu").slideUp() 892 } else { 893 parentLi.addClass("menu-open") 894 $(this).next(".megamenu").slideDown() 895 } 896 }) 897 898 // Level 2 menu accordion (submenu items with grandchildren) 899 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 900 e.preventDefault() 901 const parentLi = $(this).parent() 902 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 903 const grandchild = $(this).next(".grandchild") 904 905 // Close all other open submenus in the same dropdown (accordion behavior) 906 parentLi.siblings('.has-submenu').removeClass("submenu-open") 907 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 908 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 909 910 // Toggle current submenu 911 if (isCurrentlyOpen) { 912 parentLi.removeClass("submenu-open") 913 grandchild.slideUp() 914 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 915 } else { 916 parentLi.addClass("submenu-open") 917 grandchild.slideDown() 918 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 919 } 920 }) 921 922 $("#menu-hamburger").click(function(e){ 923 e.preventDefault() 924 $("body").toggleClass("nav_open") 925 }) 926 927 // Handle close button click 928 $("#nav-close").click(function(e){ 929 e.preventDefault() 930 $("body").removeClass("nav_open") 931 // Close all open menus when close button is clicked 932 $(".nav-menu .nav-menu container").removeClass("menu-open") 933 $(".nav-menu .megamenu").slideUp() 934 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 935 $(".dropdown-menu .grandchild").slideUp() 936 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 937 }) 938 } 939 940 $(".overlay-nav").click(function(e){ 941 e.preventDefault() 942 $("body").removeClass("nav_open") 943 // Close all open menus when overlay is clicked 944 $(".nav-menu .nav-menu container").removeClass("menu-open") 945 $(".nav-menu .megamenu").slideUp() 946 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 947 $(".dropdown-menu .grandchild").slideUp() 948 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 949 }) 950 </script>
950 951 952 953 </div> 954 955 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 956 #search-trigger { 957 cursor: pointer; 958 } 959 #search-popup { 960 display: none; 961 position: fixed; 962 left: 0; 963 width: 100%; 964 top: 0; 965 height: 100%; 966 justify-content: center; 967 z-index: 9999; 968 background: rgb(196 196 196 / 30%); 969 } 970 #search-input { 971 align-self: center; 972 width: 100%; 973 height: 80px; 974 position: absolute; 975 top: 0; 976 border-bottom: 0.5px solid #A3A3A3; 977 background-color: #fff; 978 } 979 #search-input * { 980 align-self: center; 981 } 982 #search-type { 983 width: 100%; 984 border: none; 985 padding-right: 20px; 986 padding-left: 20px; 987 font-size: 16px; 988 color: #757575; 989 } 990 #search-btn { 991 font-size: 16px; 992 font-weight: 500; 993 } 994 #search-result { 995 min-height: 490px; 996 width: 100%; 997 padding-top: 80px; 998 } 999 #search-result .container { 1000 background-color: #fff; 1001 padding: 20px 40px; 1002 } 1003 body.search-popup-open { 1004 /* .search-popup-open */ 1005 overflow: hidden; 1006 } 1007 .search-popup-open #loc_delivery { 1008 display: none 1009 } 1010 .search-header svg { 1011 display: none; 1012 cursor: pointer; 1013 } 1014 .wrapper-search-popup { 1015 max-height: calc(100vh - 150px); 1016 overflow-y: auto; 1017 overflow-x: hidden; 1018 } 1019 1020 .group-recommend { 1021 padding: 20px 40px; 1022 } 1023 1024 .resultsearch { 1025 display: none; 1026 } 1027 .results { padding: 20px 40px } 1028 .resultsearch label { 1029 font-weight: 600; 1030 padding-bottom: 20px; 1031 display: block; 1032 margin-bottom: 20px; 1033 border-bottom: 1px solid #AAAAAA; 1034 } 1035 1036 ul.result_product { 1037 max-height: 300px; 1038 overflow: auto; 1039 } 1040 1041 .group-promotion ul { 1042 margin: 0; 1043 } 1044 .group-promotion li { 1045 list-style: none; 1046 margin-bottom: 12px; 1047 } 1048 .group-promotion li a { 1049 color: inherit; 1050 } 1051 1052 .group-recent { 1053 position: relative; 1054 padding: 20px 40px; 1055 } 1056 .group-recent ul { 1057 margin: 0; 1058 } 1059 .group-recent li { 1060 list-style: none; 1061 display: inline-block; 1062 margin-right: 60px; 1063 } 1064 .group-recent li a { 1065 color: inherit; 1066 } 1067 1068 .last-search svg { 1069 width: 20px; 1070 vertical-align: middle; 1071 } 1072 ul.last-search a { 1073 vertical-align: middle; 1074 padding: 0 10px; 1075 } 1076 ul.last-search li span { 1077 cursor: pointer; 1078 } 1079 .delete-all-history { 1080 position: absolute; 1081 top: 25px; 1082 right: 40px; 1083 text-decoration: underline; 1084 color: #e11d1d; 1085 cursor: pointer; 1086 font-size: 12px; 1087 } 1088 1089 form.search.search-modal__form { 1090 position: relative; 1091 } 1092 1093 button.search__button svg { 1094 width: 25px; 1095 color: #495057; 1096 fill: #757582; 1097 } 1098 1099 button.search__button.field__button { 1100 position: absolute; 1101 top: 50%; 1102 margin-top: -12px; 1103 } 1104 1105 .close-search { 1106 display: none; 1107 position: absolute; 1108 right: 65px; 1109 top: 10px; 1110 cursor: pointer; 1111 } 1112 1113 .site-overlay { 1114 position: fixed; 1115 top: 0; 1116 width: 100vw; 1117 height: 100vh; 1118 z-index: 1000; 1119 background: #0000005c; 1120 visibility: hidden; 1121 opacity: 0; 1122 pointer-events: none; 1123 transition: all .3s linear; 1124 display: block !important; 1125 } 1126 1127 .search-popup-open .site-overlay { 1128 opacity: 1; 1129 visibility: visible; 1130 pointer-events: all; 1131 z-index: -1; 1132 cursor: pointer; 1133 } 1134 1135 @media (min-width: 991px) { 1136 .group-recent ul { 1137 column-count: 3; 1138 } 1139 .group-promotion li a { 1140 font-size: 12px; 1141 font-weight: 400; 1142 } 1143 .group-recent li a { 1144 font-size: 12px; 1145 font-weight: 400; 1146 } 1147 } 1148 1149 .moreresult { 1150 padding: 10px 40px; 1151 border-top: 1px solid #AAAAAA; 1152 } 1153 .moreresult * { 1154 align-self: center; 1155 } 1156 .moreresult p { 1157 margin: 0; 1158 font-size: 12px !important; 1159 } 1160 .moreresult svg { 1161 width: 13px; 1162 } 1163 1164 @media (max-width: 992px) { 1165 .icon-key-mobile { 1166 height: auto!important; 1167 width: 10px!important; 1168 } 1169 body.grid-view.search-popup-open .products { 1170 -ms-flex: 0 0 100%!important; 1171 flex: 0 0 100%!important; 1172 max-width: 100%!important; 1173 } 1174 button.search__button svg {
1175 width: 20px; 1176 } 1177 #search-result { 1178 padding-left: 0; 1179 padding-right: 0; 1180 } 1181 #search-result { 1182 padding-top: 55px; 1183 } 1184 #search-input { 1185 height: 55px; 1186 } 1187 .group-recommend { 1188 padding: 20px; 1189 } 1190 #search-input .container { 1191 padding: 0 20px; 1192 } 1193 #search-type { 1194 font-size: 14px; 1195 } 1196 #search-btn { 1197 font-size: 12px; 1198 text-decoration: underline; 1199 } 1200 .results { 1201 padding: 20px; 1202 } 1203 .group-recommend h3 { 1204 font-size: 16px; 1205 } 1206 .products .card-body { 1207 padding: 8px 0px 10px; 1208 } 1209 .moreresult { 1210 padding: 10px 20px; 1211 } 1212 } 1213 </style> 1214<style type="text/css"> 1215div.advertisement-placeholder { 1216 text-align: center; 1217 padding-bottom: 20px; 1218 display: flex; 1219 flex-direction: column; 1220 justify-content: center; 1221} 1222 1223div.advertisement-text p { 1224 margin: 0; 1225 font-family: Open Sans; 1226 font-style: normal; 1227 font-weight: normal; 1228 font-size: 10px; 1229 line-height: 20px; 1230 color: #ff0000; 1231} 1232 1233div.advertisement-banner { 1234 margin: 0px auto; 1235} 1236 1237div#div-gpt-ad-billboard-placeholder { 1238 width: 996px; 1239 margin: 0 auto; 1240 background: #eaf6ff; 1241 padding-bottom: unset !important; 1242 min-height: 200px; 1243} 1244 1245div#div-gpt-ad-lb-placeholder { 1246 background: #eaf6ff; 1247 padding-bottom: unset !important; 1248 min-height: 280px; 1249} 1250 1251.faq-section { 1252 max-width: 1200px; 1253 margin: 50px auto; 1254 padding: 40px 20px; 1255 position: relative; 1256 background: rgba(255, 0, 5, 0.18); 1257 backdrop-filter: blur(25px); 1258 border-radius: 20px; 1259} 1260 1261.faq-section::before { 1262 content: ""; 1263 position: absolute; 1264 top: 0; 1265 left: 50%; 1266 transform: translateX(-50%); 1267 width: 80%; 1268 height: 2px; 1269 background: linear-gradient(90deg, transparent, #ff0022, transparent); 1270} 1271 1272.faq-section h2 { 1273 text-align: center; 1274 font-size: 34px; 1275 font-weight: 700; 1276 margin-bottom: 50px; 1277 background: linear-gradient(135deg, #ff000f, #ffeaea, #ff0036); 1278 -webkit-background-clip: text; 1279 -webkit-text-fill-color: transparent; 1280 background-clip: text; 1281 font-family: "Poppins", sans-serif; 1282 letter-spacing: 1px; 1283} 1284 1285.faq-container { 1286 display: flex; 1287 flex-direction: column; 1288 gap: 25px; 1289} 1290 1291.faq-item { 1292 background: linear-gradient(145deg, #4d0002, #ae0000); 1293 border: 2px solid #ff0022; 1294 border-radius: 20px; 1295 overflow: hidden; 1296 transition: all .4s ease; 1297 box-shadow: 0 5px 20px rgba(255, 0, 34, 0.25); 1298} 1299 1300.faq-item:hover { 1301 border-color: #ff7f86; 1302 transform: translateX(10px); 1303 box-shadow: 0 12px 35px rgba(255, 0, 44, 0.48); 1304} 1305 1306.faq-question { 1307 width: 100%; 1308 padding: 28px 35px; 1309 background: transparent; 1310 color: #ffffff; 1311 font-size: 18px; 1312 font-weight: 600; 1313 text-align: left; 1314 border: none; 1315 cursor: pointer; 1316 display: flex; 1317 justify-content: space-between; 1318 align-items: center; 1319 font-family: "Poppins", sans-serif; 1320 transition: all .3s ease; 1321} 1322 1323.faq-question:hover { 1324 color: #ff0022; 1325} 1326 1327.faq-question::after { 1328 content: '+'; 1329 font-size: 32px; 1330 font-weight: 300; 1331 transition: all .4s ease; 1332 color: #ff0019; 1333 width: 40px; 1334 height: 40px; 1335 display: flex;
1336 align-items: center; 1337 justify-content: center; 1338 border: 2px solid #ff0036; 1339 border-radius: 50%; 1340 background: rgba(255, 0, 44, 0.12); 1341} 1342 1343.faq-item.active .faq-question::after { 1344 transform: rotate(135deg); 1345 background: linear-gradient(to bottom, #ff0000 0%, #ffeaea 50%, #ff004a 100%); 1346 color: #4d0000; 1347 border-color: transparent; 1348} 1349 1350.faq-answer { 1351 max-height: 0; 1352 overflow: hidden; 1353 transition: max-height .5s ease, padding .5s ease; 1354 background: linear-gradient(180deg, rgba(255, 0, 25, 0.1), transparent); 1355 padding: 0 35px; 1356} 1357 1358.faq-item.active .faq-answer { 1359 max-height: 800px; 1360 padding: 30px 35px; 1361 border-top: 1px solid rgba(255, 0, 25, 0.38); 1362} 1363 1364.faq-answer p { 1365 color: #eaf6ff; 1366 font-size: 16px; 1367 line-height: 2; 1368 margin: 0; 1369 font-family: "Poppins", sans-serif; 1370} 1371 1372@media (max-width:768px) { 1373 .faq-section { 1374 padding: 30px 15px; 1375 } 1376 1377 .faq-section h2 { 1378 font-size: 26px; 1379 } 1380 1381 .faq-question { 1382 font-size: 16px; 1383 padding: 22px 25px; 1384 } 1385 1386 .faq-question::after { 1387 width: 35px; 1388 height: 35px; 1389 font-size: 28px; 1390 } 1391 1392 .faq-answer { 1393 padding: 0 25px; 1394 } 1395 1396 .faq-item.active .faq-answer { 1397 padding: 25px; 1398 } 1399 1400 .faq-item:hover { 1401 transform: translateX(5px); 1402 } 1403} 1404</style> 1405 <div id="search-popup"> 1406 <div id="search-input" class="row"> 1407 <div class="container w-100"> 1408 <form 1409 action="/search" 1410 method="get" 1411 role="search" 1412 class="search search-modal__form d-flex justify-content-between" 1413 > 1414 <svg xmlns="assets/logo/logonix-anim.gif" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1415 <path d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" fill="#ffffff"/> 1416 </svg> 1417 1418 <input type="hidden" name="type" value="product"> 1419 <input 1420 type="text" 1421 id="search-type" 1422 name="q" 1423 class="search-popup" 1424 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1425 > 1426 <div class="close-search"><svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1427 <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292
142712.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/> 1428 </svg> 1429 </div> 1430 <button id="search-btn">Search</button> 1431 </form> 1432 </div> 1433 </div> 1434 <div id="search-result" class="container m-auto"> 1435 <div class="container p-0"> 1436 <div class="group-promotion"> 1437 <div class="resultsearch"> 1438 <div class="row results"> 1439 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1440 <label>SUGGESTIONS</label> 1441 <ul class="result_collection"></ul> 1442 </div> 1443 <div class="col-12 col-lg-6"> 1444 <label>PRODUCTS</label> 1445 <ul class="result_product"></ul> 1446 </div> 1447 </div> 1448 <div class="d-flex justify-content-between moreresult m-0"> 1449 <p>Search for<span></span></p> 1450 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32"> 1451 <title>icon-arrow-right</title> 1452 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path> 1453 </svg> 1454 </div> 1455 </div> 1456 </div> 1457 <div class="group-recent hide"> 1458 <h3>RECENT SEARCH</h3> 1459 <span class="delete-all-history">Hapus riwayat</span> 1460 <ul class="last-search"></ul> 1461 </div> 1462 <div class="group-recommend"> 1463 <h3>YOU MAY ALSO LIKE</h3> 1464 1465 1466 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1467 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1468 1469 1470 <div class="swiper-slide card"> 1471 1472 1473 1474 1475 <div class="products" data-lazy="false"> 1476 <div class="bg-products"> 1477 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1478 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1479 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
147911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1480 </svg> 1481 1482 </div> 1483 <a href="/products/mid-autumn-of-love-mooncake"> 1484 1485 <div class="product-card-img-container p-0 position-relative"> 1486 1487 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1488 </div> 1489 <div class="card-body product-card-info"> 1490 <h5 class="h5 mb-0"> 1491 Mid Autumn of Love Mooncake 1492 </h5> 1493 <div class="product-card-price"> 1494 1495 <div class="product-price-sale"> 1496 <s class="product-card-price-before card-money">Rp 588.000</s> 1497 <span class="product-card-discount small"> 1498 (-40%) 1499 </span> 1500 </div> 1501 1502 1503 1504 <div class="price-discount"> 1505 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1506 </div> 1507 1508 1509 1510 1511 1512 </div> 1513 1514 </div> 1515 </a> 1516 </div> 1517 1518 </div> 1519 1520 </div> 1521 1522 1523 1524 <div class="swiper-slide card"> 1525 1526 1527 1528 1529 <div class="products" data-lazy="false"> 1530 <div class="bg-products"> 1531 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1532 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1533 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
153311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1534 </svg> 1535 1536 </div> 1537 <a href="/products/mid-autumn-of-joy-mooncake"> 1538 1539 <div class="product-card-img-container p-0 position-relative"> 1540 1541 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1542 </div> 1543 <div class="card-body product-card-info"> 1544 <h5 class="h5 mb-0"> 1545 Mid Autumn of Joy Mooncake 1546 </h5> 1547 <div class="product-card-price"> 1548 1549 <div class="product-price-sale"> 1550 <s class="product-card-price-before card-money">Rp 888.000</s> 1551 <span class="product-card-discount small"> 1552 (-33%) 1553 </span> 1554 </div> 1555 1556 1557 1558 <div class="price-discount"> 1559 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1560 </div> 1561 1562 1563 1564 1565 1566 </div> 1567 1568 </div> 1569 </a> 1570 </div> 1571 1572 </div> 1573 1574 </div> 1575 1576 1577 1578 <div class="swiper-slide card"> 1579 1580 1581 1582 1583 <div class="products" data-lazy="false"> 1584 <div class="bg-products"> 1585 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1586 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1587 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
158711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1588 </svg> 1589 1590 </div> 1591 <a href="/products/mid-autumn-of-fortune-mooncake"> 1592 1593 <div class="product-card-img-container p-0 position-relative"> 1594 1595 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1596 </div> 1597 <div class="card-body product-card-info"> 1598 <h5 class="h5 mb-0"> 1599 Mid Autumn of Fortune Mooncake 1600 </h5> 1601 <div class="product-card-price"> 1602 1603 <div class="product-price-sale"> 1604 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1605 <span class="product-card-discount small"> 1606 (-33%) 1607 </span> 1608 </div> 1609 1610 1611 1612 <div class="price-discount"> 1613 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1614 </div> 1615 1616 1617 1618 1619 1620 </div> 1621 1622 </div> 1623 </a> 1624 </div> 1625 1626 </div> 1627 1628 </div> 1629 1630 1631 1632 <div class="swiper-slide card"> 1633 1634 1635 1636 1637 <div class="products" data-lazy="false"> 1638 <div class="bg-products"> 1639 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1640 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1641 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1642 </svg> 1643 1644 </div> 1645 <a href="/products/mid-autumn-festival-mooncake"> 1646 1647 <div class="product-card-img-container p-0 position-relative"> 1648 1649 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1650 </div> 1651 <div class="card-body product-card-info"> 1652 <h5 class="h5 mb-0"> 1653 Mid Autumn Festival Mooncake 1654 </h5> 1655 <div class="product-card-price"> 1656 1657 <div class="product-price-sale"> 1658 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1659 <span class="product-card-discount small"> 1660 (-23%) 1661 </span> 1662 </div> 1663 1664 1665 1666 <div class="price-discount"> 1667 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1668 </div> 1669 1670 1671 1672 1673 1674 </div> 1675 1676 </div> 1677 </a> 1678 </div> 1679 1680 </div> 1681 1682 </div> 1683 1684 1685 1686 <div class="swiper-slide card"> 1687 1688 1689 1690 1691 <div class="products" data-lazy="false"> 1692 <div class="bg-products"> 1693 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1694 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1695 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
169511233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1696 </svg> 1697 1698 </div> 1699 <a href="/products/the-jade-bouquet"> 1700 1701 <div class="product-card-img-container p-0 position-relative"> 1702 1703 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1704 </div> 1705 <div class="card-body product-card-info"> 1706 <h5 class="h5 mb-0"> 1707 The Jade Bouquet 1708 </h5> 1709 <div class="product-card-price"> 1710 1711 <div class="product-price-sale"> 1712 <s class="product-card-price-before card-money">Rp 435.000</s> 1713 <span class="product-card-discount small"> 1714 (-34%) 1715 </span> 1716 </div> 1717 1718 1719 1720 <div class="price-discount"> 1721 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1722 </div> 1723 1724 1725 1726 1727 1728 </div> 1729 1730 </div> 1731 </a> 1732 </div> 1733 1734 </div> 1735 1736 </div> 1737 1738 1739 1740 <div class="swiper-slide card"> 1741 1742 1743 1744 1745 <div class="products" data-lazy="false"> 1746 <div class="bg-products"> 1747 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1748 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1749 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
174911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1750 </svg> 1751 1752 </div> 1753 <a href="/products/the-selena-bouquet"> 1754 1755 <div class="product-card-img-container p-0 position-relative"> 1756 1757 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1758 </div> 1759 <div class="card-body product-card-info"> 1760 <h5 class="h5 mb-0"> 1761 The Selena Bouquet 1762 </h5> 1763 <div class="product-card-price"> 1764 1765 <div class="product-price-sale"> 1766 <s class="product-card-price-before card-money">Rp 335.000</s> 1767 <span class="product-card-discount small"> 1768 (-29%) 1769 </span> 1770 </div> 1771 1772 1773 1774 <div class="price-discount"> 1775 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1776 </div> 1777 1778 1779 1780 1781 1782 </div> 1783 1784 </div> 1785 </a> 1786 </div> 1787 1788 </div> 1789 1790 </div> 1791 1792 1793 1794 <div class="swiper-slide card"> 1795 1796 1797 1798 1799 <div class="products" data-lazy="false"> 1800 <div class="bg-products"> 1801 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1802 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1803 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
180311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1804 </svg> 1805 1806 </div> 1807 <a href="/products/the-viola-bouquet"> 1808 1809 <div class="product-card-img-container p-0 position-relative"> 1810 1811 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200"> 1812 </div> 1813 <div class="card-body product-card-info"> 1814 <h5 class="h5 mb-0"> 1815 The Viola Bouquet 1816 </h5> 1817 <div class="product-card-price"> 1818 1819 <div class="product-price-sale"> 1820 <s class="product-card-price-before card-money">Rp 385.000</s> 1821 <span class="product-card-discount small"> 1822 (-25%) 1823 </span> 1824 </div> 1825 1826 1827 1828 <div class="price-discount"> 1829 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1830 </div> 1831 1832 1833 1834 1835 1836 </div> 1837 1838 </div> 1839 </a> 1840 </div> 1841 1842 </div> 1843 1844 </div> 1845 1846 1847 1848 <div class="swiper-slide card"> 1849 1850 1851 1852 1853 <div class="products" data-lazy="false"> 1854 <div class="bg-products"> 1855 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1856 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1857 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
185711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1858 </svg> 1859 1860 </div> 1861 <a href="/products/the-minerva-bouquet"> 1862 1863 <div class="product-card-img-container p-0 position-relative"> 1864 1865 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1866 </div> 1867 <div class="card-body product-card-info"> 1868 <h5 class="h5 mb-0"> 1869 The Minerva Bouquet 1870 </h5> 1871 <div class="product-card-price"> 1872 1873 <div class="product-price-sale"> 1874 <s class="product-card-price-before card-money">Rp 385.000</s> 1875 <span class="product-card-discount small"> 1876 (-25%) 1877 </span> 1878 </div> 1879 1880 1881 1882 <div class="price-discount"> 1883 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1884 </div> 1885 1886 1887 1888 1889 1890 </div> 1891 1892 </div> 1893 </a> 1894 </div> 1895 1896 </div> 1897 1898 </div> 1899 1900 1901 1902 <div class="swiper-slide card"> 1903 1904 1905 1906 1907 <div class="products" data-lazy="false"> 1908 <div class="bg-products"> 1909 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1910 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1911 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
191111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1912 </svg> 1913 1914 </div> 1915 <a href="/products/congraduations-bouquet"> 1916 1917 <div class="product-card-img-container p-0 position-relative"> 1918 1919 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1920 </div> 1921 <div class="card-body product-card-info"> 1922 <h5 class="h5 mb-0"> 1923 Congraduations Bouquet 1924 </h5> 1925 <div class="product-card-price"> 1926 1927 <div class="product-price-sale"> 1928 <s class="product-card-price-before card-money">Rp 380.000</s> 1929 <span class="product-card-discount small"> 1930 (-25%) 1931 </span> 1932 </div> 1933 1934 1935 1936 <div class="price-discount"> 1937 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1938 </div> 1939 1940 1941 1942 1943 1944 </div> 1945 1946 </div> 1947 </a> 1948 </div> 1949 1950 </div> 1951 1952 </div> 1953 1954 1955 1956 <div class="swiper-slide card"> 1957 1958 1959 1960 1961 <div class="products" data-lazy="false"> 1962 <div class="bg-products"> 1963 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1964 <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1965 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
196511233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1966 </svg> 1967 1968 </div> 1969 <a href="/products/grad-gorgeous-bouquet"> 1970 1971 <div class="product-card-img-container p-0 position-relative"> 1972 1973 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1974 </div> 1975 <div class="card-body product-card-info"> 1976 <h5 class="h5 mb-0"> 1977 Grad & Gorgeous Bouquet 1978 </h5> 1979 <div class="product-card-price"> 1980 1981 <div class="product-price-sale"> 1982 <s class="product-card-price-before card-money">Rp 380.000</s> 1983 <span class="product-card-discount small"> 1984 (-25%) 1985 </span> 1986 </div> 1987 1988 1989 1990 <div class="price-discount"> 1991 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1992 </div> 1993 1994 1995 1996 1997 1998 </div> 1999 2000 </div> 2001 </a> 2002 </div> 2003 2004 </div> 2005 2006 </div> 2007 2008 2009 </div> 2010 </div> 2011 2012 </div> 2013 </div> 2014 </div> 2015 2016 <div class="site-overlay" style="display: none"></div> 2017 </div> 2018
2018<script> 2019 2020 var swiper = new Swiper('.popup-recommend', { 2021 slidesPerView : 4, 2022 spaceBetween: 30, 2023 lazy: true , 2024 speed: 300, 2025 breakpoints: { 2026 // when window width is <= 576px 2027 576: { 2028 slidesPerView: 2, 2029 spaceBetween: 10, 2030 freeMode: true, 2031 resistance : true, 2032 resistanceRatio : 0, 2033 freeModeMomentumRatio : 0.45, 2034 freeModeMomentumVelocityRatio : 1.5 2035 }, 2036 768: { 2037 slidesPerView: 2, 2038 spaceBetween: 10 2039 }, 2040 992: { 2041 slidesPerView: 3, 2042 spaceBetween: 20 2043 } 2044 } 2045 }); 2046 2047 const searchContainer = $("#search-popup") 2048 const searchInput = $(".search-popup") 2049 const result_collection = $('.result_collection') 2050 const result_product = $('.result_product') 2051 const resultsearch = $('.resultsearch') 2052 const resultrecommend = $(".group-recommend") 2053 const moreresult = $(".moreresult") 2054 2055 searchInput.keyup(function(){ 2056 const input = $(this).val() 2057 moreresult.find("p span").text(` ${input}â`) 2058 if(input.length > 2) { 2059 $(".close-search").show() 2060 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 2061 $.ajax({
2062 type: 'GET', 2063 url, 2064 beforeSend: function() { 2065 // setting a timeout 2066 // $(placeholder).addClass('loading'); 2067 }, 2068 success: function(response) { 2069 resultsearch.show() 2070 resultrecommend.hide() 2071 result_collection.html("") 2072 result_product.html("") 2073 const collections = response.resources.results.collections 2074 const products = response.resources.results.products 2075 let collection_length = collections.length 2076 let product_length = products.length 2077 // if(collections.length > 5) { 2078 // collection_length = 5 2079 // } 2080 // if(products.length > 5) { 2081 // product_length = 5 2082 // } 2083 for(let i=0;i<collection_length;i++){ 2084 const title = collections[i].title 2085 const url = collections[i].url 2086 let html_collection 2087 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 2088 html_collection = ` 2089 <li class="item" data-title="${title}"> 2090 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 2091 </li> 2092 ` 2093 } 2094 result_collection.append(html_collection) 2095 } 2096 for(let i=0;i<product_length;i++){ 2097 const title = products[i].title 2098 const url = products[i].url 2099 const image = products[i].featured_image.url 2100 const vendor = products[i].vendor 2101 let html_product 2102 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 2103 html_product = ` 2104 <li class="item" data-vendor="${vendor}"> 2105 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 2106 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 2107 </a> 2108 </li> 2109 ` 2110 } 2111 result_product.append(html_product) 2112 } 2113 }, 2114 error: function(xhr) { // if error occured 2115 alert("Error occured.please try again"); 2116 }, 2117 complete: function(response) { 2118 // $(placeholder).removeClass('loading'); 2119 }, 2120 dataType: 'JSON' 2121 }); 2122 } else { 2123 result_collection.html("") 2124 result_product.html("") 2125 2126 resultsearch.hide() 2127 resultrecommend.show() 2128 } 2129 }) 2130 2131 moreresult.click(function(){ 2132 $("#search-btn").trigger("click"); 2133 }) 2134 2135 $(".close-search").click(function(){ 2136 $(this).hide() 2137 searchInput.val("") 2138 searchInput.focus() 2139 resultsearch.hide() 2140 resultrecommend.show() 2141 }) 2142 2143 function setCookie(name,value,days) { 2144 var expires = ""; 2145 if (days) { 2146 var date = new Date(); 2147 date.setTime(date.getTime() + (days*24*60*60*1000)); 2148 expires = "; expires=" + date.toUTCString(); 2149 } 2150 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 2151 } 2152 function getCookie(name) { 2153 var nameEQ = name + "="; 2154 var ca = document.cookie.split(';'); 2155 for(var i=0;i < ca.length;i++) { 2156 var c = ca[i]; 2157 while (c.charAt(0)==' ') c = c.substring(1,c.length); 2158 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 2159 } 2160 return null; 2161 } 2162 let last_search_name = [] 2163 let last_search_url = [] 2164 $(".group-recent").hide() 2165 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 2166 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 2167 $(".group-recent").show() 2168 last_search_name = getCookie("last_search_name"); 2169 last_search_url = getCookie("last_search_url"); 2170 const arrName = last_search_name.substring(1).split(',').reverse() 2171 const arrUrl = last_search_url.substring(1).split(',').reverse() 2172 console.log(arrName, 'Array Name') 2173 console.log(arrUrl, 'Array Url') 2174 let length = arrName.length 2175 if(arrName.length > 5) { 2176 length = 5 2177 } 2178 for(let n=0;n<length;n++){ 2179 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="assets/logo/logonix-anim.gif"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
2179${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 2180 $(".group-recent ul").append(html2) 2181 } 2182 } 2183 } 2184 console.log(last_search_name, 'Name') 2185 console.log(last_search_url, 'url') 2186 2187 resultsearch.delegate(".item a", "click", function(){ 2188 let name = [last_search_name] 2189 let url = [last_search_url] 2190 name.push($(this).attr('data-title')) 2191 url.push($(this).attr('data-url')) 2192 setCookie("last_search_name",name,7); 2193 setCookie("last_search_url",url,7); 2194 }) 2195 2196 $(".delete-all-history").click(function() { 2197 setCookie("last_search_name",null,0); 2198 setCookie("last_search_url",null,0); 2199 $(".last-search").hide(); 2200 setTimeout(function(){ 2201 location.reload(); 2202 }, 500); 2203 }) 2204 2205 $("#search-trigger").click(function(){ 2206 search_open() 2207 }) 2208 $(".icon-search-mobile").click(function(){ 2209 search_open() 2210 }) 2211 $(".search-header svg").click(function(){ 2212 search_close() 2213 }) 2214 $(".icon-key-mobile").click(function(){ 2215 search_close() 2216 }) 2217 2218 function search_open() { 2219 $("body").addClass("search-popup-open") 2220 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 2221 $("#search-popup, .search-header svg, .icon-key-mobile").show() 2222 $(".search-popup").focus() 2223 $('.popup-recommend')[0].swiper.update(); 2224 } 2225 function search_close() { 2226 $("body").removeClass("search-popup-open") 2227 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 2228 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 2229 searchInput.val("") 2230 resultsearch.hide() 2231 resultrecommend.show() 2232 } 2233 2234 $(".site-overlay").click(function(){ 2235 search_close() 2236 }) 2237 </script>
2237 2238 2239 </div> 2240 </div> 2241 2242 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 2243 <main class="main-content pt-0" role="main"> 2244 2245 <div id="breadcrumbProduct" class="d-none d-lg-block"> 2246 <style> 2247 #breadcrumbProduct { 2248 padding: 20px 0; 2249 } 2250 #breadcrumbProduct ul { 2251 display: flex; 2252 padding: 0; 2253 list-style: none; 2254 margin: 0; 2255 gap: 12px; 2256 } 2257 #breadcrumbProduct ul li { 2258 text-transform: uppercase; 2259 margin: 0; 2260 font-size: 12px; 2261 } 2262 #breadcrumbProduct ul li a { 2263 color: #757575; 2264 } 2265 2266 #breadcrumbProduct ul li svg { 2267 width: 10px; 2268 height: 10px; 2269 padding: 0; 2270 color: #757575; 2271 vertical-align: middle; 2272 } 2273 </style> 2274 <div class="container" style="color: #ffffff;"> 2275 <ul role="navigation" aria-label="breadcrumbs"> 2276 <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">NIXTOTO</a></li> 2277 <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2278 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2279 </svg></li> 2280 <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">NIXTOTO LOGIN</a></li> 2281 <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2282 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2283 </svg></li> 2284 <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">NIXTOTO DAFTAR</a></li> 2285 <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2286 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2287 </svg></li> 2288 <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">SITUS NIXTOTO</a></li> 2289 <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2290 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2291 </svg></li> 2292 <li><a style="color: #ffffff;">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</a></li> 2293 2294 2295 </ul> 2296 </div> 2297 2298 </div> 2299 2300 2301 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/product.css?v=31392998782552138141759380387" rel="stylesheet" type="text/css" media="all" /> 2302 2303 2304 <style> 2305 .bg-card { 2306 background-color: #000000; 2307 } 2308 </style> 2309 2310 <!-- /templates/product.liquid --> 2311 2312 2313 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2314 2315 2316 <div class="product-standing-flower" data-product-type="flowerBoard"> 2317 <meta itemprop="url" content="https://soulkeepercult.com/"> 2318 <meta itemprop="image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 2319 2320 2321 2322 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2323 <div class="product-single" style="background-image: url(https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg); background-attachment: fixed;"> 2324 <div id="product-top" class="container"> 2325 <div class="row bg-card product-sticky" style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;"> 2326 <div id="product-image" class="col-lg-7 text-center"> 2327 <div class="product-image"> 2328 <div class="row no-gutters"> 2329 2330 <div id="product-featured-image" class="row w-100"> 2331 2332 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2333 2334 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2335 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2336 2337 <li class="swiper-slide" data-type="image"> 2338 <a 2339 href="files/Blossom-Shine-WM.jpg" 2340 data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2341 data-image="files/Blossom-Shine-WM.jpg" 2342 data-position="1" 2343 class="product-single__thumbnail" 2344 > 2345 <img 2346 class="lazyload w-100" 2347 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2348 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2349 width="" 2350 height="" 2351 > 2352 </a> 2353 </li> 2354 2355 2356 2357 2358 <li class="swiper-slide" data-type="image"> 2359 <a 2360 href="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2361 data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2362 data-image="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2363 data-position="2" 2364 class="product-single__thumbnail" 2365 > 2366 <img 2367 class="lazyload w-100" 2368 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2369 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2370 width="" 2371 height="" 2372 > 2373 </a> 2374 </li> 2375 2376 2377 2378 2379 <li class="swiper-slide" data-type="image"> 2380 <a 2381 href="files/Blossom-Shine_3-WM.jpg" 2382 data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2383 data-image="files/Blossom-Shine_3-WM.jpg" 2384 data-position="3" 2385 class="product-single__thumbnail" 2386 > 2387 <img 2388 class="lazyload w-100" 2389 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2390 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2391 width="" 2392 height="" 2393 > 2394 </a> 2395 </li> 2396 2397 2398 2399 2400 <li class="swiper-slide" data-type="image"> 2401 <a 2402 href="files/Blossom-Shine_4.jpg" 2403 data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2404 data-image="files/Blossom-Shine_4.jpg" 2405 data-position="4" 2406 class="product-single__thumbnail" 2407 > 2408 <img 2409 class="lazyload w-100" 2410 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2411 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2412 width="" 2413 height="" 2414 > 2415 </a> 2416 </li> 2417 2418 2419 2420 </ul> 2421 </div> 2422 2423 </div> 2424 2425 <div 2426 id="featured-image-product" 2427 class="col-lg-10 col-12 d-none d-lg-block" 2428 > 2429 <div class="swiper-container gallery-top"> 2430 <div class="swiper-slide product-single__image"> 2431 2432 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2433 2434 2435 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2436 <a href="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"> 2437 <img 2438 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2439 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2440 id="ProductPhotoImg" 2441 class="lazyload" 2442 > 2443 2444 </a> 2445 </div> 2446 </div> 2447 2448 </div> 2449 <div class="swiper-slide product-single__video" style="display: none"> 2450 <video 2451 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2452 playsinline 2453 loop 2454 muted 2455 ></video> 2456 </div> 2457 </div> 2458 </div> 2459 </div> 2460 2461 <div id="featured-image-product2" class="col-12 d-lg-none"> 2462 <div class="swiper-container gallery-mobile"> 2463 <ul class="swiper-wrapper"> 2464 <li class="swiper-slide img"> 2465 2466 <img 2467 class="swiper-lazy" 2468 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2469 data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2470 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2471 width="" 2472 height="" 2473 > 2474 2475 </li> 2476 2477 2478 <li class="swiper-slide img"> 2479 2480 <img 2481 class="swiper-lazy" 2482 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2483 data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2484 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2485 width="" 2486 height="" 2487 > 2488 2489 </li> 2490 2491 2492 <li class="swiper-slide img"> 2493 2494 <img 2495 class="swiper-lazy" 2496 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2497 data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2498 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2499 width="" 2500 height="" 2501 > 2502 2503 </li> 2504 2505 2506 <li class="swiper-slide img"> 2507 2508 <img 2509 class="swiper-lazy" 2510 src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2511 data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg" 2512 alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel" 2513 width="" 2514 height="" 2515 > 2516 2517 </li> 2518 2519 2520 </ul> 2521 2522 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="assets/logo/logonix-anim.gif" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2523 <div class="swiper-button-next"><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewB
2523ox="0 0 7 10" fill="none"> 2524 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2525 </svg></div> 2526 2527 <!-- Add Pagination --> 2528 <div class="swiper-pagination"></div> 2529 2530 </div> 2531 </div> 2532 2533 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2534 <!-- product video --> 2535 <style> 2536 .c-pdp-product-info { 2537 background-color: #000000 !important; 2538 padding: 12px; 2539 margin: 0; 2540 color: white; 2541 } 2542 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2543 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2544 .video-modal{display:none;position:fixed;background: rgba(0,0,0,.5); width:100%; height:100%; overflow:auto; z-index:1; top:0;left:0;} 2545 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2546 .close-video .icon{width:30px;height:30px;} 2547 /*responsive iframe */ 2548 .video-container {position: relative;padding-bottom: 48.25%;padding-top: 35px;height: 0;box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3);} 2549 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2550 2551 .youtube { 2552 background-color: #000; 2553 margin-bottom: 30px; 2554 position: relative; 2555 padding-top: 56.25%; 2556 overflow: hidden; 2557 cursor: pointer; 2558 width: 100%; 2559 } 2560 .swiper-slide .youtube { 2561 max-width: 480px; 2562 } 2563 .youtube img { 2564 width: 100%; 2565 top: -16.82%; 2566 left: 0; 2567 opacity: 0.7; 2568 } 2569 .youtube .play-button { 2570 width: 90px; 2571 height: 60px; 2572 background-color: #333; 2573 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2574 z-index: 1; 2575 opacity: 0.8; 2576 border-radius: 6px; 2577 } 2578 .youtube .play-button:before { 2579 content: ""; 2580 border-style: solid; 2581 border-width: 15px 0 15px 26.0px; 2582 border-color: transparent transparent transparent #fff; 2583 } 2584 .youtube img, 2585 .youtube .play-button { 2586 cursor: pointer; 2587 } 2588 .youtube img, 2589 .youtube iframe, 2590 .youtube .play-button, 2591 .youtube .play-button:before { 2592 position: absolute; 2593 } 2594 .youtube .play-button, 2595 .youtube .play-button:before { 2596 top: 50%; 2597 left: 50%; 2598 transform: translate3d( -50%, -50%, 0 ); 2599 } 2600 .youtube iframe { 2601 height: 100%; 2602 width: 100%; 2603 top: 0; 2604 left: 0; 2605 } 2606 </style> 2607 2608 2609 </div> 2610 </div> 2611 2612 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2613 2614 </div> 2615 2616
2616<script> 2617 if ($(window).width() < 991) { 2618 var direction = 'horizontal' 2619 } else { 2620 var direction = 'vertical' 2621 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2622 } 2623 var swiper = new Swiper('.gallery-thumbs', { 2624 2625 direction, 2626 slidesPerView: 4.5, 2627 spaceBetween: 12, 2628 navigation: { 2629 nextEl: '.swiper-button-next', 2630 prevEl: '.swiper-button-prev', 2631 } 2632 }); 2633 2634 var swiper = new Swiper('.gallery-mobile', { 2635 //loop: true, 2636 lazy: true, 2637 speed: 300, 2638 resistance : true, 2639 resistanceRatio : 0, 2640 freeModeMomentumRatio : 0.45, 2641 freeModeMomentumVelocityRatio : 1.5, 2642 navigation: { 2643 nextEl: '.swiper-button-next', 2644 prevEl: '.swiper-button-prev', 2645 }, 2646 pagination: { 2647 el: '.swiper-pagination' 2648 }, 2649 useCSS3Transforms: false, 2650 loop: false, 2651 on: { 2652 init: function () { 2653 console.log('swiper initialized'); 2654 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2655 currentVideo.trigger('play'); 2656 }, 2657 }, 2658 }); 2659 2660 /* GET ALL VIDEOS */ 2661 var sliderVideos = $(".swiper-slide video"); 2662 2663 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2664 swiper.on('slideChange', function () { 2665 console.log('slide changed'); 2666 /* stop all videos */ 2667 sliderVideos.each(function( index ) { 2668 this.currentTime = 0; 2669 }); 2670 2671 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2672 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2673 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2674 prevVideo.trigger('stop'); 2675 currentVideo.trigger('play'); 2676 }); 2677 2678 2679 $("[data-video]").click(function(){ 2680 const file = $(this).data("video") 2681 $(".product-single__video").show() 2682 $(".product-single__image").hide() 2683 $(".product-single__video").find("video").attr("src", file) 2684 $(".product-single__video").find("video")[0].play(); 2685 }) 2686 $("[data-image]").click(function(){ 2687 $(".product-single__video").hide() 2688 $(".product-single__image").show() 2689 $(".product-single__video").find("video")[0].pause(); 2690 }) 2691 2692 $("#product-image .swiper-slide").each(function(){ 2693 let width = $(this).width() 2694 $(this).height(width) 2695 }) 2696 2697 $(window).resize(function() { 2698 $("#product-image .swiper-slide").each(function(){ 2699 let width = $(this).width() 2700 $(this).height(width) 2701 }) 2702 }) 2703 </script>
2703 2704 2705 </div> 2706<br> 2707 2708 2709 <div class="grid__item_product-info mb-3"> 2710 <div class="c-pdp-product-info"> 2711<h2 style="color: #f40000;">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</h2> 2712 2713<p style="text-align: justify; color: #ffffff;"><a href="/" style="color: #f40000; font-weight: bold;">NIXTOTO</a> hadir sebagai platform resmi untuk pembelian koleksi merchandise Soulkeeper Cult dengan akses cepat, antarmuka ringan, dan layanan transaksi apparel yang aman terpercaya. Melalui sistem yang mudah digunakan, pelanggan dapat dengan cepat melakukan login, daftar akun baru, mengecek katalog rilis terbaru, serta memilih item eksklusif favorit dengan lebih praktis. NIXTOTO juga sepenuhnya mendukung akses mobile-friendly agar pengalaman belanja rilisan fisik Anda tetap lancar setiap hari.</p> 2714 2715 2716 </div> 2717 </div> 2718 <style> 2719 .c-pdp-product-info__service--active { 2720 font-size: 12px; 2721 padding-left: 10px; 2722 text-align: left; 2723 max-width: 550px; 2724 margin: auto; 2725 } 2726 .c-pdp-product-info__service--active li { 2727 list-style: disc; 2728 } 2729 .c-pdp-product-info { 2730 background-color: #f5f5f5; 2731 padding: 12px; 2732 margin: 0; 2733 } 2734 .freeship em { 2735 font-style: italic; 2736 font-size: 12px !important; 2737 } 2738 2739 2740 </style> 2741 2742
2742<script> 2743 $(document).ready(function(){ 2744 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2745 $(".c-pdp-product-info__service").addClass("no-bullet"); 2746 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2747 } 2748 }); 2749 </script>
2749 2750 <a href="//www.dmca.com/Protection/Status.aspx?ID=67c15025-3913-4432-af1a-797fb4d465be" title="DMCA.com Protection Status" class="dmca-badge"> <img src ="https://images.dmca.com/Badges/_dmca_premi_badge_3.png?ID=67c15025-3913-4432-af1a-797fb4d465be" alt="DMCA.com Protection Status" /></a>
2750<script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script>
2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 </div> 2763 <div id="product-meta" class="col-lg-5 p-0"> 2764 <div class="product-meta"> 2765 <style> 2766 .product-meta--review {margin-top:10px} 2767 .freeship * {font-size: 14px !important;font-style: normal;} 2768 </style> 2769 <h1 itemprop="name" class="mb-2" style="color: white; font-weight: bold;">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</h1> 2770 2771 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2772 <meta itemprop="priceCurrency" content="IDR"> 2773 2774 <link itemprop="availability" href="https://schema.org/InStock"> 2775
2775<script 2776 type="text/javascript" 2777 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2778 async="async" 2779 ></script>
2779 2780 2781 2782 2783 2784 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2785 2786 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2787 2788 <div class="row no-gutters mb-3"> 2789 <span 2790 id="ProductPrice" 2791 class="h2 ProductPrice" 2792 itemprop="price" 2793 content="125500" style="color: #ffffff;" 2794 > 2795 Rp 125.500 2796 </span> 2797 <div class="discount-product-detail"> 2798 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2799 Rp 1.255.000 2800 </p> 2801 <span class=" tag-discount"> 2802 2803 2804 <span id="newDiscount" class="product-tag persentase-discount hide"> 2805 (90%) 2806 </span><br> 2807 2808 </span> 2809 </div> 2810 </div> 2811 2812 <div class="row no-gutters meta-sds"> 2813 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2814 2815 2816 <span 2817 id="ProductStock-Product" 2818 class="product-single__stock mb-2 hide" 2819 > 2820 2821 2822 2823 2824 Barang dikirim pada 2825 2826 2827 2828 </span> 2829 2830 <style> 2831 .short-desc-desktop { 2832 margin-bottom: 2rem; 2833 color: white; 2834 } 2835 .short-desc ul li:nth-child(n + 4) { 2836 display: none; 2837 } 2838 .short-desc ul li.showList:nth-child(n + 4) { 2839 display: list-item; 2840 } 2841 label.more { 2842 display: none; 2843 } 2844 label.more.showMe { 2845 display: block; 2846 font-size: 12px; 2847 text-transform: uppercase; 2848 font-weight: 700; 2849 cursor: pointer; 2850 } 2851 </style> 2852 2853 <div class="short-desc-desktop d-none d-lg-block"> 2854 <div class="short-desc"> 2855 2856 <p>Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.</p> 2857 </div> 2858 <label class="more">Show More â</label> 2859 </div><br> 2860 2861 2862
2862<script> 2863 var liCount; 2864 $(document).ready(function () { 2865 $(".short-desc ul").each(function() { 2866 liCount = $(this).children("li").length; 2867 if (liCount > 3) { 2868 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2869 } 2870 }); 2871 2872 $(".more").click(function () { 2873 //$(".short-desc").find("li").addClass("showList"); 2874 // $(this).hide(); 2875 $("#product-desc").find("ul").show() 2876 $('html, body').animate({ 2877 scrollTop: $("#product-desc").offset().top - 250 2878 }, 2000); 2879 $("#product-desc").css("height","auto"); 2880 $("#more_content").remove(); 2881 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2882 }); 2883 }); 2884 </script>
2884 2885 2886 2887 </div> 2888 </div> 2889 2890 <div id="purchaseProduct"> 2891 2892 2893 2894 2895 <style> 2896 .variant-metafield { 2897 display: block!important; 2898 width: 1px; 2899 padding: 0; 2900 border-color: #fff; 2901 } 2902 .select2-results__option[aria-disabled] { 2903 display: none; 2904 } 2905 2906 .towel-bordir { 2907 width: 100%; 2908 display: flex; 2909 align-items: center; 2910 justify-content: space-around; 2911 } 2912 </style> 2913 2914 2915 2916 2917
2917<script> 2918 2919 2920 </script>
2920 2921 2922 2923 2924 2925 2926 2927 <select 2928 name="id[]" 2929 id="productSelect" 2930 class="product-single__variants ignore hide hide" 2931 > 2932 2933 2934 2935 <option 2936 2937 selected="selected" 2938 2939 data-sku="OBVSTF1086" 2940 value="44083045826775" 2941 > 2942 Default Title 2943 </option> 2944 2945 2946 2947 </select> 2948 2949
2949<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2949 2950 2951
2951<script> 2952 $('.size-chart-open-popup').magnificPopup({ 2953 type:'inline', 2954 midClick: true 2955 }); 2956 </script>
2956 2957 2958 2959 2960 2961 <div class="upload-image-preview"> 2962 2963 2964 2965 2966 2967 <style> 2968 .file-dnd * { 2969 margin: 0; 2970 padding: 0; 2971 box-sizing: border-box; 2972 } 2973 .file-dnd { 2974 width: 100%; 2975 height: 250px; 2976 border: 1px solid #ddd; 2977 border-radius: 10px; 2978 padding: 15px; 2979 display: flex; 2980 flex-direction: column; 2981 gap: 10px; 2982 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2983 margin: auto; 2984 } 2985 .file-dnd input { 2986 display: none; 2987 } 2988 .file-dnd .before-upload { 2989 border: 1px dashed #888; 2990 flex: 1; 2991 border-radius: 5px; 2992 display: flex; 2993 justify-content: center; 2994 align-items: center; 2995 text-align: center; 2996 cursor: pointer; 2997 } 2998 .file-dnd .before-upload > div { 2999 display: flex; 3000 flex-direction: column; 3001 align-items: center; 3002 gap: 8px; 3003 } 3004 .file-dnd .before-upload > div h4 { 3005 width: 150px; 3006 } 3007 .file-dnd .before-upload > div p { 3008 font-size: 12px !important; 3009 color: #555; 3010 } 3011 .file-dnd.active .before-upload { 3012 border: 1px solid #5750d9; 3013 background-color: #f5f5ff; 3014 } 3015 .file-dnd .after-upload { 3016 position: relative; 3017 display: none; 3018 } 3019 .file-dnd .after-upload img { 3020 width: 100%; 3021 border-radius: 5px; 3022 max-height: 180px; 3023 object-fit: contain; 3024 display: block; 3025 } 3026 .file-dnd .after-upload .clear-btn { 3027 position: absolute; 3028 top: 10px; 3029 right: 10px; 3030 background: rgba(0, 0, 0, 0.5); 3031 width: 15px; 3032 height: 15px; 3033 text-align: center; 3034 line-height: 15px; 3035 border-radius: 50%; 3036 color: #fff; 3037 cursor: pointer; 3038 font-size: 14px; 3039 } 3040 </style> 3041 3042 <div 3043 class="file-dnd mb-3" 3044 3045 style="display: none" 3046 3047 > 3048 <label for="upload-photo">Upload your Photo:</label> 3049 <input type="file" id="upload-photo" accept="image/*"> 3050 <input type="hidden" data-properties="Photo"> 3051 <div class="before-upload"> 3052 <div> 3053 <svg id="surface1" xmlns="assets/logo/logonix-anim.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 3054 <path id="Path_2149" data-name="Path 2149" d="M22.982.322A1.009,1.009,0,0,0,22.257,0H5.982A5.505,5.505,0,0,0,.5,5.472V36.247a5.505,5.505,0,0,0,5.482,5.472H28.071a5.505,5.505,0,0,0,5.482-5.472V11.81a1.085,1.085,0,0,0-.292-.705Zm.292,3.235,6.883,7.225H25.683a2.4,2.4,0,0,1-2.409-2.4Zm4.8,36.147H5.982a3.49,3.49,0,0,1-3.467-3.457V5.472A3.49,3.49,0,0,1,5.982,2.015H21.259V8.384A4.409,4.409,0,0,0,25.683,12.8h5.855V36.247A3.484,3.484,0,0,1,28.071,39.7Zm0,0" transform="translate(-0.5)" fill="#ababab"></path> 3055 <path id="Path_2150" data-name="Path 2150" d="M106.767,401.934H90.18a1.008,1.008,0,1,0,0,2.015h16.6a1.008,1.008,0,1,0-.01-2.015Zm0,0" transform="translate(-81.947 -369.183)" fill="#ababab"></path> 3056 <path id="Path_2151" data-name="Path 2151" d="M120.143,178.328l4.152-4.464v11a1.008,1.008,0,0,0,2.015,0v-11l4.152,4.464a1.005,1.005,0,0,0,1.471-1.371l-5.905-6.339a1,1,0,0,0-1.471,0l-5.905,6.339a1,1,0,0,0,.05,1.421A1.028,1.028,0,0,0,120.143,178.328Zm0,0" transform="translate(-108.776 -156.421)" fill="#ababab"></path> 3057 </svg> 3058 3059 <h4>Drag & Drop Photo file or Browse</h4> 3060 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3061 </div> 3062 </div> 3063 <div class="after-upload"> 3064 <div class="clear-btn">×</div> 3065 <img src="" width="" height=""> 3066 </div> 3067 </div> 3068
3068<script> 3069 function applyDndFile(el) { 3070 const parent = document.querySelector(".file-dnd") 3071 const beforeUploadEl = el.querySelector(".before-upload") 3072 const afterUploadEl = el.querySelector(".after-upload") 3073 const inputFile = el.querySelector("input[type=file]") 3074 const imagePreview = el.querySelector(".after-upload img") 3075 const clearBtn = el.querySelector(".after-upload .clear-btn") 3076 const inputProps = parent.querySelector("[data-properties]"); 3077 3078 async function upload(name, uri, type) { 3079 try { 3080 const filename = name.split('.')[0] 3081 let formData = new FormData(); 3082 formData.append("file", uri); 3083 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3084 method: "POST", 3085 body: formData 3086 }) 3087 if(response) { 3088 const res = await response.json() 3089 return res 3090 } 3091 } catch(err){ 3092 console.log(err) 3093 } 3094 } 3095 3096 function showImagePreview(img) { 3097 if(img){ 3098 const blobUrl = URL.createObjectURL(img) 3099 imagePreview.src = blobUrl 3100 afterUploadEl.style.display = "block" 3101 beforeUploadEl.style.display = "none" 3102 } 3103 } 3104 3105 beforeUploadEl.addEventListener("click", (e) => { 3106 e.preventDefault() 3107 inputFile.click() 3108 }) 3109 3110 inputFile.addEventListener("change", async (e) => { 3111 e.preventDefault() 3112 showImagePreview(e.target.files[0]) 3113 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3114 inputProps.value = uploadData?.url 3115 }) 3116 3117 clearBtn.addEventListener("click", (e) => { 3118 afterUploadEl.style.display = "none" 3119 beforeUploadEl.style.display = "flex" 3120 inputProps.value = "" 3121 }) 3122 3123 beforeUploadEl.addEventListener("dragover", (e) => { 3124 e.preventDefault() 3125 el.classList.add("active") 3126 }) 3127 3128 beforeUploadEl.addEventListener("dragleave", (e) => { 3129 e.preventDefault() 3130 el.classList.remove("active") 3131 }) 3132 3133 beforeUploadEl.addEventListener("drop", async (e) => { 3134 e.preventDefault() 3135 el.classList.remove("active") 3136 showImagePreview(e.dataTransfer.files[0]) 3137 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3138 console.log(uploadData) 3139 inputProps.value = uploadData?.url 3140 }) 3141 } 3142 3143 applyDndFile(document.querySelector(".file-dnd")) 3144 3145 $(document).ready(function(){ 3146 $(".variant-swatch").change(function(){ 3147 const v = $(this).val().toLowerCase() 3148 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3149 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3150 $(".file-dnd").hide() 3151 $(".file-dnd").find("[data-properties]").val("") 3152 $(".after-upload").hide() 3153 $(".before-upload").css("display", "flex") 3154 }) 3155 }) 3156 </script>
3156 3157 3158 </div> 3159 3160 3161 <div class="delivery-city mb-4"> 3162 <a href="https://soulkeepercult.com/" title="Daftar Member NIXTOTO"> 3163 <center> 3164 <img src="assets/button/nixtoto-daftar.gif" alt="Daftar Member NIXTOTO Merchandise" style="width: 260px; margin-top: -20px;"> 3165 </center> 3166 </a><br> 3167 3168 <h4 class="fw-600 text-uppercase mb-15" style="color: #ae1b1b; font-weight: bold; text-align: center;"> 3169 Jadilah bagian dari NIXTOTO sekarang & nikmati promo rilisan eksklusifnya 3170 </h4> 3171 3172 <div class="row justify-content-between m-0"> 3173 <select id="cities" class="form-control select-search" required> 3174 <option value="" disabled selected>Pilih Kota Pengiriman Anda...</option> 3175 <option value="jakarta-selatan">Jakarta, Selatan (Promo Free Delivery)</option> 3176 <option value="jakarta-pusat">Jakarta, Pusat (Reguler)</option> 3177 <option value="kota-lainnya">Seluruh Indonesia (Ekspedisi Nasional)</option> 3178 </select> 3179 </div> 3180</div> 3181 3182 <style> 3183 @media (max-width: 768px) { 3184 .select2-search__field { 3185 pointer-events: none !important; 3186 } 3187 3188 .select2-search { 3189 display: none !important; 3190 } 3191 } 3192 </style> 3193 3194
3194<script> 3195 $(document).ready(function() { 3196 // Check if mobile 3197 if (window.innerWidth <= 768) { 3198 // When cities select2 opens on mobile, remove focus from search 3199 $('#cities').on('select2:open', function() { 3200 setTimeout(function() { 3201 $('.select2-search__field').blur(); 3202 $('.select2-search__field').prop('readonly', true); 3203 }, 100); 3204 }); 3205 } 3206 }); 3207 </script>
3207 3208 3209 <style> 3210 .icon-img-footer { 3211 width: 80px; 3212 padding: 0px 5px; 3213 } 3214 @media (min-width: 768px) { 3215 .icon-img-footer { 3216 width: 120px; 3217 } 3218 } 3219 @media (min-width: 992px) { 3220 .icon-img-footer { 3221 width: 120px; 3222 } 3223 } 3224 3225 3226 </style> 3227<style> 3228 :root { 3229 --brand: #ff0000; 3230 --brand-mid: #970000; 3231 --brand-dark: #69001a; 3232 --border: #e5e7eb; 3233 --bg: #fff; 3234 --shadow: 0 6px 15px rgba(0, 0, 0, .08); 3235 } 3236 3237 .app-card { 3238 max-width: 650px; 3239 margin: 25px auto; 3240 background: var(--bg); 3241 border-radius: 14px; 3242 overflow: hidden; 3243 box-shadow: var(--shadow); 3244 border: 1px solid var(--border); 3245 transition: transform .2s, box-shadow .3s; 3246 font-family: system-ui, Arial, sans-serif; 3247 font-size: .92rem; 3248 } 3249 3250 .app-card:hover { 3251 transform: translateY(-2px); 3252 box-shadow: 0 10px 25px rgba(0, 0, 0, .12); 3253 } 3254 3255 .app-header { 3256 padding: 12px 16px; 3257 text-align: center; 3258 background: linear-gradient(135deg, #000000, #5d5d5d, #000000); 3259 color: #fff; 3260 font-weight: 800; 3261 font-size: 1.15rem; 3262 text-shadow: 0 1px 2px rgba(0, 0, 0, .3); 3263 } 3264 3265 .app-table { 3266 width: 100%; 3267 border-collapse: collapse; 3268 } 3269 3270 .app-table th, 3271 .app-table td { 3272 padding: 8px 12px; 3273 vertical-align: middle; 3274 } 3275 3276 .app-table th { 3277 width: 35%; 3278 background: #e7e7e7; 3279 color: #585858; 3280 font-weight: 700; 3281 letter-spacing: .2px; 3282 text-transform: uppercase; 3283 font-size: .85rem; 3284 } 3285 3286 .app-table td { 3287 border-bottom: 1px solid var(--border); 3288 color: #1f1f1f; 3289 font-size: .9rem; 3290 text-align: center; 3291 } 3292 3293 @media (max-width: 640px) { 3294 .app-table, 3295 .app-table tbody, 3296 .app-table tr, 3297 .app-table th, 3298 .app-table td { 3299 display: block; 3300 width: 100%; 3301 } 3302 } 3303 3304 .review-section { 3305 max-width: 850px; 3306 margin: 30px auto; 3307 display: flex; 3308 flex-direction: column; 3309 gap: 18px; 3310 font-family: system-ui, Arial, sans-serif; 3311 } 3312 3313 .review-card { 3314 background: #000000; 3315 padding: 16px 20px; 3316 border-radius: 10px; 3317 border-left: 5px solid #4f4e4e; 3318 box-shadow: 0 3px 6px rgba(0, 0, 0, .05); 3319 transition: all .25s ease-in-out; 3320 } 3321 3322 .review-card:hover { 3323 transform: translateY(-3px); 3324 box-shadow: 0 5px 10px rgba(0, 0, 0, .08); 3325 } 3326 3327 .review-author { 3328 font-weight: 700; 3329 color: var(--brand-dark); 3330 margin-bottom: 4px; 3331 display: flex; 3332 align-items: center; 3333 gap: 6px; 3334 font-size: .92rem; 3335 } 3336 3337 .review-author::before { 3338 content: "ð¤"; 3339 font-size: 1rem; 3340 } 3341 3342 .review-card p { 3343 margin: 0; 3344 color: #d3d3d3; 3345 font-size: .94rem; 3346 } 3347 3348 .review-rating { 3349 margin-left: auto; 3350 font-weight: 700; 3351 } 3352 3353 .stars { 3354 --rating: 5; 3355 --star-size: 1rem; 3356 --star-gap: 2px; 3357 --star-empty: #e5e7eb; 3358 --star-fill: #f4c430; 3359 position: relative; 3360 display: inline-block; 3361 font-size: var(--star-size); 3362 line-height: 1; 3363 letter-spacing: var(--star-gap); 3364 } 3365 3366 .stars::before { 3367 content: "â â â â "; 3368 color: var(--star-empty); 3369 } 3370 3371 .stars::after { 3372 content: "â â â "; 3373 color: var(--star-fill); 3374 position: absolute; 3375 left: 0; 3376 top: 0; 3377 width: calc((var(--rating) / 5) * 100%); 3378 overflow: hidden; 3379 white-space: nowrap; 3380 pointer-events: none; 3381 } 3382 3383 .stars.lg { 3384 --star-size: 1.1rem; 3385 letter-spacing: 3px; 3386 } 3387 3388 .badge { 3389 display: inline-flex; 3390 align-items: center; 3391 gap: 8px; 3392 flex-wrap: wrap; 3393 } 3394 3395 .badge small { 3396 color: #d00606; 3397 font-weight: 600; 3398 } 3399</style> 3400 3401<div class="review-section"> 3402 <div class="review-card"> 3403 <div class="review-author"> 3404 Dimas Aditya
3405 <span class="review-rating stars" style="--rating: 5" aria-label="Rating 5.0 dari 5"></span> 3406 </div> 3407 <p> 3408 NIXTOTO enak dipakai buat akses login harian pantau rilisan fisik terbaru. Halamannya ringan di HP, menu login cepat ditemukan, dan info katalog Soulkeeper tersusun sangat rapi. 3409 </p> 3410 </div> 3411 3412 <div class="review-card"> 3413 <div class="review-author"> 3414 Kevin Pratama 3415 <span class="review-rating stars" style="--rating: 4.8" aria-label="Rating 4.8 dari 5"></span> 3416 </div> 3417 <p> 3418 Yang aku suka dari web NIXTOTO itu aksesnya simpel dan nggak ribet. Mau cek stok apparel terbaru atau masuk ke akun member terasa sangat praktis lewat mobile. 3419 </p> 3420 </div> 3421 3422 <div class="review-card"> 3423 <div class="review-author"> 3424 Reza Mahendra 3425 <span class="review-rating stars" style="--rating: 4.9" aria-label="Rating 4.9 dari 5"></span> 3426 </div> 3427 <p> 3428 NIXTOTO andalan banget buat yang cari link alternatif pembelian merchandise resmi dengan tampilan bersih. Navigasinya mudah, akses cepat untuk checkout, dan transaksinya aman. 3429 </p> 3430 </div> 3431</div> 3432 3433 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3434 <div class="purchaseArea"> 3435 <div class="sectionPurchase sectionPurchaseSpotify"> 3436 <div class="wrapperPurchase"> 3437 <div class="headerPurchase"> 3438 <h3>personalize spotify photo print</h3> 3439 <a class="close-purchase-popup"> 3440 <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3441 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"></path> 3442 </svg> 3443 </a> 3444 </div> 3445 <div class="contentPurchase"> 3446 <div class="spotifyAddons"></div> 3447 </div> 3448 3449 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3450 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3451 <button class="back-purchase-button back-addon text-uppercase"> 3452 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="assets/logo/logonix-anim.gif"> 3453 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"></path> 3454 </svg> 3455 <span>Back</span> 3456 </button> 3457 </div> 3458 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3459 <button class="btn next-purchase-button next-addon text-uppercase"> 3460 <span>continue without add-ons</span> 3461 </button> 3462 </div> 3463 </div> 3464 </div> 3465 </div> 3466 </div> 3467 </div> 3468 3469 <style> 3470 #PBarNextFrameWrapper { 3471 display: none; 3472 } 3473 #backgroundPopup { 3474 display: none; 3475 position: fixed; 3476 _position: absolute; 3477 height: 100%; 3478 width: 100%; 3479 top: 0; 3480 left: 0; 3481 background: rgb(117 117 117 / 24%); 3482 z-index: 1; 3483 } 3484 .sectionPurchase { 3485 height: 100%; 3486 position: relative; 3487 max-width: 1344px; 3488 background-color: #fff; 3489 padding: 0; 3490 overflow: hidden; /* Changed from auto to hidden */ 3491 display: flex; 3492 flex-direction: column; 3493 } 3494 .sectionPurchase.purchaseAddonSpotify { 3495 max-width: 1070px!important; 3496 max-height: 765px!important; 3497 } 3498 .sectionPurchaseBoard { 3499 max-width: 872px!important; 3500 max-height: 821px!important; 3501 } 3502 .purchaseAddonSpotify .btn-action { 3503 position: absolute; 3504 bottom: 0; 3505 left: 0; 3506 width: 100%; 3507 display: flex; 3508 gap: 10px; 3509 } 3510 .wrapperPurchase { 3511 position: relative; 3512 height: 100%; 3513 display: flex; 3514 flex-direction: column; 3515 } 3516 3517 /* New styles for scrollable content and sticky button */ 3518 .purchase-content { 3519 flex: 1; 3520 overflow-y: auto; 3521 overflow-x: hidden; 3522 padding: 20px; 3523 } 3524 3525 .purchase-button-wrapper { 3526 position: sticky; 3527 bottom: 0; 3528 background-color: #fff; 3529 border-top: 1px solid #e0e0e0; 3530 padding: 15px 0; 3531 margin-top: auto; 3532 z-index: 10; 3533 } 3534 3535 .purchasePopup { 3536 display: none; 3537 position: fixed; 3538 background: rgb(117 117 117 / 24%); 3539 z-index: 999; 3540 padding: 40px; 3541 font-size: 13px; 3542 top: 0; 3543 left: 0; 3544 width: 100%; 3545 height: 100%; 3546 } 3547 .popupPurchaseClose{ 3548 font-size:14px; 3549 line-height:14px; 3550 right:45px; 3551 top:45px; 3552 position:absolute; 3553 color:#6fa5fd; 3554 font-weight:700; 3555 display:block; 3556 cursor: pointer; 3557 } 3558 3559 .headerPurchase { 3560 margin-bottom: 30px; 3561 display: flex; 3562 justify-content: space-between; 3563 } 3564 3565 .headerPurchase h3 { 3566 font-size: 16px; 3567 text-transform: uppercase; 3568 } 3569 3570 .sectionPurchaseBoard .headerPurchase { 3571 margin-bottom: 15px; 3572 } 3573 3574 .sectionPurchaseBoard .formAddressPurchase { 3575 padding-top: 0;
3576 } 3577 3578 .purchaseArea { 3579 position: relative; 3580 height: 100%; 3581 } 3582 3583 .purchaseArea h4 { 3584 width: 100%; 3585 font-size: 12px; 3586 font-weight: 600; 3587 margin-bottom: 10px; 3588 text-transform: uppercase; 3589 } 3590 3591 .menuPurchase { 3592 margin-bottom: 30px; 3593 } 3594 3595 .menuPurchase ul { 3596 list-style-type: none; 3597 margin: 0; 3598 } 3599 3600 .menuPurchase ul li { 3601 display: inline-block; 3602 border: 1px solid #ffffff; 3603 padding: 5px 20px; 3604 margin-right: 5px; 3605 margin-bottom: 10px; 3606 font-size: 12px; 3607 font-weight: 400; 3608 } 3609 3610 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3611 background-color: #ffffff; 3612 color: #ffffff; 3613 } 3614 3615 .contentPurchase h5 { 3616 font-size: 12px; 3617 margin-bottom: 10px; 3618 font-weight: 400; 3619 overflow: hidden; 3620 } 3621 3622 /* Card */ 3623 3624 #itemCards { 3625 max-height: 430px; 3626 overflow: auto; 3627 } 3628 3629 .item-cards { 3630 width: 100%; 3631 } 3632 .item-card.selected { 3633 border: 1px solid #ffffff; 3634 } 3635 .item-card:hover { 3636 border: 1px solid #C4C4C4; 3637 } 3638 .item-cards .item-card { 3639 position: relative; 3640 width: calc(33% - 10px); 3641 max-width: calc(33% - 10px); 3642 flex: 0 0 calc(33% - 10px); 3643 margin-bottom: 20px; 3644 } 3645 .item-cards .item-card label, 3646 .item-addons .item-addon label { 3647 position: absolute; 3648 left: 0; 3649 width: 100%; 3650 height: 100%; 3651 } 3652 .item-cards .item-card .card-image img, 3653 .item-addons .item-addon .card-image img { 3654 display: block; 3655 width: 100%; 3656 } 3657 .item-card .card-meta, 3658 .item-addon .card-meta { 3659 padding: 10px 5px 5px; 3660 } 3661 .item-card.selected .card-meta, 3662 .item-addon.selected .card-meta, 3663 .item-card.selected .card-qty { 3664 background-color: #ffffff; 3665 color: #fff; 3666 visibility: visible!important; 3667 } 3668 .item-card:hover .card-meta, 3669 .item-addon:hover .card-meta, 3670 .item-card:hover .card-qty { 3671 background-color: #C4C4C4; 3672 color: #fff; 3673 visibility: visible!important; 3674 } 3675 .item-cards .item-card p, 3676 .item-addons .item-addon p { 3677 font-size: 12px !important; 3678 margin: 0; 3679 font-weight: 600; 3680 } 3681 .item-card .card-meta input, 3682 .item-addon .card-meta input { 3683 display: none; 3684 } 3685 .item-cards .item-card h5, 3686 .item-addons .item-addon h5 { 3687 text-transform: uppercase; 3688 max-height: 35px; 3689 } 3690 3691 @media (max-width: 768px) { 3692 .item-cards .item-card { 3693 width: calc(50% - 10px); 3694 max-width: calc(50% - 10px); 3695 flex: 0 0 calc(50% - 10px); 3696 margin-bottom: 0; 3697 } 3698 } 3699 3700 .card-qty { 3701 display: flex; 3702 padding: 5px; 3703 visibility: hidden; 3704 background-color: #fff !important; 3705 z-index: 999; 3706 } 3707 .card-qty a { 3708 border-width: 1px; 3709 width: 30%; 3710 cursor: pointer; 3711 text-align: center; 3712 align-self: center; 3713 height: 28px; 3714 display: block; 3715 position: relative; 3716 } 3717 .card-qty a svg { 3718 position: absolute; 3719 top: 50%; 3720 left: 50%; 3721 transform: translate(-50%, -50%); 3722 text-align: center; 3723 } 3724 input.btn-qty { 3725 border-width: 0px; 3726 border-radius: 0; 3727 background-color: #fff; 3728 -webkit-appearance: none; 3729 box-shadow: none !important; 3730 -webkit-box-shadow: none !important; 3731 -moz-box-shadow: none!important; 3732 width: 40%; 3733 border-left: 1px solid #c4c4c4; 3734 border-right: 1px solid #c4c4c4; 3735 padding: 0; 3736 } 3737 3738 .sectionPurchaseBoard #itemAddons .item-card { 3739 width: calc(20% - 15px); 3740 max-width: calc(20% - 15px); 3741 flex: 0 0 calc(20% - 15px); 3742 } 3743 3744 .purchase-button { 3745 width: 100%; 3746 padding: 0; /* Reset padding as it's now handled by wrapper */ 3747 margin: 0; 3748 } 3749 3750 .sectionPurchaseBoard .purchase-button { 3751 margin-top: 0 !important; /* Reset margin */ 3752 } 3753 3754 .back-purchase-button, .back-spotify { 3755 width: 139px; 3756 border: 1px solid; 3757 height: 43px; 3758 } 3759 .purchase-button .btn { 3760 width: 297px; 3761 height: 43px; 3762 background-color: #ffffff; 3763 color: #ffffff; 3764 } 3765 .purchase-button .btn[disabled] { 3766 background-color: #EEEEEE; 3767 } 3768 .back-purchase-button svg, .back-spotify svg { 3769 align-self: center; 3770 vertical-align: middle; 3771 margin-right: 10px; 3772 } 3773 3774 #purchaseProduct .row .error { 3775 font-size: 12px !important; 3776 color: orange; 3777 margin-top: 5px; 3778 } 3779 3780 .reviewCardPurchase { 3781 max-width: 448px; 3782 float: right; 3783 } 3784 3785 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3786 .addon-item * {align-self: center;font-size: 12px;} 3787 .addon-itm-title {width: 360px;} 3788 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3789 3790 .propsAddonSpotify p { 3791 margin: 0; 3792 display: flex; 3793 font-size: 12px !important; 3794 margin-bottom: 5px; 3795 } 3796 .propsAddonSpotify p span:first-child { 3797 text-transform: uppercase; 3798 font-weight: 600; 3799 -ms-flex: 0 0 150px; 3800 flex: 0 0 150px; 3801 max-width: 150px; 3802 } 3803 3804 .addonsPurchase .addons { 3805 max-height: 250px; 3806 overflow: auto; 3807 } 3808 3809 .btn .loading:after { 3810 content: ""; 3811 display: inline-block;
3812 width: 20px; 3813 height: 20px; 3814 padding: 3px; 3815 aspect-ratio: 1; 3816 border-radius: 50%; 3817 background: #FFFFFF; 3818 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3819 -webkit-mask: var(--_m); 3820 mask: var(--_m); 3821 -webkit-mask-composite: source-out; 3822 mask-composite: subtract; 3823 animation: l3 1s infinite linear; 3824 margin: auto; 3825 vertical-align: middle; 3826 margin-left: 10px; 3827 } 3828 3829 #qrcode img, #qrcode canvas { 3830 width: 50px; 3831 position: absolute; 3832 top: 12px; 3833 left: 16px; 3834 } 3835 3836 .t-preview { 3837 position: absolute; 3838 top: 17px; 3839 left: 75px; 3840 } 3841 .t-preview p { 3842 margin: 0; 3843 font-size: 12px !important; 3844 } 3845 .t-preview .h3 { 3846 font-size: 16px !important; 3847 margin-bottom: 5px; 3848 font-weight: 600; 3849 } 3850 .scanCard { 3851 width: 100%; 3852 border: 1px solid; 3853 height: 76px; 3854 background-color: #fff; 3855 } 3856 .scanCard > div > img { 3857 position: absolute; 3858 right: 0; 3859 width: 55px; 3860 } 3861 3862 @keyframes l3 { 3863 100% { 3864 transform: rotate(1turn); 3865 } 3866 } 3867 3868 @media (min-width: 991px) { 3869 .sectionPurchase { 3870 height: 100%; 3871 position: relative; 3872 max-width: 1344px; 3873 background-color: #fff; 3874 top: 50%; 3875 left: 50%; 3876 transform: translate(-50%, -50%); 3877 } 3878 .headerPurchase h3 { 3879 font-size: 20px; 3880 } 3881 .purchaseArea h4 { 3882 font-size: 16px; 3883 } 3884 3885 .menuPurchase ul li { 3886 font-size: 16px; 3887 } 3888 3889 .contentPurchase { 3890 margin-bottom: 30px; 3891 } 3892 .contentPurchase h5 { 3893 font-size: 16px; 3894 } 3895 3896 .item-cards .item-card p, 3897 .item-addons .item-addon p { 3898 font-size: 16px !important; 3899 } 3900 3901 .cards { 3902 float: right; 3903 width: 400px; 3904 } 3905 3906 .item-cards .item-card { 3907 width: calc(25% - 30px); 3908 max-width: calc(25% - 30px); 3909 flex: 0 0 calc(25% - 30px); 3910 } 3911 3912 #itemAddons .item-card { 3913 position: relative; 3914 width: calc(16% - 40px); 3915 max-width: calc(16% - 40px); 3916 flex: 0 0 calc(16% - 40px); 3917 } 3918 3919 .purchase-button-wrapper { 3920 padding: 10px 20px; 3921 } 3922 } 3923 3924 @media (max-width: 1200px) { 3925 .item-cards .item-card { 3926 width: calc(33% - 30px); 3927 max-width: calc(33% - 30px); 3928 flex: 0 0 calc(33% - 30px); 3929 } 3930 } 3931 3932 @media (max-width: 992px) { 3933 .purchasePopup { 3934 padding: 0; 3935 } 3936 .item-cards .item-card h5, 3937 .item-addons .item-addon h5 { 3938 max-height: 30px; 3939 } 3940 3941 .back-purchase-button, .back-spotify, .next-purchase-button { 3942 width: 100%; 3943 } 3944 .addon-itm-title { 3945 width: 300px; 3946 } 3947 .addon-itm-line-price { 3948 margin-right: 10px; 3949 } 3950 .t-preview { 3951 top: 10px; 3952 } 3953 3954 .card-qty a { 3955 height: 15px; 3956 } 3957 3958 .purchase-button-wrapper { 3959 padding: 15px; 3960 } 3961 } 3962 3963 @media (max-width: 576px) { 3964 .purchase-button .btn { 3965 width: 100%!important; 3966 } 3967 .purchase-button > .col-12 { 3968 padding-left: 0; 3969 padding-right: 0; 3970 } 3971 } 3972 </style> 3973 3974 3975 <div class="purchasePopup"> 3976 <div class="purchaseArea"> 3977 3978 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3979 <div class="wrapperPurchase"> 3980 <div class="purchase-content"> 3981 <div class="headerPurchase"> 3982 <h3 class="text-uppercase"> 3983 3984 customize your flower board 3985 3986 </h3> 3987 <a class="close-purchase-popup"> 3988 <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3989 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 3990 </svg> 3991 </a> 3992 3993 </div> 3994 <div class="contentPurchase"> 3995 <div class="row"> 3996 3997 <div class="col-12"> 3998 3999 4000 <style> 4001 4002 4003 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 4004 .customize-papan .input-field textarea {width: 100%;max-width: 421px;min-height: 150px;font-weight: 400;font-size: 16px;resize: none;background-color: #E5E5EA;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;color: #ffffff;border: none;} 4005 4006 .customize-papan .field-papan.group-field-2 .input-field.field-logo {height: 90px;margin: 0;border-radius: 0;position: relative;-ms-flex: 0 0 174px;flex: 0 0 174px;max-width: 174px;} 4007 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 4008 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 4009 .svgLogoPapan p {color: #8E8E93; margin: 0;} 4010 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 4011 .customize-papan .btn-upload-papan img {margin: auto;display: block;position: absolute;width: 80px;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 4012 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 4013 #suggest-messages a {border: 1px solid #979797;background: #fff;color: #979797;border-radius: 3px;padding: 5px 10px;font-size: 10px;font-weight: 600;display: inline-block;} 4014 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 4015 .customize-papan .input-field input {font-weight: 600;font-size: 16px;width: 100%;height: 90px;min-height: 44px !important;border: none;background: #E5E5EA;margin: 0;border-radius: 0;text-align: center;color: #ffffff;} 4016 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 4017 4018 @media (min-width: 991px) { 4019 .customize-papan:before {content: "";position: absolute;border: 4px solid #ffffff;bottom: -50px;left: 210px;width: 100px;display: block;-ms-transform: rotate(60deg);-webkit-transform: rotate(60deg);transform: rotate(-65deg);} 4020 .customize-papan:after {content: "";position: absolute;border: 4px solid #ffffff;bottom: -52px;right: 240px;width: 100px;display: block;-ms-transform: rotate(-120deg);-webkit-transform: rotate(70deg);transform: rotate(70deg);} 4021 } 4022 </style> 4023 4024 <input type="hidden" data-properties="penerima" value="-"> 4025 <div class="customize-papan"> 4026 <div class="container"> 4027 <div class="field-papan group-field-1 form-group"> 4028 <div class="input-field">
4029 <textarea id="kartu-ucapan-papan" class="mb-0 has-limit" type="text" data-properties="ucapan" placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide. 4030 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 4031 <p class="limit">0/100</p> 4032 <div id="suggest-messages"> 4033 <a id="show_note_papan1" href="#"> 4034 <div class="suggest-message" id="note_btn_div1"> 4035 <span class="promo-code-link" id="note_btn_papan1">NIXTOTO</span> 4036 </div> 4037 </a> 4038 <a id="show_note_papan2" href="#"> 4039 <div class="suggest-message" id="note_btn_div2"> 4040 <span class="promo-code-link" id="note_btn_papan2">SITUS NIXTOTO</span> 4041 </div> 4042 </a> 4043 <a id="show_note_papan3" href="#"> 4044 <div class="suggest-message" id="note_btn_div3"> 4045 <span class="promo-code-link" id="note_btn_papan3">NIXTOTO ALTERNATIF</span> 4046 </div> 4047 </a> 4048 </div> 4049 </div> 4050 </div> 4051 <div class="hide"> 4052 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 4053 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 4054 </div> 4055 <div class="hide"> 4056 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 4057 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 4058 </div> 4059 <div class="hide"> 4060 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 4061 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 4062 </div> 4063 <div class="field-papan group-field-2 form-group"> 4064 4065 <label for="logoPapan" onclick="" class="input-field field-logo"> 4066 4067 4068 4069 <div class="btn-upload-papan w-100"> 4070 <?xml version="1.0" encoding="UTF-8"?> 4071 <img src="" style="display:none"> 4072 <div class="svgLogoPapan"> 4073 <svg xmlns="assets/logo/logonix-anim.gif" width="22" height="26" viewBox="0 0 22 26" fill="none"> 4074 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 4075 </svg> 4076 <p>Upload Logo <span>*optional</span></p> 4077 </div> 4078 </div> 4079 4080 </label> 4081 4082 <input 4083 type="hidden" 4084 data-properties="papan-logo" 4085 value="" 4086 > 4087 <input 4088 type="file" 4089 id="logoPapan" 4090 accept="image/*" 4091 style="position: absolute;width: 1px;height: 1px;padding: 0" 4092 > 4093 4094 <div class="input-field"> 4095 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 4096 <p class="limit">0/35</p> 4097 </div> 4098 4099 </div> 4100 4101 </div> 4102 </div> 4103 </div> 4104 4105 </div> 4106 </div> 4107 4108 </div> 4109 <div class="purchase-button-wrapper"> 4110 <div class="purchase-button btn-card row m-0"> 4111 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4112 4113 </div> 4114 <div class="btn-next-card col-12 col-lg-10 text-right"> 4115 4116 4117 <button 4118 4119 4120 4121 class="btn next-purchase-button text-uppercase" 4122 4123 disabled 4124 4125 > 4126 <span>save your flower board</span> 4127 </button> 4128 </div> 4129 </div> 4130 4131 </div> 4132 </div> 4133 </div> 4134 4135 4136 4137 <div 4138 class="sectionPurchase sectionPurchaseBoard hide" 4139 data-section="address" 4140 > 4141 <div class="wrapperPurchase"> 4142 <div class="purchase-content"> 4143 <div class="headerPurchase"> 4144 <h3> 4145 Complete Your Order 4146 </h3> 4147 <a class="close-purchase-popup"> 4148 <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4149 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 4150 </svg> 4151 </a> 4152 4153 </div> 4154 <div class="contentPurchase"> 4155 <div class="row"> 4156 <div class="col-12 position-relative"> 4157 <div class="addressPurchase"> 4158 4159 <h4 class="text-uppercase">recipient delivery address</h4> 4160 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 4161 4162 <div class="formAddressPurchase row"> 4163 <div class="col-12"> 4164 <form> 4165 <div class="form-group row mb-2 mb-lg-4"> 4166 <div class="col-6 position-relative"> 4167 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 4168 <label for="first_name" class="input__label">First Name<span>*</span></label> 4169 </div> 4170 <div class="col-6 position-relative"> 4171 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 4172 <label for="last_name" class="input__label">Last Name<span>*</span></label> 4173 </div> 4174 <input type="hidden" data-properties="nama-penerima"> 4175 </div> 4176 4177 <h4 class="text-uppercase">how you want to input your address</h4> 4178 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 4179 <div class="col-6 position-relative"> 4180 <label class="address-manualy"> 4181 <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="17" viewBox="0 0 18 17" fill="none"> 4182 <path d="M3.37484 1.83329C2.79984 1.83329 2.33317 2.29996 2.33317 2.87496V5.16663C2.33317 5.38764 2.24537 5.5996 2.08909 5.75588C1.93281 5.91216 1.72085 5.99996 1.49984 5.99996C1.27882 5.99996 1.06686 5.9
41821216 0.910582 5.75588C0.754301 5.5996 0.666504 5.38764 0.666504 5.16663V2.87496C0.666504 2.15666 0.951845 1.46779 1.45976 0.959878C1.96767 0.451967 2.65654 0.166626 3.37484 0.166626H5.6665C5.88752 0.166626 6.09948 0.254423 6.25576 0.410704C6.41204 0.566984 6.49984 0.778946 6.49984 0.999959C6.49984 1.22097 6.41204 1.43293 6.25576 1.58921C6.09948 1.7455 5.88752 1.83329 5.6665 1.83329H3.37484ZM3.37484 15.1666C2.79984 15.1666 2.33317 14.7 2.33317 14.125V11.8333C2.33317 11.6123 2.24537 11.4003 2.08909 11.244C1.93281 11.0878 1.72085 11 1.49984 11C1.27882 11 1.06686 11.0878 0.910582 11.244C0.754301 11.4003 0.666504 11.6123 0.666504 11.8333V14.125C0.666504 14.4806 0.736557 14.8328 0.872663 15.1614C1.00877 15.49 1.20826 15.7885 1.45976 16.04C1.71125 16.2915 2.00981 16.491 2.3384 16.6271C2.66699 16.7632 3.01917 16.8333 3.37484 16.8333H5.6665C5.88752 16.8333 6.09948 16.7455 6.25576 16.5892C6.41204 16.4329 6.49984 16.221 6.49984 16C6.49984 15.7789 6.41204 15.567 6.25576 15.4107C6.09948 15.2544 5.88752 15.1666 5.6665 15.1666H3.37484ZM15.6665 2.87496C15.6665 2.29996 15.1998 1.83329 14.6248 1.83329H12.3332C12.1122 1.83329 11.9002 1.7455 11.7439 1.58921C11.5876 1.43293 11.4998 1.22097 11.4998 0.999959C11.4998 0.778946 11.5876 0.566984 11.7439 0.410704C11.9002 0.254423 12.1122 0.166626 12.3332 0.166626H14.6248C14.9805 0.166626 15.3327 0.236679 15.6613 0.372786C15.9899 0.508892 16.2884 0.708386 16.5399 0.959878C16.7914 1.21137 16.9909 1.50994 17.127 1.83853C17.2631 2.16712 17.3332 2.5193 17.3332 2.87496V5.16663C17.3332 5.38764 17.2454 5.5996 17.0891 5.75588C16.9328 5.91216 16.7208 5.99996 16.4998 5.99996C16.2788 5.99996 16.0669 5.91216 15.9106 5.75588C15.7543 5.5996 15.6665 5.38764 15.6665 5.16663V2.87496ZM14.6248 15.1666C15.1998 15.1666 15.6665 14.7 15.6665 14.125V11.8333C15.666
41825 11.6123 15.7543 11.4003 15.9106 11.244C16.0669 11.0878 16.2788 11 16.4998 11C16.7208 11 16.9328 11.0878 17.0891 11.244C17.2454 11.4003 17.3332 11.6123 17.3332 11.8333V14.125C17.3332 14.4806 17.2631 14.8328 17.127 15.1614C16.9909 15.49 16.7914 15.7885 16.5399 16.04C16.2884 16.2915 15.9899 16.491 15.6613 16.6271C15.3327 16.7632 14.9805 16.8333 14.6248 16.8333H12.3332C12.1122 16.8333 11.9002 16.7455 11.7439 16.5892C11.5876 16.4329 11.4998 16.221 11.4998 16C11.4998 15.7789 11.5876 15.567 11.7439 15.4107C11.9002 15.2544 12.1122 15.1666 12.3332 15.1666H14.6248ZM4.62484 5.16663C4.62484 4.94561 4.71263 4.73365 4.86892 4.57737C5.0252 4.42109 5.23716 4.33329 5.45817 4.33329H12.5415C12.7625 4.33329 12.9745 4.42109 13.1308 4.57737C13.287 4.73365 13.3748 4.94561 13.3748 5.16663V6.41663C13.3748 6.63764 13.287 6.8496 13.1308 7.00588C12.9745 7.16216 12.7625 7.24996 12.5415 7.24996C12.3205 7.24996 12.1085 7.16216 11.9522 7.00588C11.796 6.8496 11.7082 6.63764 11.7082 6.41663V5.99996H9.83317V11H10.8748C11.0959 11 11.3078 11.0878 11.4641 11.244C11.6204 11.4003 11.7082 11.6123 11.7082 11.8333C11.7082 12.0543 11.6204 12.2663 11.4641 12.4225C11.3078 12.5788 11.0959 12.6666 10.8748 12.6666H7.12484C6.90382 12.6666 6.69186 12.5788 6.53558 12.4225C6.3793 12.2663 6.2915 12.0543 6.2915 11.8333C6.2915 11.6123 6.3793 11.4003 6.53558 11.244C6.69186 11.0878 6.90382 11 7.12484 11H8.1665V5.99996H6.2915V6.41663C6.2915 6.63764 6.20371 6.8496 6.04743 7.00588C5.89115 7.16216 5.67918 7.24996 5.45817 7.24996C5.23716 7.24996 5.0252 7.16216 4.86892 7.00588C4.71263 6.8496 4.62484 6.63764 4.62484 6.41663V5.16663Z" fill="black"/> 4183 </svg> 4184 <span>Input Address Manually</span> 4185 </label> 4186 </div> 4187 <div class="col-6 position-relative"> 4188 <label for="address-upload" class="address-upload"> 4189 <svg xmlns="assets/logo/logonix-anim.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 4190 <path d="M5.58317 9.48079V2.27246L3.6415 4.21413L3.0515 3.61579L5.99984 0.666626L8.949 3.61579L8.359 4.21496L6.4165 2.27246V9.48079H5.58317ZM1.51317 12.3333C1.12928 12.3333 0.809004 12.205 0.552337 11.9483C0.29567 11.6916 0.167059 11.3711 0.166504 10.9866V8.96746H0.999837V10.9866C0.999837 11.115 1.05317 11.2327 1.15984 11.34C1.2665 11.4472 1.384 11.5005 1.51234 11.5H10.4873C10.6151 11.5 10.7326 11.4466 10.8398 11.34C10.9471 11.2333 11.0004 11.1155 10.9998 10.9866V8.96746H11.8332V10.9866C11.8332 11.3705 11.7048 11.6908 11.4482 11.9475C11.1915 12.2041 10.8709 12.3327 10.4865 12.3333H1.51317Z" fill="black"/> 4191 </svg> 4192 <span>Upload Address Picture</span> 4193 </label> 4194 <input 4195 id="address-upload" 4196 type="file" 4197 accept="image/png, image/jpeg" 4198 style="position: absolute; padding: 0;width: 1px;height: 1px" 4199 > 4200 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 4201 </div> 4202 </div> 4203 <img width="150" height="" src="" class="photo-address" style="display: none;"> 4204 4205 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4206 <div class="col-12"> 4207 <textarea 4208 id="delivery_address" 4209 data-properties="alamat-penerima" 4210 class="form-control input__field col-12" 4211 placeholder="" 4212 required 4213 ></textarea> 4214 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4215 4216 </div> 4217 </div> 4218 <div class="form-group row mb-2 mb-lg-4 form-address"> 4219 <div class="col-6 position-relative"> 4220 <input 4221 id="recipient_number" 4222 type="text" 4223 data-properties="telepon-penerima" 4224 class="form-control input__field" 4225 placeholder="" 4226 required 4227 > 4228 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4229 </div> 4230 <div class="col-6 position-relative"> 4231 <input 4232 id="company" 4233 type="text" 4234 data-properties="company" 4235 class="form-control input__field" 4236 placeholder="" 4237 > 4238 <label for="company" class="input__label">Company (Optional)</label> 4239 </div> 4240 </div> 4241 <div class="form-group row mb-2 mb-lg-4 form-address"> 4242 <div class="col-6 position-relative"> 4243 <input 4244 id="province" 4245 type="text" 4246 class="form-control input__field" 4247 placeholder="" 4248 value="Jakarta" 4249 data-properties="province" 4250 > 4251 <label for="province" class="input__label">Province</label> 4252 </div> 4253 <div class="col-6 position-relative"> 4254 <select id="zip" class="form-control select-search" required></select> 4255 </div> 4256 </div> 4257 </form> 4258 </div> 4259 </div> 4260 </div> 4261 <div class="addonsPurchase"> 4262 <h4 class="text-uppercase">add-ons</h4> 4263 <div class="addons"> 4264 <p>No Add-Ons</p> 4265 <!-- 4266 <button class="add-addon"> 4267 <svg xmlns="assets/logo/logonix-anim.gif" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4268 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4269 </svg>
4270 <span>Enhance my moment with Add-ons</span> 4271 </button> 4272 --> 4273 </div> 4274 </div> 4275 </div> 4276 4277 </div> 4278 </div> 4279 4280
4280<script> 4281 document.addEventListener('DOMContentLoaded', function() { 4282 // Detect iOS 4283 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4284 4285 if (isIOS) { 4286 document.querySelector('.formAddressPurchase').classList.add('ios'); 4287 4288 // iOS specific fixes 4289 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4290 4291 inputs.forEach(function(input) { 4292 // Force enable touch events on iOS 4293 input.style.webkitUserSelect = 'text'; 4294 input.style.webkitTouchCallout = 'default'; 4295 input.style.pointerEvents = 'auto'; 4296 input.style.touchAction = 'manipulation'; 4297 4298 // Add explicit touch event listeners for iOS 4299 input.addEventListener('touchstart', function(e) { 4300 e.stopPropagation(); 4301 this.focus(); 4302 }, { passive: false }); 4303 4304 input.addEventListener('touchend', function(e) { 4305 e.preventDefault(); 4306 e.stopPropagation(); 4307 this.focus(); 4308 this.click(); 4309 }, { passive: false }); 4310 4311 // Force focus on tap for iOS 4312 input.addEventListener('click', function(e) { 4313 e.stopPropagation(); 4314 if (document.activeElement !== this) { 4315 this.focus(); 4316 } 4317 }); 4318 }); 4319 4320 // Fix for label overlapping on iOS 4321 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4322 labels.forEach(function(label) { 4323 label.style.pointerEvents = 'none'; 4324 label.addEventListener('touchstart', function(e) { 4325 e.preventDefault(); 4326 var input = this.parentNode.querySelector('.input__field'); 4327 if (input) { 4328 input.focus(); 4329 } 4330 }); 4331 }); 4332 } 4333 4334 // Handle input state for all browsers, especially iOS 4335 var inputs = document.querySelectorAll('.input__field'); 4336 4337 inputs.forEach(function(input) { 4338 // Handle input events 4339 input.addEventListener('input', function() { 4340 if (this.value.trim() !== '') { 4341 this.classList.add('has-value'); 4342 } else { 4343 this.classList.remove('has-value'); 4344 } 4345 }); 4346 4347 // Handle focus 4348 input.addEventListener('focus', function() { 4349 this.classList.add('focused'); 4350 // iOS specific: ensure input is visible 4351 if (isIOS) { 4352 setTimeout(function() { 4353 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4354 }, 300); 4355 } 4356 }); 4357 4358 // Handle blur 4359 input.addEventListener('blur', function() { 4360 this.classList.remove('focused'); 4361 if (this.value.trim() !== '') { 4362 this.classList.add('has-value'); 4363 } else { 4364 this.classList.remove('has-value'); 4365 } 4366 }); 4367 4368 // Initial check for pre-filled values 4369 if (input.value.trim() !== '') { 4370 input.classList.add('has-value'); 4371 } 4372 }); 4373 4374 // Additional iOS fixes 4375 if (isIOS) { 4376 // Prevent iOS Safari from adding default styling 4377 document.addEventListener('touchstart', function() {}, { passive: true }); 4378 4379 // Fix viewport issues on iOS 4380 var viewport = document.querySelector('meta[name=viewport]'); 4381 if (viewport) { 4382 viewport.setAttribute('content', 4383 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4384 ); 4385 } 4386 } 4387 }); 4388 </script>
4388 4389 </div> 4390 <div class="purchase-button-wrapper"> 4391 <div class="purchase-button btn-address row m-0"> 4392 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4393 4394 <button class="back-purchase-button back-address text-uppercase"> 4395 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="assets/logo/logonix-anim.gif"> 4396 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4397 </svg> 4398 <span>Back</span> 4399 </button> 4400 4401 </div> 4402 <div class="btn-next-card col-12 col-lg-10 text-right"> 4403 4404 <!-- 4405 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4406 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="assets/logo/logonix-anim.gif"> 4407 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4408 </svg> 4409 <span>Back</span> 4410 </button> 4411 --> 4412 4413 4414 <button 4415 4416 id="addtocart-card" 4417 4418 class="btn next-address text-uppercase" 4419 4420 > 4421 <span>add to cart</span> 4422 </button> 4423 </div> 4424 </div> 4425 4426 </div> 4427 </div> 4428 </div> 4429 4430 </div> 4431 </div> 4432 <div id="backgroundPopup"></div> 4433 4434 4435 4436 <input 4437 data-index="1" 4438 type="hidden" 4439 id="properties-delivery-date" 4440 name="properties[Delivery Date]" 4441 value="-" 4442 > 4443 <input 4444 data-index="2" 4445 type="hidden" 4446 id="properties-delivery-time" 4447 name="properties[Delivery Time]" 4448 value="-" 4449 > 4450 <input 4451 data-index="4" 4452 type="hidden" 4453 id="properties-nama-penerima" 4454 name="properties[Nama Penerima]" 4455 value="-" 4456 > 4457 <input 4458 data-index="5" 4459 type="hidden" 4460 id="properties-alamat-penerima" 4461 name="properties[Alamat Penerima]" 4462 value="-" 4463 > 4464 <input 4465 data-index="6" 4466 type="hidden" 4467 id="properties-kodepos" 4468 name="properties[Kodepos]" 4469 value="-" 4470 > 4471 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4472 4473 4474 <input 4475 data-index="8" 4476 type="hidden" 4477 id="properties-kartu-nama-penerima" 4478 name="properties[Kartu Nama Penerima]" 4479 value="-" 4480 > 4481 4482 <textarea 4483 data-index="9" 4484 type="hidden" 4485 id="properties-kartu-pesan" 4486 name="properties[Kartu Pesan]" 4487 style="display: none" 4488 >-</textarea> 4489 4490 4491 4492 <input 4493 data-index="10" 4494 type="hidden" 4495 id="properties-kartu-nama-pengirim" 4496 name="properties[Kartu Nama Pengirim]" 4497 value="-" 4498 > 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 <!-- Additional Shipping --> 4518 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4519 <input 4520 type="hidden" 4521 id="properties-kota-pengiriman-country" 4522 name="properties[Country]" 4523 value="Indonesia" 4524 > 4525 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4526 4527 <input type="hidden" id="properties-time" name="properties[Time]"> 4528 <input type="hidden" id="properties-card" name="properties[Card]"> 4529 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4530 4531 <input 4532 type="hidden" 4533 id="properties-company" 4534 name="properties[Company]" 4535 value="" 4536 > 4537
4537<script> 4538 4539 $(document).ready(function(){ 4540 4541 var text_max_papan1=150; 4542 var msg_text_papan1=""; 4543 $('#kartu-ucapan-ucapan').keyup(function(){ 4544 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4545 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4546 }); 4547 4548 var notes_papan1 = [ 4549 4550 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4551 4552 ]; 4553 $('#show_note_papan1').click(function(event){ 4554 event.preventDefault(); 4555 var idx_papan1=parseInt($('#note_id_papan1').val()); 4556 if(isNaN(idx_papan1)){ 4557 idx_papan1=0; 4558 }else{ 4559 idx_papan1++; 4560 idx_papan1=idx_papan1%notes_papan1.length; 4561 } 4562 var note_papan1=notes_papan1[idx_papan1][1]; 4563 $('#note_id_papan1').val(idx_papan1); 4564 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4565 $('#msgDelivery').val(note_papan1); 4566 4567 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4568 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4569 if(isNaN(idx_2_papan1)){ 4570 idx_2_papan1=0; 4571 }else{ 4572 idx_2_papan1++; 4573 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4574 } 4575 $('#note_btn_id_papan1').val(idx_2_papan1); 4576 //var note_btn=note_btn_text[idx_2][1]; 4577 //$('#note_btn').text(note_btn); 4578 }); 4579 4580 var text_max_papan2=150; 4581 var msg_text_papan2=""; 4582 $('#kartu-ucapan-ucapan').keyup(function(){ 4583 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4584 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4585 }); 4586 4587 var notes_papan2 = [ 4588 4589 [0,"Congratulations (ucapan)."], [1,"Selamat dan sukses atas dibukanya (ucapan personal)."],[2,"Congratulations for the grand opening of (nama toko/bisnis)."],[3,"Happy Graduation (nama)."] 4590 4591 ]; 4592 $('#show_note_papan2').click(function(event){ 4593 event.preventDefault(); 4594 var idx_papan2=parseInt($('#note_id_papan2').val()); 4595 if(isNaN(idx_papan2)){ 4596 idx_papan2=0; 4597 }else{ 4598 idx_papan2++; 4599 idx_papan2=idx_papan2%notes_papan2.length; 4600 } 4601 var note_papan2=notes_papan2[idx_papan2][1]; 4602 $('#note_id_papan2').val(idx_papan2); 4603 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4604 $('#msgDelivery').val(note_papan2); 4605 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4606 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4607 if(isNaN(idx_2_papan2)){ 4608 idx_2_papan2=0; 4609 }else{ 4610 idx_2_papan2++; 4611 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4612 } 4613 $('#note_btn_id_papan2').val(idx_2_papan2); 4614 //var note_btn=note_btn_text[idx_2][1]; 4615 //$('#note_btn').text(note_btn); 4616 }); 4617 4618 var text_max_papan3=150; 4619 var msg_text_papan3=""; 4620 $('#kartu-ucapan-ucapan').keyup(function(){ 4621 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4622 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4623 }); 4624 4625 var notes_papan3 = [ 4626 4627 [0,"Turut Berduka Cita atas meninggalnya almarhum / almarhumah (Nama)."], [1,"Our Deepest Condolences for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [2,"Our Deepest Sympathy for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [3,"Innalillahi wa innailaihi rojiun, Turut berduka cita atas meninggalnya (nama)."] 4628 4629 ]; 4630 $('#show_note_papan3').click(function(event){ 4631 event.preventDefault(); 4632 var idx_papan3=parseInt($('#note_id_papan3').val()); 4633 if(isNaN(idx_papan3)){ 4634 idx_papan3=0; 4635 }else{ 4636 idx_papan3++; 4637 idx_papan3=idx_papan3%notes_papan3.length; 4638 } 4639 var note_papan3=notes_papan3[idx_papan3][1]; 4640 $('#note_id_papan3').val(idx_papan3);
4641 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4642 $('#msgDelivery').val(note_papan3); 4643 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4644 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4645 if(isNaN(idx_2_papan3)){ 4646 idx_2_papan3=0; 4647 }else{ 4648 idx_2_papan3++; 4649 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4650 } 4651 $('#note_btn_id_papan3').val(idx_2_papan3); 4652 //var note_btn=note_btn_text[idx_2][1]; 4653 //$('#note_btn').text(note_btn); 4654 }); 4655 4656 var text_max_papan4=150; 4657 var msg_text_papan4=""; 4658 $('#kartu-ucapan-ucapan').keyup(function(){ 4659 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4660 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4661 }); 4662 4663 $('#show_note_papan4').click(function(event){ 4664 var notes_papan4 = [ 4665 [0,"Hereâs to youâsteadier, stronger and better every day."], 4666 [1,"Warmest wishes for a speedy recovery!"], 4667 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4668 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4669 ]; 4670 event.preventDefault(); 4671 var idx_papan4=parseInt($('#note_id_papan4').val()); 4672 console.log(idx_papan4, 'idx_papan4') 4673 if(isNaN(idx_papan4)){ 4674 idx_papan4=0; 4675 }else{ 4676 idx_papan4++; 4677 idx_papan4=idx_papan4%notes_papan4.length; 4678 } 4679 var note_papan4=notes_papan4[idx_papan4][1]; 4680 $('#note_id_papan4').val(idx_papan4); 4681 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4682 console.log(note_papan4, 'note_papan4') 4683 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4684 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4685 if(isNaN(idx_2_papan4)){ 4686 idx_2_papan4=0; 4687 }else{ 4688 idx_2_papan4++; 4689 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4690 } 4691 $('#note_btn_id_papan4').val(idx_2_papan4); 4692 }); 4693 4694 /* 4695 $("#jenisPapan").change(function(){ 4696 $( "select option:selected").each(function(){ 4697 if($(this).attr("value")=="Happy Wedding"){ 4698 $("#suggest-messages a").hide(); 4699 $("#show_note_papan1").show(); 4700 $("#kartu-ucapan-papan").val(""); 4701 } 4702 if($(this).attr("value")=="Congratulations"){ 4703 $("#suggest-messages a").hide(); 4704 $("#show_note_papan2").show(); 4705 $("#kartu-ucapan-papan").val(""); 4706 } 4707 if($(this).attr("value")=="Duka Cita"){ 4708 $("#suggest-messages a").hide(); 4709 $("#show_note_papan3").show(); 4710 $("#kartu-ucapan-papan").val(""); 4711 } 4712 }); 4713 }).change(); 4714 */ 4715 4716 4717 4718 4719 4720 $(".variant-metafield").each(function(){ 4721 const t = $(this) 4722 const id = t.attr("id") 4723 const target = $(`[data-select=${id}]`) 4724 t.on('select2:selecting', function(e) { 4725 const data = e.params.args.data 4726 target.val(data.text) 4727 }); 4728 }) 4729 }) 4730 </script>
4730 4731 4732 <div id="popupCart"> 4733 <div class="container"> 4734 <div class="wrapperPopupCart"> 4735 <div class="headerPopupCart"> 4736 <div class="d-flex pl-5 pr-5 p-4"> 4737 <svg xmlns="assets/logo/logonix-anim.gif" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4738 <path d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" fill="black"/> 4739 </svg> 4740 <span>item added to your cart</span> 4741 </div> 4742 <a class="close-purchase-popup"> 4743 <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4744 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 4745 </svg> 4746 </a> 4747 4748 </div> 4749 <div class="contentPopupCart"> 4750 <div class="pl-5 pr-5 p-4"> 4751 <div class="itemContent row m-0 justify-content-between"> 4752 <div class="col-2 align-self-center"> 4753 4754 <img 4755 class="d-block" 4756 width="80" 4757 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4758 > 4759 </div> 4760 <div class="col-10 align-self-center"> 4761 <div class="row pl-3"> 4762 <div class="col-12 col-lg-7"> 4763 <span class="titleCartPopup text-uppercase">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</span> 4764 </div> 4765 <div class="d-flex justify-content-end col-12 col-lg-5"> 4766 <span class="deleteCartPopup hide">Delete</span> 4767 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4768 </div> 4769 </div> 4770 </div> 4771 </div> 4772 <div class="itemProperties"> 4773 4774 <div class="propDeliver"> 4775 <h4>delivery option detail</h4> 4776 <p> 4777 <span>delivery city</span> 4778 <span class="propDeliveryCity">jakarta</span> 4779 </p> 4780 <p> 4781 <span>delivery date</span> 4782 <span class="propDeliveryDate">24/03/2025</span> 4783 </p> 4784 <p> 4785 <span>delivery time</span> 4786 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4787 </p> 4788 </div> 4789 <div class="propAddress"> 4790 <h4>delivery option detail</h4> 4791 <p> 4792 <span>RECIPIENT NAME</span> 4793 <span class="propDeliveryName">jane doe</span> 4794 </p> 4795 <p> 4796 <span>delivery address</span> 4797 <span class="propDeliveryAddress" 4798 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4799 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4800 > 4801 </p> 4802 <p> 4803 <span>recipient phone number</span> 4804 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4805 </p> 4806 <p> 4807 <span>PROVINCE</span> 4808 <span class="propDeliveryProv">Jakarta</span> 4809 </p> 4810 <p> 4811 <span>postal code</span> 4812 <span class="propDeliveryZip">12710</span> 4813 </p> 4814 4815 4816 </div> 4817 4818 </div> 4819 <div class="itemAddonCart"> 4820 <div class="toggleAddonCart d-flex justify-content-between"> 4821 <h4>add-ons (0)</h4> 4822 <svg xmlns="assets/logo/logonix-anim.gif" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4823 <path d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" fill="black"/> 4824 </svg> 4825 </div> 4826 <div class="wrapperItemAddonCart"></div> 4827 </div> 4828 4829 </div> 4830 </div>
4831 <div class="footerPopupCart"> 4832 <div class="row m-0 pl-5 pr-5 p-4"> 4833 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4834 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4835 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4836 </div> 4837 </div> 4838 </div> 4839 </div> 4840 </div> 4841 4842 4843
4843<script> 4844 const shareButton = document.getElementById('shareButton'); 4845 4846 shareButton.addEventListener('click', () => { 4847 if (navigator.share) { 4848 navigator.share({ 4849 title: "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel", 4850 url: "/products/blossom-shine", 4851 text: 'Check out this page!' 4852 }) 4853 .then(() => console.log('Successful share')) 4854 .catch((error) => console.log('Error sharing', error)); 4855 } else { 4856 alert('Web Share API is not supported in this browser.'); 4857 } 4858 }); 4859 4860 // Inventory validation function 4861 function checkInventoryStatus() { 4862 const productSelect = document.getElementById('productSelect'); 4863 const purchaseButton = document.querySelector('#personalizeBtn button'); 4864 4865 if (!productSelect || !purchaseButton) return; 4866 4867 const selectedVariantId = productSelect.value; 4868 4869 // Get variant data from Shopify 4870 fetch(`/products/blossom-shine.js`) 4871 .then(response => response.json()) 4872 .then(product => { 4873 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4874 4875 if (selectedVariant) { 4876 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4877 selectedVariant.inventory_management === 'shopify' && 4878 selectedVariant.inventory_policy !== 'continue'; 4879 4880 if (isOutOfStock) { 4881 purchaseButton.disabled = true; 4882 purchaseButton.textContent = 'Out of Stock'; 4883 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4884 purchaseButton.style.backgroundColor = '#cccccc'; 4885 purchaseButton.style.cursor = 'not-allowed'; 4886 } else { 4887 // Check if button was disabled due to other conditions 4888 4889 4890 4891 4892 4893 4894 4895 4896 const isOtherDisabled = false || true || false; 4897 4898 if (!isOtherDisabled) { 4899 purchaseButton.disabled = false; 4900 purchaseButton.textContent = 'customize your flower board'; 4901 purchaseButton.removeAttribute('data-out-of-stock'); 4902 purchaseButton.style.backgroundColor = ''; 4903 purchaseButton.style.cursor = ''; 4904 } 4905 } 4906 } 4907 }) 4908 .catch(error => { 4909 console.error('Error checking inventory:', error); 4910 }); 4911 } 4912 4913 // Check inventory on page load 4914 document.addEventListener('DOMContentLoaded', function() { 4915 checkInventoryStatus();
4916 4917 // Listen for variant changes 4918 const productSelect = document.getElementById('productSelect'); 4919 if (productSelect) { 4920 productSelect.addEventListener('change', checkInventoryStatus); 4921 } 4922 }); 4923 4924 // Prevent form submission if out of stock 4925 document.addEventListener('click', function(e) { 4926 if (e.target.matches('button[data-out-of-stock="true"]')) { 4927 e.preventDefault(); 4928 e.stopPropagation(); 4929 alert('This product is currently out of stock and cannot be purchased.'); 4930 return false; 4931 } 4932 }); 4933 </script>
4933 4934 4935 4936 4937 </div> 4938 4939 </div> 4940 </div> 4941 </div> 4942 </div> 4943 <div id="product-bottom"> 4944 4945 <div class="container"> 4946 4947 4948 4949 4950 4951 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4952 <div class="short-desc"> 4953 <ul> 4954 <li><strong>Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.</strong></li> 4955 </div> 4956 <label class="more-mobile">Show More â</label> 4957 </div> 4958 4959 <style> 4960 .animated-title { 4961 text-align: center; 4962 font-weight: bold; 4963 color: #079c02; 4964 font-size: 28px; 4965 position: relative; 4966 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4967 } 4968 4969 /* Efek glow / bercahaya hijau */ 4970 @keyframes glow { 4971 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4972 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4973 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4974 } 4975 4976 /* Efek gerakan naik turun */ 4977 @keyframes moveUpDown { 4978 0% { transform: translateY(0px); } 4979 50% { transform: translateY(-5px); } 4980 100% { transform: translateY(0px); } 4981 } 4982 </style> 4983 4984
4984<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4984 4985
4985<script> 4986 CartJS.init({"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"IDR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}); 4987 4988 const productType = $("[data-product-type]").data("product-type") 4989 const productDate = Date.parse(new Date()) 4990 4991 const shop = 'outerbloom1.myshopify.com' 4992 const host = 'https://app.asmaraku.com' 4993 // const host = 'http://localhost:5001' 4994 4995 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4996 4997 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4998 4999 $("#properties-time").val(new Date().getTime()) 5000 5001 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 5002 5003 if(!isIOS) { 5004 $("#full-date").attr("type", "button") 5005 } 5006 5007 let dateTime = new Date(); 5008 let today = dateTime.getDate(); 5009 let day = dateTime.getDay(); 5010 let hour = dateTime.getHours(); 5011 let min = dateTime.getMinutes(); 5012 let timeOfDay = hour + (min / 100); 5013 5014 async function getFetch(url) { 5015 const response = await fetch(url); 5016 let status = false 5017 let result 5018 if(response.ok) { 5019 status = true 5020 result = await response.json(); 5021 } 5022 return { 5023 status, 5024 data: result 5025 } 5026 } 5027 5028 5029 5030 function setCookie(cname, cvalue, exMins) { 5031 var d = new Date(); 5032 d.setTime(d.getTime() + (exMins*60*1000)); 5033 var expires = "expires="+d.toUTCString(); 5034 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 5035 } 5036 5037 function getCookie(cname) { 5038 let name = cname + "="; 5039 let decodedCookie = decodeURIComponent(document.cookie); 5040 let ca = decodedCookie.split(';'); 5041 for(let i = 0; i <ca.length; i++) { 5042 let c = ca[i]; 5043 while (c.charAt(0) == ' ') { 5044 c = c.substring(1); 5045 } 5046 if (c.indexOf(name) == 0) { 5047 return c.substring(name.length, c.length); 5048 } 5049 } 5050 return ""; 5051 } 5052 5053 async function renderDate() { 5054 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 5055 console.log(dataDate, 'renderDate') 5056 const data = dataDate?.data 5057 const date = data.date 5058 const time = data.time 5059 5060 console.log(date, 'DATE') 5061 5062 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 5063 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5064 const htmlDate = []
5065 for(let i = 0;i < date.length;i++) { 5066 const full = date[i].date 5067 const d = new Date(date[i].date); 5068 const day = weekday[d.getDay()]; 5069 const dt = d.getDate(); 5070 const mt = monthly[d.getMonth()]; 5071 const yr = d.getFullYear(); 5072 const isDate = Boolean(date[i].isEnabled) 5073 const cutoffpagi = date[i].cutoff?.pagi 5074 const cutoffsiang = date[i].cutoff?.siang 5075 const cutoffMalam = date[i].cutoff?.Malam 5076 var html = ` 5077 <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}> 5078 ${dt === today ? 5079 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 5080 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 5081 } 5082 </button> 5083 ` 5084 htmlDate.push(html) 5085 } 5086 const htmlTime = []
5087 for(var i = 0;i < time.length;i++) { 5088 const timeText = time[i].text 5089 const timeTime = time[i].time 5090 const timeEnabled = time[i].isEnabled 5091 var html = ` 5092 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 5093 ` 5094 htmlTime.push(html) 5095 } 5096 const deliveryDate = document.getElementById("deliveryDate"); 5097 if(deliveryDate) { 5098 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 5099 $("#deliveryTime").html(htmlTime) 5100 if(productType !== '') { 5101 console.log("clarity event " + productType + ' calendaring') 5102 window.clarity("event", `${productType} calendaringSchedule`) 5103 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 5104 } 5105 } 5106 } 5107 5108 async function getProvince(city) { 5109 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 5110 console.log(province, 'province') 5111 $("#province").val(province) 5112 } 5113 5114 async function renderAddress() { 5115 let current 5116 if(getCookie("location_delivery")){ 5117 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 5118 } 5119 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 5120 console.log(address) 5121 const data = address?.data?.city 5122 const htmlAddress = [] 5123 const grouping = []
5124 for(let i = 0;i < data?.length;i++) { 5125 if(data[i]){ 5126 if(data[i]?.group) { 5127 grouping.push(data[i].group) 5128 } 5129 const price = rupiah.format(data[i]?.rate) 5130 let promo = '(Promo Free Delivery)' 5131 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 5132 promo = '(at SCBD, Ashta)' 5133 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 5134 promo = '(at Kuningan, ITC Kuningan)' 5135 } else if(data[i]?.name === 'BSD - PickUp'){ 5136 promo = '(at Goldfinch Gading Serpong)' 5137 } else if(data[i]?.name === 'Kota Lainnya'){ 5138 promo = '' 5139 } 5140 htmlAddress.push(`<option data-province="${data[i]?.province}" data-city="${data[i]?.city}" data-note="${data[i]?.note}" data-price="${data[i]?.rate}" value="${data[i]?.name}">${data[i]?.name === 'Kota Lainnya' ? 'Seluruh Kota Lain di Indonesia' : data[i]?.name} ${data[i]?.rate > 0 ? `(${price})` : promo}</option>`) 5141 } 5142 } 5143 5144 const deliveryCity = document.getElementById("cities"); 5145 if(deliveryCity) { 5146 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 5147 if(!isIOS) { 5148 $(deliveryCity).select2(); 5149 } 5150 } 5151 } 5152 5153 async function renderZip(v, v2, v3) { 5154 const deliveryZip = document.getElementById("zip"); 5155 if(v === '') { 5156 return 5157 } 5158 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 5159 let zip = dataZip?.data?.zip 5160 console.log(zip) 5161 let htmlZip = []
5162 for(let i = 0; i < zip?.length;i++) { 5163 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 5164 } 5165 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 5166 } 5167 5168 renderDate() 5169 renderAddress() 5170 5171 let rupiah = new Intl.NumberFormat('id-ID', { 5172 style: 'currency', 5173 currency: 'IDR', 5174 maximumFractionDigits: 0, 5175 minimumFractionDigits: 0 5176 }); 5177 5178 async function insertCard(data) { 5179 const response = await fetch(`${host}/api/card/new`, { 5180 method: "POST", 5181 headers: { 5182 'Content-Type': 'application/json', 5183 }, 5184 body: data 5185 }) 5186 const result = await response.json() 5187 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 5188 $("#greetingCard").attr("data-index", rowIndex) 5189 return result 5190 } 5191 5192 async function updateCard(data){ 5193 const rowIndex = $("#greetingCard").data("index") 5194 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 5195 method: "PUT", 5196 headers: { 5197 'Content-Type': 'application/json', 5198 }, 5199 body: data 5200 }) 5201 return response 5202 } 5203 5204 function bytesToSize(bytes) { 5205 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 5206 for (var i = 0; i < sizes.length; i++) { 5207 if (bytes <= 1024) { 5208 return bytes + ' ' + sizes[i]; 5209 } else { 5210 bytes = parseFloat(bytes / 1024).toFixed(2) 5211 } 5212 } 5213 return bytes + ' P'; 5214 } 5215 5216 async function uploadMedia(uri, type) { 5217 nameq = $("#properties-nama-penerima").val() 5218 dear = $("#properties-kartu-nama-penerima").val() 5219 card = $("[data-properties=ucapan]").val() 5220 sender = $("#properties-kartu-nama-pengirim").val() 5221 photo = $("#properties-photo").val() 5222 video = $("#properties-video").val() 5223 status = "Product" 5224 5225 const name = qrID 5226 let formData = new FormData(); 5227 formData.append("file", uri); 5228 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5229 method: "POST", 5230 body: formData 5231 }) 5232 const result = await response.json(); 5233 if(result) { 5234 const url = result.url 5235 if(type === 'image/jpeg') { 5236 $("#properties-photo").val(url) 5237 $(".preview-image").show() 5238 $(".remove-image").show() 5239 photo = url 5240 } else { 5241 $("#properties-video").val(url) 5242 $("#label-input-video span").text("Change File") 5243 $(".case-qrcode-preview p").text("Scan here for a secret message") 5244 $(".remove-media").show() 5245 $("#product-top #product-meta .case-video-preview p").html(`<span class="replace-video" tite="Replace Video">${uri.name} (${bytesToSize(uri.size)})</span><span> is uploaded</span>`) 5246 $("[for=input-video]").hide() 5247 video = url 5248 } 5249 $(".case-video-preview").show() 5250 $(".steps-card-preview").removeClass("loading") 5251 // updateCard(nameq, dear, card, sender, photo, video, status) 5252 5253 $(".nextBtn").attr("disabled", false) 5254 } 5255 } 5256 5257 function randomString(length, chars) { 5258 var result = ''; 5259 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5260 return result; 5261 } 5262 5263 function getNoteCity(fulldate) { 5264 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5265 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5266 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5267 const d = new Date(h_1); 5268 const day = weekday[d.getDay()]; 5269 const dt = d.getDate(); 5270 const mt = monthly[d.getMonth()]; 5271 const yr = d.getFullYear(); 5272 const p = $("#cities").parent(".form-group") 5273 } 5274 5275 function disabledSameDay() { 5276 let btnFirst = $("#deliveryDate").find("button:first-child") 5277 let getDay = new Date().getDay(); 5278 5279 5280 5281 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5282 if(hour >= 14.00){ 5283 btnFirst.attr("disabled", true) 5284 } 5285 } else if(getDay == 6){ 5286 if(hour >= 16.00){ 5287 btnFirst.attr("disabled", true) 5288 } 5289 } else if(getDay == 0){ 5290 if(hour >= 16.00){ 5291 btnFirst.attr("disabled", true) 5292 } 5293 } 5294 5295 5296 } 5297 5298 function disabledays(date) { 5299 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5300 //if u have to disable a list of day 5301 let removeDays 5302 5303 5304 5305 removeDays = ["2025-2-13", "2025-2-14"]; 5306 5307 if ($.inArray(ymd, removeDays) >= 0) { 5308 return [false]; 5309 } else { 5310 let day = date.getDay(); 5311 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5312 return [(day == 0), '']; 5313 } 5314 5315 if(day == 0){ 5316 return [(day == 0), '']; 5317 } 5318 5319 5320 return [(day != 0), '']; 5321 } 5322 } 5323 5324 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5325 /* Written by Deden Fathurahman ([email protected]). */ 5326 ( function( factory ) { 5327 if ( typeof define === "function" && define.amd ) { 5328 5329 // AMD. Register as an anonymous module. 5330 define( [ "../widgets/datepicker" ], factory ); 5331 } else { 5332 5333 // Browser globals 5334 factory( jQuery.datepicker ); 5335 } 5336 }( function( datepicker ) { 5337 5338 datepicker.regional.id = { 5339 closeText: "Tutup", 5340 prevText: "<mundur", 5341 nextText: "maju>", 5342 currentText: "Today", 5343 monthNames: [ "January","February","March","April","May","Juny", 5344 "July","August","September","October","November","December" ], 5345 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5346 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5347 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5348 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5349 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5350 weekHeader: "Mg", 5351 dateFormat: "D, dd M", 5352 firstDay: 0, 5353 isRTL: false, 5354 showMonthAfterYear: false, 5355 yearSuffix: "" }; 5356 datepicker.setDefaults( datepicker.regional.id ); 5357 5358 return datepicker.regional.id; 5359 5360 } ) ); 5361 5362 function loadPopup() { 5363 $("#backgroundPopup").fadeIn("slow"); 5364 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5365 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5366 if(firstSection.hasClass("purchasePersonalize")) { 5367 if(productType !== '') { 5368 console.log("clarity event " + productType + ' personalize') 5369 window.clarity("event", `${productType} cardPersonalization`) 5370 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5371 } 5372 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5373 console.log("clarity event " + productType + ' personalizeBoard') 5374 window.clarity("event", `${productType} personalizeBoard`) 5375 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5376 } 5377 firstSection.removeClass("hide") 5378 5379 // Auto-trigger addon loading when addon section becomes visible 5380 setTimeout(function() { 5381 const addonSection = $(".purchaseAddon") 5382 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5383 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5384 $("[data-addon=upsell-all]").trigger("click") 5385 } 5386 } 5387 }, 200) 5388 } 5389 5390 function disablePopup() { 5391 $("#backgroundPopup").fadeOut("slow"); 5392 $(".purchasePopup").fadeOut("slow"); 5393 $("#popupCart").fadeOut("slow"); 5394 } 5395
5396 function scrollTo(parent, div, dur) { 5397 $(parent).animate({ 5398 scrollTop: $(div).offset().top 5399 }, dur); 5400 } 5401 5402 function loadPopupPersonalize() { 5403 const div = "#purchaseProduct" 5404 const p = "html, body, .product-meta" 5405 $("p.error").remove() 5406 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5407 const isCity = $("#cities[required]") 5408 const isDate = $("#propDeliveryDate[required]") 5409 const isTime = $("#propDeliveryTime[required]") 5410 // loadPopup() 5411 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5412 loadPopup() 5413 } 5414 if(isCity.val() == '') { 5415 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5416 scrollTo(p, div, 500) 5417 } 5418 if(isDate.val() == '') { 5419 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5420 scrollTo(p, div, 500) 5421 } 5422 if(isTime.val() == '') { 5423 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5424 scrollTo(p, div, 500) 5425 } 5426 } 5427 5428 function quantityCounter() { 5429 $(document).on("click", ".item-card.selected .q_up", function () { 5430 var C = $(this).attr("data-id"), 5431 S = 5432 parseInt( 5433 $(this) 5434 .siblings(".quantity-cart-" + C) 5435 .val() 5436 ) + 1; 5437 $(this).attr("data-quantity", S), 5438 $(this) 5439 .siblings(".quantity-cart-" + C) 5440 .val(S); 5441 }), 5442 $(document).on("click", ".item-card.selected .q_down", function () { 5443 var C = $(this).attr("data-id"), 5444 S = parseInt( 5445 $(this) 5446 .siblings(".quantity-cart-" + C) 5447 .val() 5448 ); 5449 0 < S && $(this).attr("data-quantity", S - 1), 5450 0 < S && 5451 $(this) 5452 .siblings(".quantity-cart-" + C) 5453 .val(S - 1); 5454 }); 5455 } 5456 5457 quantityCounter() 5458 5459 const itemAddon = $(".item-card").length 5460 const nofree = $(".nofree").length 5461 5462 const upsell = '' 5463 5464 if(nofree === itemAddon) { 5465 // $("#itemAddons").html("<p>No Items available</p>") 5466 } 5467 5468 $("#itemAddons .item-card").each(function(e){ 5469 $("#itemAddons").attr("data-length", e) 5470 }) 5471 5472 $("[data-addon]").click(function(){ 5473 5474 5475 5476 const t = $(this) 5477 5478 const data = t.data("addon") 5479 5480 $("[data-addon]").removeClass("selected") 5481 t.addClass("selected") 5482 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5483 const products = data.products 5484 const html = [] 5485 for(let i = 0; i < products.length; i++) { 5486 const id = products[i].id 5487 const variantId = products[i].variants[0].id 5488 const img = products[i].images[0].src 5489 let img2 = img.split('.jpg')[0] 5490 const title = products[i].title 5491 const price = products[i].variants[0].price 5492 const tags = products[i].tags 5493 const qty = products[i].variants[0].available 5494 let type_upsell = '' 5495 if(tags.includes('upsell-item-standing')) { 5496 type_upsell = 'standing' 5497 } 5498 console.log(type_upsell) 5499 if(type_upsell !== '') { 5500 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'} type-${products[i].product_type.toLowerCase()?.replace(' ', '_')}" data-variant="${variantId}" data-id=${id} data-qty="${qty === false ? 0 : ''}" data-upsell="${type_upsell}" data-tags="${tags}"> 5501 5502 <div class="card-image"> 5503 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5504 </div> 5505 <div class="card-meta"> 5506 <h5>${title}</h5> 5507 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5508 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5509 </div> 5510 <div class="card-qty"> 5511 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="assets/logo/logonix-anim.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5512 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5512" value="0" data-price=${price} name="quantity"> 5513 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="assets/logo/logonix-anim.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5514 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5515 </svg></a> 5516 </div> 5517 </div>` 5518 html.push(body) 5519 } 5520 } 5521 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5522 $("#itemAddons").attr("data-length", products.length) 5523 // $('#itemAddons')[0].swiper.update(); 5524 }); 5525 }) 5526 5527 async function isAddon(){ 5528 let ids = [] 5529 $("#itemAddons .item-card.selected").each(function(i, e){ 5530 const id = $(this).data("id") 5531 ids.push(id) 5532 }) 5533 console.log(ids) 5534 return ids 5535 } 5536 5537 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5538 const t = $(this).parent() 5539 const id = t.data("id") 5540 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5541 t.toggleClass("selected"); 5542 //$(this).next("input").toggleAttr('name', 'id[]'); 5543 if (t.hasClass('selected')) { 5544 t.find("input").val(1) 5545 t.find("input").attr('name', 'id[]'); 5546 } else { 5547 t.find("input").val(0) 5548 t.find("input").removeAttr('name'); 5549 } 5550 $("#properties-addons").val(addons) 5551 const is = await isAddon() 5552 if(is.length === 0) { 5553 btn.text("continue without add-ons") 5554 return 5555 } 5556 if(is.includes(8835692069079)) { 5557 btn.text("personalize acrylic frame") 5558 } else { 5559 btn.text("Continue") 5560 } 5561 5562 }) 5563 5564 async function myAddon(data) { 5565 const c = $(".addonsPurchase .addons") 5566 let items = [] 5567 5568 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5569 // if(spotifyAddons.length > 0) { 5570 // $(spotifyAddons).each(function(i, e){ 5571 // const spotifyLink = $(this).find(".spotifyLink").val() 5572 // const spotifySong = $(this).find(".spotifySong").val() 5573 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5574 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5575 // if(spotifyLink !== '') { 5576 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5577 // <div class="addon-itm-img"> 5578 // <img src="https://cdn.shopify.com/s/files/1/1589/6833/files/Acrylic-Frame_8c71027d-43b7-4322-a98f-d34ab0456397_100x.jpg?v=1739160467" alt="" width="70"/> 5579 // </div> 5580 // <div class="addon-itm-title"> 5581 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5582 // </div> 5583 // <div class="addon-itm-line-total"> 5584 // <span>Rp 99.000</span> 5585 // </div> 5586 // </div> 5587 // <div class="propsAddonSpotify row m-0"> 5588 // <div class="col-12 col-lg-2"></div> 5589 // <div class="col-12 col-lg-10"> 5590 // <p> 5591 // <span>spotify link</span> 5592 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5593 // </p> 5594 // <p> 5595 // <span>uploaded photo</span> 5596 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5597 // </p> 5598 // <p> 5599 // <span>song / playlist name</span> 5600 // <span class="spotifySongAddon">${spotifySong}</span> 5601 // </p> 5602 // <p> 5603 // <span>artist name</span> 5604 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5605 // </p> 5606 // </div> 5607 // </div>` 5608 // items.push(spotifyAddon) 5609 // } 5610 // }) 5611 // }
5612 for(let i = 0; i < data.length; i++) { 5613 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5614 const img = data[i].image 5615 const title = data[i].title 5616 const qty = data[i].qty 5617 const price = data[i].price 5618 const total = Number(qty) * Number(price) 5619 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5620 <div class="addon-itm-img"> 5621 <img src="${img}" alt="" width="70"/> 5622 </div> 5623 <div class="addon-itm-title"> 5624 <span>${title}</span> 5625 </div> 5626 <div class="addon-itm-line-price"> 5627 <span>${rupiah.format(price)}</span> 5628 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5629 </div> 5630 <div class="addon-itm-line-total"> 5631 <span>${rupiah.format(total)}</span> 5632 </div> 5633 </div>` 5634 items.push(addons) 5635 } 5636 } 5637 c.html(items) 5638 const parent = $(".purchaseAddon") 5639 const next = parent.next(".sectionPurchase") 5640 parent.addClass("hide") 5641 next.removeClass("hide") 5642 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5643 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5644 } 5645 5646 async function listAddon() { 5647 const data = $("#itemAddons").find(".selected") 5648 let ids = [] 5649 $(data).each(function(){ 5650 const id = $(this).data("variant") 5651 const image = $(this).find(".card-image img").attr("src") 5652 const title = $(this).find(".card-meta h5").text() 5653 const qty = $(this).find(".card-qty input").val() 5654 const price = $(this).find(".card-qty input").data("price") 5655 ids.push({ 5656 id: Number(id), 5657 image, 5658 title, 5659 qty, 5660 price 5661 }) 5662 }) 5663 myAddon(ids) 5664 } 5665 5666 async function customSpotify(idx, length, type){ 5667 let isCard = false 5668 5669 let p = $(".purchasePopupSpotify") 5670 const preLink = $(".spotifyLinkFirst").val() 5671 $("[data-index]").hide() 5672 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5673 p.find(".regulerAddons, .purchase-button").hide() 5674 p.find(".spotifyAddons").show() 5675 5676 const data = await trackUrl(preLink) 5677 5678 const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="assets/logo/logonix-anim.gif" width="13" height="11" viewB
5678ox="0 0 13 11" fill="none"> 5679 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5680 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=assets/logo/logonix-anim.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="assets/logo/logonix-anim.gif" width="13" height="11" viewB
5680ox="0 0 13 11" fill="none"> 5681 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5682 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="//outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 5683 // console.log(html) 5684 5685 $(".spotifyAddons").append(html) 5686 5687 $(`[data-index=${idx}]`).show() 5688 5689 if (preLink !== '') { 5690 $(".btn-action .btn").attr("disabled", false) 5691 } else { 5692 $(".btn-action .btn").attr("disabled", true) 5693 } 5694 5695 return html 5696 5697 } 5698 5699 $(".spotifyLinkFirst").keyup(async function(){ 5700 const v = $(this).val() 5701 if(v.includes('spotify:user:spotify')) { 5702 const correct = v.split('user:spotify:')[1] 5703 console.log(correct, 'BNER') 5704 $(this).val(correct) 5705 return 5706 } 5707 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5708 const data = await trackUrl(v) 5709 if(!data || !data.status) { 5710 $(this).parent().addClass("error") 5711 // $(this).parent().append(`<p class="txt-error">Make sure you copy the complete and correct link from Spotify. Ex: https://open.spotify.com/track/0C3xZJueyBvvMSsl0cETA6</p>`) 5712 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5713 return 5714 } 5715 $(this).parent().removeClass("error") 5716 // $(this).parent().remove("txt-error") 5717 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5718 } else { 5719 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5720 } 5721 }) 5722 5723 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5724 const parent = $(this).parents(".purchaseAddon") 5725 const next = parent.next(".sectionPurchase") 5726 if(next.hasClass("purchaseAddress")) { 5727 if(productType !== '') { 5728 console.log("clarity event " + productType + ' purchaseDelivery') 5729 window.clarity("event", `${productType} purchaseDelivery`) 5730 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5731 } 5732 } 5733 const data = $("#itemAddons").find(".selected") 5734 const length = $(".quantity-cart-46067682607319").val() 5735 const checked = data.length; 5736 if(checked > 0) { 5737 if(length > 0) { 5738 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5739 customSpotify(1, length, 'addon') 5740 } else { 5741 listAddon() 5742 } 5743 } else { 5744 parent.addClass("hide") 5745 next.removeClass("hide") 5746 } 5747 }) 5748 5749 $("#personalizeBtnSpotify .btn").click(async function(){ 5750 const isCity = $("#cities[required]") 5751 const isDate = $("#propDeliveryDate[required]") 5752 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5753 alert('Please choose Delivery City & Delivery Date') 5754 return 5755 } 5756 const data = await customSpotify(1, 1, 'product') 5757 if(data) { 5758 $("#backgroundPopup").fadeIn("slow"); 5759 $(".purchasePopupSpotify").fadeIn("slow"); 5760 5761 if(productType !== '') { 5762 console.log("clarity event " + productType + ' spotify') 5763 window.clarity("event", `${productType} spotify`) 5764 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5765 } 5766 } 5767 }) 5768 5769 function formatBytes(bytes, decimals = 2) { 5770 if (!+bytes) return '0 Bytes' 5771
5772 const k = 1024 5773 const dm = decimals < 0 ? 0 : decimals 5774 const sizes = ['B', 'KB', 'MB'] 5775 5776 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5777 5778 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5779 } 5780 5781 async function trackUrl(link){ 5782 try { 5783 let trackId = link.split('/').pop().split('?')[0]; 5784 let type = '' 5785 if(link.includes("spotify:")) { 5786 const uri = link.split('spotify:')[1] 5787 trackId = uri.split(':')[1] 5788 type = uri.split(':')[0] + 's' 5789 } else { 5790 if(link.match('track')){ 5791 type = 'tracks' 5792 } else if(link.match('playlist')) { 5793 type = 'playlists' 5794 } else if(link.match('artist')) { 5795 type = 'artists' 5796 } else if(link.match('album')) { 5797 type = 'albums' 5798 } 5799 } 5800 console.log(`${host}/api/spotify/${type}/${trackId}`) 5801 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5802 console.log(data, 'DATA') 5803 const song = data?.data?.name 5804 const artist = data?.data?.artist 5805 return { 5806 song, artist, type, trackId, status: data.status 5807 } 5808 } catch(err) { 5809 console.log(err) 5810 } 5811 } 5812 5813 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5814 const parent = $(this).parents("[data-index]") 5815 const preview = parent.find(".previewImage") 5816 const file = $(this)[0].files[0]; 5817 if (file) { 5818 const reader = new FileReader(); 5819 reader.onload = async function(e) { 5820 parent.find(".uploadResult label").hide() 5821 parent.find(".uploadedResult").remove() 5822 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5823 <p style="text-align: left;margin: 0;"><span style="color: #34C759;font-style: italic;font-size: 14px;text-overflow: ellipsis;overflow: hidden;max-width: 250px;white-space: nowrap;display: inline-block;vertical-align: middle;">${file.name}</span><span style="font-size: 14px;color: #34C759"> (${formatBytes(file.size)})</span> <span style="font-size: 14px">is uploaded</span></p> 5824 <div style="align-self: center"><span class="changeUpload" style="font-size: 12px;cursor: pointer">Change</span><span class="removeUpload" style="cursor: pointer;border-left: 1px solid;padding-left: 10px;margin-left: 10px;height: 10px;display: inline-flex;vertical-align: middle;">
5824<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="assets/logo/logonix-anim.gif"> 5825 <path d="M2.07799 10.8332C1.78154 10.8332 1.52799 10.7276 1.31732 10.5165C1.10666 10.3054 1.0011 10.0523 1.00066 9.75716V1.49982H0.667322C0.572656 1.49982 0.493545 1.46782 0.429989 1.40382C0.366433 1.33982 0.334433 1.26049 0.333989 1.16582C0.333544 1.07116 0.365545 0.992047 0.429989 0.928491C0.494433 0.864935 0.573545 0.833158 0.667322 0.833158H3.00066C3.00066 0.69538 3.05177 0.57538 3.15399 0.473158C3.25621 0.370935 3.37621 0.319824 3.51399 0.319824H6.48732C6.6251 0.319824 6.7451 0.370935 6.84732 0.473158C6.94954 0.57538 7.00066 0.69538 7.00066 0.833158H9.33399C9.42866 0.833158 9.50777 0.865158 9.57132 0.929158C9.63488 0.993158 9.66688 1.07249 9.66732 1.16716C9.66777 1.26182 9.63577 1.34094 9.57132 1.40449C9.50688 1.46805 9.42777 1.49982 9.33399 1.49982H9.00066V9.75649C9.00066 10.0525 8.8951 10.3058 8.68399 10.5165C8.47288 10.7272 8.21954 10.8327 7.92399 10.8332H2.07799ZM8.33399 1.49982H1.66732V9.75649C1.66732 9.87605 1.70577 9.97427 1.78266 10.0512C1.85954 10.128 1.95799 10.1665 2.07799 10.1665H7.92399C8.04354 10.1665 8.14177 10.128 8.21866 10.0512C8.29554 9.97427 8.33399 9.87605 8.33399 9.75649V1.49982ZM3.87266 8.83316C3.96732 8.83316 4.04666 8.80116 4.11066 8.73716C4.17466 8.67316 4.20643 8.59405 4.20599 8.49982V3.16649C4.20599 3.07182 4.17399 2.99271 4.10999 2.92916C4.04599 2.8656 3.96666 2.8336 3.87199 2.83316C3.77732 2.83271 3.69821 2.86471 3.63466 2.92916C3.5711 2.9936 3.53932 3.07271 3.53932 3.16649V8.49982C3.53932 8.59449 3.57132 8.6736 3.63532 8.73716C3.69932 8.80116 3.77843 8.83316 3.87266 8.83316ZM6.12932 8.83316C6.22399 8.83316 6.3031 8.80116 6.36666 8.73716C6.43021 8.67316 6.46199 8.59405 6.46199 8.49982V3.16649C6.46199 3.07182 6.42999 2.99271 6.36599 2.92916C6.30199 2.86516 6.22288 2.83316 6.12866 2.83316C6.03399 2.83316 5.95466 2.86516 5.89066 2.92916C5.82666 2.99316 5.79488 3.07227 5.79532 3.16649V8.49982C5.79532 8.59449 5.82732 8.6736 5.89132 8.73716C5.95532 8.80071 6.03466 8.83271 6.12932 8.83316Z"fill=#757575 /> 5826 </svg> 5827 </span></div></div>`) 5828 parent.find(".frameImageUploaded svg").hide() 5829 parent.find(".frameImage").addClass("uploaded") 5830 preview.attr("src", e.target.result); 5831 preview.show(); 5832 let formData = new FormData(); 5833 formData.append("file", file); 5834 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5835 method: "POST", 5836 body: formData 5837 }) 5838 const result = await response.json(); 5839 if(result){ 5840 parent.find(".resultPhotoSpotify").val(result.url) 5841 } 5842 } 5843 5844 reader.readAsDataURL(file); 5845 } else { 5846 preview.hide(); 5847 } 5848 }); 5849 5850 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5851 $(this).next("input[type=file]").trigger("click") 5852 }) 5853 5854 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5855 $(this).parents("input[type=file]").trigger("click") 5856 }) 5857 5858 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5859 const parent = $(this).parents("[data-index]") 5860 parent.find(".uploadPhotoSpotify").val("") 5861 parent.find(".uploadResult label").show() 5862 parent.find(".uploadedResult").remove() 5863 parent.find(".frameImageUploaded svg").show() 5864 parent.find(".previewImage").hide() 5865 parent.find(".frameImage").removeClass("uploaded") 5866 }) 5867 5868 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5869 const parent = $(this).parents("[data-index]") 5870 parent.toggleClass("checked") 5871 }) 5872 5873 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5874 const parent = $(this).parents("[data-index]") 5875 const link = $(this).val() 5876 const data = await trackUrl(link) 5877 5878 console.log(data) 5879 5880 if(data.song) { 5881 parent.find(".spotifySong").val(data.song) 5882 parent.find(".spotifyData").find("h3").text(data.song) 5883 } 5884 if(data.artist) { 5885 parent.find(".spotifyArtist").val(data.artist) 5886 parent.find(".spotifyData").find("p").text(data.artist) 5887 } 5888 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5889 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5890 if (data.status === true) { 5891 parent.find(".btn-action .btn").attr("disabled", false) 5892 } else { 5893 parent.find(".btn-action .btn").attr("disabled", true) 5894 } 5895 }) 5896
5897 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5898 const parent = $(this).parents("[data-index]") 5899 const v = $(this).val() 5900 parent.find(".spotifyData h3").text(v) 5901 }) 5902 5903 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5904 const parent = $(this).parents("[data-index]") 5905 const v = $(this).val() 5906 parent.find(".spotifyData p").text(v) 5907 }) 5908 5909 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5910 const parent = $(this).parents("[data-index]") 5911 const length = parent.data("length") 5912 const index = parent.data("index") 5913 const indexNext = Number(index) + 1 5914 customSpotify(indexNext, length, 'addon') 5915 }) 5916 5917 5918 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5919 const parent = $(this).parents(".purchaseAddon") 5920 const next = parent.next(".sectionPurchase") 5921 parent.addClass("hide") 5922 next.removeClass("hide") 5923 next.find(".purchase-button").show() 5924 listAddon() 5925 }) 5926 5927 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5928 const t = $(this).parents("[data-index]") 5929 const parent = $(this).parents(".sectionPurchase") 5930 const current = t.data("index") 5931 const prevCurrent = Number(current) - 1 5932 if(current == 1) { 5933 parent.removeClass("purchaseAddonSpotify") 5934 parent.find(".purchase-button").show() 5935 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5936 $(".spotifyAddons").empty() 5937 $(".regulerAddons").show() 5938 return 5939 } 5940 t.hide() 5941 t.prev("[data-index]").show() 5942 t.remove() 5943 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5944 }) 5945 5946 $("#personalizeBtn .btn").click(async function() { 5947 loadPopupPersonalize() 5948 }); 5949 5950 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5951 $(".sectionPurchaseSpotify").hide() 5952 loadPopupPersonalize() 5953 }) 5954 5955 $(".close-purchase-popup").click(function() { 5956 disablePopup(); 5957 }); 5958 $("#backgroundPopup").click(function() { 5959 // disablePopup(); 5960 }); 5961 5962 $("#popupCart .close-purchase-popup").click(function() { 5963 location.reload() 5964 }); 5965 5966 $('#popupCart').on('hide.bs.modal', function (e) { 5967 location.reload() 5968 }) 5969 5970 $(".next-card").click(function(){ 5971 const parent = $(this).parents(".sectionPurchase") 5972 const next = parent.next(".sectionPurchase") 5973 parent.addClass("hide") 5974 next.removeClass("hide") 5975 }) 5976 5977 $(".back-purchase-button").click(function(){ 5978 const parent = $(this).parents(".sectionPurchase") 5979 const prev = parent.prev(".sectionPurchase") 5980 parent.addClass("hide") 5981 prev.removeClass("hide") 5982 }) 5983 5984 $(document).keypress(function(e) { 5985 if (e.keyCode == 27 && popupStatus == 1) { 5986 disablePopup(); 5987 } 5988 }); 5989 5990 const parentImg = $(".case-img-preview") 5991 const parentVid = $(".case-video-preview") 5992 5993 function readURL(input) { 5994 if (input.files && input.files[0]) { 5995 let reader = new FileReader(); 5996 5997 let type = 'image/jpeg' 5998 const size = input.files[0].size 5999 if(input.files[0].type.match('video/')){ 6000 type = 'video/mp4' 6001 if(size > 15728640) { 6002 alert('File size exceeds maximum limit 15 MB') 6003 return 6004 } 6005 } else { 6006 if(size > 5242880) { 6007 alert('File size exceeds maximum limit 5 MB') 6008 return 6009 } 6010 } 6011 6012 reader.onload = function (e) { 6013 $(".nextBtn").attr("disabled", true) 6014 if(type === 'image/jpeg') { 6015 6016 $('.placeholder-image').hide(); 6017 $('.preview-image').show() 6018 $('.preview-image').attr('src', e.target.result); 6019 6020 } else { 6021 // parentVid.find(".ajax-loader").show(); 6022 $(".steps-card-preview").addClass("loading") 6023 } 6024 } 6025 6026 6027
6028 reader.readAsDataURL(input.files[0]); 6029 } 6030 } 6031 6032 async function readURLPapan(input) { 6033 if (input.files && input.files[0]) { 6034 let reader = new FileReader(); 6035 6036 reader.onload = function (e) { 6037 $('.btn-upload-papan').siblings('label').hide(); 6038 $('.btn-upload-papan img').attr('src', e.target.result); 6039 $('.btn-upload-papan img').show(); 6040 $('.svgLogoPapan').hide(); 6041 } 6042 6043 const type = 'image/jpeg' 6044 const name = `logo-8144957800663-${Date.parse(new Date())}` 6045 6046 let formData = new FormData(); 6047 formData.append("file", input.files[0]); 6048 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6049 method: "POST", 6050 body: formData 6051 }) 6052 const result = await response.json(); 6053 if(result) { 6054 const url = result.url 6055 $("[data-properties=papan-logo]").val(url) 6056 } 6057 6058 reader.readAsDataURL(input.files[0]); 6059 } 6060 } 6061 6062 async function readURLAddress(input) { 6063 console.log(input, 'readURLAddress') 6064 if (input.files && input.files[0]) { 6065 let reader = new FileReader(); 6066 6067 reader.onload = function (e) { 6068 $('.photo-address').attr('src', e.target.result); 6069 $('.photo-address').show(); 6070 } 6071 6072 const type = 'image/jpeg' 6073 const name = input.files[0].name?.split('.')[0] 6074 6075 let formData = new FormData(); 6076 formData.append("file", input.files[0]); 6077 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6078 method: "POST", 6079 body: formData 6080 }) 6081 const result = await response.json(); 6082 6083 reader.readAsDataURL(input.files[0]); 6084 6085 return result 6086 } 6087 } 6088 6089 6090 6091 6092 async function addToCartUang() { 6093 var productAddOnId1 = 42122101162199; 6094 var productAddOnId2 = 42122101194967; 6095 var product_id = 8144957800663 6096 const data = { 6097 items: [ 6098 { 6099 quantity: $("#Quantity-" + productAddOnId1).val(), 6100 id: productAddOnId1, 6101 "properties": { "Time": $("#properties-time").val() } 6102 }, 6103 { 6104 quantity: $("#Quantity-" + productAddOnId2).val(), 6105 id: productAddOnId2, 6106 "properties": { "Time": $("#properties-time").val() } 6107 } 6108 ] 6109 } 6110 await fetch(window.Shopify.routes.root + 'cart/add.js', { 6111 method: 'POST', 6112 headers: { 6113 'Content-Type': 'application/json' 6114 }, 6115 body: JSON.stringify(data) 6116 }) 6117 .then(response => { 6118 console.error('Sukses Buket Uang:', response); 6119 $(".form-flower").submit() 6120 }) 6121 .catch((error) => { 6122 console.error('Error Buket Uang:', error); 6123 $(".form-flower").submit() 6124 }); 6125 } 6126 6127 async function saveCard(){ 6128 let isCard = true 6129 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 6130 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 6131 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 6132 const foto = $("#properties-photo").val() 6133 const video = $("#properties-video").val() 6134 const data = JSON.stringify({ 6135 "id": qrID, 6136 "penerima": $("#properties-nama-penerima").val(), 6137 "kartu_penerima": kartu_penerima, 6138 "kartu_ucapan": kartu_ucapan, 6139 "kartu_pengirim": kartu_pengirim, 6140 "foto": foto, 6141 "video": video, 6142 "productId": "8144957800663", 6143 "order_name": "", 6144 "status": "Cart" 6145 }) 6146 6147 6148 } 6149 6150 async function additem(items){ 6151 try { 6152 let formData = items 6153 if(items?.length) { 6154 formData = { 6155 'items': items 6156 }; 6157 } 6158 6159 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 6160 method: 'POST', 6161 headers: { 6162 'Content-Type': 'application/json', 6163 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 6164 }, 6165 body: JSON.stringify(formData) 6166 }) 6167 6168 const data = await add.json(); 6169 return data 6170 } catch(err){ 6171 console.log('Error additem', err) 6172 } 6173 } 6174 6175 async function addons(){ 6176 let items = [] 6177 $(".addon-item").each(function(){ 6178 const p = $(this) 6179 const props = p.next(".propsAddonSpotify") 6180 const id = $(this).data("id") 6181 const quantity = $(this).data("qty") 6182 const propId = $("#properties-time").val() 6183 let properties = {} 6184 if(id === 46067682607319) { 6185 const link = props.find(".spotifyLinkAddon").text() 6186 const photo = props.find(".spotifyFotoAddon").text() 6187 const song = props.find(".spotifySongAddon").text() 6188 const artist = props.find(".spotifyArtistAddon").text() 6189 properties = { 6190 id: propId, 6191 "Spotify Link": link !== '' ? link : '-', 6192 "Spotify Photo": photo !== '' ? photo : '-', 6193 "Spotify Song": song !== '' ? song : '-', 6194 "Spotify Artist": artist !== '' ? artist : '-', 6195 type: 'addon' 6196 } 6197 } else { 6198 properties = { 6199 "id": propId, 6200 "type": "addon" 6201 } 6202 } 6203 items.push({ 6204 id, 6205 quantity, 6206 properties 6207 }) 6208 }) 6209 return items 6210 } 6211 6212 async function propItems() { 6213 let props = {} 6214 $("[data-properties]").each(function(e){
6215 let elementType = this.tagName; 6216 const k = $(this).data("properties") 6217 if(k !== 'penerima' && k !== 'ucapan' && k !== 'pengirim' && k !== 'nama-penerima' && k !== 'alamat-penerima' && k !== 'telepon-penerima' && k !== 'company' && k !== 'province' && k !== 'foto-alamat' && k !== 'papan-logo') { 6218 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6219 if(v !== '') { 6220 props[k] = v?.replace(/[\s\n]/g, ''); 6221 } 6222 } 6223 }) 6224 return props 6225 } 6226 6227 async function showPopupCart(items){ 6228 if(productType !== '') { 6229 console.log("clarity event " + productType + ' completeOrder') 6230 window.clarity("event", `${productType} completeOrder`) 6231 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6232 } 6233 $("#popupCart").show() 6234 6235 $(".propDeliveryCity").text($("#cities").val()) 6236 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6237 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6238 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6239 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6240 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6241 $(".propDeliveryProv").text($("#province").val()) 6242 $(".propDeliveryZip").text($("#zip").val()) 6243 6244 6245 6246 const addons = [] 6247 if(items && items.length > 0) { 6248 for(let i = 1; i < items.length; i++) { 6249 const spotifyLink = items[i].properties['Spotify Link'] 6250 const spotifyPhoto = items[i].properties['Spotify Photo'] 6251 const spotifySong = items[i].properties['Spotify Song'] 6252 const spotifyArtist = items[i].properties['Spotify Artist'] 6253 const price = items[i].price / 100 6254 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6255 <div class="col-12 col-lg-2"></div> 6256 <div class="col-12 col-lg-10"> 6257 <p> 6258 <span>spotify link</span> 6259 <span>${spotifyLink}</span> 6260 </p> 6261 <p> 6262 <span>Upload Photo</span> 6263 <span>${spotifyPhoto}</span> 6264 </p> 6265 <p> 6266 <span>song / playlist name</span> 6267 <span>${spotifySong}</span> 6268 </p> 6269 <p> 6270 <span>artist name</span> 6271 <span>${spotifyArtist}</span> 6272 </p> 6273 </div> 6274 </div>` : ''; 6275 addons.push(`<div class="row m-0"> 6276 <div class="imgAddonCart col-2"> 6277 <img 6278 width="43" 6279 src="${items[i].image}" 6280 alt="" 6281 > 6282 </div> 6283 <div class="imgAddonTitlePrice col-10 align-self-center"> 6284 <div class="row justify-content-between m-0"> 6285 <div class="col-12 col-lg-8"> 6286 <h5>${items[i].title}</h5> 6287 </div> 6288 <div class="col-12 col-lg-4 text-lg-right"> 6289 <span>${rupiah.format(price)}</span> 6290 </div> 6291 </div> 6292 </div> 6293 </div>${props}`) 6294 } 6295 } 6296 // console.log(addons) 6297 if(addons.length === 0) { 6298 $(".itemAddonCart").hide() 6299 return 6300 } 6301 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6302 $(".wrapperItemAddonCart").html(addons) 6303 } 6304 6305 const money = (money) => { 6306 return new Intl.NumberFormat('id-ID', 6307 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6308 ).format(money); 6309 } 6310 6311 async function showNoteMoney() { 6312 let qty50k = $("[data-properties='Uang 50k']").val() 6313 let qty100k = $("[data-properties='Uang 100k']").val() 6314 const total50k = Number(qty50k) * 50000 6315 const total100k = Number(qty100k) * 100000 6316 const total_all = total50k + total100k 6317 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6318 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6319 $(".itemMoney").html(`<p>For the money arrangement, please transfer <strong>IDR ${money(total_all)}</strong> to <strong>Bank Mandiri 1020001234522 (PT Modern Mekar Abadi)</strong> and contact our <a href="https://toko.soulkeepercult.com/" target="_blank" style="text-decoration: underline;
6319 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6320 } 6321 6322 async function removeImage() { 6323 const data = JSON.stringify({ 6324 "ID": $("#properties-properties-qrId").val(), 6325 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6326 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6327 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6328 "Nama Penerima": $("#properties-nama-penerima").val(), 6329 "Order Number":"", 6330 "Status":"Product", 6331 "Foto": "", 6332 "Media": $("#properties-video").val(), 6333 "Image": "8144957800663" 6334 }) 6335 const remove = updateCard(data) 6336 if(remove) { 6337 $(this).hide() 6338 $("#properties-photo").val("-") 6339 $(".placeholder-image").show() 6340 $(".preview-image").attr("src", "") 6341 } 6342 } 6343 6344 async function removeVideo() { 6345 const data = JSON.stringify({ 6346 "ID": $("#properties-properties-qrId").val(), 6347 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6348 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6349 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6350 "Nama Penerima": $("#properties-nama-penerima").val(), 6351 "Order Number":"", 6352 "Status":"Product", 6353 "Foto": $("#properties-photo").val(), 6354 "Media": "", 6355 "Image": "8144957800663" 6356 }) 6357 const remove = updateCard(data) 6358 if(remove) { 6359 $("#properties-video").val("-") 6360 $(this).find("img").hide() 6361 $(this).hide() 6362 $(this).prev("p").text("Add video to make it more special (optional)") 6363 $("#label-input-video").show() 6364 $("#label-input-video span").text("Upload Video") 6365 $(".case-video-preview p span").remove() 6366 } 6367 } 6368 6369 async function loadItemOccasion(t, occasion) { 6370 const name = occasion?.replace('greeting-card-', '') 6371 $("#kartu-ucapan").val("") 6372 $("[data-occassion]").removeClass("selected") 6373 $("[data-properties=ucapan]").val("") 6374 $("#save-card").attr("disabled", true) 6375 t.addClass("selected") 6376 $("#show_note").attr("data-card-occassion", name) 6377 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6378 const products = data.products 6379 const html = [] 6380 for(let i = 0; i < products.length; i++) { 6381 const id = products[i].id 6382 const variantId = products[i].variants[0].id 6383 const img = products[i].images[0].src 6384 const title = products[i].title 6385 const price = products[i].variants[0].price 6386 const qty = products[i].variants[0].inventory_quantity 6387 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6388 <label for="card-${variantId}"></label> 6389 <div class="card-image"> 6390 <img src="${img}" alt="${title}" width="" height="" /> 6391 </div> 6392 <div class="card-meta text-center"> 6393 <h5>${title}</h5> 6394 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6395 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6396 </div> 6397 </div>` 6398 html.push(body) 6399 } 6400 const withoutCard = `<div class="item-card item-without-card"> 6401 <label for="card-0"></label> 6402 <div class="card-image"> 6403 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6404 </div> 6405 <div class="card-meta text-center"> 6406 <h5>
6406Send without a greeting card</h5> 6407 <input id="card-0" type="radio" name="id" value="" data-price=""> 6408 </div> 6409 </div>` 6410 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6411 }); 6412 } 6413 6414 $(document).ready(function(){ 6415 6416 // Observer to auto-trigger addon loading when addon section becomes visible 6417 const addonObserver = new MutationObserver(function(mutations) { 6418 mutations.forEach(function(mutation) { 6419 const target = $(mutation.target) 6420 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6421 if(!target.hasClass('hide')) { 6422 // Addon section just became visible, ensure items are loaded 6423 setTimeout(function() { 6424 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6425 console.log("Auto-triggering addon load...") 6426 $("[data-addon=upsell-all]").trigger("click") 6427 } 6428 }, 150) 6429 } 6430 } 6431 }) 6432 }) 6433 6434 // Start observing addon section 6435 const addonSection = document.querySelector('.purchaseAddon') 6436 if(addonSection) { 6437 addonObserver.observe(addonSection, { 6438 attributes: true, 6439 attributeFilter: ['class'] 6440 }) 6441 } 6442 6443 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6444 6445 $(this).find("span").addClass("loading") 6446 let isValid = true 6447 $(".formAddressPurchase [required]").each(function(){ 6448 const t = $(this) 6449 const input = t.val() 6450 const p = t.parent() 6451 if(input === '') { 6452 p.addClass("error") 6453 isValid = false 6454 } 6455 }) 6456 6457 if(!isValid) { 6458 $(this).find("span").removeClass("loading") 6459 return 6460 } 6461 6462 let items = [] 6463 const mainProps = { 6464 6465 "Delivery Date": $("#propDeliveryDate").val(), 6466 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6467 "Kota Pengiriman": $("#cities").val(), 6468 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6469 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6470 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6471 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6472 6473 6474 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6475 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6476 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6477 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6478 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6479 6480 6481 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6482 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6483 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6484 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6485 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6486 "type": 'product' 6487 } 6488 const props = await propItems() 6489 properties = {...mainProps, ...props }; 6490 const id = $("#productSelect").find('option:selected').val() 6491 console.log(id, 'main ID') 6492 const mainItem = { 6493 id: Number(id), 6494 quantity: 1, 6495 properties 6496 } 6497 items.push(mainItem) 6498 const cardId = $("#itemCards").find(".selected input").val() 6499 const cardItem = { 6500 id: Number(cardId), 6501 quantity: 1, 6502 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6503 } 6504 console.log(cardId, 'cardId') 6505 if(cardId) { 6506 items.push(cardItem) 6507 } 6508 const addon = await addons() 6509 if(addon) { 6510 for(let i = 0;
6510 i < addon.length; i++){ 6511 items.push({ 6512 id: addon[i].id, 6513 quantity: addon[i].quantity, 6514 properties: addon[i].properties 6515 }) 6516 } 6517 } 6518 const addItems = await additem(items) 6519 console.log(addItems.items, 'add items') 6520 if(addItems) { 6521 $(this).find("span").removeClass("loading") 6522 disablePopup() 6523 showPopupCart(addItems.items) 6524 6525 localStorage.setItem("items", JSON.stringify(addItems.items)) 6526 } 6527 }) 6528 6529 $("#addtocart-cart .btn").click(async function(){ 6530 const id = $("#productSelect").find('option:selected').val() 6531 const mainProps = { 6532 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6533 type: 'product' 6534 } 6535 const props = await propItems() 6536 const properties = { ...mainProps, ...props }; 6537 const items = { 6538 id: Number(id), 6539 quantity: 1, 6540 properties 6541 } 6542 const addItems = await additem(items) 6543 if(addItems) { 6544 showPopupCart(addItems.items) 6545 localStorage.setItem("items", JSON.stringify(addItems)) 6546 } 6547 }) 6548 6549 $(".formAddressPurchase [required]").change(function(){ 6550 const t = $(this) 6551 const p = t.parent() 6552 const v = t.val() 6553 if(v !== '') { 6554 p.removeClass("error") 6555 } 6556 }) 6557 6558 $("#save-card").click(async function(){ 6559 const parent = $(this).parents(".sectionPurchase") 6560 const next = parent.next(".sectionPurchase") 6561 $(this).find("span").addClass("loading") 6562 const card = await saveCard() 6563 console.log(card, 'ssaveCCC') 6564 if(card?.status === 200 || card?.status === 201) { 6565 $(".scanCard").removeClass("hide") 6566 $(this).find("span").removeClass("loading") 6567 parent.addClass("hide") 6568 next.removeClass("hide") 6569 if(next.hasClass("purchaseAddon")) { 6570 $("[data-addon=upsell-all]").click() 6571 console.log("clarity event addons") 6572 window.clarity("event", `${productType} add-ons`) 6573 // Ensure addon items are loaded when entering addon popup 6574 setTimeout(function() { 6575 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6576 $("[data-addon=upsell-all]").trigger("click") 6577 } 6578 }, 100) 6579 } 6580 if(next.hasClass("purchaseAddress")) { 6581 $("#zip").select2() 6582 } 6583 } 6584 }) 6585 6586 $("#skip-card").click(async function(){ 6587 $("#greetingCard [data-properties]").val("") 6588 $("#properties-photo").val("") 6589 $("#properties-video").val("") 6590 const parent = $(this).parents(".sectionPurchase") 6591 const next = parent.next(".sectionPurchase") 6592 parent.addClass("hide") 6593 next.removeClass("hide") 6594 // $("#itemCards").html("") 6595 removeImage() 6596 removeVideo() 6597 if(next.hasClass("purchaseAddon")) { 6598 $("[data-addon='upsell-all']").click() 6599 console.log("clarity event addons") 6600 window.clarity("event", `${productType} add-ons`) 6601 // Ensure addon items are loaded when entering addon popup 6602 setTimeout(function() { 6603 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6604 $("[data-addon='upsell-all']").trigger("click") 6605 } 6606 }, 100) 6607 } 6608 if(next.hasClass("purchaseAddress")) { 6609 $("#zip").select2() 6610 } 6611 }) 6612 6613 $("#msgCard").click(async function(){ 6614 $(this).parent().addClass("loading") 6615 let occasion = $(".selected[data-occassion]").data("occassion") 6616 occasion = occasion?.replace("greeting-card-", "") 6617 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6618 const d = data?.data 6619 for(let i = 0; i < d.length; i++) { 6620 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6621 const greeting = d[num]?.Greeting 6622 $(".greetingCard textarea").val(greeting) 6623 $(this).parent().removeClass("loading") 6624 } 6625 $("#save-card").attr("disabled", false) 6626 }) 6627 6628 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6629 const parent = $(this).parents(".sectionPurchase") 6630 const next = parent.next(".sectionPurchase") 6631 parent.addClass("hide") 6632 next.removeClass("hide") 6633 }) 6634 6635 $("#editCard").click(function(){ 6636 $(".custom-card").show() 6637 $(".preview-card").hide() 6638 }) 6639 6640 $("#first_name, #last_name").change(function(){ 6641 const v = $(this).val() 6642 const first_name = $("#first_name").val() 6643 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6644 $("[data-properties=nama-penerima]").val(first_name+last_name) 6645 }) 6646 6647 $("[data-occassion]").click(function(){ 6648 const t = $(this) 6649 const p = t.parents(".sectionPurchase") 6650 // $(".greetingCard").addClass("disabled") 6651 const occasion = t.data("occassion") 6652 loadItemOccasion(t, occasion) 6653 }) 6654 6655 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6656 const id = $(this).parent(".item-card").data("id") 6657 const t = $(this).parent(".item-card") 6658 const target = t.find("input") 6659 const v = $('.item-card input[type="radio"]:checked').val(); 6660 $("#itemCards .item-card").removeClass("selected") 6661 t.addClass("selected") 6662 $("#itemCards .item-card").find("input").attr("name", "") 6663 if(target.length > 0) { 6664 target.attr("name", "id[]") 6665 $("#properties-card").val(id) 6666 $(".greetingCard").removeClass("disabled") 6667 $("#skip-card").attr("disabled", false) 6668 } else { 6669 $("#properties-card").val("") 6670 } 6671 }) 6672 6673 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6674 const parent = $(this).parents(".sectionPurchase") 6675 const next = parent.next(".sectionPurchase") 6676 $(".greetingCard").addClass("disabled") 6677 parent.addClass("hide") 6678 next.removeClass("hide") 6679 $("[data-addon=upsell-all]").click() 6680 $("#zip").select2() 6681 }) 6682 6683 $("[data-properties=ucapan]").keyup(function(){ 6684 const v = $(this).val() 6685 const p = $(this).parents(".sectionPurchase") 6686 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6687 if(v.length > 3) { 6688 p.find(".next-purchase-button").attr("disabled", false) 6689 } else { 6690 p.find(".next-purchase-button").attr("disabled", true) 6691 } 6692 }) 6693 6694 $("[data-properties=penerima]").keyup(function(){ 6695 const v = $(this).val() 6696 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6697 }) 6698 6699 $("[data-properties=pengirim]").keyup(function(){ 6700 const v = $(this).val() 6701 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6702 }) 6703 6704 $(document).click(function(e){
6705 6706 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6707 // $('#popupCart').fadeOut('slow'); 6708 // location.reload() 6709 }); 6710 6711 $(".toggleAddonCart").click(function(){ 6712 const p = $(this).parent(".itemAddonCart") 6713 p.toggleClass("open") 6714 }) 6715 6716 $(".btnViewCart").click(function(){ 6717 window.location.href = "https://outerbloom.com/cart"; 6718 }) 6719 6720 $(".btnViewCheckout").click(async function(){ 6721 $(this).find("span").addClass("loading") 6722 let zip = $("#zip").val() 6723 const first_name = $("#first_name").val() 6724 const last_name = $("#last_name").val() 6725 const company = $("#company").val() !== '' ? $("#company").val() : '' 6726 const address1 = $("#delivery_address").val() 6727 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6728 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6729 const phone = $("#recipient_number").val() 6730 const city = $("#cities").val() 6731 const province = $("#province").val() 6732 const country = 'Indonesia' 6733 const ver = Date.parse(new Date()) 6734 const params = `checkout[email]=&checkout[shipping_address][first_name]=${first_name}&checkout[shipping_address][last_name]=${last_name}&checkout[shipping_address][company]=${company}&checkout[shipping_address][address1]=${address1}&checkout[shipping_address][address2]=${address2}&checkout[shipping_address][city]=${city}&checkout[shipping_address][country]=${country}&checkout[shipping_address][province]=${province}&checkout[shipping_address][zip]=${zip}&checkout[shipping_address][phone]=${phone}&v=${ver}` 6735 6736 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6737 if(clear.status === 200) { 6738 const savedItem = window.localStorage.getItem("items"); 6739 const items = JSON.parse(savedItem) 6740 const addItems = await additem(items) 6741 console.log(addItems, 'new addItems') 6742 if(addItems) { 6743 window.location.href = `https://outerbloom.com/checkout?${params}`; 6744 } 6745 } 6746 }) 6747 6748 $(".btnContinueShopping").click(function(){ 6749 window.location.href = "https://outerbloom.com/"; 6750 }) 6751 6752 if (isIOS) { 6753 $(".empty-state-card").click(function(){ 6754 $("#input-foto").trigger("click") 6755 }) 6756 $(".btn-upload-image").click(function(){ 6757 $("#input-foto").trigger("click") 6758 }) 6759 $("[for=input-video]").click(function(){ 6760 $("#input-video").trigger("click") 6761 }) 6762 $(".btn-upload-papan").click(function(){ 6763 $("#logoPapan").trigger("click") 6764 }) 6765 } 6766 6767 $("[data-properties]").each(function(){ 6768 const select = $(this).parents(".form-group").find("select") 6769 $(this).change(function(){ 6770 const name = $(this).data("properties") 6771 const v = $(this).val() 6772 if (name == 'telepon-penerima') { 6773 let phone = v.replace(/[^0-9]/g, '') 6774 $(this).val(phone); 6775 $("#properties-telepon-penerima").val(phone) 6776 $('.iti__search-input').val('-') 6777 } else { 6778 $("#properties-" + name).val(v) 6779 } 6780 }) 6781 select.on("change", function(){ 6782 const name = $(this).data("properties") 6783 const v = $(this).val() 6784 $("#properties-" + name).val(v) 6785 }) 6786 }) 6787 6788 $("#show_note").click(function(){ 6789 nameq = $("#properties-nama-penerima").val() 6790 dear = $("#properties-kartu-nama-penerima").val() 6791 card = $("[data-properties=ucapan]").val() 6792 sender = $("#properties-kartu-nama-pengirim").val() 6793 photo = $("#properties-photo").val() 6794 video = $("#properties-video").val() 6795 updateCard(nameq, dear, card, sender, photo, video, status) 6796 }) 6797 6798 $(".remove-image").click(function(e){ 6799 e.preventDefault() 6800 $(this).find("img").show() 6801 removeImage() 6802 }) 6803 6804 $(".remove-media").click(function(e){ 6805 e.preventDefault() 6806 $(this).find("img").show() 6807 removeVideo() 6808 }) 6809 6810 6811 6812 $("[data-delivery_method]").click(function(e){
6813 e.preventDefault() 6814 const t = $(this) 6815 const data = t.data("delivery_method") 6816 $("[data-delivery_method]").removeClass("selected") 6817 t.addClass("selected") 6818 $("#cities").val("") 6819 $("#properties-delivery-date").val("-") 6820 $("#deliveryDate button").removeClass("selected") 6821 $("#full-date").val("Full Calendar ") 6822 $("#propDeliveryDate").val("") 6823 const step3 = $("#step-3") 6824 if(data.match('PickUp')) { 6825 $(".selfpickup-point").show() 6826 step3.find("[data-finished=false]").hide() 6827 $("#panel-4").hide() 6828 step3.find("[data-finished=true]").show() 6829 $("#cities").attr("required", false) 6830 $("#form-group-city").hide() 6831 $("#row-delivery-time").hide() 6832 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6833 $("#propDeliveryTime").attr("required", false) 6834 // $("#deliveryDate").find("button:first-child").addClass("stop") 6835 $(".form-selfpickup").show() 6836 $(".form-delivery").hide() 6837 $(".form-delivery").find("input, textarea, select").val("") 6838 $(".form-delivery").find("input, textarea, select").attr("required", false) 6839 $("#properties-shipping").val("0") 6840 $("#noteDeliveryDate").hide() 6841 $(".form-delivery .form-control").attr("required", false) 6842 $("#stepNav4").hide() 6843 6844 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6845 6846 6847 6848 6849 if(timeOfDay >= 16.01){ 6850 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6851 } 6852 } else { 6853 6854 6855 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6856 step3.find("[data-finished=false]").show() 6857 $("#panel-4").show() 6858 step3.find("[data-finished=true]").hide() 6859 $("#cities").attr("required", true) 6860 $(".selfpickup-point").hide() 6861 $("#form-group-city").show() 6862 $("#cities").val('').trigger('change'); 6863 $("#properties-kota-pengiriman").val("-") 6864 6865 $("#row-delivery-date, #row-delivery-time").show() 6866 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6867 $("#deliveryDate").find("button").removeClass("stop") 6868 $(".form-selfpickup").hide() 6869 $(".form-delivery").show() 6870 $(".form-delivery").find("input, textarea, select").attr("required", true)
6871 $(".form-delivery [data-properties]").attr("readonly", false) 6872 $("#properties-kodepos").val("-") 6873 $("#properties-alamat-penerima").val("-") 6874 $(".form-delivery .form-control").attr("required", true) 6875 $(this).parents(".setup-content").attr("id", "step-1") 6876 6877 $("#stepNav4").show() 6878 } 6879 }) 6880 6881 $("[name=selfpickup]").click(function(){ 6882 const p = $(this).parents(".row-pickup") 6883 const pickupCity = $("input[name='selfpickup']:checked").val(); 6884 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6885 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6886 6887 $(".row-pickup").removeClass("selected") 6888 p.addClass("selected") 6889 6890 $("#properties-kota-pengiriman").val(pickupCity) 6891 $("#province").val("Jakarta") 6892 $("#properties-alamat-penerima").val(pickupAddress) 6893 $("#properties-kodepos").val(pickupZip) 6894 }) 6895 6896 $("#cities").change(function(e){ 6897 e.preventDefault() 6898 $(this).parent(".row").find("p.error").remove() 6899 $("#full-date").val("Full Calendar") 6900 $("#deliveryDate, #deliveryDateFull label ").show() 6901 $("#deliveryDateFull").removeClass("filled") 6902 $(".btnChangeDeliveryDate").addClass("hide") 6903 $("#full-date").prop('disabled', false); 6904 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6905 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6906 const step3 = $("#step-3") 6907 $("#cityNote").remove() 6908 $("#noteDeliveryDate").hide() 6909 $("#noteDeliveryDate").empty() 6910 let v = $(this).val() 6911 let v2 = $('option:selected', this).attr('data-city'); 6912 let v3 = $('option:selected', this).attr('data-province'); 6913 let price = $('option:selected', this).attr('data-price'); 6914 $("#country").val(v) 6915 $("#properties-kota-pengiriman").val(v) 6916 $("#properties-shipping").val(price) 6917 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6918 $("#properties-delivery-date, #properties-delivery-time").val("-") 6919 $("#propDeliveryDate, #propDeliveryTime").val("") 6920 let note = $('option:selected', this).attr('data-note'); 6921 if(v === 'Kota Lainnya') { 6922 $("#noteDeliveryDate").show() 6923 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6924 $("#zip").attr("required", false) 6925 $("#zip").hide() 6926 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6927 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6928 $("#row-delivery-date, #row-delivery-time").hide() 6929 $("#properties-shipping").val("") 6930 // $(this).parents(".setup-content").attr("id", "step-2") 6931 6932 } else { 6933 $("#noteDeliveryDate").hide() 6934 $("#zip").attr("required", true) 6935 $("#zip").show() 6936 $("#row-delivery-date, #row-delivery-time").show() 6937 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6938 $("#deliveryDate").find("button").removeClass("stop") 6939 // $(this).parents(".setup-content").attr("id", "step-1") 6940 6941 } 6942 6943 6944 6945 // if(v !== 'Jakarta') { 6946 // $("[data-type=upsell]").hide() 6947 // } else { 6948 // $("[data-type=upsell]").show() 6949 // } 6950 // $('.collection-addons')[0].swiper.update(); 6951 6952 6953 getProvince(v) 6954 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6955 renderZip(v, v2, v3) 6956 6957 disabledSameDay() 6958 6959 6960 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6961 6962 $("#cardOccasion, #navAddon, .collection-addons").hide() 6963 6964 $("[data-addon=giftcard]").show() 6965 $("[data-addon=giftcard]").click() 6966 $("#itemAddons").show() 6967 $("#flower-step").addClass("nonjadetabek") 6968 } else { 6969 $("#cardOccasion, #navAddon, .collection-addons").show() 6970 $("[data-addon=all]").click() 6971 $("#flower-step").removeClass("nonjadetabek") 6972 } 6973 6974 if(v !== '') { 6975 $("#personalizeBtn .btn").attr("disabled", false) 6976 } else { 6977 $("#personalizeBtn .btn").attr("disabled", true) 6978 } 6979 6980 }) 6981 6982 $("#zip").change(function(e){
6983 let v = $(this).val() 6984 var city = $("#cities").find('option:selected'); 6985 $("#properties-kodepos").val(v) 6986 if(city === 'Kota Lainnya') { 6987 $(this).attr("required", true) 6988 $("#recipient-address").val("") 6989 } 6990 }) 6991 6992 6993 var minDate = +7 6994 6995 6996 6997 $("#full-date").datepicker({ 6998 minDate, 6999 dateFormat: 'Mdd_yy', //Nop22_2021, 7000 7001 beforeShowDay: disabledays, 7002 7003 onSelect: function (date) { 7004 $("#deliveryDate, #deliveryDateFull label ").hide() 7005 $("#deliveryDateFull").addClass("filled") 7006 $(".btnChangeDeliveryDate").removeClass("hide") 7007 $("#full-date").prop('disabled', true); 7008 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 7009 $(".date-full").addClass("selected") 7010 $(".date-single, .calendar-group").removeClass("selected") 7011 $("#propDeliveryTime").val('') 7012 $("#properties-delivery-time").val('-') 7013 $(".time-single").removeClass("selected") 7014 7015 7016 } 7017 }); 7018 7019 $(".btnChangeDeliveryDate").click(function(){ 7020 $("#deliveryDate, #deliveryDateFull label ").show() 7021 $("#deliveryDateFull").removeClass("filled") 7022 $(".btnChangeDeliveryDate").addClass("hide") 7023 $("#full-date").prop('disabled', false); 7024 }) 7025 7026 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 7027 e.preventDefault() 7028 $(this).parents("#row-delivery-date").find("p.error").remove() 7029 const fulldate = $(this).data("fulldate") 7030 const day = $(this).data("day") 7031 const date = $(this).data("date")
7032 const month = $(this).data("month") 7033 const year = $(this).data("year") 7034 const off_pagi = $(this).data("offpagi") 7035 const off_siang = $(this).data("offsiang") 7036 const off_Malam = $(this).data("offMalam") 7037 $(".calendarbutton").removeClass("selected") 7038 $(this).addClass("selected") 7039 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 7040 $("#propDeliveryTime").val('') 7041 $("#properties-delivery-time").val('-') 7042 $(".calendarbutton2").removeClass("selected") 7043 $("#full-date").val("Full Calendar") 7044 7045 7046 if(off_pagi && timeOfDay > off_pagi) { 7047 $("[data-time=Morning]").attr("disabled", true) 7048 } else { 7049 $("[data-time=Morning]").attr("disabled", false) 7050 } 7051 if(off_siang && timeOfDay > off_siang) { 7052 $("[data-time=Afternoon]").attr("disabled", true) 7053 } else { 7054 $("[data-time=Afternoon]").attr("disabled", false) 7055 } 7056 7057 7058 7059 }) 7060 7061 if(today === 14 && timeOfDay > 17.00) { 7062 $("#deliveryDate button:first-child").attr("disabled", true) 7063 } 7064 7065 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 7066 e.preventDefault() 7067 const time = $(this).data("time") 7068 const date = $("#propDeliveryDate").val() 7069 if(date == '') { 7070 return alert('Silakan pilih tanggal terlebih dahulu') 7071 } 7072 $(".calendarbutton2").removeClass("selected") 7073 $(this).addClass("selected") 7074 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 7075 }) 7076 7077 $('textarea.has-limit, input.has-limit').keyup(function () { 7078 max = this.getAttribute("maxlength"); 7079 let len = $(this).val().length; 7080 let limit = $(this).siblings(".limit"); 7081 if (len > max) { 7082 alert('you have reached the limit'); 7083 } else { 7084 limit.text(`${len}/${max}`); 7085 } 7086 }); 7087 7088 $("#button-action-step .btn").click(function(){ 7089 $(this).find("span").text("Processing..."); 7090 }); 7091 7092 $(".finishBtn").on('click', function() { 7093 $(this).addClass("is-adding"); 7094 // $(this).click(); 7095 }); 7096 7097 $('.setup-panel .nav-item a.btn-success').trigger('click'); 7098 7099 $("#button-action .btn").click(function(){ 7100 $("#flower-step").addClass("block"); 7101 $("#button-action").hide(); 7102 }); 7103 7104 $(".close-how-order").click(function(){ 7105 $("#flower-step").removeClass("block"); 7106 $("#button-action").show(); 7107 }); 7108 7109 $("#input-foto, #input-video").change(function(e){ 7110 readURL(this); 7111 }); 7112 7113 $("#logoPapan").change(function(){ 7114 readURLPapan(this); 7115 }); 7116 7117 $("#address-upload").change(async function(){ 7118 const upload_address = await readURLAddress(this) 7119 if(upload_address) { 7120 const url = upload_address.url 7121 $(".props-address-upload").val(url) 7122 $(".form-address").addClass("address-uploaded") 7123 $(".form-address-upload").addClass("uploaded") 7124 7125 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 7126 } 7127 }) 7128 7129 $(".address-manualy").click(function(){ 7130 $(".form-address-upload").removeClass("uploaded"); 7131 $(".photo-address").hide(); 7132 $(".form-address").removeClass("address-uploaded") 7133 $("#formAddressPurchase").find(".form-control").attr("required", true) 7134 }); 7135 7136 $(".case-video-preview").delegate(".replace-video", "click", function(){ 7137 $("#input-video").trigger("click") 7138 }) 7139 7140 $('.date-single').click(function(e) { 7141 e.preventDefault(); 7142 $('.date-single').removeClass('selected'); 7143 $('#full-date').removeClass('selected'); 7144 $(this).addClass('selected'); 7145 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 7146 }); 7147 $('#full-date').click(function(e){ 7148 e.preventDefault(); 7149 $('.date-single').removeClass('selected'); 7150 $(this).addClass('selected'); 7151 }); 7152 7153 // $("tr").each(function(){ 7154 // if($(this).text().match('SKU')) { 7155 // $(".sku-product").html($(this).parents("table").html()) 7156 // } 7157 // }) 7158 7159 $("#product-image").scroll(function(){ 7160 $(".desc-add").each(function(){ 7161 const img = $(this).find("img") 7162 const src = img.data("src") 7163 img.attr("src", src) 7164 }) 7165 }) 7166 7167 $(".product-fixed").hide() 7168 7169 let target = $("#personalizeBtn") 7170 7171 7172 $(".product-meta").scroll(function() { 7173 if ($(window).scrollTop() >= target.offset().top ) { 7174 $(".product-fixed").addClass("show") 7175 } else { 7176 $(".product-fixed").removeClass("show") 7177 } 7178 }); 7179 7180 $(window).scroll(function() { 7181 if ($(window).scrollTop() >= target.offset().top ) { 7182 $(".product-fixed").addClass("show") 7183 } else { 7184 $(".product-fixed").removeClass("show") 7185 } 7186 }); 7187 }); 7188 </script>
7188 7189 7190
7190<script> 7191 // 7192 </script>
7192 7193 7194
7194<script> 7195 $(document).ready(function(){ 7196 $('table tr td').each(function(){ 7197 var texto = $(this).text(); 7198 var nextto = $(this).next("td"); 7199 var sku = $("#data-sku").val() 7200 if(texto == 'SKU'){ 7201 nextto.text(sku) 7202 } 7203 }); 7204 7205 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 7206 $(".stamped-summary-actions-newreview").text("Tulis Review"); 7207 $("#tab-questions").text("Pertanyaan"); 7208 7209 $(".freeship .icon").click(function(){ 7210 $(".fs-content").slideToggle(); 7211 $(this).parents(".freeship").toggleClass("expand"); 7212 }); 7213 7214 var $easyzoom = $('.easyzoom').easyZoom(); 7215 // Setup thumbnails example 7216 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 7217 $('.thumbnails').on('click', 'a', function(e) { 7218 var $this = $(this); 7219 e.preventDefault(); 7220 // Use EasyZoom's `swap` method 7221 api1.swap($this.data('standard'), $this.attr('href')); 7222 }); 7223 7224 $('#playerID').click(function(){ 7225 var videoURL = $('#VdoID').attr('src'), 7226 dataplay = $('#VdoID').attr('data-play'); 7227 7228 //for check autoplay 7229 //if not set autoplay=1 7230 if(dataplay == 0 ){ 7231 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7232 $('#VdoID').attr('data-play',1); 7233 } 7234 else{ 7235 var videoURL = $('#VdoID').attr('src'); 7236 videoURL = videoURL.replace("?autoplay=1", ""); 7237 $('#VdoID').prop('src',''); 7238 $('#VdoID').prop('src',videoURL); 7239 7240 $('#VdoID').attr('data-play',0); 7241 } 7242 7243 }); 7244 7245 $(".product-photo-thumb-video").click(function(e){ 7246 e.preventDefault(); 7247 7248 var newEmbed = $(this).attr('href'); 7249 $("#featured-image-product").addClass("img-video"); 7250 $("#ProductPhotoImg").hide(); 7251 $("#featured-image-product .video").show(); 7252 $("#featured-image-product iframe").attr('src', newEmbed); 7253 $("#VdoID")[0].src += "&autoplay=1"; 7254 }); 7255 $(".product-single__thumbnail").click(function(evt){ 7256 evt.preventDefault(); 7257 $("#featured-image-product").removeClass("img-video"); 7258 $("#ProductPhotoImg").show(); 7259 $("#featured-image-product .video").hide(); 7260 $("#featured-image-product iframe").attr('src', ''); 7261 }); 7262 7263 if($('#product-meta .short-desc > div').length >= 1){ 7264 //console.log('div detected') 7265 var replacer = $('#product-meta .short-desc > div').contents(); 7266 $('#product-meta .short-desc > div').replaceWith(replacer); 7267 7268 var cAssured = $('.c-assured').detach(); 7269 cAssured.insertAfter('.meta-sds .stock-info'); 7270 } 7271 7272 7273 7274 $(".heading-toggle").click(function(){ 7275 $(this).parent().toggleClass("open") 7276 7277 }); 7278 }); 7279 </script>
7279 7280 7281 7282
7282<script type="application/json" id="ProductJson-Product"> 7283 7284 {"id":8144957800663,"title":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTemukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."} 7285 </script>
7285 7286 7287
7287<script type="application/json" id="VariantJson-Product"> 7288 [ 7289 7290 { 7291 "incoming": false, 7292 "next_incoming_date": null 7293 } 7294 7295 ] 7296 </script>
7296 7297 7298 7299 7300 7301 </div> 7302 7303 7304
7304<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7304 7305 <style> 7306 .stamped-review-header-title, 7307 .stamped-review-header .author, 7308 .stamped-review-content-body, 7309 .stamped-sort-select, 7310 .stamped-review-header .verified-badge[data-type=buyer]:after, 7311 .stamped-review-header-byline, 7312 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7313 .stamped-review {margin-bottom: 0;} 7314 .stamped-review-body {padding-left: 65px;} 7315 .stamped-review:first-child {padding-top: 25px;} 7316 .stamped-review-content {clear: none;} 7317 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7318 .stamped-review-reply-body {padding-left: 65px;} 7319 .stamped-review-header .author {text-transform: capitalize;} 7320 .stamped-questions .stamped-review-content {padding-left: 65px;} 7321 7322 .stamped-pagination {margin: 20px 0 0;} 7323 .stamped-pagination li {position: initial!important;display: inline-block;position: relative;vertical-align: middle;text-decoration: none;-webkit-tap-highlight-color: transparent;-webkit-box-flex: 0;-moz-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;background: 0 0;text-transform: none;color: #33373D;font-weight: 400;-webkit-transition: background .1s ease,box-shadow .1s ease,color .1s ease;transition: background .1s ease,box-shadow .1s ease,color .1s ease;border: 1px solid #ccc;border-right: none;margin-bottom: 0;} 7324 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7325 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7326 .stamped-pagination li:hover a {background: #ddd;} 7327 .stamped-pagination .next {border-right: 1px solid #ccc;} 7328 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7329 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7330 7331 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7332 #stamped-pagination-question span {font-size: 14px;} 7333 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7334 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7335 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7336 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7337 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7338 7339 @media (max-width: 480px){ 7340 .stamped-review-reply {margin-left: 0!important;} 7341 select.stamped-sort-select {font-size: 13px!important;} 7342 } 7343 7344 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7345 display: block !important; 7346 } 7347 </style> 7348
7348<script> 7349 var selectCallback = function(variant, selector) { 7350 timber.productPage({ 7351 money_format: "Rp {{amount_no_decimals}}", 7352 variant: variant, 7353 selector: selector 7354 }); 7355 }; 7356 7357 jQuery(function($) { 7358 new Shopify.OptionSelectors('productSelect', { 7359 product: 7360 7361 7362 7363 7364 7365 {"id":8144957800663,"title":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTemukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."}, 7366 onVariantSelected: selectCallback, 7367 enableHistoryState: true 7368 }); 7369 7370 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7371 7372 7373 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7374 7375 $('.selector-wrapper').hide(); 7376 7377 }); 7378 </script>
7378 7379 7380 7381 7382
7382<script type="application/ld+json"> 7383 { 7384 "@context": "http://schema.org", 7385 "@type": "Product", 7386 "offers": { 7387 "@type": "Offer", 7388 "availability":"https://schema.org/InStock", 7389 "price": 125500, 7390 "priceValidUntil": "05-10-2025", 7391 "priceCurrency": "IDR", 7392 "url": "https://soulkeepercult.com/" 7393 }, 7394 "brand": { 7395 "@type": "Brand", 7396 "name": "Outerbloom Florist" 7397 }, 7398 "sku": "8144957800663", 7399 "gtin13": "Jawa", 7400 "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel", 7401 "description": "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.", 7402 "category": "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.", 7403 "url": "https://soulkeepercult.com/", 7404 "image": { 7405 "@type": "ImageObject", 7406 "url": "https://soulkeepercult.com/banner/nixtoto-vinly-merchandise-musik.jpeg?v=1695788426", 7407 "image": "https://soulkeepercult.com/banner/nixtoto-vinly-merchandise-musik.jpeg?v=1695788426", 7408 "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel", 7409 "width": 1024, 7410 "height": 1024 7411 } 7412 } 7413 </script>
7413 7414 7415 7416 7417 7418 7419
7419<script id="bss-ltap-hide-price" type="text/javascript" > 7420 !function(e){var t={};function o(r){if(t[r])return t[r].exports;var c=t[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,o),c.l=!0,c.exports}o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)o.d(r,c,function(t){return e[t]}.bind(null,c));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";function r(e){e.ltsp={},function(e){e.ltsp.quickView=function(){document.querySelectorAll(".quickview-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("add-to-cart-quickview-form");if(e){let t=e.querySelector(".groups-btn");t&&t.remove();let o=e.querySelector(".pieces");o&&o.remove();let r=e.querySelector(".bsscommerce-ltsp-message");r&&r.remove()}if(e=document.querySelector("[data-quickview-modal] .halo-modal-body"),e){let t=e.querySelector(".quantity");t&&t.remove()}}),1e3)}))})),document.querySelectorAll(".shop-now-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("ShopNowContainer");if(e){let t=e.querySelector("#AddToCart");t&&t.remove()}}),2e3)}))})),document.querySelectorAll(".collection__filter").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid-item");if(o){let e=o.querySelector(".btn--quick-view");e&&e.remove()}}}),1500)}))})),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}}),2e3)}))})),document.querySelectorAll(".product-facet__aside").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1500)}))})),document.querySelectorAll(".pagination").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1800)}))})),document.querySelectorAll(".collection-filters__sort").forEach((function(e){e.addEventListener("change",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".indiv-product");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove()}}}),1500)}))}
7420)),document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-index");if(o){let e=o.querySelector(".js-quickview-trigger");e&&e.remove()}}}),1500)}))})),document.querySelectorAll("a.product-loop__quickview").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".large--one-half");if(o){let e=o.querySelector(".quick-smart-wrapper");e&&e.remove();let t=o.querySelector("#quantity-container");t&&t.remove();let r=o.querySelector(".js-prod-show-soldout");r&&r.remove()}}}),2e3)}))})),document.querySelectorAll(".quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-single__meta");if(o){let e=o.querySelector("div.payment-buttons");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".btn--load-more").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".grid-view-item");if(o){let e=o.querySelector(".quick-add-button");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".quick_shop").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product_section");if(o){let e=o.querySelector(".product_form .shopify-product-form .purchase-details"),t=o.querySelector(".product__details .modal_price .price-ui");e&&e.remove(),t&&t.remove()}}}),1e3)}))})),document.querySelectorAll(".qs-button ").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-info-main");if(o){let e=o.querySelector(".qty-box");e&&e.remove();let t=o.querySelector(".btn.btn-cart");t&&t.remove();let r=o.querySelector(".product-single__sale-price");r&&r.remove();let c=o.querySelector(".product-addto-links");c&&c.remove()}}}),1e3)}))}));let e=document.querySelector("a[data-js-cart-icon]");if(e&&e.addEventListener("click",(function(){let e=document.querySelector(".quick-cart__control");e&&e.remove();let t=document.querySelector(".quick-cart__item-right");t.childNodes[3]&&(t.childNodes[3].innerHTML="Login to seen price")})),document.querySelectorAll(".quick-add-button-variants").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest("#AddToCartForm");if(o){let e=o.querySelector(".paymentButtonsWrapper");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".product-thumbnail__quickshop-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-details");if(o){let e=o.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,t){t>0&&e.remove()}));let t=o.querySelector(".product-form__cart-buttons");t&&t.remove();let r=o.querySelector(".product-form__quantity-box-wrapper");r&&r.remove()}}}),800)}))})),"b2b-dbodhi-singapore.myshopify.com"===window.Shopify.shop){let e=0;const t=window.location.pathname.includes("/collections");let o=!0;const r=function(){const e=setInterval((function(){let e=document.querySelectorAll(".thb-product-detail.product .bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t],r=o.closest(".thb-product-detail.product");if(r){let e=r.querySelector(".product-form");e&&e.remove()}r=o.closest("del"),r&&o.remove()}}),500);setTimeout(()=>{clearInterval(e)},6e3)},c=function(){const c=window.pageYOffset||document.documentElement.scrollTop;(c>e||!t||o)&&(document.querySelectorAll(".product-card-quickview").forEach((function(e){e.removeEventListener("click",r),e.addEventListener("click",r)}
7420)),o=!1),e=c<=0?0:c};if(c(),t){const e=function(){const e=c;let t;return()=>{clearTimeout(t),t=setTimeout(()=>{e.apply(this)},3e3)}};window.addEventListener("scroll",e())}}}}(e),function(e){e.ltsp.removeElementByLTSPMessage=function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message"),t=[],o=window.Shopify.shop;for(let r=0;r<e.length;r++){let c=e[r],l=[".grid-product__on-sale",".product-unit-price",".product-price-unit",".grid-link__sale_price","s",".price__compare",".product__compare-price",".price__unit",".card__price--regular",".sale-tag",".compare-price",".old-price",".savings",".was_price",".price--compare",".price-compare",".was"];if("stark-hockey.myshopify.com"===o){const e=c.closest(".product-index");if(e){const t=e.querySelector(".product-modal");t&&t.remove()}continue}let s=c.closest(".product-parent");if(s){let e=s.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=s.querySelector(".tt-btn-quickview");o&&t.push(o)}if(s=c.closest(".ProductItem"),s){let e=s.querySelector(".quickshop-btn");if(e&&t.push(e),"shrimptoncouture-com.myshopify.com"===o){let e=s.querySelector(".ProductItem__PriceList");e&&e.classList.remove("ProductItem__PriceList")}}if(s=c.closest(".product-item--vertical"),s){if("sparklinbluewholesale.myshopify.com"===o){let e=s.querySelector(".product-item__info .product-item__price-list");e&&t.push(e)}let e=s.querySelector(".product-item__info .product-item__action-button");e&&t.push(e),e=s.querySelector(".product-form__payment-container"),e&&t.push(e)}if(s=c.closest(".card-wrapper.underline-links-hover"),s&&"friends-forever-pets.myshopify.com"===o){let e=s.querySelector(".card__content .quick-add");e&&t.push(e);let o=s.querySelector(".card-information .price__sale .price-item.price-item--regular");o&&t.push(o)}if(s=c.closest(".modal_price"),s&&window.Shopify&&"casa-barba.myshopify.com"!==window.Shopify.shop&&"prideandgroom-wholesale.myshopify.com"!==window.Shopify.shop){let e=s.querySelector(".price-ui");e&&t.push(e)}if(s=c.closest(".info.has-padding-top"),s){let e=s.querySelector(".compare-at-price");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price.price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".search-result__description"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".product__price"),s){let e=s.querySelector("[data-product-price][bss-custom-ltsp-attribute]");e&&t.push(e)}if(s=c.closest("#template-product"),s){let e=s.querySelector(".product-form.cart-bar__form");e&&t.push(e)}if("showroom1-ducanero.myshopify.com"===o){if(s=c.closest(".product-area")||c.closest(".price"),s){let e=s.querySelector(".price-area")||s.querySelector(".theme-money");e&&t.push(e)}}else if(s=c.closest(".product-area__details"),s){let e=s.querySelector(".product-detail__form__action");e&&t.push(e);let o=s.querySelector(".quantity-wrapper");o&&t.push(o)}if("quincaillerie-euroline.myshopify.com"===o&&(s=c.closest(".product-form__info-content"),s)){let e=s.querySelector(".price-list");e&&t.push(e)}if(s=c.closest(".product-form__buttons"),s&&t.push(s),s=c.closest(".product-wrap-2"),s){let e=s.querySelector(".product-action-2");e&&t.push(e)}if(s=c.closest(".span6"),s){let e=s.querySelector(".purchase>input"),o=s.querySelector(".price-container>#price-preview"),r=s.querySelector(".price-container>.vat-price");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product__page"),s){let e=s.querySelector(".quantity-selector");e&&t.push(e)}if(s=c.closest(".product_details_info"),s){let e=s.querySelector(".pro-detail-button"),o=s.querySelector(".price-box");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-content"),s){let e=s.querySelector(".product-action");e&&t.push(e)}if(s=c.closest(".product-view .single-product-wrap"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".collection-category .owl-stage .owl-item"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product__details"),s){let e=s.querySelector(".product-wrap .thumbnail-overlay .info .price ");e&&t.push(e);let o=s.querySelector(".product-details .price .current_price .money ");o&&t.push(o)}if(s=c.closest(".product_row"),s){let e=s.querySelector(".three-fourths .info .price ");e&&t.push(e)}if(s=c.closest(".thubnail-desc"),s){let e=s.querySelector(".quatity-stock");e&&t.push(e);let o=s.querySelector(".Payment_button");o&&t.push(o)}if(s=c.closest(".single-ponno-product"),s){let e=s.querySelector(".pro-actions-link");e&&t.push(e);let o=s.querySelector(".pro-add-cart");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");e&&e.setAttribute("style","visibility:hidden")}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item__info"),s)){let e=s.querySelector("form.product-item__action-list.button-stack");e&&e.remove()}
7420if("bluebasketb2b.myshopify.com"===window.Shopify.shop){if(s=c.closest(".card-information"),s){let e=s.querySelector(".price__sale .price-item--sale.sale-percentage");e&&t.push(e)}if(s=c.closest("tr.cart-item[id*=Cart]"),s){let e=s.querySelector(".cart-item__quantity");e&&e.remove();let t=s.querySelector(".cart-item__totals");t&&t.remove()}}if(s=c.closest(".product-form"),s){let e=s.querySelector(".quantity-submit-row__submit");e&&e.remove();let o=s.querySelector(".product-form__info-list .product-form__info-item.product-form__info-item--quantity .product-form__info-content .quantity-selector.quantity-selector--product");o&&t.push(o)}if(s=c.closest(".product-grid__detail"),s){let e=s.querySelector(".product-form-block form");e&&e.remove()}if(s=c.closest(".tab-body"),s){if(s.querySelector(".purchase-section button, .btn.add-to-cart")){let e=setInterval((function(){let e=document.querySelector(".tab-body .purchase-section button, .tab-body .btn.add-to-cart"),t=document.querySelector(".swym-button-bar.swym-wishlist-button-bar");e&&e.remove(),t&&t.remove()}),200);setTimeout((function(){clearInterval(e)}),1e4)}}if(s=c.closest(".item.relative.product-id.item-row"),s){let e=s.querySelector(".quantity.form");e&&e.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".buy-buttons-row");e&&t.push(e)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".btn--quick-view");e&&t.push(e)}if(s=c.closest(".featured__collection-product"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-bottom"),s){let e=s.querySelector(".quantity-selector, .product-add");e&&t.push(e)}if(s=c.closest(".js-sticky-cart"),s){let e=s.querySelector(".sticky-add");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".shopify-payment-button");e&&t.push(e);let r=s.querySelector(".payment-and-quantity__add");r&&t.push(r);let c=s.querySelector(".price__compare-at.visible");c&&"coventa-demo.myshopify.com"===o&&t.push(c)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector(".quick-buy");e&&t.push(e)}if(s=c.closest(".content-summary"),s){let e=s.querySelector("form.cart");e&&t.push(e)}if(s=c.closest('div[data-pf-type="Section"]'),s){let e=s.querySelector('div[data-pf-type="ProductQuantity"]');e&&t.push(e);let o=s.querySelector('button[data-pf-type="ProductATC"]');o&&t.push(o)}if(s=c.closest(".pc-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".quick_shop");o&&t.push(o)}if(s=c.closest(".product-info-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".product-details-inline"),s){let e=s.querySelector(".product-quantity");e&&t.push(e)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".js-grid-cart");e&&t.push(e);let o=s.querySelector(".card-header .card-button-hover");o&&t.push(o);let r=s.querySelector(".product-card__quick-buy");r&&t.push(r);let c=s.querySelector("compare-at-price");c&&t.push(c);let l=s.querySelector(".product-card__badge-list");l&&t.push(l)}if(s=c.closest(".product__info"),s){let e=s.querySelector(".product-form__buy-buttons button");e&&t.push(e);let o=s.querySelector(".product-form__quantity");o&&t.push(o)}if(s=c.closest(".product-sticky-form__inner"),s){let e=s.querySelector(".product-sticky-form__payment-container");e&&t.push(e)}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item"),s)){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".product-item__quick-form");o&&t.push(o)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("div.quantity");e&&t.push(e)}if(s=c.closest(".product-body"),s){let e=s.querySelector(".product-cta-wrapper");e&&t.push(e)}if(s=c.closest(".tt-product-single-info"),s){let e=s.querySelector("form .btn-addtocart");e&&t.push(e);let o=s.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(s=c.closest(".product-details-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".product-inner"),s){let e=s.querySelector(".product-card-interactions");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".add-to-cart");if(e)if(window.Shopify&&"bundlecomph.myshopify.com"===window.Shopify.shop){e.disabled=!0;let o=s.querySelector(".payment-buttons"),r=s.querySelector(".shopify-payment-button");o&&o.classList.remove("payment-buttons"),r&&t.push(r)}else t.push(e)}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".thumbnail-buttons");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-form:not(.product-form-product--static):not(.product-form-product-template)");e&&t.push(e)}if(s=c.closest(".pf-product-form"),s){let e=s.querySelector(".sc-lkgURy");e&&t.push(e);let o=s.querySelector(".sc-gzcbmu");o&&t.push(o);let r=s.querySelector(".add-to-cart");r&&t.push(r)}if(s=c.closest(".large--one-half"),s){let e=s.querySelector(".product-smart-wrapper");e&&t.push(e);let o=s.querySelector('div.btn[onmouseup="showProductsDesigner(this)"]');o&&t.push(o);let r=s.querySelector("button.js-prod-show-soldout");r&&t.push(r)}if(s=c.closest("#add-to-cart-form"),s)if("led-signcity.myshopify.com"===o){let e=s.querySelector(".atc-btn");e&&t.push(e);let o=s.querySelector(".price");o&&o.classList.remove("price")}else{let e=s.querySelector(".groups-btn");e&&t.push(e),t.push(c)}
7420if(s=c.closest(".product-shop"),s&&"led-signcity.myshopify.com"!==o){let e=s.querySelector(".groups-btn");e&&t.push(e)}if(s=c.closest(".who-qof-table"),s&&s.classList.add("bsscommerce-hide-price"),s=c.closest(".price-sale"),s){let e=s.querySelector(".old-price");e&&t.push(e);let o=s.querySelector("em");o&&(o.innerHTML="")}if(s=c.closest(".product-details"),s){let e=s.querySelector(".action");e&&t.push(e)}if(s=c.closest(".product_section"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=s.querySelector(".sale.savings");o&&t.push(o);let r=s.querySelector(".purchase-details button.button--add-to-cart");r&&t.push(r);let c=s.querySelector(".purchase-details .purchase-details__quantity.product-quantity-box");c&&t.push(c);let l=s.querySelector(".product__details .modal_price .price-ui");l&&t.push(l)}if(s=c.closest(".quick-shop-style--inline"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector("small em");e&&t.push(e)}if(s=c.closest(".gt_product-body"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-saved");o&&t.push(o);let r=s.querySelector(".gt_product-price--compare");r&&t.push(r)}if(s=c.closest(".gt_product_content"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest(".gt-single-product"),s){let e=s.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest("#cont-form"),s){let e=s.querySelector("form .cont-add-btns");e&&t.push(e)}if(s=c.closest(".theiaStickySidebar"),s){let e=s.querySelector(".variations_button");e&&t.push(e)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector(".product--compare-price");e&&t.push(e)}if(s=c.closest(".product-submit"),s){let e=s.querySelector(".payment-buttons-container");e&&t.push(e)}if(s=c.closest(".product-price"),s){let e=s.querySelector(".product-price-compare");e&&t.push(e)}if(s=c.closest(".product-list-item"),s){let e=s.querySelector(".original"),o=s.querySelector(".product-list-item-badge");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".productitem"),s){let e=s.querySelector(".productitem--action");e&&t.push(e);let o=s.querySelectorAll(".bss-ltsp-to-remove");if(o.length)for(let e of o)t.push(e)}if(s=c.closest(".product--outer"),s){let e=s.querySelector(".product-form--atc");e&&t.push(e),e=s.querySelector(".shopify-payment-button"),e&&t.push(e)}if(s=c.closest(".Container"),s)if(window.Shopify&&"mama-shawna.myshopify.com"===window.Shopify.shop){let e=s.querySelector("form.ProductForm");if(window.__st&&e){__st.cid&&t.push(e)}}else{let e=s.querySelector(".ProductForm__BuyButtons");e&&t.push(e)}if(s=c.closest(".product-grouped"),s){let e=s.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-top .product-des .action"),o=s.querySelector(".slideup");if(e&&t.push(e),o&&t.push(o),o=s.querySelector(".card-quickview"),o&&t.push(o),window.Shopify&&"sitchish.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product-item-price .money");e&&e.classList.remove("money")}}if(s=c.closest(".modal_price"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".info"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(s=c.closest(".grid__item.grid-product"),s){let e=s.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let r=s.querySelector(".grid-product__tag");r&&t.push(r);let c=s.querySelector(".visually-hidden");c&&t.push(c);let l=s.querySelector(".quick-product__btn");l&&"comphycompany.myshopify.com"===o&&t.push(l)}if(s=c.closest(".product-info"),s){let e=s.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=s.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o);let r=s.querySelector(".form .product-actions .product-actions-add-to-cart");r&&t.push(r);let c=s.querySelector(".product-price__compare");
7420c&&t.push(c),c=s.querySelector("compare-at-price"),c&&t.push(c);let l=s.querySelector("unit-price");l&&t.push(l),e=s.querySelector(".buy-buttons"),e&&t.push(e);let u=s.querySelector(".product-info__badge-list");u&&t.push(u)}if(s=c.closest(".price"),s){if(s.textContent.includes("From")){let e=s.innerHTML;s.innerHTML=e.replace("From","")}}if(s=c.closest("#product-right"),s){let e=s.querySelector(".was");e&&t.push(e);let o=s.querySelector(".product-add");o&&t.push(o)}if(s=c.closest(".was"),s&&t.push(s),s=c.closest(".product-single__meta"),s){let e=s.querySelector(".pf__actions");e&&t.push(e);let o=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");o&&o.setAttribute("style","visibility:hidden")}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-item__add");e&&t.push(e)}if(s=c.closest(".grid-item"),s){let e=s.querySelector("#addToCart-product-template");e&&t.push(e);let o=s.querySelector(".payment-buttons");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.payment-buttons");e&&e.remove()}if(s=c.closest(".modal--root"),s){let e=s.querySelector(".product-form--button-container");e&&t.push(e)}if(s=c.closest(".product-item__info"),s){let e=s.querySelector("a.product-item__action-button.button.button--small.button--primary");e&&t.push(e)}if(s=c.closest(".product-form__info-list"),s){let e=s.querySelector("div.product-form__info-item.product-form__info-item--quantity");e&&t.push(e)}if(s=c.closest(".large--three-fifths"),s){let e=s.querySelector(".multivariants_setbox_footer");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".btn.btn-cart");o&&t.push(o);let r=s.querySelector(".shopify-payment-button");r&&t.push(r)}if(s=c.closest(".product-miniature"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".product.actions.product-item-actions");o&&t.push(o)}if(s=c.closest("#AddToCartForm"),s){let e=s.querySelector(".paymentButtonsWrapper");e&&t.push(e)}if(s){let e=s.querySelector("#product-add");e&&e.remove()}if(s){let e=s.querySelector("#product-price>.product-price");e&&e.remove()}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".quick-add-button");e&&t.push(e)}if("tinalykkegaard.myshopify.com"===o){if(s=c.closest(".main-product__details>.main-product__details-wrapper"),s){let e=s.querySelector(".main-product__actions .main-product__form-buttons");e&&e.remove()}if(s=c.closest(".product-grid .product-card"),s){let e=s.querySelector('form[action="/cart/add"]');e&&e.remove()}}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--submit");e&&t.push(e)}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--quantity");e&&t.push(e)}if(s=c.closest(".productgrid--item"),s){let e=s.querySelector(".productitem--actions");e&&t.push(e)}if(s=c.closest(".product-single__info-wrapper"),s){let e=s.querySelector(".product-form__quantity-submit");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest(".qv-content"),s){let e=s.querySelector(".qv-add-button");e&&t.push(e);let o=s.querySelector(".qv-quantity");o&&t.push(o)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".btn-grid-cart");e&&t.push(e)}if(s=c.closest(".product_single_detail_section"),s){let e=s.querySelector("#AddToCart");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&t.push(o);let r=s.querySelector(".quantity-label");r&&t.push(r);let c=s.querySelector(".quantity_width");c&&t.push(c)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("#AddToCart--product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest('form[action="/cart/add"]'),s){let e=s.querySelector(".product-page-info__field");e&&t.push(e);let o=s.querySelector(".product-page-info__button-add-to-cart");o&&t.push(o);let r=s.querySelector(".js-store-lists-add-wishlist");r&&t.push(r);let c=s.querySelector(".product-collection__control");c&&t.push(c)}if(s=c.closest(".grid-item__content"),s){let e=s.querySelector(".quick-add-btn");if(e&&t.push(e),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".grid-product__price--original"),o=s.querySelector(".grid-product__price--savings"),r=s.querySelector(".quick-product__btn");e&&t.push(e),o&&t.push(o),r&&t.push(r)}}if(s=c.closest(".purchase-box"),s){let e=s.querySelector("#AddToCart-product-template");e&&e.remove();let t=s.querySelector(".quantity-product-template");t&&t.remove()}if(s=c.closest(".item-row"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price"),s){let e=s.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,o){o>0&&t.push(e)}))}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product__add-to-cart-button");e&&t.push(e);let r=s.querySelector(".product-form__quantity-box-wrapper");if(r&&t.push(r),"sitchish.myshopify.com"===o){let e=s.querySelector("#product-price");e&&(e.id="");let o=s.querySelector("[data-product-price]");o&&o.removeAttribute("data-product-price");let r=s.querySelector(".form-actions");r&&t.push(r)}let c=s.querySelector(".product-quantity");if(c&&t.push(c),"lavabis-hygiene.myshopify.com"===o){let e=s.querySelector(".price-preview.price");e&&(e.id="")}}if(s=c.closest(".product-details"),s){let e=s.querySelector("#add-to-cart-product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&o.remove();let r=s.querySelector(".quantity");r&&t.push(r)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".gf_product-quantity");e&&e.parentElement.remove()}if(s=c.closest("#ProductSection-product-template"),s){let e=s.querySelector(".cbb
7420-frequently-bought-add-button");e&&e.remove();let t=s.querySelector(".cbb-frequently-bought-form");t&&t.remove()}if(s=c.closest(".product__info-wrapper"),s){let e=s.querySelector(".product-form__quantity");e&&e.remove();let t=s.querySelector(".product-form__buttons");t&&t.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".product-form__payment-container");e&&e.remove();let o=s.querySelector("#price");if(o&&o.classList.remove("product-price"),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".product-details"),s){let e=s.querySelector(".button-common");e&&e.remove()}if(s=c.closest(".caption"),s){let e=s.querySelector(".button.btn-cart");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelectorAll(".form-group")[1];e&&t.push(e);let o=s.querySelector(".price");o&&(o.id="")}if(s=c.closest(".form_buy_sticky"),s){let e=s.querySelector(".form-group .btn.button.button-cart");e&&t.push(e);let o=s.querySelector(".form-group input#Quantity");o&&t.push(o)}if(s=c.closest(".product-template__container"),s){let e=s.querySelector(".store-availability-container");e&&e.remove()}if(s=c.closest(".product-form--container"),s){let e=s.querySelector(".product-form--options");e&&t.push(e);let o=s.querySelector(".product-form--smart-payment-buttons");o&&t.push(o)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector('.product--from[data-item="accent-text"]');e&&t.push(e)}if(s=c.closest("#zpproductselectorfull1-wrapper"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e);let o=s.querySelector(".zpa-quantity-block");o&&t.push(o)}if(s=c.closest(".zpa-multi-product-buy-box"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector('form[action="/cart/add"].product-form.product-form--mini');if(e&&t.push(e),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".was-price.theme-money"),s&&t.push(s),s=c.closest(".box_product_page"),s){let e=s.querySelector(".product-options-bottom");e&&t.push(e)}if(s=c.closest(".product-default"),s){let e=s.querySelector(".add-links.clearfix");e&&t.push(e)}if(s=c.closest(".grid__item.medium-up--three-eighths"),s){let e=s.querySelector('form[action="/cart/add"].shopify-product-form');e&&t.push(e)}if(s=c.closest(".indiv-product"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest('form.product-form[action="/cart/add"]'),s){let e=s.querySelector(".sf__pcard-image .sf__pcard-quick-add");e&&t.push(e);let o=s.querySelector(".main-product__block-buy_buttons");o&&t.push(o)}if(s=c.closest(".product-grid-item.woodmart-hover-base"),s){let e=s.querySelector(".fade-in-block");e&&t.push(e);let o=s.querySelector(".product-compare-button");o&&t.push(o)}if(s=c.closest(".grid__item"),s){if("www-bonmatch-com.myshopify.com"===o){let e=s.querySelector(".selector-wrapper.bcpo-file"),o=s.querySelector(".uploadkit.uploadkit-injected"),r=s.querySelector(".uploadkit-form");e&&t.push(e),o&&r&&r.appendChild(o)}let e=s.querySelector(".product__submit__buttons");e&&t.push(e);let r=s.querySelector(".products > .product-detail > .product-button"),c=s.querySelector(".products > .product-container > .product-button > .quick-view-text");r&&t.push(r),c&&t.push(c);let l=s.querySelector("button#AddToCart"),u=s.querySelector('[data-shopify="payment-button"].shopify-payment-button');if(l&&t.push(l),u&&t.push(u),"tienda-suca-bikes.myshopify.com"===o){let e=s.querySelector(".product__unit-price.product__unit-price--spacing"),t=s.querySelector(".c_p-quantity-input-parent"),o=s.querySelector(".masIva"),r=s.querySelector(".c_col-sw-btn");e&&e.classList.remove("hide"),t&&t.remove(),o&&o.remove(),r&&r.remove()}if("youchique-4183.myshopify.com"===o){let e=s.querySelector(".card-information__button");e&&t.push(e);let o=s.querySelector(".swym-wishlist-button-bar");o&&t.push(o)}if("stelladetailsb2b.myshopify.com"===o){let e=s.querySelector(".bss-b2b-product-vat");e&&t.push(e);let o=s.querySelector("#bss-b2b-tax-inc-excl");o&&t.push(o);let r=s.querySelector(".bss-b2b-collection-item-vat");r&&t.push(r);let c=s.querySelector(".price__regular");if(c){c.classList.remove("price__regular");let e=s.querySelector(".price-item--regular");e&&e.classList.remove("price-item--regular")}let l=s.querySelector(".price__sale");l&&t.push(l)}let i=s.querySelector("quick-view-drawer");
7420i&&t.push(i);let p=s.querySelector("add-to-cart");p&&t.push(p)}if(s=c.closest(".shop-the-look__product-info"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".popover.popover--quick-buy"),s){let e=s.querySelector(".product-form__buy-buttons");e&&t.push(e)}if(s=c.closest(".product__section.product-template .product__section-content .product__section-details"),s){let e=s.querySelector('form[action="/cart/add"] input#addToCart');e&&t.push(e)}if(s=c.closest(".product-item__info-inner"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest(".product-form__info-item"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest("div[data-product-blocks]"),s){let e=s.querySelector(".payment-buttons");e&&t.push(e);let o=s.querySelector(".spt-wishlist-button__wrapper");o&&t.push(o)}if(s=c.closest(".sf__pcard-content.text-center"),s){let e=s.querySelector("button.add-to-cart.sf__btn");e&&t.push(e)}if(s=c.closest(".product-details.section"),s){let e=s.querySelector('form#AddToCartForm.product-content-inner[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".search-item .product-item, .product-grid-row .product-item"),s){let e=s.querySelector(".product-img .action-btn");e&&t.push(e)}if(s=c.closest(".product-collection__content,.product-page-info"),s){let e=s.querySelector(".js-product-button-add-to-cart");e&&t.push(e)}if(s=c.closest(".details-info"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}if(s=c.closest(".product-collection"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}let u=c.closest("[data-js-product-price]");if(u&&u.setAttribute("bss-ltsp-active",""),s=c.closest(".product__info-container"),s){let e=s.querySelector('.form[data-type="add-to-cart-form"] > .shopify-payment-button[data-shopify="payment-button"]');e&&t.push(e)}if(s=c.closest(".products"),s){let e=s.querySelector(".product-container > .product-button > .variants > .add-cart-btn"),o=s.querySelector(".product-container > .product-button > .quick-view-text");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".dt-sc-tabs-container"),s){let e=s.querySelector(".dt-sc-tabs-content > .tab2 > .owl-stage-outer > .owl-stage > .owl-item > .item-row > .products > .product-container > .product-button > .variants > .add-cart-btn");e&&t.push(e)}if(s=c.closest(".wrapper-container"),s){let e=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .price-box > .regular-product > .special-price"),o=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .action > .variants > .add-to-cart-btn");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".featured__collection-product.product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product__section-details"),s){let e=s.querySelector(".product__section-details__inner
7420--product_buttons");e&&t.push(e)}if(s=c.closest(".product-page--cart-form-block"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".price__sale"),s){let e=s.querySelector(".price-item--regular");e&&t.push(e)}if(s=c.closest(".product-item-v1"),s){let e=s.querySelector(".price-old"),o=s.querySelector(".product-icon-action");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".detail-info > .relative"),s){let e=s.querySelector("#AddToCartForm > .btn-action"),o=s.querySelector('div.shopify-payment-button[data-shopify="payment-button"]'),r=s.querySelector(".product-price > del");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product-block--form>.product-form--regular");e&&"eurosafetysystems.myshopify.com"!==o&&e.remove();let t=s.querySelector(".button-cart");t&&t.remove()}if("annabellenoeldesigns-com.myshopify.com"==o&&(s=c.closest(".product-block-list__item .card__section"),s)){let e=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_qty_box");e&&e.remove();let t=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_last_holder .multivariants_block_prc_holder");t&&t.remove();let o=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_add_to_cart_button_h");o&&o.remove();let r=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_block_subtotal_h");r&&r.remove()}if("fedua-b2b.myshopify.com"==o){if(s=c.closest(".gp-product-detail .container"),s){let e=s.querySelector(".gp-product-main-button button[type='submit']");e&&e.remove();let t=s.querySelector(".cbb-also-bought-add-to-cart-button");t&&t.remove();let o=s.querySelector(".cbb-also-bought-product-price-container");o&&o.remove()}if(s=c.closest(".gp-product-widget .product-card-grid"),s){let e=s.querySelector(".product-buttons .btn-quick-view ");e&&e.remove()}}if(s=c.closest(".product--price-container"),s){let e=s.querySelectorAll(".product--price-wrapper > a");e.length&&e.forEach(e=>e.remove())}if("linis-bites-b2b.myshopify.com"==window.location.host&&c.querySelector("[bss-customize-ltsp-message]")){let e=c.closest(".price .price__container");if(e){let o=e.querySelector(".unit-price.caption");o&&t.push(o)}}if(s=c.closest(".product-price--wrapper"),s){let e=s.querySelector(".product-price--compare");e&&e.remove()}if(s=c.closest(".price__pricing-group"),s){let e=s.querySelector(".price-item.price-item--regular[data-regular-price]");e&&(e.classList.remove("price-item"),e.classList.remove("price-item--regular"))}if(l.forEach((function(e){c.closest(e)&&t.push(c.closest(e))})),s=c.closest(".product-page-info"),s){let e=s.querySelector("[data-js-footbar-product-limit]");e&&t.push(e)}if(s=c.closest(".product-wrap"),s){let e=s.querySelector(".purchase-details button.button--add-to-cart"),o=s.querySelector(".product-action");if(e&&t.push(e),o&&t.push(o),window.Shopify&&"dermafirmusa.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price.sale");e&&t.push(e)}}if(s=c.closest(".seven.columns.omega"),s){let e=s.querySelector(".purchase-details__buttons button.shopify-payment-button__button ");e&&t.push(e)}if(s=c.closest("#collectionPr"),s){let e=s.querySelectorAll("#PageContainer .collection .btn.add-to-cart");e.length&&e.forEach(e=>{t.push(e)})}if(s=c.closest(".grid.product-single"),s){let e=s.querySelector('#PageContainer .wrap-product-info button[type="submit"].btn.btn1.pr_btn.addtocart_js');e&&t.push(e)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".module-wrap .gf_add-to-cart.product-form-product-template");e&&t.push(e)}if(s=c.closest(".product-single .product-single__meta"),s){let e=s.querySelector('.product-form__item button[name="add"].product-form__cart-submit');e&&t.push(e)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("#product-price");e&&t.push(e)}if(s=c.closest(".product-item-price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest('main#main[role="main"]'),s){let e=s.querySelector("div.atc-bar");e&&t.push(e)}if(s=c.closest("#CartDrawer"),s){let e=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__totals .cart-item__price-wrapper");o&&t.push(o);let r=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__quantity");r&&t.push(r);let c=s.querySelector(".drawer__footer");c&&t.push(c)}if(s=c.closest("#main-cart-items"),s){let e=s.querySelector(".cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector(".cart-item .cart-item__quantity .cart-item__quantity-wrapper");o&&t.push(o);let r=s.querySelector(".cart-item .cart-item__totals.right.small-hide .cart-item__price-wrapper");r&&t.push(r)}if(s=c.closest("#main-cart-footer"),s){let e=s.querySelector(".cart__footer");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s&&window.Shopify&&("asiadirectfurniture.mysh
7420opify.com"===window.Shopify.shop||"pure-vision-ch.myshopify.com"===window.Shopify.shop)){let e=s.querySelector(".product__price[data-product-price]");e&&t.push(e)}if(s=c.closest(".product-inner.pr"),s){let e=s.querySelector(".pr_atc.pr_qty_atc > a.pr_atc_.js_addtc");e&&t.push(e)}if(s=c.closest("#shopify-section-pr_summary"),s){let e=s.querySelector("p.price_range, .price.price_varies");e&&t.push(e)}if(s=c.closest(".grid__item"),s){let e=s.querySelector(".product__form-container"),o=s.querySelector(".product__description");e&&(t.push(e),o.style.width="100%")}if(s=c.closest(".featured-product__content-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".card__price"),s&&"exosomes-inc.myshopify.com"===o&&(s.style.textAlign="center"),s=c.closest(".Product__InfoWrapper > .Product__Info "),s){let e=s.querySelector('.ProductForm__BuyButtons > button[type="submit"].ProductForm__AddToCart');e&&t.push(e);let o=s.querySelector(".ProductForm__AddToCart");o&&t.push(o)}if(s=c.closest(".product-grid__container .product-grid__content"),s){let e=s.querySelector(".product-single__form .product__quantity");e&&t.push(e);let o=s.querySelector(".add-to-cart");o&&t.push(o);let r=s.querySelector(".product__price--compare");if(r&&t.push(r),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product__price-savings");e&&t.push(e)}}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".h1.medium--left");e&&"envogueusa.com"==window.location.host&&t.push(e)}if(s=c.closest("#productPrice-product-template"),s){let e=s.querySelector("small");e&&"envogueusa.com"==window.location.host&&t.push(e),s.appendChild(c)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".form-grid-btn");e&&"mamiereglissepro.myshopify.com"===o&&t.push(e)}if(s=c.closest("#cont-form"),s){let e=s.querySelector(".so-price");e&&t.push(e);let r=s.querySelector("#addToCart");r&&"mamiereglissepro.myshopify.com"===o&&t.push(r)}if(s=c.closest(".template-product"),s){let e=s.querySelector('button[name="add"]#addToCartBis, button[name="add"]#addToCart2');e&&t.push(e)}if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".quick-product__btn");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o&&"bundlecomph.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product__quantity");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-block-area"),s){let e=s.querySelector("#addToCartButton");e&&"wanderlustvision.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-single__meta--wrapper .product-single__meta"),s){let e=s.querySelector(".price-container.text-money"),o=s.querySelector('button[name="add"].btn--add-to-cart');e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-single__metas"),s){let e=s.querySelector(".product-single__buttons .js-quantity-selector.product-quantity"),o=s.querySelector(".product-single__buttons button.btn--add-to-cart");e&&t.push(e),o&&t.push(o)}if("dollie-wholesale.myshopify.com"===o&&(s=c.closest(".product-card"),s)){let e=s.querySelector(".product-card__buttons .product-card__quickview"),o=s.querySelector(".product-card__buttons .product-card__form"),r=s.querySelector(".product-card__buttons .button-wishlist"),c=s.querySelector(".wpb-variants-swatch");e&&t.push(e),o&&t.push(o),r&&t.push(r),c&&t.push(c)}if("obsequ.myshopify.com"===o&&(s=c.closest(".product-meta"),s)){let e=s.querySelector(".price-list[data-product-price-list]");e&&e.remove()}if(s=c.closest(".sticky-cart"),s){let e=s.querySelector(".product-form__buttons");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"!==o&&"coventa-demo.myshopify.com"!==o&&(s=c.closest(".productitem--info")||c.closest(".product-pricing"),s)){let e=s.querySelector(".price");e&&t.push(e)}if(s=c.closest(".productitem--info"),s){let e=s.querySelector(".price__compare-at.visible");e&&"coventa-demo.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-block-list"),s&&window.Shopify&&"axiom-wholesale-parts.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price");e&&e.classList.remove("price")}if(s=c.closest(".product-layout"),s){let e=s.querySelector(".action-links");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-block--price");e&&"comphycompany.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-details, .modal_price"),s){let e=s.querySelector(".current_price, .price__container");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"===window.Shopify.shop&&(s=c.closest(".productitem__container .productitem--info, .product-details .product-pricing"),s)){let e=s.querySelectorAll(".price__compare-at--single, .price__compare-at, .price__current--max");
7420e.length&&e.forEach(e=>e.remove())}if("kerriecapelliusa-com.myshopify.com"===window.Shopify.shop&&(s=c.closest(".product-detail.quickbuy-content.spaced-row.container"),s)){let e=s.querySelectorAll(".product-form.theme-init .variant-visibility-area");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".widget_if_pr, .product-inner, .al_center.fl_center, .widget_if_pr"),s){let e=s.querySelectorAll(".product-price-pr-search, .hover_button, .nt_add_w, .nt_add_cp, .sticky_atc_btn.variations_form, .transcy-money");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".ProductItem__Wrapper, .ProductForm"),s){let e=s.querySelector(".ProductItem__PriceList, .ProductForm__QuantitySelector");e&&"sirenwireless.myshopify.com"!==o&&e.remove();let r=s.querySelector(".ProductFormWrapper");r&&"sirenwireless.myshopify.com"===o&&t.push(r)}if("butterfly-health-and-wellness.myshopify.com"===window.Shopify.shop){if(s=c.closest(".item-content"),s){let e=s.querySelector('.module-wrap[data-label="(P) Cart Button"] button.gf_add-to-cart');e&&e.remove()}if(s=c.closest(".gf_product-desc"),s){let e=s.querySelector("h4");e&&(e.remove(),c.style.display="none")}if(s=c.closest(".gf_column[data-id]"),s){let e=s.querySelectorAll('.elementor-section[data-element_type="section"] .elementor-text-editor strong, .gf_product-desc h4, .gf_product-desc strong');if(e)for(let t of e)t.remove()}}if(s=c.closest(".product-block"),s){let e=s.querySelector(".quickbuy-toggle");e&&t.push(e)}if(s=c.closest(".productView-details"),s){let e=s.querySelector(".productView-buttons"),r=s.querySelector(".quantity_selector"),c=s.querySelector(".productView-subtotal");e&&t.push(e),r&&t.push(r),c&&t.push(c),"remote-king-au.myshopify.com"===o&&s.querySelectorAll(".product-customInformation").forEach(e=>e.remove())}if(s=c.closest(".product__content"),s&&"campomarzio-trade-uk.myshopify.com"===o){let e=s.querySelector(".product__text"),o=s.querySelector(".select__fieldset"),r=s.querySelector(".product__submit");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-card__price, .product-single__meta-list"),s){let e=s.querySelector(".product-single__price, .money-product");e&&e.remove()}if("ens-nutrition-3419.myshopify.com"===o&&(s=c.closest(".card__content"),s)){let e=s.querySelector(".button.quick-add__submit");e&&e.remove()}if("b2b-nandu.myshopify.com"===o){if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".grid-product__meta .grid-product__price ");e&&e.remove()}let e=c.closest(".product-single__meta");if(e){let t=e.querySelector(".product__price.product__price--compare"),o=e.querySelector(".product__price.on-sale"),r=e.querySelector(".product__price-savings");t&&o&&r&&(t.remove(),o.remove(),r.remove())}}if("impjarwholesale.myshopify.com"===o){if(s=c.closest(".tp-product-content"),s){let e=s.querySelector("button#AddToCart"),o=s.querySelector(".tp-product-singe-action .tp-product-quantity");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".grid-item"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}}if("b2b-dbodhi-singapore.myshopify.com"===o&&(s=c.closest("del"),s&&t.push(c),s=c.closest(".product-information--inner"),s)){const e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".lh-details-product"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-add_to_cart");e&&t.push(e);let r=s.querySelector(".lh-buy-now");r&&t.push(r);let c=s.querySelector(".lh-compare-at-price");c&&t.push(c)}if(s=c.closest(".lh-collection-item"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-product-compare-price");e&&t.push(e)}if(s=c.closest(".ProductMeta, .ProductItem__Info"),s){let e=s.querySelectorAll(".Price");e&&e.forEach(e=>e.remove())}}t.forEach((function(e){e.remove()}))}}(e),function(e){e.ltsp.removeElementByLTSPWrapper=function(){let e=document.getElementsByClassName("bss-ltsp-price-wrapper"),t=[];for(let o=0;o<e.length;o++){let r=e[o],c=[],l=r.closest(".product-parent");if(l){let e=l.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=l.querySelector(".tt-btn-quickview");o&&t.push(o)}if(l=r.closest(".product-single__meta"),l=r.closest(".tt-product-single-info"),l){let e=l.querySelector("form .btn-addtocart");e&&t.push(e);let o=l.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(l=r.closest(".product_section"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=l.querySelector(".sale.savings");o&&t.push(o)}if(l=r.closest(".quick-shop-style--inline"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(l=r.closest(".product-details"),l){let e=l.querySelector("small em");e&&t.push(e)}if(l=r.closest(".gt_product-body"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-saved");o&&t.push(o);let r=l.querySelector(".gt_product-price--compare");r&&t.push(r)}if(l=r.closest(".gt_product_content"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest(".gt-single-product"),l){let e=l.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest("#cont-form"),l){let e=l.querySelector("form .cont-add-btns");e&&t.push(e)}if(l=r.closest(".theiaStickySidebar"),l){let e=l.querySelector(".variations_button");e&&t.push(e)}if(l=r.closest(".product-submit"),l){let e=l.querySelector(".payment-buttons-container");e&&t.push(e)}if(l=r.closest(".productitem"),l){let e=l.querySelector(".productitem--action");e&&t.push(e)}if(l=r.closest(".product--outer"),l){let e=l.querySelector(".product-form--atc");e&&t.push(e),e=l.querySelector(".shopify-payment-button"),e&&t.push(e)}if(l=r.closest(".product-grouped"),l){let e=l.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector(".product-top .product-des .action");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(l=r.closest(".grid__item.grid-product"),l){let e=l.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let o=l.querySelector(".grid-product__tag");o&&t.push(o);let r=l.querySelector(".visually-hidden");r&&t.push(r)}if(l=r.closest(".product-info"),l){let e=l.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=l.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o)}if(l=r.closest("#product-right"),l){let e=l.querySelector(".was");e&&t.push(e);let o=l.querySelector(".product-add");o&&t.push(o)}if(l=r.closest(".was"),l&&t.push(l),l=r.closest(".product-single__meta"),l){let e=l.querySelector(".pf__actions");e&&t.push(e)}if(l=r.closest("#AddToCartForm-product-template"),l){let e=l.querySelector("#CartButtons-product-template");e&&t.push(e)}if(l=r.closest(".Product__Info"),l){let e=l.querySelector(".ProductMeta__PriceList");e&&t.push(e)}if(l=r.closest(".grid-item"),l){let e=l.querySelector("#addToCart-product-template");e&&t.push(e);let o=l.querySelector(".payment-buttons");o&&t.push(o)}c.forEach((function(e){r.closest(e)&&t.push(r.closest(e))}))}t.forEach((function(e){e.remove()}))}}(e),e.ltsp.removePattern=function(){e.ltsp.removeElementByLTSPMessage(),e.ltsp.removeElementByLTSPWrapper()},e.ltsp.insertBeforeAddToCart=function(){let t=document.querySelectorAll(".bsscommerce-ltsp-message[data-ltsp-cart-message]");for(let o=0;o<t.length;o++){let r=t[o],c=r.getAttribute("data-ltsp-cart-message");r.removeAttribute("data-ltsp-cart-message");let l=[".main-content .product-single__meta",".main-content .grid__item",".main-content .grid-item",".main-content .product__content.product__content--template.product__content--information","main#MainContent .product__info-container",".container#product-product .product-info-main",'main#main section[data-section-id="collection-template"] .product-item',".product-area__details.product-detail .product-detail__form"];for(let t=0;t<l.length;t++){let o=r.closest(l[t]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let t=
7420o.querySelector('form[action="/cart/add"]');if(t){let o=e.helperLTSP.createHidePriceMessageSpan(c);t.before(o)}}}let s=[[".product-layout .item .item-inner .caption",".button.btn-cart"],['main#main section[data-section-id="product-template"] .card__section',".product-form__payment-container"],[".main#MainContent .content.product",'form[action="/cart/add"] .offers']];for(let t=0;t<s.length;t++){let o=r.closest(s[t][0]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=o.querySelector(s[t][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.before(t)}}}if(window.Shopify&&"airbesafe.myshopify.com"===window.Shopify.shop){let t=[[".shopify-section--main-collection .product-list__inner .product-item ",".product-item__info .product-item-meta__price-list-container .price-list"],[".shopify-section--main-product .product--thumbnails-bottom .product__info",".product-meta__price-list-container"],["product-item.product-item .product-item__info",".product-item-meta__price-list-container"]];for(let o=0;o<t.length;o++){let l=r.closest(t[o][0]);if(l&&!l.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=l.querySelector(t[o][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.after(t)}}}}}}}function c(e){!function(e){e.helperLTSP={},e.helperLTSP.createHidePriceMessageSpan=function(e){let t=document.createElement("span");return t.classList.add("bsscommerce-ltsp-message"),t.classList.add("hide-message"),t.style.fontSize="16px",t.style.fontWeight="normal",t.style.color="initial",t.style.textTransform="none",t.style.visibility="visible",t.innerHTML=e,t},e.helperLTSP.onLoadMore=function(e){const t=document.querySelector([".sf__product-listing[data-product-container] > div",'.row[data-js-collection-replace="products"]',".product-list-container .product-list.use-infinite-scroll","#collection-product .product-container",".container #col-main"].join(","));if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e()}))})).observe(t,{childList:!0})}}}(e)}function l(){const e={};c(e),r(e),function(e){e.ptvp={},e.ptvp.addPasscodeForm=function(){let e=document.querySelector('form[action*="/cart/add"]'),t=document.getElementsByClassName("bss-passcode-wrapper-tag"),o=document.getElementsByClassName("bsscommerce-password-form"),r=document.querySelector(".toggle-passcode-input"),c=null;if(o.length&&(c=o[0],c.style.display="block",r&&r.addEventListener("click",(function(e){let t=document.getElementById("bsscommerce-password");"password"===t.type?(t.type="text",e.target.closest(".toggle-passcode-input").style.fill="#5C5F62"):(t.type="password",e.target.closest(".toggle-passcode-input").style.fill="#BABEC3")}))),t.length&&e&&o.length){e.before(c);let o=document.getElementById("bsscommerce-password"),r=new FormData;r.append(o.name,o.value),document.getElementById("bsscommerce-password-submit").style.padding="12px 16px",document.getElementById("bsscommerce-password-submit").style.display="block";let l=new XMLHttpRequest;l.open("post","/cart/update.js"),l.send(r);let s=document.getElementsByClassName("bsscommerce-ltap-password");if(s.length)for(let e=0;e<s.length;e++)s[e].addEventListener("submit",(function(e){e.preventDefault();let t=this;if(t.length)for(let e=0;e<t.length;e++)if("bsscommerce-password"==t[e].id){let o=t[e];if(o.addEventListener("input",(function(){o.classList.remove("input--error")})),o.value)if(""!=o.value){let e=new FormData;e.append(o.name,o.value);let t=new XMLHttpRequest;t.onreadystatechange=function(){4==t.readyState&&200==t.status&&location.reload()},t.open("post","/cart/update.js"),t.send(e)}else o.classList.add("input--error")}}));for(let e=0;e<t.length;e++)t[e].remove()}}}(e),e.ptvp.addPasscodeForm(),document.querySelectorAll(".quick-view-btn").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){e.ptvp.addPasscodeForm()}),1e3)}))})),function e(){document.querySelectorAll(".advanced-filter a").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){let t=document.getElementsByClassName("bsscommerce-ltsp-message");for(let e=0;e<t.length;e++){let o=t[e].closest(".item-row");
7420if(o){let e=o.querySelector(".add-to-cart");e&&e.remove()}}e()}),1200)}))}))}(),e.ltsp.quickView(),e.ltsp.insertBeforeAddToCart(),e.ltsp.removePattern(),e.helperLTSP.onLoadMore(e.ltsp.removePattern),setTimeout((function(){e.ltsp.removePattern()}),2500);if(window.Shopify&&-1!==["showroom1-ducanero.myshopify.com","sparklinbluewholesale.myshopify.com","youchique-4183.myshopify.com","wilkens-gmbh.myshopify.com","friends-forever-pets.myshopify.com"].indexOf(window.Shopify.shop)&&(window.onscroll=function(e,t){let o;return function(...r){o&&clearTimeout(o),o=setTimeout(()=>{e(...r),o=null},t)}}((function(){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}),500)),"amoreo.eu"===window.location.host){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}let t=document.querySelector(".infinite-scrolling-homepage a.btn");"airbesafe.myshopify.com"===window.location.host&&setTimeout((function(){e.ltsp.insertBeforeAddToCart()}),3e3),t&&(t.onclick=function(){setTimeout((function(){e.ltsp.removePattern()}),1e3)});let o=document.querySelectorAll("#shopify-section-product-recommendations, .product-modal-wrapper");var l,s,u;(o.length&&o.forEach((function(t){t.addEventListener("DOMSubtreeModified",(function(){e.ltsp.removePattern()}))})),"valleys-group.myshopify.com"===window.location.host)&&(l=function(){e.ltsp.removePattern();
7420let t=document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{l()},1700)}))}))});"b.salonpremium.com"===window.location.host&&(s=function(){e.ltsp.removePattern();let t=document.querySelectorAll(".pagination");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{s()},3e3)}))}))});"www.internationalbeauty.ca"===window.location.host&&(u=function(){let t=document.querySelector('[id^="RecentlyViewed"]');new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}u()}),2e3)}))})))}))})).observe(t,{childList:!0})});if("bluebasketb2b.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#CartDrawer");const o=()=>{let e=document.querySelectorAll("script#bss-ltap-login-require");for(let t in e)t.remove()};if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),o())}))})).observe(t,{childList:!0})}}if("dollie-wholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#product-grid .products__row");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("impjarwholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector(".tp-collection-content");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("inex-studio.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#Search .Search__Results");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0,subtree:!0})}}}o.r(t),o.d(t,"default",(function(){return l})),l()}]); 7421 </script>
7421 7422 7423 </main> 7424 7425 <div id="shopify-section-newsletter" class="shopify-section"><br> 7426 <style> 7427 #shopify-section-newsletter { 7428 background: url(#); 7429 background-attachment: fixed; 7430 margin-bottom: 0; 7431 } 7432 input:-webkit-autofill, 7433 input:-webkit-autofill:hover, 7434 input:-webkit-autofill:active, 7435 input:-webkit-autofill:focus { 7436 -webkit-box-shadow:0 0 0 50px white inset; 7437 -webkit-text-fill-color: #ffffff; 7438 } 7439 .section-newsletter { 7440 max-width: 800px; 7441 margin: auto; 7442 padding: 50px 0; 7443 } 7444 .section-newsletter h2 { 7445 font-weight: 700; 7446 font-size: 24px; 7447 } 7448 .section-newsletter input[type="email"] { 7449 width: 100%; 7450 text-align: center; 7451 border: none; 7452 border-bottom: 1px solid #ffffff; 7453 font-size: 16px; 7454 color: #757575; 7455 background-color: #eeeeee; 7456 } 7457 .section-newsletter .row label { 7458 font-size: 14px; 7459 cursor: pointer; 7460 } 7461 .section-newsletter .radio-inline input { 7462 width: auto; 7463 } 7464 .section-newsletter .btn { 7465 width: 130px; 7466 border: 1px solid #ffffff; 7467 box-shadow: none; 7468 font-size: 16px; 7469 font-weight: 500; 7470 text-transform: uppercase; 7471 } 7472 .section-newsletter form { 7473 margin: 30px 0 60px; 7474 } 7475 .section-newsletter input[type="radio"] { 7476 position: absolute; 7477 width: 1px; 7478 height: 1px; 7479 } 7480 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7481 position: relative; 7482 padding-left: 28px; 7483 cursor: pointer; 7484 line-height: 20px; 7485 display: inline-block; 7486 color: #666; 7487 } 7488 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7489 content: ''; 7490 position: absolute; 7491 left: 0; 7492 top: 0; 7493 width: 18px; 7494 height: 18px; 7495 border: 1px solid #ddd; 7496 border-radius: 100%; 7497 background: #fff; 7498 } 7499 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7500 content: ''; 7501 width: 12px; 7502 height: 12px; 7503 background: #ffffff; 7504 position: absolute; 7505 top: 3px; 7506 left: 3px; 7507 border-radius: 100%; 7508 -webkit-transition: all 0.2s ease; 7509 transition: all 0.2s ease; 7510 } 7511 .section-newsletter [type="radio"]:not(:checked) + label:after { 7512 opacity: 0; 7513 -webkit-transform: scale(0); 7514 transform: scale(0); 7515 } 7516 .opt-newsletter {display:none;} 7517 .footer-newsletter p, .footer-newsletter p a { 7518 color: #757575; 7519 } 7520 @media (max-width:991px){ 7521 .section-newsletter h2 { 7522 font-size: 32px; 7523 } 7524 .section-newsletter input { 7525 width: 300px; 7526 font-size: 14px; 7527 } 7528 .section-newsletter { 7529 padding: 50px 20px; 7530 } 7531 } 7532 @media (max-width: 480px){ 7533 .section-newsletter input[type="email"] {font-size: 16px;} 7534 } 7535 </style> 7536<style> 7537.icon-img-footer { 7538 width: 80px; 7539 padding: 0px 5px; 7540} 7541 7542@media (min-width: 768px) { 7543 .icon-img-footer { 7544 width: 120px; 7545 } 7546} 7547 7548@media (min-width: 992px) { 7549 .icon-img-footer { 7550 width: 120px; 7551 } 7552} 7553 7554.button-login-daftar { 7555 display: grid; 7556 grid-template-columns: repeat(2, 1fr); 7557 font-weight: 700; 7558} 7559 7560.button-login-daftar a { 7561 text-align: center; 7562 text-decoration: none; 7563} 7564 7565.login, 7566.register { 7567 color: #ffffff; 7568 padding: 15px 10px; 7569 font-size: 23px; 7570 text-shadow: 0 0 8px rgba(255, 0, 0, 0.75); 7571} 7572 7573.login, 7574.login-button { 7575 background: linear-gradient(to bottom, #ff0000 0%, #ff0000 50%, #ae0000 100%); 7576 border: 2px solid #eaf6ff; 7577 box-shadow: 0 0 14px rgba(255, 0, 13, 0.65); 7578} 7579 7580.register, 7581.register-button { 7582 background: linear-gradient(to bottom, #ff6666 0%, #ff0000 50%, #ff0000 100%); 7583 border: 2px solid #eaf6ff; 7584 box-shadow: 0 0 14px rgba(255, 0, 0, 0.65); 7585} 7586</style> 7587 7588 <!-- wp:html --> 7589
7589<script> 7590 document.addEventListener('DOMContentLoaded', 7591 function(){const faqItems=document.querySelectorAll('.faq-item'); 7592 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7593 question.addEventListener('click', 7594 ()=>{const isActive=item.classList.contains('active'); 7595 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7596 if(!isActive){item.classList.add('active')}})})}); 7597 </script>
7597 7598 7599 7600 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7601 </div> 7602<div class="faq-section"> 7603 <h2 style="text-align: center;">FAQ TENTANG NIXTOTO</h2> 7604 <div class="faq-container"> 7605 7606 <div class="faq-item"> 7607 <button class="faq-question"> 7608 Apa itu NIXTOTO? 7609 <span></span> 7610 </button> 7611 <div class="faq-answer"> 7612 <p> 7613 NIXTOTO adalah platform link login resmi untuk pembelian merchandise dan apparel Soulkeeper Cult. Kami menyediakan akses cepat, tampilan ringan, serta layanan transaksi rilisan fisik terpercaya untuk member setiap hari. 7614 </p> 7615 </div> 7616 </div> 7617 7618 <div class="faq-item"> 7619 <button class="faq-question"> 7620 Apa keunggulan NIXTOTO sebagai link login resmi? 7621 <span></span> 7622 </button> 7623 <div class="faq-answer"> 7624 <p> 7625 NIXTOTO unggul karena menghadirkan proses login yang sangat praktis, akses server stabil, dan menu katalog yang mudah dipahami. Tampilan kami 100% mobile-friendly untuk memudahkan pengalaman belanja lewat smartphone maupun desktop. 7626 </p> 7627 </div> 7628 </div> 7629 7630 <div class="faq-item"> 7631 <button class="faq-question"> 7632 Apakah NIXTOTO menyediakan apparel dan rilisan eksklusif? 7633 <span></span> 7634 </button> 7635 <div class="faq-answer"> 7636 <p> 7637 Ya, NIXTOTO bertindak sebagai distributor resmi yang memberikan informasi katalog terbaru, susunan kategori produk yang rapi, dan sistem pre-order agar member mudah mengikuti update perilisan item setiap hari. 7638 </p> 7639 </div> 7640 </div> 7641 7642 <div class="faq-item"> 7643 <button class="faq-question"> 7644 Apakah web NIXTOTO bisa diakses lewat HP? 7645 <span></span> 7646 </button> 7647 <div class="faq-answer"> 7648 <p> 7649 Tentu saja. NIXTOTO dirancang khusus agar sangat ringan dan responsif diakses lewat HP. Member dapat melakukan login, daftar akun, cek status pesanan, serta memilih item koleksi favorit secara praktis kapan saja. 7650 </p> 7651 </div> 7652 </div> 7653 7654 <div class="faq-item"> 7655 <button class="faq-question"> 7656 Kenapa banyak kolektor memilih daftar di NIXTOTO? 7657 <span></span> 7658 </button> 7659 <div class="faq-answer"> 7660 <p> 7661 Banyak member memilih NIXTOTO karena akses login cepat, jaminan barang 100% original, update stok terbaru, navigasi yang sederhana, dan sistem transaksi yang aman serta nyaman digunakan untuk akses harian. 7662 </p> 7663 </div> 7664 </div> 7665 7666 </div> 7667</div> 7668 </div> 7669 7670 7671 7672 7673 <div class="overlay overlay-cart"></div> 7674 <div id="CartDrawer" class="drawer drawer--right"> 7675 <div class="drawer__header pl-2 pr-2"> 7676 <div class="drawer__icon-cart display-table-cell"> 7677 <a href="/cart" class=""> 7678 <svg class="icon icon-cart" version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7678005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg> 7679 </a> 7680 </div> 7681 <div class="drawer__title h4">Keranjang Belanja</div> 7682 <div class="drawer__close js-drawer-close"> 7683 <button type="button"> 7684 7685 <svg class="icon icon-close" version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32"> 7686 <title>icon-close</title> 7687 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 7688 </svg> 7689 </button> 7690 </div> 7691 </div> 7692 <div id="CartContainer" class="p-2"></div> 7693 </div> 7694 7695
7695<script> 7696 7697 </script>
7697 7698
7698<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7698 7699 <!-- /snippets/ajax-cart-template.liquid --> 7700 7701
7701<script id="CartTemplate" type="text/template"> 7702 7703 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7704 <div class="ajaxcart__inner" {{ cart.item_count }}> 7705 {{#items}} 7706 <div class="ajaxcart__product"> 7707 <div class="ajaxcart__row" data-line="{{line}}"> 7708 <div class="grid"> 7709 <div class="grid__item one-quarter"> 7710 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7711 </div> 7712 <div class="grid__item three-quarters"> 7713 <p class="d-block mb-3"> 7714 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7715 {{#if variation}} 7716 <span class="ajaxcart__product-meta p">{{variation}}</span> 7717 {{/if}} 7718 {{#properties}} 7719 {{#each this}} 7720 {{#if this}} 7721 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7722 {{/if}} 7723 {{/each}} 7724 {{/properties}} 7725 7726 </p> 7727 <div class="grid--full display-table"> 7728 <div class="grid__item display-table-cell one-half"> 7729 <div class="ajaxcart__qty"> 7730 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7731 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7732 <span class="visually-hidden">Kurangi jumlah barang</span> 7733 </button> 7734 <input type="text" name="updates[]" class="btn ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" data-line="{{line}}" aria-label="quantity" pattern="[0-9]*"> 7735 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7736 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7737 <span class="visually-hidden">Tambahkan jumlah barang</span> 7738 </button> 7739 </div> 7740 </div> 7741 <div class="grid__item display-table-cell one-half text-right"> 7742 {{#if discountsApplied}} 7743 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7744 <br><span class="h4">{{{linePrice}}}</span> 7745 {{else}} 7746 <span class="h4">{{{linePrice}}}</span> 7747 {{/if}} 7748 </div> 7749 </div> 7750 {{#if discountsApplied}} 7751 <div class="grid--full display-table"> 7752 <div class="grid__item text-right"> 7753 {{#each discounts}} 7754 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7755 {{/each}} 7756 </div> 7757 </div> 7758 {{/if}} 7759 </div> 7760 </div> 7761 </div> 7762 </div> 7763 </div> 7764 </div> 7765 {{/items}} 7766 </div> 7767 <div class="ajaxcart__footer"> 7768 <div class="grid--full cart-subtotal py-2"> 7769 <p>Subtotal</p> 7770 <h3 class="primary">{{{totalPrice}}}</h3> 7771 {{#if totalCartDiscount}} 7772 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7773 {{/if}} 7774 </div> 7775 7776 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7777 7778 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 7779 </div> 7780 </form> 7781 7782 </script>
7782 7783
7783<script id="AjaxQty" type="text/template"> 7784 7785 <div class="ajaxcart__qty"> 7786 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7787 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"> 7788 <title>icon-minus</title> 7789 <path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path> 7790 </svg> 7791 <span class="visually-hidden">Kurangi jumlah barang</span> 7792 </button> 7793 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7794 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7795 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7796 <span class="visually-hidden">Tambahkan jumlah barang</span> 7797 </button> 7798 </div> 7799 7800 </script>
7800 7801
7801<script id="JsQty" type="text/template"> 7802 7803 <div class="js-qty mx-auto mt-2"> 7804 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7805 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7806 <span class="visually-hidden">Kurangi jumlah barang</span> 7807 </button> 7808 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7809 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7810 <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7811 <span class="visually-hidden">Tambahkan jumlah barang</span> 7812 </button> 7813 </div> 7814 7815 </script>
7815 7816 7817 <style> 7818 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7819 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7820 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7821 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7822 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7823 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7824 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7825 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7826 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7827 </style> 7828
7828<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=5113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK" defer></script>
7828 7829
7829<script> 7830 jQuery(function($) { 7831 ajaxCart.init({ 7832 formSelector: '#AddToCartForm', 7833 cartContainer: '#CartContainer', 7834 addToCartSelector: '#AddToCartXX', 7835 cartCountSelector: '#CartCount, #CartCount2', 7836 cartCostSelector: '#CartCost', 7837 moneyFormat: "Rp {{amount_no_decimals}}" 7838 }); 7839 }); 7840 7841 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7842 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7843 timber.RightDrawer.open(); 7844 }); 7845 </script>
7845 7846 7847 7848 7849 7850 <style> 7851 /** Search AutoComplete **/ 7852 .resultsearch .ui-menu-item[data-cat="Collection"], 7853 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7854 .resultsearch .ui-widget.ui-widget-content { 7855 width: 100%; 7856 top: 48px; 7857 border: none; 7858 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 7859 } 7860 .resultsearch .ui-menu-item {text-align: left;} 7861 .resultsearch .ui-menu-item>a, .resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 16px;}.resultsearch .ui-menu-item img {vertical-align: middle;}.resultsearch .ui-menu-item a[data-cat="Collection"] img {display: none;}.resultsearch .ui-menu .ui-state-focus, .resultsearch .ui-menu .ui-state-active {margin: 0;}.ui-state-active, .ui-widget-content .ui-state-active {background: #f2f2f2;border: none;color: #ffffff;}.resultsearch .ui-menu-item>a,.resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 13px;}.resultsearch .ui-menu-item a[data-cat="Produk"] img {margin-right: 10px;}.resultsearch .ui-menu-item a[data-cat="Produk"] .price {float: right;padding: 15px 0;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before {content: "Product Populer";font-size: 13px;padding: 5px;margin: 5px 0;background: #f2f2f2;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;} 7862 .ui-state-active { 7863 border: none!important; 7864 background-color: #fafafa!important; 7865 color: #000!important; 7866 } 7867 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7868 .ui-menu .ui-menu-item {line-height: normal;} 7869 </style> 7870
7870<script> 7871 $(window).load(function(){ 7872 7873 function format(item) {var cell = '';cell += "<a data-cat=" + item.category + " " + "href=" + item.url + ">" + "<img src=" + item.images + "/>" + "<span class='title'>" + item.label + "</span>" + "<span class='price'>" + item.price + "</span>" + "</a>";return cell;} 7874 7875 $.widget("custom.catcomplete", $.ui.autocomplete, { 7876 _renderMenu: function (ul, items) { 7877 // have search reults split up in categories 7878 var that = this, 7879 currentCategory = ""; 7880 $.each(items, function (index, item) { 7881 if (item.category != currentCategory) { 7882 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7883 currentCategory = item.category; 7884 } 7885 that._renderItemData(ul, item); 7886 }); 7887 } 7888 }); 7889 7890 // higlight searched for term 7891 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7892 var term = this.element.val(), 7893 html = item.label.replace( term, "<b>$&</b>" ); 7894 return $( "<li>" ) 7895 .append(format(item)) 7896 .appendTo( ul ); 7897 }; 7898 7899 7900 var data = [ 7901 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius â 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn â 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft Sweetbo
7901x Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7901,{ label: "Father's Day Special", category: "Collection", url: "/collections/kado-untuk-ayah", images: " ", price: " " },{ label: "Ferrari", category: "Collection", url: "/collections/ferrari", images: " ", price: " " },{ label: "Ferrero Rocher", category: "Collection", url: "/collections/ferrero-rocher", images: " ", price: " " },{ label: "Festival Belanja Online", category: "Collection", url: "/collections/fbo-2018", images: " ", price: " " },{ label: "Floatbox", category: "Collection", url: "/collections/floatbox", images: " ", price: " " },{ label: "Flower", category: "Collection", url: "/collections/flower", images: " ", price: " " },{ label: "Flower Best Deals", category: "Collection", url: "/collections/flower-best-deals", images: " ", price: " " },{ label: "Flowers", category: "Collection", url: "/collections/toko-bunga", images: " ", price: " " },{ label: "Flowers For Him", category: "Collection", url: "/collections/bunga-untuk-pria", images: " ", price: " " },{ label: "Flowers Style", category: "Collection", url: "/collections/style", images: " ", price: " " },{ label: "Flowers Type", category: "Collection", url: "/collections/type", images: " ", price: " " },{ label: "For Her", category: "Collection", url: "/collections/kado-untuk-wanita", images: " ", price: " " },{ label: "For Him", category: "Collection", url: "/collections/kado-untuk-pria", images: " ", price: " " },{ label: "Forever Flower", category: "Collection", url: "/collections/forever-flower", images: " ", price: " " },{ label: "Forever Flower Holo Series", category: "Collection", url: "/collections/forever-flower-holo-series", images: " ", price: " " },{ label: "Forever Flower x NestBloom", category: "Collection", url: "/collections/forever-flower-x-nestbloom", images: " ", price: " " },{ label: "Fortune Hampers", category: "Collection", url: "/collections/fortune-hampers", images: " ", price: " " },{ label: "Frank & Co", category: "Collection", url: "/collections/franknco", images: " ", price: " " },{ label: "Fresh Flowers", category: "Collection", url: "/collections/fresh-flower", images: " ", price: " " },{ label: "Gantungan Kunci", category: "Collection", url: "/collections/gantungan-kunci", images: " ", price: " " },{ label: "Gelato", category: "Collection", url: "/collections/gelato", images: " ", price: " " },{ label: "Gelato Pie", category: "Collection", url: "/collections/gelato-pie", images: " ", price: " " },{ label: "Gemini ï¸ 21May - 21June", category: "Collection", url: "/collections/kado-untuk-zodiak-gemini", images: " ", price: " " },{ label: "Gerbera", category: "Collection", url: "/collections/gerbera", images: " ", price: " " },{ label: "Get Well Soon", category: "Collection", url: "/collections/rangkaian-bunga-gws", images: " ", price: " " },{ label: "Giant Flower Bali", category: "Collection", url: "/collections/giant-flower-bali", images: " ", price: " " },{ label: "Giant Flower Bandung", category: "Collection", url: "/collections/giant-flower-bandung", images: " ", price: " " },{ label: "Giant Flower Bouquet", category: "Collection", url: "/collections/giant-flower", images: " ", price: " " },{ label: "Gift", category: "Collection", url: "/collections/souvenir-kado-hadiah", images: " ", price: " " },{ label: "Gift by Recipient", category: "Collection", url: "/collections/gift-by-recipient", images: " ", price: " " },{ label: "Gift for Your Girlfriend", category: "Collection", url: "/collections/kado-untuk-pacar-wanita", images: " ", price: " " },{ label: "Gifts", category: "Collection", url: "/collections/gifts", images: " ", price: " " },{ label: "Glassbox Hampers", category: "Collection", url: "/collections/glassbox-hampers", images: " ", price: " " },{ label: "Glassware Hampers", category: "Collection", url: "/collections/parcel-pecah-belah", images: " ", price: " " },{ label: "Gold Jewelry", category: "Collection", url: "/collections/perhiasan-emas", images: " ", price: " " },{ label: "Grand Opening", category: "Collection", url: "/collections/grand-opening", images: " ", price: " " },{ label: "Granola", category: "Collection", url: "/collections/granola", images: " ", price: " " },{ label: "Green Tea", category: "Collection", url: "/collections/green-tea", images: " ", price: " " },{ label: "Greeting Card All", category: "Collection", url: "/collections/greeting-card-all", images: " ", price: " " },{ label: "Greeting Card Anniversary", category: "Collection", url: "/collections/greeting-card-anniversary", images: " ", price: " " },{ label: "Greeting Card Birthday", category: "Collection", url: "/collections/greeting-card-birthday", images: " ", price: " " },{ label: "Greeting Card Eid", category: "Collection", url: "/collections/greeting-card-eid", images: " ", price: " " },{ label: "Greeting Card Graduation", category: "Collection", url: "/collections/greeting-card-graduation", images: " ", price: " " },{ label: "Greeting Card Mother's Day", category: "Collection", url: "/collections/greeting-card-mothers-day", images: " ", price: " " },{ label: "Greeting Card Newborn", category: "Collection", url: "/collections/greeting-card-newborn", images: " ", price: " " },{ label: "Greeting Card Others", category: "Collection", url: "/collections/greeting-card-others", images: " ", price: " " },{ label: "Greeting Card Valentine", category: "Collection", url: "/collections/greeting-card-valentine", images: " ", price: " " },{ label: "Greeting Card Wedding", category: "Collection", url: "/collections/greeting-card-wedding", images: " ", price: " " },{ label: "Grooming", category: "Collection", url: "/collections/grooming", images: " ", price: " " },{ label: "Hadiah Tahun Baru Imlek", category: "Collection", url: "/collections/kado-imlek", images: " ", price: " " },{ label: "Hadiah untuk Bayi", category: "Collection", url: "/collections/kado-untuk-bayi", images: " ", price: " " },{ label: "Hadiah untuk Pacar", category: "Collection", url: "/collections/kado-untuk-pacar", images: " ", price: " " },{ label: "Hadiah untuk Pernikahan", category: "Collection", url: "/collections/kado-untuk-pernikahan", images: " ", price: " " },{ label: "Hadiah untuk Sahabat", category: "Collection", url: "/collections/kado-untuk-sahabat", images: " ", price: " " },{ label: "Hampers", category: "Collection", url: "/collections/hampers", images: " ", price: " " },{ label: "Hampers Baby Boy", category: "Collection", url: "/collections/hampers-baby-boy", images: " ", price: " " },{ label: "Hampers Baby Girl", category: "Collection", url: "/collections/hampers-baby-girl", images: " ", price: " " },{ label: "Hampers Baby Unisex", category: "Collection", url: "/collections/hampers-baby-unisex", images: " ", price: " " },{ label: "Hampers Delivery Indonesia", category: "Collection", url: "/collections/parcel-indonesia", images: " ", price: " " },{ label: "Hampers Lebaran 2025", category: "Collection", url: "/collections/parcel-lebaran", images: " ", price: " " },{ label: "Hampers Lebaran Bali", category: "Collection", url: "/collections/hampers-lebaran-bali", images: " ", price: " " },{ label: "Hampers Lebaran Bandung", category: "Collection", url: "/collections/hampers-lebaran-bandung", images: " ", price: " " },{ label: "Hampers Lebaran Jakarta", category: "Collection", url: "/collections/hampers-lebaran-jakarta", images: " ", price: " " },{ label: "Hampers Lebaran Semarang", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " },{ label: "Hampers Lebaran Surabaya", category: "Collection", url: "/collections/hampers-lebaran-surabaya", images: " ", price: " " },{ label: "Hampers Lebaran Yogyakarta", category: "Collection", url: "/collections/hampers-lebaran-yogyakarta", images: " ", price: " " },{ label: "Hand Sanitizer", category: "Collection", url: "/collections/hand-sanitizer", images: " ", price: " " },{ label: "Happy Birthday", category: "Collection", url: "/collections/kado-ulang-tahun", images: " ", price: " " },{ label: "Harbolnas", category: "Collection", url: "/collections/harbolnas-2018", images: " ", price: " " },{ label: "Harbolnas Produk Lokal", category: "Collection", url: "/collections/produk-lokal", images: " ", price: " " },{ label: "Hari Belanja Online Nasional", category: "Collection", url: "/collections/harbolnas", images: " ", price: " " },{ label: "Hari Guru", category: "Collection", url: "/collections/hari-guru", images: " ", price: " " },{ label: "Healthy Creations", category: "Collection", url: "/collections/healthy-creations", images: " ", price: " " },{ label: "Healthy Hampers", category: "Collection", url: "/collections/healthy-hampers", images: " ", price: " " },{ label: "Heritage Box", category: "Collection", url: "/collections/heritage-boxes", images: " ", price: " " },{ label: "Heritage Chinese New Year Hampers", category: "Collection", url: "/collections/heritage-chinese-new-year-hampers", images: " ", price: " " },{ label: "Heritage Christmas Hampers", category: "Collection", url: "/collections/heritage-christmas-hampers", images: " ", price: " " },{ label: "Heritage Hampers", category: "Collection", url: "/collections/heritage-hampers", images: " ", price: " " },{ label: "Heritage Ramadan Hampers", category: "Collection", url: "/collections/heritage-ramadan-hampers", images: " ", price: " " },{ label: "Hexa Hampers", category: "Collection", url: "/collections/hexa-hampers", images: " ", price: " " },{ label: "Hexa Hampers Luar Jadetabek", category: "Collection", url: "/collections/hexa-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Hexa Newborn", category: "Collection", url: "/collections/hexa-newborn", images: " ", price: " " },{ label: "Holo Bag", category: "Collection", url: "/collections/holo-bag", images: " ", price: " " },{ label: "Holo Series", category: "Collection", url: "/collections/holo-series", images: " ", price: " " },{ label: "Home Decoration & Photo Frame", category: "Collection", url: "/collections/home-decoration", images: " ", price: " " }
7901,{ label: "Hospitalization", category: "Collection", url: "/collections/axa-hospitalization", images: " ", price: " " },{ label: "House Hampers", category: "Collection", url: "/collections/house-hampers", images: " ", price: " " },{ label: "I'm Sorry", category: "Collection", url: "/collections/rangkaian-bunga-sorry", images: " ", price: " " },{ label: "Ice Cream Cake", category: "Collection", url: "/collections/ice-cream-cake", images: " ", price: " " },{ label: "Idul Fitri", category: "Collection", url: "/collections/rangkaian-bunga-idul-fitri", images: " ", price: " " },{ label: "Jam Tangan", category: "Collection", url: "/collections/jam-tangan", images: " ", price: " " },{ label: "Jam Tangan Couple", category: "Collection", url: "/collections/jam-tangan-couple", images: " ", price: " " },{ label: "Jam Tangan Pria", category: "Collection", url: "/collections/jam-tangan-pria", images: " ", price: " " },{ label: "Jam Tangan Wanita", category: "Collection", url: "/collections/jam-tangan-wanita", images: " ", price: " " },{ label: "Jasa Packing Parcel", category: "Collection", url: "/collections/jasa-packing-parcel", images: " ", price: " " },{ label: "Jewelry", category: "Collection", url: "/collections/jewelry", images: " ", price: " " },{ label: "Jolly Hampers", category: "Collection", url: "/collections/jolly-hampers", images: " ", price: " " },{ label: "Jual Custom Cake & Hampers Termurah & Terlengkap | Outerbloom Florist & Gift", category: "Collection", url: "/collections/custom-cake-hampers", images: " ", price: " " },{ label: "Just Because", category: "Collection", url: "/collections/just-because", images: " ", price: " " },{ label: "Kado Makanan", category: "Collection", url: "/collections/kado-makanan", images: " ", price: " " },{ label: "Kado Minuman", category: "Collection", url: "/collections/kado-minuman", images: " ", price: " " },{ label: "Kado Natal", category: "Collection", url: "/collections/kado-natal", images: " ", price: " " },{ label: "Kado Unik", category: "Collection", url: "/collections/kado-unik", images: " ", price: " " },{ label: "Kado Valentine Nusantara", category: "Collection", url: "/collections/kado-valentine-nusantara", images: " ", price: " " },{ label: "Kado Valentine untuk Pria", category: "Collection", url: "/collections/kado-valentine-untuk-pria", images: " ", price: " " },{ label: "Kado Wisuda", category: "Collection", url: "/collections/kado-wisuda", images: " ", price: " " },{ label: "Kado Zodiak", category: "Collection", url: "/collections/kado-untuk-zodiak", images: " ", price: " " },{ label: "Karangan Bunga Aceh", category: "Collection", url: "/collections/karangan-bunga-aceh", images: " ", price: " " },{ label: "Karangan Bunga Ambon", category: "Collection", url: "/collections/karangan-bunga-ambon", images: " ", price: " " },{ label: "Karangan Bunga Atambua", category: "Collection", url: "/collections/karangan-bunga-atambua", images: " ", price: " " },{ label: "Karangan Bunga Bali", category: "Collection", url: "/collections/karangan-bunga-bali", images: " ", price: " " },{ label: "Karangan Bunga Balikpapan", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " },{ label: "Karangan Bunga Bandung", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " },{ label: "Karangan Bunga Bandung Barat", category: "Collection", url: "/collections/karangan-bunga-bandung-barat", images: " ", price: " " },{ label: "Karangan Bunga Bangka", category: "Collection", url: "/collections/karangan-bunga-bangka", images: " ", price: " " },{ label: "Karangan Bunga Banjarmasin", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " },{ label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-banten", images: " ", price: " " },{ label: "Karangan Bunga Banyumas", category: "Collection", url: "/collections/karangan-bunga-banyumas", images: " ", price: " " },{ label: "Karangan Bunga Banyuwangi", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " },{ label: "Karangan Bunga Batam", category: "Collection", url: "/collections/karangan-bunga-batam", images: " ", price: " " },{ label: "Karangan Bunga Baubau", category: "Collection", url: "/collections/karangan-bunga-baubau", images: " ", price: " " },{ label: "Karangan Bunga Bengkalis", category: "Collection", url: "/collections/karangan-bunga-bengkalis", images: " ", price: " " },{ label: "Karangan Bunga Bengkayang", category: "Collection", url: "/collections/karangan-bunga-bengkayang", images: " ", price: " " },{ label: "Karangan Bunga Bengkulu", category: "Collection", url: "/collections/karangan-bunga-bengkulu", images: " ", price: " " },{ label: "Karangan Bunga Blora", category: "Collection", url: "/collections/karangan-bunga-blora", images: " ", price: " " },{ label: "Karangan Bunga Bogor", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " },{ label: "Karangan Bunga Bojonegoro", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", category: "Collection", url: "/collections/karangan-bunga-boyolali", images: " ", price: " " },{ label: "Karangan Bunga Brebes", category: "Collection", url: "/collections/karangan-bunga-brebes", images: " ", price: " " },{ label: "Karangan Bunga Bukittinggi", category: "Collection", url: "/collections/karangan-bunga-bukittinggi", images: " ", price: " " },{ label: "Karangan Bunga Ciamis", category: "Collection", url: "/collections/karangan-bunga-ciamis", images: " ", price: " " }
7901,{ label: "Karangan Bunga Cianjur", category: "Collection", url: "/collections/karangan-bunga-cianjur", images: " ", price: " " },{ label: "Karangan Bunga Cikarang", category: "Collection", url: "/collections/karangan-bunga-cikarang", images: " ", price: " " },{ label: "Karangan Bunga Cikupa", category: "Collection", url: "/collections/karangan-bunga-cikupa", images: " ", price: " " },{ label: "Karangan Bunga Cilacap", category: "Collection", url: "/collections/karangan-bunga-cilacap", images: " ", price: " " },{ label: "Karangan Bunga Cileunyi", category: "Collection", url: "/collections/karangan-bunga-cileunyi", images: " ", price: " " },{ label: "Karangan Bunga Cimahi", category: "Collection", url: "/collections/karangan-bunga-cimahi", images: " ", price: " " },{ label: "Karangan Bunga Cirebon", category: "Collection", url: "/collections/karangan-bunga-cirebon", images: " ", price: " " },{ label: "Karangan Bunga Ciwidey", category: "Collection", url: "/collections/karangan-bunga-ciwidey", images: " ", price: " " },{ label: "Karangan Bunga Danau Toba", category: "Collection", url: "/collections/karangan-bunga-danau-toba", images: " ", price: " " },{ label: "Karangan Bunga Demak", category: "Collection", url: "/collections/karangan-bunga-demak", images: " ", price: " " },{ label: "Karangan Bunga Denpasar", category: "Collection", url: "/collections/karangan-bunga-denpasar", images: " ", price: " " },{ label: "Karangan Bunga Depok", category: "Collection", url: "/collections/karangan-bunga-depok", images: " ", price: " " },{ label: "Karangan Bunga Duka Cita", category: "Collection", url: "/collections/karangan-bunga-duka-cita", images: " ", price: " " },{ label: "Karangan Bunga Garut", category: "Collection", url: "/collections/karangan-bunga-garut", images: " ", price: " " },{ label: "Karangan Bunga Gianyar", category: "Collection", url: "/collections/karangan-bunga-gianyar", images: " ", price: " " },{ label: "Karangan Bunga Gorontalo", category: "Collection", url: "/collections/karangan-bunga-gorontalo", images: " ", price: " " },{ label: "Karangan Bunga Gowa", category: "Collection", url: "/collections/karangan-bunga-gowa", images: " ", price: " " },{ label: "Karangan Bunga Gresik", category: "Collection", url: "/collections/karangan-bunga-gresik", images: " ", price: " " },{ label: "Karangan Bunga Grobogan", category: "Collection", url: "/collections/karangan-bunga-grobogan", images: " ", price: " " },{ label: "Karangan Bunga Gunung Kidul", category: "Collection", url: "/collections/karangan-bunga-gunungkidul", images: " ", price: " " },{ label: "Karangan Bunga Indramayu", category: "Collection", url: "/collections/karangan-bunga-indramayu", images: " ", price: " " },{ label: "Karangan Bunga Jakarta", category: "Collection", url: "/collections/karangan-bunga-jakarta", images: " ", price: " " },{ label: "Karangan Bunga Jambi", category: "Collection", url: "/collections/karangan-bunga-jambi", images: " ", price: " " },{ label: "Karangan Bunga Jayapura", category: "Collection", url: "/collections/karangan-bunga-jayapura", images: " ", price: " " },{ label: "Karangan Bunga Jember", category: "Collection", url: "/collections/karangan-bunga-jember", images: " ", price: " " },{ label: "Karangan Bunga Jembrana", category: "Collection", url: "/collections/karangan-bunga-jembrana", images: " ", price: " " },{ label: "Karangan Bunga Jepara", category: "Collection", url: "/collections/karangan-bunga-jepara", images: " ", price: " " },{ label: "Karangan Bunga Jombang", category: "Collection", url: "/collections/karangan-bunga-jombang", images: " ", price: " " },{ label: "Karangan Bunga Kampung Baru", category: "Collection", url: "/collections/karangan-bunga-kampung-baru", images: " ", price: " " },{ label: "Karangan Bunga Kapuas", category: "Collection", url: "/collections/karangan-bunga-kapuas", images: " ", price: " " },{ label: "Karangan Bunga Karanganyar", category: "Collection", url: "/collections/karangan-bunga-karanganyar", images: " ", price: " " },{ label: "Karangan Bunga Karangasem", category: "Collection", url: "/collections/karangan-bunga-karangasem", images: " ", price: " " },{ label: "Karangan Bunga Karawang", category: "Collection", url: "/collections/karangan-bunga-karawang", images: " ", price: " " },{ label: "Karangan Bunga Kartosuro", category: "Collection", url: "/collections/karangan-bunga-kartosuro", images: " ", price: " " },{ label: "Karangan Bunga Kebumen", category: "Collection", url: "/collections/karangan-bunga-kebumen", images: " ", price: " " },{ label: "Karangan Bunga Kediri", category: "Collection", url: "/collections/karangan-bunga-kediri", images: " ", price: " " },{ label: "Karangan Bunga Kendal", category: "Collection", url: "/collections/karangan-bunga-ken
7901dal", images: " ", price: " " },{ label: "Karangan Bunga Kendari", category: "Collection", url: "/collections/karangan-bunga-kendari", images: " ", price: " " },{ label: "Karangan Bunga Ketapang", category: "Collection", url: "/collections/karangan-bunga-ketapang", images: " ", price: " " },{ label: "Karangan Bunga Klaten", category: "Collection", url: "/collections/karangan-bunga-klaten", images: " ", price: " " },{ label: "Karangan Bunga Kota Batu", category: "Collection", url: "/collections/karangan-bunga-kota-batu", images: " ", price: " " },{ label: "Karangan Bunga Kudus", category: "Collection", url: "/collections/karangan-bunga-kudus", images: " ", price: " " },{ label: "Karangan Bunga Kupang", category: "Collection", url: "/collections/karangan-bunga-kupang", images: " ", price: " " },{ label: "Karangan Bunga Lamongan", category: "Collection", url: "/collections/karangan-bunga-lamongan", images: " ", price: " " },{ label: "Karangan Bunga Lampung", category: "Collection", url: "/collections/karangan-bunga-lampung", images: " ", price: " " },{ label: "Karangan Bunga Langkat", category: "Collection", url: "/collections/karangan-bunga-langkat", images: " ", price: " " },{ label: "Karangan Bunga Lembang", category: "Collection", url: "/collections/karangan-bunga-lembang", images: " ", price: " " },{ label: "Karangan Bunga Lombok", category: "Collection", url: "/collections/karangan-bunga-lombok", images: " ", price: " " },{ label: "Karangan Bunga Lubuk Pakam", category: "Collection", url: "/collections/karangan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Karangan Bunga Lumajang", category: "Collection", url: "/collections/karangan-bunga-lumajang", images: " ", price: " " },{ label: "Karangan Bunga Madiun", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " },{ label: "Karangan Bunga Magelang", category: "Collection", url: "/collections/karangan-bunga-magelang", images: " ", price: " " },{ label: "Karangan Bunga Majalengka", category: "Collection", url: "/collections/karangan-bunga-majalengka", images: " ", price: " " },{ label: "Karangan Bunga Makassar", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " },{ label: "Karangan Bunga Malang", category: "Collection", url: "/collections/karangan-bunga-malang", images: " ", price: " " },{ label: "Karangan Bunga Mamuju", category: "Collection", url: "/collections/karangan-bunga-mamuju", images: " ", price: " " },{ label: "Karangan Bunga Manado", category: "Collection", url: "/collections/karangan-bunga-manado", images: " ", price: " " },{ label: "Karangan Bunga Manokwari", category: "Collection", url: "/collections/karangan-bunga-manokwari", images: " ", price: " " },{ label: "Karangan Bunga Maros", category: "Collection", url: "/collections/karangan-bunga-maros", images: " ", price: " " },{ label: "Karangan Bunga Mataram", category: "Collection", url: "/collections/karangan-bunga-mataram", images: " ", price: " " },{ label: "Karangan Bunga Mojokerto", category: "Collection", url: "/collections/karangan-bunga-mojokerto", images: " ", price: " " },{ label: "Karangan Bunga Nganjuk", category: "Collection", url: "/collections/karangan-bunga-nganjuk", images: " ", price: " " },{ label: "Karangan Bunga Nias", category: "Collection", url: "/collections/karangan-bunga-nias", images: " ", price: " " },{ label: "Karangan Bunga Padang", category: "Collection", url: "/collections/karangan-bunga-padang", images: " ", price: " " },{ label: "Karangan Bunga Palangkaraya", category: "Collection", url: "/collections/karangan-bunga-palangkaraya", images: " ", price: " " },{ label: "Karangan Bunga Palu", category: "Collection", url: "/collections/karangan-bunga-palu", images: " ", price: " " },{ label: "Karangan Bunga Pangkal Pinang", category: "Collection", url: "/collections/karangan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Karangan Bunga Papan", category: "Collection", url: "/collections/karangan-bunga", images: " ", price: " " },{ label: "Karangan Bunga Papan Bandar Lampung", category: "Collection", url: "/collections/karangan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Karangan Bunga Papan Bekasi", category: "Collection", url: "/collections/karangan-bunga-bekasi", images: " ", price: " " },{ label: "Karangan Bunga Papan Binjai", category: "Collection", url: "/collections/karangan-bunga-binjai", images: " ", price: " " },{ label: "Karangan Bunga Papan Blitar", category: "Collection", url: "/collections/karangan-bunga-blitar", images: " ", price: " " },{ label: "Karangan Bunga Papan Buleleng", category: "Collection", url: "/collections/karangan-bunga-buleleng", images: " ", price: " " },{ label: "Karangan Bunga Papan Cibubur", category: "Collection", url: "/collections/karangan-bunga-cibubur", images: " ", price: " " },{ label: "Karangan Bunga Papan Deli Serdang", category: "Collection", url: "/collections/karangan-bunga-deli-serdang", images: " ", price: " " },{ label: "Karangan Bunga Papan Jakarta Timur", category: "Collection", url: "/collections/karangan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Karangan Bunga Papan Karo", category: "Collection", url: "/collections/karangan-bunga-karo", images: " ", price: " " },{ label: "Karangan Bunga Papan Medan", category: "Collection", url: "/collections/karangan-bunga-medan", images: " ", price: " " },{ label: "Karangan Bunga Papan Ngawi", category: "Collection", url: "/collections/karangan-bunga-ngawi", images: " ", price: " " },{ label: "Karangan Bunga Papan Palembang", category: "Collection", url: "/collections/karangan-bunga-palembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Pemalang", category: "Collection", url: "/collections/karangan-bunga-pemalang", images: " ", price: " " },{ label: "Karangan Bunga Papan Rembang", category: "Collection", url: "/collections/karangan-bunga-rembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Sragen", category: "Collection", url: "/collections/karangan-bunga-sragen", images: " ", price: " " },{ label: "Karangan Bunga Papan Tegal", category: "Collection", url: "/collections/karangan-bunga-tegal", images: " ", price: " " },{ label: "Karangan Bunga Papan Temanggung", category: "Collection", url: "/collections/karangan-bunga-temanggung", images: " ", price: " " },{ label: "Karangan Bunga Parepare", category: "Collection", url: "/collections/karangan-bunga-parepare", images: " ", price: " " },{ label: "Karangan Bunga Pasuruan", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " },{ label: "Karangan Bunga Pati", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " },{ label: "Karangan Bunga Pekalongan", category: "Collection", url: "/collections/karangan-bunga-pekalongan", images: " ", price: " " },{ label: "Karangan Bunga Pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pekanbaru", images: " ", price: " " },{ label: "Karangan Bunga Pematangsiantar", category: "Collection", url: "/collections/karangan-bunga-pematangsiantar", images: " ", price: " " },{ label: "Karangan Bunga Ponorogo", category: "Collection", url: "/collections/karangan-bunga-ponorogo", images: " ", price: " " },{ label: "Karangan Bunga Pontianak", category: "Collection", url: "/collections/karangan-bunga-pontianak", images: " ", price: " " },{ label: "Karangan Bunga Probolinggo", category: "Collection", url: "/collections/karangan-bunga-probolinggo", images: " ", price: " " },{ label: "Karangan Bunga Purbalingga", category: "Collection", url: "/collections/karangan-bunga-purbalingga", images: " ", price: " " },{ label: "Karangan Bunga Purwokerto", category: "Collection", url: "/collections/karangan-bunga-purwokerto", images: " ", price: " " },{ label: "Karangan Bunga Purworejo", category: "Collection", url: "/collections/karangan-bunga-purworejo", images: " ", price: " " },{ label: "Karangan Bunga Riau", category: "Collection", url: "/collections/karangan-bunga-riau", images: " ", price: " " },{ label: "Karangan Bunga Salatiga", category: "Collection", url: "/collections/karangan-bunga-salatiga", images: " ", price: " " },{ label: "Karangan Bunga Samarinda", category: "Collection", url: "/collections/karangan-bunga-samarinda", images: " ", price: " " },{ label: "Karangan Bunga Semarang", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " },{ label: "Karangan Bunga Serang", category: "Collection", url: "/collections/karangan-bunga-serang", images: " ", price: " " },{ label: "Karangan Bunga Sibolga", category: "Collection", url: "/collections/karangan-bunga-sibolga", images: " ", price: " " },{ label: "Karangan Bunga Sidoarjo", category: "Collection", url: "/collections/karangan-bunga-sidoarjo", images: " ", price: " " },{ label: "Karangan Bunga Singkawang", category: "Collection", url: "/collections/karangan-bunga-singkawang", images: " ", price: " " },{ label: "Karangan Bunga Solo", category: "Collection", url: "/collections/karangan-bunga-solo", images: " ", price: " " },{ label: "Karangan Bunga Sorong", category: "Collection", url: "/collections/karangan-bunga-sorong", images: " ", price: " " },{ label: "Karangan Bunga Subang", category: "Collection", url: "/collections/karangan-bunga-subang", images: " ", price: " " },{ label: "Karangan Bunga Sukabumi", category: "Collection", url: "/collections/karangan-bunga-sukabumi", images: " ", price: " " },{ label: "Karangan Bunga Sumbawa", category: "Collection", url: "/collections/karangan-bunga-sumbawa", images: " ", price: " " },{ label: "Karangan Bunga Surabaya", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " },{ label: "Karangan Bunga Surakarta", category: "Collection", url: "/collections/karangan-bunga-surakarta", images: " ", price: " " },{ label: "Karangan Bunga Tangerang", category: "Collection", url: "/collections/karangan-bunga-tangerang", images: " ", price: " " },{ label: "Karangan Bunga Tasikmalaya", category: "Collection", url: "/collections/karangan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Karangan Bunga Ternate", category: "Collection", url: "/collections/karangan-bunga-ternate", images: " ", price: " " },{ label: "Karangan Bunga Tolitoli", category: "Collection", url: "/collections/karangan-bunga-tolitoli", images: " ", price: " " },{ label: "Karangan Bunga Toraja", category: "Collection", url: "/collections/karangan-bunga-toraja", images: " ", price: " " },{ label: "Karangan Bunga Tuban", category: "Collection", url: "/collections/karangan-bunga-tuban", images: " ", price: " " },{ label: "Karangan Bunga Tulungagung", category: "Collection", url: "/collections/karangan-bunga-tulungagung", images: " ", price: " " },{ label: "Karangan Bunga Wakatobi", category: "Collection", url: "/collections/karangan-bunga-wakatobi", images: " ", price: " " },{ label: "Karangan Bunga Wiyung", category: "Collection", url: "/collections/karangan-bunga-wiyung", images: " ", price: " " },{ label: "Karangan Bunga Wonogiri", category: "Collection", url: "/collections/karangan-bunga-wonogiri", images: " ", price: " " },{ label: "Karangan Bunga Wonokromo", category: "Collection", url: "/collections/karangan-bunga-wonokromo", images: " ", price: " " },{ label: "Karangan Bunga Wonosobo", category: "Collection", url: "/collections/karangan-bunga-wonosobo", images: " ", price: " " },{ label: "Karangan Bunga Yogyakarta", category: "Collection", url: "/collections/karangan-bunga-yogyakarta", images: " ", price: " " },{ label: "Kartu Ucapan", category: "Collection", url: "/collections/kartu-ucapan", images: " ", price: " " },{ label: "Kue Anniversary", category: "Collection", url: "/collections/kue-anniversary", images: " ", price: " " },{ label: "Kue Bachelorette", category: "Collection", url: "/collections/kue-bachelorette", images: " ", price: " " },{ label: "Kue Bandung", category: "Collection", url: "/collections/kue-bandung", images: " ", price: " " },{ label: "Kue Bulan", category: "Collection", url: "/collections/kue-bulan", images: " ", price: " " },{ label: "Kue Imlek", category: "Collection", url: "/collections/kue-imlek", images: " ", price: " " },{ label: "Kue Kering", category: "Collection", url: "/collections/kue-kering", images: " ", price: " " },{ label: "Kue Natal", category: "Collection", url: "/collections/kue-natal", images: " ", price: " " },{ label: "Kue Pernikahan", category: "Collection", url: "/collections/kue-pernikahan", images: " ", price: " " },{ label: "Kue Tart", category: "Collection", url: "/collections/kue-tart", images: " ", price: " " },{ label: "Kue Tart Oma Elly", category: "Collection", url: "/collections/kue-tart-oma-elly", images: " ", price: " " },{ label: "Kue Ulang Tahun", category: "Collection", url: "/collections/kue-ulang-tahun", images: " ", price: " " },{ label: "Lalique", category: "Collection", url: "/collections/lalique", images: " ", price: " " },{ label: "Le Sucre Du Patisserie", category: "Collection", url: "/collections/le-sucre-du-patisserie", images: " ", price: " " },{ label: "Leo âï¸ 23July - 22Augst", category: "Collection", url: "/collections/kado-untuk-zodiak-leo", images: " ", price: " " },{ label: "Letter Box", category: "Collection", url: "/collections/letter-box", images: " ", price: " " },{ label: "Libra 23Sept - 23Oct", category: "Collection", url: "/collections/kado-untuk-zodiak-libra", images: " ", price: " " },{ label: "Lilin Aromaterapi", category: "Collection", url: "/collections/lilin-aromaterapi", images: " ", price: " " },{ label: "Lily", category: "Collection", url: "/collections/bunga-lily", images: " ", price: " " },{ label: "Lindt", category: "Collection", url: "/collections/lindt", images: " ", price: " " },{ label: "Locations", category: "Collection", url: "/collections/locations", images: " ", price: " " },{ label: "Love & Romance", category: "Collection", url: "/collections/rangkaian-bunga-i-love-you", images: " ", price: " " },{ label: "Love Bag Collection", category: "Collection", url: "/collections/love-bag-collection", images: " ", price: " " },{ label: "Love Bundle", category: "Collection", url: "/collections/paket-promo-spesial-valentine", images: " ", price: " " },{ label: "Love Bundle Nusantara", category: "Collection", url: "/collections/love-bundle-nusantara", images: " ", price: " " },{ label: "Luxury Chinese New Year Hampers", category: "Collection", url: "/collections/luxury-chinese-new-year-hampers", images: " ", price: " " },{ label: "Luxury Christmas Hampers", category: "Collection", url: "/collections/luxury-christmas-hampers", images: " ", price: " " },{ label: "Luxury Hampers", category: "Collection", url: "/collections/luxury-hampers", images: " ", price: " " },{ label: "Luxury Hampers Luar Jadetabek", category: "Collection", url: "/collections/luxury-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Luxury Newborn Hampers Collection", category: "Collection", url: "/collections/luxury-newborn-hampers-collection", images: " ", price: " " },{ label: "Luxury Ramadan Hampers", category: "Collection", url: "/collections/luxury-ramadan-hampers", images: " ", price: " " },{ label: "Luxury Set", category: "Collection", url: "/collections/luxury", images: " ", price: " " },{ label: "Manual", category: "Collection", url: "/collections/manual", images: " ", price: " " },{ label: "Massimo Gelato", category: "Collection", url: "/collections/massimo-gelato", images: " ", price: " " },{ label: "Men's Collection", category: "Collection", url: "/collections/mens-collection", images: " ", price: " " },{ label: "Mercedes Benz", category: "Collection", url: "/collections/mercedes-benz", images: " ", price: " " },{ label: "Mercy Hampers", category: "Collection", url: "/collections/mercy-
7901hampers", images: " ", price: " " },{ label: "Merry Hampers", category: "Collection", url: "/collections/merry-hampers", images: " ", price: " " },{ label: "Merry Hampers Luar Jabodetabek", category: "Collection", url: "/collections/merry-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Mini Bouquet", category: "Collection", url: "/collections/mini-bouquet", images: " ", price: " " },{ label: "Miss Mondial", category: "Collection", url: "/collections/miss-mondial", images: " ", price: " " },{ label: "Modern & Chic Chinese New Year", category: "Collection", url: "/collections/modern-chic-chinese-new-year", images: " ", price: " " },{ label: "Modern & Chic Christmas Hampers", category: "Collection", url: "/collections/modern-chic-christmas", images: " ", price: " " },{ label: "Modern & Chic Hampers", category: "Collection", url: "/collections/modern-chic-hampers", images: " ", price: " " },{ label: "Modern & Chic Hampers Luar Jadetabek", category: "Collection", url: "/collections/modern-chic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Modern & Chic Ramadan Hampers", category: "Collection", url: "/collections/modern-chic-ramadan-hampers", images: " ", price: " " },{ label: "Modern & Classy Hampers", category: "Collection", url: "/collections/parcel-unik", images: " ", price: " " },{ label: "Modern 3D Cake", category: "Collection", url: "/collections/custom-3d-cake", images: " ", price: " " },{ label: "Modern Style Flowers", category: "Collection", url: "/collections/modern-style-flowers", images: " ", price: " " },{ label: "Monochrome Hampers", category: "Collection", url: "/collections/monochrome-hampers", images: " ", price: " " },{ label: "Monochrome Hampers Luar Jadetabek", category: "Collection", url: "/collections/monochrome-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Mooncake", category: "Collection", url: "/collections/kue-bulan-mooncake-2025-mid-autumn-festival", images: " ", price: " " },{ label: "Mooncake Assorted Selection", category: "Collection", url: "/collections/mooncake-assorted-selection", images: " ", price: " " },{ label: "Mother's Day", category: "Collection", url: "/collections/rangkaian-bunga-hari-ibu", images: " ", price: " " },{ label: "Mother's Day Special", category: "Collection", url: "/collections/kado-untuk-ibu", images: " ", price: " " },{ label: "Necklace", category: "Collection", url: "/collections/kalung", images: " ", price: " " },{ label: "NestBloom Bird Nest Hampers", category: "Collection", url: "/collections/nestbloom-birds-nest", images: " ", price: " " },{ label: "NestBloom Gift Set", category: "Collection", url: "/collections/nestbloom-gift-set", images: " ", price: " " },{ label: "Nestbloom Ritual Kit", category: "Collection", url: "/collections/nestbloom-ritual-kit", images: " ", price: " " },{ label: "NestBloom Single Bloom", category: "Collection", url: "/collections/nestbloom-single-bloom", images: " ", price: " " },{ label: "New Collection", category: "Collection", url: "/collections/produk-baru", images: " ", price: " " },{ label: "New Product", category: "Collection", url: "/collections/new-product", images: " ", price: " " },{ label: "Newborn", category: "Collection", url: "/collections/rangkaian-bunga-newborn-baby", images: " ", price: " " },{ label: "Newborn Hampers", category: "Collection", url: "/collections/parcel-newborn", images: " ", price: " " },{ label: "Occasions", category: "Collection", url: "/collections/occasions", images: " ", price: " " },{ label: "Oma Elly", category: "Collection", url: "/collections/oma-elly", images: " ", price: " " },{ label: "Oma Elly Gelato", category: "Collection", url: "/collections/oma-elly-gelato", images: " ", price: " " },{ label: "Orchid", category: "Collection", url: "/collections/bunga-anggrek", images: " ", price: " " },{ label: "Orori", category: "Collection", url: "/collections/orori", images: " ", price: " " },{ label: "Outerbloom", category: "Collection", url: "/collections/outerbloom", images: " ", price: " " },{ label: "Outerbloom Cake", category: "Collection", url: "/collections/outerbloom-cake", images: " ", price: " " },{ label: "Outerbloom Florist", category: "Collection", url: "/collections/outerbloom-florist", images: " ", price: " " },{ label: "Outerbloom Gift", category: "Collection", url: "/collections/outerbloom-gift", images: " ", price: " " },{ label: "Outerbloom Hampers", category: "Collection", url: "/collections/outerbloom-hampers", images: " ", price: " " },{ label: "Outerbloom Indonesia", category: "Collection", url: "/collections/indonesia", images: " ", price: " " },{ label: "Outerbloom x Boho Panna", category: "Collection", url: "/collections/outerbloom-x-boh
7901o-panna", images: " ", price: " " },{ label: "Outerbloom x Clairmont", category: "Collection", url: "/collections/outerbloom-x-clairmont", images: " ", price: " " },{ label: "Outerbloom x Kikido", category: "Collection", url: "/collections/outerbloom-x-kikido", images: " ", price: " " },{ label: "Outerbloom x Miwa Pattern", category: "Collection", url: "/collections/outerbloom-x-miwa", images: " ", price: " " },{ label: "Outerbloom x Nestbloom Chinese New Year", category: "Collection", url: "/collections/outerbloom-x-nestbloom-chinese-new-year", images: " ", price: " " },{ label: "Outerbloom x NestBloom Hampers", category: "Collection", url: "/collections/outerbloom-x-nestbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Outerbloom", category: "Collection", url: "/collections/paket-kolaborasi-outerbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Valentine", category: "Collection", url: "/collections/paket-kolaborasi-valentine", images: " ", price: " " },{ label: "Paket Ulang Tahun", category: "Collection", url: "/collections/paket-ulang-tahun", images: " ", price: " " },{ label: "Paket Valentine Nusantara", category: "Collection", url: "/collections/paket-valentine-nusantara", images: " ", price: " " },{ label: "Paket Valentine Outerbloom", category: "Collection", url: "/collections/paket-valentine", images: " ", price: " " },{ label: "Papan Bunga", category: "Collection", url: "/collections/papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Aceh", category: "Collection", url: "/collections/papan-bunga-aceh", images: " ", price: " " },{ label: "Papan Bunga Acrylic", category: "Collection", url: "/collections/papan-bunga-acrylic", images: " ", price: " " },{ label: "Papan Bunga Ambon", category: "Collection", url: "/collections/papan-bunga-ambon", images: " ", price: " " },{ label: "Papan Bunga Artificial", category: "Collection", url: "/collections/papan-bunga-artificial", images: " ", price: " " },{ label: "Papan Bunga Atambua", category: "Collection", url: "/collections/papan-bunga-atambua", images: " ", price: " " },{ label: "Papan Bunga Bali", category: "Collection", url: "/collections/papan-bunga-bali", images: " ", price: " " },{ label: "Papan Bunga Balikpapan", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " },{ label: "Papan Bunga Bandar Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Papan Bunga Bandung", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " },{ label: "Papan Bunga Bandung Barat", category: "Collection", url: "/collections/papan-bunga-bandung-barat", images: " ", price: " " },{ label: "Papan Bunga Bangka", category: "Collection", url: "/collections/papan-bunga-bangka", images: " ", price: " " },{ label: "Papan Bunga Banjarmasin", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " },{ label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-banten", images: " ", price: " " },{ label: "Papan Bunga Banyumas", category: "Collection", url: "/collections/papan-bunga-banyumas", images: " ", price: " " },{ label: "Papan Bunga Banyuwangi", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " },{ label: "Papan Bunga Batam", category: "Collection", url: "/collections/papan-bunga-batam", images: " ", price: " " },{ label: "Papan Bunga Baubau", category: "Collection", url: "/collections/papan-bunga-baubau", images: " ", price: " " },{ label: "Papan Bunga Bekasi", category: "Collection", url: "/collections/papan-bunga-bekasi", images: " ", price: " " },{ label: "Papan Bunga Bengkalis", category: "Collection", url: "/collections/papan-bunga-bengkalis", images: " ", price: " " },{ label: "Papan Bunga Bengkayang", category: "Collection", url: "/collections/papan-bunga-bengkayang", images: " ", price: " " },{ label: "Papan Bunga Bengkulu", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
7901,{ label: "Papan Bunga Binjai", category: "Collection", url: "/collections/papan-bunga-binjai", images: " ", price: " " },{ label: "Papan Bunga Blitar", category: "Collection", url: "/collections/papan-bunga-blitar", images: " ", price: " " },{ label: "Papan Bunga Blora", category: "Collection", url: "/collections/papan-bunga-blora", images: " ", price: " " },{ label: "Papan Bunga Bogor", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " },{ label: "Papan Bunga Bojonegoro", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " },{ label: "Papan Bunga Boyolali", category: "Collection", url: "/collections/papan-bunga-boyolali", images: " ", price: " " },{ label: "Papan Bunga Brebes", category: "Collection", url: "/collections/papan-bunga-brebes", images: " ", price: " " },{ label: "Papan Bunga Bukittinggi", category: "Collection", url: "/collections/papan-bunga-bukittinggi", images: " ", price: " " },{ label: "Papan Bunga Buleleng", category: "Collection", url: "/collections/papan-bunga-buleleng", images: " ", price: " " },{ label: "Papan Bunga Ciamis", category: "Collection", url: "/collections/papan-bunga-ciamis", images: " ", price: " " },{ label: "Papan Bunga Cianjur", category: "Collection", url: "/collections/papan-bunga-cianjur", images: " ", price: " " },{ label: "Papan Bunga Cibubur", category: "Collection", url: "/collections/papan-bunga-cibubur", images: " ", price: " " },{ label: "Papan Bunga Cikarang", category: "Collection", url: "/collections/papan-bunga-cikarang", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa-1", images: " ", price: " " },{ label: "Papan Bunga Cilacap", category: "Collection", url: "/collections/papan-bunga-cilacap", images: " ", price: " " },{ label: "Papan Bunga Cileunyi", category: "Collection", url: "/collections/papan-bunga-cileunyi", images: " ", price: " " },{ label: "Papan Bunga Cirebon", category: "Collection", url: "/collections/papan-bunga-cirebon", images: " ", price: " " },{ label: "Papan Bunga Congratulations", category: "Collection", url: "/collections/papan-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bali", category: "Collection", url: "/collections/papan-bunga-congratulations-bali", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bandung", category: "Collection", url: "/collections/papan-bunga-congratulations-bandung", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bekasi", category: "Collection", url: "/collections/papan-bunga-congratulations-bekasi", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bogor", category: "Collection", url: "/collections/papan-bunga-congratulations-bogor", images: " ", price: " " },{ label: "Papan Bunga Congratulations Cikupa", category: "Collection", url: "/collections/papan-bunga-congratulations-cikupa", images: " ", price: " " },{ label: "Papan Bunga Congratulations Demak", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " },{ label: "Papan Bunga Congratulations Depok", category: "Collection", url: "/collections/papan-bunga-congratulations-depok", images: " ", price: " " },{ label: "Papan Bunga Congratulations Gresik", category: "Collection", url: "/collections/papan-bunga-congratulations-gresik", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-jakarta", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jepara", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " },{ label: "Papan Bunga Congratulations Medan", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " },{ label: "Papan Bunga Congratulations Semarang", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
7901,{ label: "Papan Bunga Congratulations Serang", category: "Collection", url: "/collections/papan-bunga-congratulations-serang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Sidoarjo", category: "Collection", url: "/collections/papan-bunga-congratulations-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Congratulations Surabaya", category: "Collection", url: "/collections/papan-bunga-congratulations-surabaya", images: " ", price: " " },{ label: "Papan Bunga Congratulations Tangerang", category: "Collection", url: "/collections/papan-bunga-congratulations-tangerang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Yogyakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Danau Toba", category: "Collection", url: "/collections/papan-bunga-danau-toba", images: " ", price: " " },{ label: "Papan Bunga Deli Serdang", category: "Collection", url: "/collections/papan-bunga-deli-serdang", images: " ", price: " " },{ label: "Papan Bunga Demak", category: "Collection", url: "/collections/papan-bunga-demak", images: " ", price: " " },{ label: "Papan Bunga Denpasar", category: "Collection", url: "/collections/papan-bunga-denpasar", images: " ", price: " " },{ label: "Papan Bunga Depok", category: "Collection", url: "/collections/papan-bunga-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita", category: "Collection", url: "/collections/bunga-duka-cita", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bali", category: "Collection", url: "/collections/papan-bunga-duka-cita-bali", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bandung", category: "Collection", url: "/collections/papan-bunga-duka-cita-bandung", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bekasi", category: "Collection", url: "/collections/papan-bunga-duka-cita-bekasi", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bogor", category: "Collection", url: "/collections/papan-bunga-duka-cita-bogor", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Cikupa", category: "Collection", url: "/collections/papan-bunga-duka-cita-cikupa", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Demak", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Depok", category: "Collection", url: "/collections/papan-bunga-duka-cita-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Gresik", category: "Collection", url: "/collections/papan-bunga-duka-cita-gresik", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-jakarta", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jepara", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Medan", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Semarang", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Serang", category: "Collection", url: "/collections/papan-bunga-duka-cita-serang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sidoarjo", category: "Collection", url: "/collections/papan-bunga-duka-cita-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Surabaya", category: "Collection", url: "/collections/papan-bunga-duka-cita-surabaya", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Tangerang", category: "Collection", url: "/collections/papan-bunga-duka-cita-tangerang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Yogyakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Garut", category: "Collection", url: "/collections/papan-bunga-garut", images: " ", price: " " },{ label: "Papan Bunga Gianyar", category: "Collection", url: "/collections/papan-bunga-gianyar", images: " ", price: " " }
7901,{ label: "Papan Bunga Gorontalo", category: "Collection", url: "/collections/papan-bunga-gorontalo", images: " ", price: " " },{ label: "Papan Bunga Gowa", category: "Collection", url: "/collections/papan-bunga-gowa", images: " ", price: " " },{ label: "Papan Bunga Gresik", category: "Collection", url: "/collections/papan-bunga-gresik", images: " ", price: " " },{ label: "Papan Bunga Grobogan", category: "Collection", url: "/collections/papan-bunga-grobogan", images: " ", price: " " },{ label: "Papan Bunga Gunungkidul", category: "Collection", url: "/collections/papan-bunga-gunungkidul", images: " ", price: " " },{ label: "Papan Bunga Indramayu", category: "Collection", url: "/collections/papan-bunga-indramayu", images: " ", price: " " },{ label: "Papan Bunga Jakarta", category: "Collection", url: "/collections/papan-bunga-jakarta", images: " ", price: " " },{ label: "Papan Bunga Jakarta Timur", category: "Collection", url: "/collections/papan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Papan Bunga Jambi", category: "Collection", url: "/collections/papan-bunga-jambi", images: " ", price: " " },{ label: "Papan Bunga Jayapura", category: "Collection", url: "/collections/papan-bunga-jayapura", images: " ", price: " " },{ label: "Papan Bunga Jember", category: "Collection", url: "/collections/papan-bunga-jember", images: " ", price: " " },{ label: "Papan Bunga Jembrana", category: "Collection", url: "/collections/papan-bunga-jembrana", images: " ", price: " " },{ label: "Papan Bunga Jepara", category: "Collection", url: "/collections/papan-bunga-jepara", images: " ", price: " " },{ label: "Papan Bunga Jombang", category: "Collection", url: "/collections/papan-bunga-jombang", images: " ", price: " " },{ label: "Papan Bunga Kampung Baru", category: "Collection", url: "/collections/papan-bunga-kampung-baru", images: " ", price: " " },{ label: "Papan Bunga Kapuas", category: "Collection", url: "/collections/papan-bunga-kapuas", images: " ", price: " " },{ label: "Papan Bunga Karanganyar", category: "Collection", url: "/collections/papan-bunga-karanganyar", images: " ", price: " " },{ label: "Papan Bunga Karangasem", category: "Collection", url: "/collections/papan-bunga-karangasem", images: " ", price: " " },{ label: "Papan Bunga Karawang", category: "Collection", url: "/collections/papan-bunga-karawang", images: " ", price: " " },{ label: "Papan Bunga Karo", category: "Collection", url: "/collections/papan-bunga-karo", images: " ", price: " " },{ label: "Papan Bunga Kartosuro", category: "Collection", url: "/collections/papan-bunga-kartosuro", images: " ", price: " " },{ label: "Papan Bunga Kebumen", category: "Collection", url: "/collections/papan-bunga-kebumen", images: " ", price: " " },{ label: "Papan Bunga Kediri", category: "Collection", url: "/collections/papan-bunga-kediri", images: " ", price: " " },{ label: "Papan Bunga Kendal", category: "Collection", url: "/collections/papan-bunga-kendal", images: " ", price: " " },{ label: "Papan Bunga Kendari", category: "Collection", url: "/collections/papan-bunga-kendari", images: " ", price: " " },{ label: "Papan Bunga Ketapang", category: "Collection", url: "/collections/papan-bunga-ketapang", images: " ", price: " " },{ label: "Papan Bunga Klaten", category: "Collection", url: "/collections/papan-bunga-klaten", images: " ", price: " " },{ label: "Papan Bunga Kota Batu", category: "Collection", url: "/collections/papan-bunga-kota-batu", images: " ", price: " " },{ label: "Papan Bunga Kudus", category: "Collection", url: "/collections/papan-bunga-kudus", images: " ", price: " " },{ label: "Papan Bunga Kupang", category: "Collection", url: "/collections/papan-bunga-kupang", images: " ", price: " " },{ label: "Papan Bunga Lamongan", category: "Collection", url: "/collections/papan-bunga-lamongan", images: " ", price: " " },{ label: "Papan Bunga Lampu LED", category: "Collection", url: "/collections/papan-bunga-lampu-led", images: " ", price: " " },{ label: "Papan Bunga Lampung", category: "Collection", url: "/collections/papan-bunga-lampung", images: " ", price: " " }
7901,{ label: "Papan Bunga Langkat", category: "Collection", url: "/collections/papan-bunga-langkat", images: " ", price: " " },{ label: "Papan Bunga Lembang", category: "Collection", url: "/collections/papan-bunga-lembang", images: " ", price: " " },{ label: "Papan Bunga Lombok", category: "Collection", url: "/collections/papan-bunga-lombok", images: " ", price: " " },{ label: "Papan Bunga Lubuk Pakam", category: "Collection", url: "/collections/papan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Papan Bunga Lumajang", category: "Collection", url: "/collections/papan-bunga-lumajang", images: " ", price: " " },{ label: "Papan Bunga Madiun", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " },{ label: "Papan Bunga Magelang", category: "Collection", url: "/collections/papan-bunga-magelang", images: " ", price: " " },{ label: "Papan Bunga Majalengka", category: "Collection", url: "/collections/papan-bunga-majalengka", images: " ", price: " " },{ label: "Papan Bunga Makassar", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " },{ label: "Papan Bunga Malang", category: "Collection", url: "/collections/papan-bunga-malang", images: " ", price: " " },{ label: "Papan Bunga Mamuju", category: "Collection", url: "/collections/papan-bunga-mamuju", images: " ", price: " " },{ label: "Papan Bunga Manado", category: "Collection", url: "/collections/papan-bunga-manado", images: " ", price: " " },{ label: "Papan Bunga Manokwari", category: "Collection", url: "/collections/papan-bunga-manokwari", images: " ", price: " " },{ label: "Papan Bunga Maros", category: "Collection", url: "/collections/papan-bunga-maros", images: " ", price: " " },{ label: "Papan Bunga Mataram", category: "Collection", url: "/collections/papan-bunga-mataram", images: " ", price: " " },{ label: "Papan Bunga Medan", category: "Collection", url: "/collections/papan-bunga-medan", images: " ", price: " " },{ label: "Papan Bunga Mojokerto", category: "Collection", url: "/collections/papan-bunga-mojokerto", images: " ", price: " " },{ label: "Papan Bunga Nganjuk", category: "Collection", url: "/collections/papan-bunga-nganjuk", images: " ", price: " " },{ label: "Papan Bunga Ngawi", category: "Collection", url: "/collections/papan-bunga-ngawi", images: " ", price: " " },{ label: "Papan Bunga Nias", category: "Collection", url: "/collections/papan-bunga-nias", images: " ", price: " " },{ label: "Papan Bunga Organza", category: "Collection", url: "/collections/papan-bunga-organza", images: " ", price: " " },{ label: "Papan Bunga Padang", category: "Collection", url: "/collections/papan-bunga-padang", images: " ", price: " " },{ label: "Papan Bunga Palangkaraya", category: "Collection", url: "/collections/papan-bunga-palangkaraya", images: " ", price: " " },{ label: "Papan Bunga Palembang", category: "Collection", url: "/collections/papan-bunga-palembang", images: " ", price: " " },{ label: "Papan Bunga Palu", category: "Collection", url: "/collections/papan-bunga-palu", images: " ", price: " " },{ label: "Papan Bunga Pangkal Pinang", category: "Collection", url: "/collections/papan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Papan Bunga Parepare", category: "Collection", url: "/collections/papan-bunga-parepare", images: " ", price: " " },{ label: "Papan Bunga Pasuruan", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " },{ label: "Papan Bunga Pati", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " },{ label: "Papan Bunga Pekalongan", category: "Collection", url: "/collections/papan-bunga-pekalongan", images: " ", price: " " },{ label: "Papan Bunga Pekanbaru", category: "Collection", url: "/collections/papan-bunga-pekanbaru", images: " ", price: " " },{ label: "Papan Bunga Pemalang", category: "Collection", url: "/collections/papan-bunga-pemalang", images: " ", price: " " },{ label: "Papan Bunga Pematangsiantar", category: "Collection", url: "/collections/papan-bunga-pematangsiantar", images: " ", price: " " }
7901,{ label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bandung", category: "Collection", url: "/collections/papan-bunga-pernikahan-bandung", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bekasi", category: "Collection", url: "/collections/papan-bunga-pernikahan-bekasi", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bogor", category: "Collection", url: "/collections/papan-bunga-pernikahan-bogor", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Cikupa", category: "Collection", url: "/collections/papan-bunga-pernikahan-cikupa", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Demak", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Depok", category: "Collection", url: "/collections/papan-bunga-pernikahan-depok", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Gresik", category: "Collection", url: "/collections/papan-bunga-pernikahan-gresik", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-jakarta", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jepara", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Medan", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Semarang", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Serang", category: "Collection", url: "/collections/papan-bunga-pernikahan-serang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sidoarjo", category: "Collection", url: "/collections/papan-bunga-pernikahan-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Surabaya", category: "Collection", url: "/collections/papan-bunga-pernikahan-surabaya", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Tangerang", category: "Collection", url: "/collections/papan-bunga-pernikahan-tangerang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Yogyakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Ponorogo", category: "Collection", url: "/collections/papan-bunga-ponorogo", images: " ", price: " " },{ label: "Papan Bunga Pontianak", category: "Collection", url: "/collections/papan-bunga-pontianak", images: " ", price: " " },{ label: "Papan Bunga Premium", category: "Collection", url: "/collections/papan-bunga-premium", images: " ", price: " " },{ label: "Papan Bunga Printing", category: "Collection", url: "/collections/papan-bunga-printing", images: " ", price: " " },{ label: "Papan Bunga Printing Congratulations", category: "Collection", url: "/collections/papan-bunga-printing-congratulations", images: " ", price: " " },{ label: "Papan Bunga Probolinggo", category: "Collection", url: "/collections/papan-bunga-probolinggo", images: " ", price: " " },{ label: "Papan Bunga Promo", category: "Collection", url: "/collections/promo-papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Purbalingga", category: "Collection", url: "/collections/papan-bunga-purbalingga", images: " ", price: " " },{ label: "Papan Bunga Purwokerto", category: "Collection", url: "/collections/papan-bunga-purwokerto", images: " ", price: " " },{ label: "Papan Bunga Purworejo", category: "Collection", url: "/collections/papan-bunga-purworejo", images: " ", price: " " },{ label: "Papan Bunga Rembang", category: "Collection", url: "/collections/papan-bunga-rembang", images: " ", price: " " },{ label: "Papan Bunga Riau", category: "Collection", url: "/collections/papan-bunga-riau", images: " ", price: " " },{ label: "Papan Bunga Salatiga", category: "Collection", url: "/collections/papan-bunga-salatiga", images: " ", price: " " }
7901,{ label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " },{ label: "Papan Bunga Selamat Bandung", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " },{ label: "Papan Bunga Selamat Medan", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " },{ label: "Papan Bunga Semarang", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " },{ label: "Papan Bunga Serang", category: "Collection", url: "/collections/papan-bunga-serang", images: " ", price: " " },{ label: "Papan Bunga Sibolga", category: "Collection", url: "/collections/papan-bunga-sibolga", images: " ", price: " " },{ label: "Papan Bunga Sidoarjo", category: "Collection", url: "/collections/papan-bunga-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Singkawang", category: "Collection", url: "/collections/papan-bunga-singkawang", images: " ", price: " " },{ label: "Papan Bunga Solo", category: "Collection", url: "/collections/papan-bunga-solo", images: " ", price: " " },{ label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-sorong", images: " ", price: " " },{ label: "Papan Bunga Sragen", category: "Collection", url: "/collections/papan-bunga-sragen", images: " ", price: " " },{ label: "Papan Bunga Standard", category: "Collection", url: "/collections/papan-bunga-standard", images: " ", price: " " },{ label: "Papan Bunga Subang", category: "Collection", url: "/collections/papan-bunga-subang", images: " ", price: " " },{ label: "Papan Bunga Sukabumi", category: "Collection", url: "/collections/papan-bunga-sukabumi", images: " ", price: " " },{ label: "Papan Bunga Sumbawa", category: "Collection", url: "/collections/papan-bunga-sumbawa", images: " ", price: " " },{ label: "Papan Bunga Surabaya", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " },{ label: "Papan Bunga Surakarta", category: "Collection", url: "/collections/papan-bunga-surakarta", images: " ", price: " " },{ label: "Papan Bunga Tangerang", category: "Collection", url: "/collections/papan-bunga-tangerang", images: " ", price: " " },{ label: "Papan Bunga Tasikmalaya", category: "Collection", url: "/collections/papan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Papan Bunga Tegal", category: "Collection", url: "/collections/papan-bunga-tegal", images: " ", price: " " },{ label: "Papan Bunga Temanggung", category: "Collection", url: "/collections/papan-bunga-temanggung", images: " ", price: " " },{ label: "Papan Bunga Ternate", category: "Collection", url: "/collections/papan-bunga-ternate", images: " ", price: " " },{ label: "Papan Bunga Tolitoli", category: "Collection", url: "/collections/papan-bunga-tolitoli", images: " ", price: " " },{ label: "Papan Bunga Toraja", category: "Collection", url: "/collections/papan-bunga-toraja", images: " ", price: " " },{ label: "Papan Bunga Tuban", category: "Collection", url: "/collections/papan-bunga-tuban", images: " ", price: " " },{ label: "Papan Bunga Tulungagung", category: "Collection", url: "/collections/papan-bunga-tulungagung", images: " ", price: " " },{ label: "Papan Bunga Wakatobi", category: "Collection", url: "/collections/papan-bunga-wakatobi", images: " ", price: " " },{ label: "Papan Bunga Wedding", category: "Collection", url: "/collections/papan-bunga-ucapan-pernikahan", images: " ", price: " " },{ label: "Papan Bunga Wiyung", category: "Collection", url: "/collections/papan-bunga-wiyung", images: " ", price: " " },{ label: "Papan Bunga Wonogiri", category: "Collection", url: "/collections/papan-bunga-wonogiri", images: " ", price: " " },{ label: "Papan Bunga Wonokromo", category: "Collection", url: "/collections/papan-bunga-wonokromo", images: " ", price: " " },{ label: "Papan Bunga Wonosobo", category: "Collection", url: "/collections/papan-bunga-wonosobo", images: " ", price: " " },{ label: "Papan Bunga Yogyakarta", category: "Collection", url: "/collections/papan-bunga-yogyakarta", images: " ", price: " " }
7901,{ label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " },{ label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " },{ label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " },{ label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " },{ label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " },{ label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " },{ label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " },{ label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " },{ label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " },{ label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " },{ label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " },{ label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " },{ label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " },{ label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " },{ label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " },{ label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " },{ label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " },{ label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " },{ label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " },{ label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " },{ label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " },{ label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " },{ label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " },{ label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " },{ label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " },{ label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " },{ label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " },{ label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " },{ label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " },{ label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " },{ label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " },{ label: "Pisces âï¸ 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " },{ label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " },{ label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " },{ label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " },{ label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " },{ label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " },{ label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " },{ label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " },{ label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " },{ label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " },{ label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " },{ label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " },{ label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " },{ label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " },{ label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " },{ label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " },{ label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " },{ label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " },{ label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " },{ label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " },{ label: "Sagittarius âï¸ 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " },{ label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " },{ label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " },{ label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " },{ label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " },{ label: "Scorpio ï¸ 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " },{ label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " },{ label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " },{ label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " },{ label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " },{ label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " },{ label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " },{ label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " },{ label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " },{ label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " },{ label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " },{ label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " },{ label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " },{ label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " },{ label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " },{ label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " },{ label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " },{ label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " },{ label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus ï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-
7901bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7901,{ label: "Toko Bunga Ciwidey", category: "Collection", url: "/collections/toko-bunga-ciwidey", images: " ", price: " " },{ label: "Toko Bunga Danau Toba", category: "Collection", url: "/collections/toko-bunga-danau-toba", images: " ", price: " " },{ label: "Toko Bunga Demak", category: "Collection", url: "/collections/toko-bunga-demak", images: " ", price: " " },{ label: "Toko Bunga Denpasar", category: "Collection", url: "/collections/toko-bunga-denpasar", images: " ", price: " " },{ label: "Toko Bunga Depok", category: "Collection", url: "/collections/toko-bunga-depok", images: " ", price: " " },{ label: "Toko Bunga Duren Sawit", category: "Collection", url: "/collections/toko-bunga-duren-sawit", images: " ", price: " " },{ label: "Toko Bunga Garut", category: "Collection", url: "/collections/toko-bunga-garut", images: " ", price: " " },{ label: "Toko Bunga Gianyar", category: "Collection", url: "/collections/toko-bunga-gianyar", images: " ", price: " " },{ label: "Toko Bunga Gowa", category: "Collection", url: "/collections/toko-bunga-gowa", images: " ", price: " " },{ label: "Toko Bunga Gresik", category: "Collection", url: "/collections/toko-bunga-gresik", images: " ", price: " " },{ label: "Toko Bunga Grobogan", category: "Collection", url: "/collections/toko-bunga-grobogan", images: " ", price: " " },{ label: "Toko Bunga Grogol", category: "Collection", url: "/collections/toko-bunga-grogol", images: " ", price: " " },{ label: "Toko Bunga Gunungkidul", category: "Collection", url: "/collections/toko-bunga-gunungkidul", images: " ", price: " " },{ label: "Toko Bunga Indramayu", category: "Collection", url: "/collections/toko-bunga-indramayu", images: " ", price: " " },{ label: "Toko Bunga Jakarta", category: "Collection", url: "/collections/toko-bunga-jakarta", images: " ", price: " " },{ label: "Toko Bunga Jakarta Barat", category: "Collection", url: "/collections/toko-bunga-jakarta-barat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Pusat", category: "Collection", url: "/collections/toko-bunga-jakarta-pusat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Selatan", category: "Collection", url: "/collections/toko-bunga-jakarta-selatan", images: " ", price: " " },{ label: "Toko Bunga Jakarta Timur", category: "Collection", url: "/collections/toko-bunga-jakarta-timur", images: " ", price: " " },{ label: "Toko Bunga Jakarta Utara", category: "Collection", url: "/collections/toko-bunga-jakarta-utara", images: " ", price: " " },{ label: "Toko Bunga Jambi", category: "Collection", url: "/collections/toko-bunga-jambi", images: " ", price: " " },{ label: "Toko Bunga Jatinegara", category: "Collection", url: "/collections/toko-bunga-jatinegara", images: " ", price: " " },{ label: "Toko Bunga Jawa & Bali", category: "Collection", url: "/collections/toko-bunga-jawa-bali", images: " ", price: " " },{ label: "Toko Bunga Jayapura", category: "Collection", url: "/collections/toko-bunga-jayapura", images: " ", price: " " },{ label: "Toko Bunga Jelambar - Florist Onine 24 Jam", category: "Collection", url: "/collections/toko-bunga-jelambar", images: " ", price: " " },{ label: "Toko Bunga Jember", category: "Collection", url: "/collections/toko-bunga-jember", images: " ", price: " " },{ label: "Toko Bunga Jembrana", category: "Collection", url: "/collections/toko-bunga-jembrana", images: " ", price: " " },{ label: "Toko Bunga Jepara", category: "Collection", url: "/collections/toko-bunga-jepara", images: " ", price: " " },{ label: "Toko Bunga Joglo", category: "Collection", url: "/collections/toko-bunga-joglo", images: " ", price: " " },{ label: "Toko Bunga Jombang", category: "Collection", url: "/collections/toko-bunga-jombang", images: " ", price: " " },{ label: "Toko Bunga Kalibata", category: "Collection", url: "/collections/toko-bunga-kalibata", images: " ", price: " " },{ label: "Toko Bunga Kalimantan", category: "Collection", url: "/collections/toko-bunga-kalimantan", images: " ", price: " " },{ label: "Toko Bunga Kalisari Semarang", category: "Collection", url: "/collections/toko-bunga-kalisari-semarang", images: " ", price: " " },{ label: "Toko Bunga Kampung Baru", category: "Collection", url: "/collections/toko-bunga-kampung-baru", images: " ", price: " " },{ label: "Toko Bunga Kapuas", category: "Collection", url: "/collections/toko-bunga-kapuas", images: " ", price: " " },{ label: "Toko Bunga Karanganyar", category: "Collection", url: "/collections/toko-bunga-karanganyar", images: " ", price: " " },{ label: "Toko Bunga Karangasem", category: "Collection", url: "/collections/toko-bunga-karangasem", images: " ", price: " " },{ label: "Toko Bunga Karawang", category: "Collection", url: "/collections/toko-bunga-karawang", images: " ", price: " " },{ label: "Toko Bunga Kartosuro", category: "Collection", url: "/collections/toko-bunga-kartosuro", images: " ", price: " " },{ label: "Toko Bunga Kayoon Surabaya", category: "Collection", url: "/collections/toko-bunga-kayoon-surabaya", images: " ", price: " " },{ label: "Toko Bunga Kebayoran Baru", category: "Collection", url: "/collections/toko-bunga-kebayoran-baru", images: " ", price: " " },{ label: "Toko Bunga Kebon Jeruk", category: "Collection", url: "/collections/toko-bunga-kebon-jeruk", images: " ", price: " " },{ label: "Toko Bunga Kebumen", category: "Collection", url: "/collections/toko-bunga-kebumen", images: " ", price: " " },{ label: "Toko Bunga Kediri", category: "Collection", url: "/collections/toko-bunga-kediri", images: " ", price: " " },{ label: "Toko Bunga Kelapa Gading", category: "Collection", url: "/collections/toko-bunga-kelapa-gading", images: " ", price: " " },{ label: "Toko Bunga Kemayoran", category: "Collection", url: "/collections/toko-bunga-kemayoran", images: " ", price: " " },{ label: "Toko Bunga Kendal", category: "Collection", url: "/collections/toko-bunga-ken
7901dal", images: " ", price: " " },{ label: "Toko Bunga Kendari", category: "Collection", url: "/collections/toko-bunga-kendari", images: " ", price: " " },{ label: "Toko Bunga Ketapang", category: "Collection", url: "/collections/toko-bunga-ketapang", images: " ", price: " " },{ label: "Toko Bunga Klaten", category: "Collection", url: "/collections/toko-bunga-klaten", images: " ", price: " " },{ label: "Toko Bunga Klender", category: "Collection", url: "/collections/toko-bunga-klender", images: " ", price: " " },{ label: "Toko Bunga Kota Baru Yogyakarta", category: "Collection", url: "/collections/toko-bunga-kota-baru-yogyakarta", images: " ", price: " " },{ label: "Toko Bunga Kota Batu", category: "Collection", url: "/collections/toko-bunga-kota-batu", images: " ", price: " " },{ label: "Toko Bunga Kramat Jati", category: "Collection", url: "/collections/toko-bunga-kramat-jati", images: " ", price: " " },{ label: "Toko Bunga Kudus", category: "Collection", url: "/collections/toko-bunga-kudus", images: " ", price: " " },{ label: "Toko Bunga Kupang", category: "Collection", url: "/collections/toko-bunga-kupang", images: " ", price: " " },{ label: "Toko Bunga Lamongan", category: "Collection", url: "/collections/toko-bunga-lamongan", images: " ", price: " " },{ label: "Toko Bunga Langkat", category: "Collection", url: "/collections/toko-bunga-langkat", images: " ", price: " " },{ label: "Toko Bunga Lebak Bulus", category: "Collection", url: "/collections/toko-bunga-lebak-bulus", images: " ", price: " " },{ label: "Toko Bunga Lembang", category: "Collection", url: "/collections/toko-bunga-lembang", images: " ", price: " " },{ label: "Toko Bunga Lenteng Agung", category: "Collection", url: "/collections/toko-bunga-lenteng-agung", images: " ", price: " " },{ label: "Toko Bunga Lombok", category: "Collection", url: "/collections/toko-bunga-lombok", images: " ", price: " " },{ label: "Toko Bunga Lubuk Pakam", category: "Collection", url: "/collections/toko-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Toko Bunga Lumajang", category: "Collection", url: "/collections/toko-bunga-lumajang", images: " ", price: " " },{ label: "Toko Bunga Madiun", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " },{ label: "Toko Bunga Magelang", category: "Collection", url: "/collections/toko-bunga-magelang", images: " ", price: " " },{ label: "Toko Bunga Majalengka", category: "Collection", url: "/collections/toko-bunga-majalengka", images: " ", price: " " },{ label: "Toko Bunga Makassar", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " },{ label: "Toko Bunga Malang", category: "Collection", url: "/collections/toko-bunga-malang", images: " ", price: " " },{ label: "Toko Bunga Manado", category: "Collection", url: "/collections/toko-bunga-manado", images: " ", price: " " },{ label: "Toko Bunga Mangga Besar", category: "Collection", url: "/collections/toko-bunga-mangga-besar", images: " ", price: " " },{ label: "Toko Bunga Manokwari", category: "Collection", url: "/collections/toko-bunga-manokwari", images: " ", price: " " },{ label: "Toko Bunga Maros", category: "Collection", url: "/collections/toko-bunga-maros", images: " ", price: " " },{ label: "Toko Bunga Mataram", category: "Collection", url: "/collections/toko-bunga-mataram", images: " ", price: " " },{ label: "Toko Bunga Medan", category: "Collection", url: "/collections/toko-bunga-medan", images: " ", price: " " },{ label: "Toko Bunga Mojokerto", category: "Collection", url: "/collections/toko-bunga-mojokerto", images: " ", price: " " },{ label: "Toko Bunga Nganjuk", category: "Collection", url: "/collections/toko-bunga-nganjuk", images: " ", price: " " },{ label: "Toko Bunga Ngawi", category: "Collection", url: "/collections/toko-bunga-ngawi", images: " ", price: " " },{ label: "Toko Bunga Nias", category: "Collection", url: "/collections/toko-bunga-nias", images: " ", price: " " },{ label: "Toko Bunga Nusa Tenggara", category: "Collection", url: "/collections/toko-bunga-nusa-tenggara", images: " ", price: " " },{ label: "Toko Bunga Padang", category: "Collection", url: "/collections/toko-bunga-padang", images: " ", price: " " },{ label: "Toko Bunga Palembang", category: "Collection", url: "/collections/toko-bunga-palembang", images: " ", price: " " },{ label: "Toko Bunga Palu", category: "Collection", url: "/collections/toko-bunga-palu", images: " ", price: " " },{ label: "Toko Bunga Pangkal Pinang", category: "Collection", url: "/collections/toko-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Toko Bunga Papua", category: "Collection", url: "/collections/toko-bunga-papua", images: " ", price: " " },{ label: "Toko Bunga Parepare", category: "Collection", url: "/collections/toko-bunga-parepare", images: " ", price: " " },{ label: "Toko Bunga Pasar Baru", category: "Collection", url: "/collections/toko-bunga-pasar-baru", images: " ", price: " " },{ label: "Toko Bunga Pasar Minggu", category: "Collection", url: "/collections/toko-bunga-pasar-minggu", images: " ", price: " " },{ label: "Toko Bunga Pasar Rebo", category: "Collection", url: "/collections/toko-bunga-pasar-rebo", images: " ", price: " " },{ label: "Toko Bunga Pasuruan", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " },{ label: "Toko Bunga Pati", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " },{ label: "Toko Bunga Pekalongan", category: "Collection", url: "/collections/toko-bunga-pekalongan", images: " ", price: " " },{ label: "Toko Bunga Pekanbaru", category: "Collection", url: "/collections/toko-bunga-pekanbaru", images: " ", price: " " },{ label: "Toko Bunga Pemalang", category: "Collection", url: "/collections/toko-bunga-pemalang", images: " ", price: " " }, 7902 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUQBNOrnQlzo3ftqm0Jj5Sf9zEHlPApapd-rWsAHREzkweiTw-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7902,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUQBNOrnQlzo3ftqm0Jj5Sf9zEHlPApapd-rWsAHREzkweiTw-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWUQBNOrnQlzo3ftqm0Jj5Sf9zEHlPApapd-rWsAHREzkweiTw.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7902,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7903 ]; 7904 7905 7906 $( ".header-input-search" ).catcomplete({ 7907 appendTo: ".searchResult",source: function(request, response) { 7908 var results = $.ui.autocomplete.filter(data, request.term); 7909 var predicate = function () { 7910 var counter = { Collection: 0, Produk: 0 }; 7911 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7912 return fn 7913 }(); 7914 response(results.filter(predicate)); 7915 }, 7916 minLength:1, 7917 //results are clickable 7918 select: function( event, ui ) {window.location = ui.item.url;} 7919 }); 7920 $( ".header-input-search2" ).catcomplete({ 7921 appendTo: ".searchResult2", 7922 source: function(request, response) { 7923 var results = $.ui.autocomplete.filter(data, request.term); 7924 var predicate = function () { 7925 var counter = { Collection: 0, Produk: 0 }; 7926 var fn = function(item) { 7927 counter[item.category] += 1; 7928 return (counter[item.category] <= 5); 7929 } 7930 return fn 7931 }(); 7932 response(results.filter(predicate)); 7933 }, 7934 minLength:1, 7935 //results are clickable 7936 select: function( event, ui ) { 7937 window.location = ui.item.url; 7938 } 7939 }); 7940 }); 7941 </script>
7941 7942 7943
7943<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7943 7944
7944<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7944 7945 7946
7946<script> 7947 ( function() { 7948 var youtube = document.querySelectorAll( ".youtube" ); 7949 for (var i = 0; i < youtube.length; i++) { 7950 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7951 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7952 var image = new Image(); 7953 image.src = source; 7954 image.setAttribute("data-src", datasource); 7955 image.classList.add("swiper-lazy"); 7956 image.addEventListener( "load", function() { 7957 youtube[ i ].appendChild( image ); 7958 }( i ) ); 7959 youtube[i].addEventListener( "click", function() { 7960 var iframe = document.createElement( "iframe" ); 7961 iframe.setAttribute( "width", "480" ); 7962 iframe.setAttribute( "height", "480" ); 7963 iframe.setAttribute( "frameborder", "0" ); 7964 iframe.setAttribute( "allowfullscreen", "" ); 7965 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7966 this.innerHTML = ""; 7967 this.appendChild( iframe ); 7968 } ); 7969 }; 7970 7971 } )(); 7972 7973 /* Lazy Load */ 7974 const mainLazyLoad = new LazyLoad({threshold:400}); 7975 $(document).ready(function(){ 7976 7977 $("selectxxx").addClass("needsclick"); 7978 FastClick.attach(document.body); 7979 7980 var $customSelects = $('.select-search'); 7981 $customSelects.select2({ 7982 templateResult: function(result, container) { 7983 if (!result.id) { 7984 return result.text; 7985 } 7986 container.className += ' needsclick'; 7987 return result.text; 7988 } 7989 }); 7990 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7991 $(document).on('select2:open', () => { 7992 document.querySelector('.select2-search__field').focus(); 7993 }); 7994 7995 7996 $(".overlay").click(function(){ 7997 $(".js-drawer-close").click(); 7998 }); 7999 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 8000 $("html").toggleClass("nav_open"); 8001 }); 8002 8003 $('.swatch-element label').on('click', function(){ 8004 var srcImg = $(this).data('src'); 8005 $('#thumb-image-product .product-single__thumbnail').each(function(){ 8006 if ($(this).attr("href") == srcImg) { 8007 $(this).trigger('click'); 8008 } 8009 }); 8010 }); 8011 var defaultValue = $(".swatch input:checked").val() 8012 8013 $('#purchaseProduct .swatch [type=radio]').change(function() { 8014 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 8015 var optionValue = $(this).val(); 8016 console.log(optionIndex, optionValue) 8017 var value = parseInt(optionValue.split(' ')[0]) 8018 $(this) 8019 .closest('#purchaseProduct') 8020 .find('.single-option-selector') 8021 .eq(optionIndex) 8022 .val(optionValue) 8023 .trigger('change'); 8024 8025 }); 8026 8027 }); 8028 $(document).ready(function(){ 8029 $(".nav-search a").click(function(e){ 8030 e.preventDefault(); 8031 $(".icon-navsearch").toggle(); 8032 $(".icon-navclose").toggle(); 8033 $(".site-nav__item > .site-nav__link").toggle(); 8034 $(".open-search").toggle(); 8035 $(".open-search input").focus(); 8036 }); 8037 $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839651752652420' alt='Logo Best Price Guarantee'>"); 8038 if ($(window).width() < 768) { 8039 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 8040 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 8041 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK' alt='Icon Free Valentine'>"); 8042 } else { 8043 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 8044 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 8045 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK' alt='Icon Free Valentine'>"); 8046 } 8047 $(".bg-products .label-tag.free-cookies").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-cookies_80x.png?51468' alt='Icon Free Cookies'>"); 8048 $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK' alt='Icon Mothers day'>"); 8049 }); 8050 </script>
8050 8051 8052 8053 8054 8055 8056 8057 8058
8058<script type="text/javascript"> 8059 var wishlistpage = 0; 8060 8061 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 8062 </script>
8062 8063 8064 <!-- Remove duplicate wishlist.js reference --> 8065 <style> 8066 .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999999;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.fade.in{opacity:1}.modal-open .modal{overflow-x:hidden;overflow-y:auto;z-index:999999;background-color:rgba(0,0,0,.3)}.modal-dialog{position:relative;width:auto;margin:10px}.wishlist-model .modal-dialog{width:700px}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.wishlist-model .modal-content{}.wishlist-model .modal-header{min-height:0;padding:0;border-bottom:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #121212;filter:alpha(opacity=20);opacity:.2}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-header .close{margin-top:-2px}.wishlist-model .close{position:absolute;top:-10px;right:-10px;background:#fff;opacity:1;width:30px;height:30px;font-size:15px;border-radius:50%;z-index:10;box-shadow:0 1px 4px 0 #121212}.wishlist-model .close .icon-close{width:25px;height:25px}.modal-body{position:relative;padding:15px}.wishlist-model .modal-body{padding:0 30px;display:flex}.wishlist-model .wishlist-left{width:66.67%;border-right:1px solid #ccc;padding:30px 0}.wishlist-model .wishlist-note{position:relative;display:inline-block;margin-bottom:20px;margin-left:35px;border-bottom:1px solid #121212;color:#121212}.wishlist-model .wishlist-note a{color: #ffffff;}.wishlist-model .wishlist-note .cirle{position:absolute;top:-4px;left:-35px;width:25px;height:25px;color:#fff;background:#121212;line-height:25px;border-radius:50%;text-align:center}.wishlist-model .wishlist-note svg{fill:#fff}.wishlist-model .wishlist-note .cirle .icon-check{vertical-align:middle}.wishlist-model .product-left{width:33.33%;float:left;margin-right:30px}.wishlist-model .wishlist-image{overflow:hidden}.wishlist-model .wishlist-image img{transition:all .3s linear}.wishlist-model .wishlist-name{padding:0;margin-bottom:10px}.wishlist-model .wishlist-name a{color: #ffffff;}.wishlist-model .wishlist-price{margin-bottom:10px}.wishlist-model .wishlist-price .price{font-weight:700;margin-right:10px;font-size:15px}.wishlist-model .wishlist-price .price_compare{color:#ccc}.wishlist-model .wishlist-right{width:33.33%;padding:30px 0;padding-left:30px}.wishlist-model .btn-quick-shop{width:100%;border-color:#121212;background:#fff;color:#121212;padding:0 30px;transition:all .2s linear;height:36px;margin-bottom:10px;text-transform:uppercase}.wishlist-model .btn-cta{width:100%;font-size:1em;border-color:#ffffff;background:#ffffff;color:#fff;padding:0;transition:all .2s linear;height:36px;line-height:36px;margin-bottom:10px}.wishlist-model .quantity-content{text-align:center}.wishlist-model .quantity-content input{outline:none;text-align:center;font-weight:600;border:1px solid #121212}.wishlist-model .quantity-content button{border-color:#121212}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}} 8067 </style> 8068 8069 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 8070 <div class="modal-dialog" role="document"> 8071 <div class="modal-content"> 8072 <div class="modal-body">Your Wishlist is empty!</div> 8073 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 8074 </div> 8075 </div> 8076 </div> 8077 8078 <div class="wishlist-model"> 8079 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 8080 <div class="modal-dialog white-modal"> 8081 <div class="modal-content"> 8082 <div class="modal-header"> 8083 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 8084 <svg class="icon icon-close" version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32"> 8085 <title>icon-close</title> 8086 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 8087 </svg> 8088 </button> 8089 </div> 8090 <div class="modal-body"> 8091 <div class="wishlist-left"> 8092 <div class="wishlist-note">
8093 <span class="cirle"><svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32"> 8094 <title>icon-check</title> 8095 <path d="M12 21.766l14.218-12.926c0.272-0.248 0.694-0.228 0.942 0.045s0.228 0.694-0.045 0.942l-14.667 13.333c-0.254 0.231-0.643 0.231-0.897 0l-6.667-6.061c-0.272-0.248-0.293-0.669-0.045-0.942s0.669-0.293 0.942-0.045l6.218 5.653z"></path> 8096 </svg></span> 8097 Product added to <a href="/pages/wish-list">Wishlist</a> 8098 </div> 8099 <div class="wishlist-product"> 8100 <div class="product-left"> 8101 <div class="wishlist-image"></div> 8102 </div> 8103 <div class="product-right"> 8104 <div class="wishlist-name"></div> 8105 <div class="wishlist-price"></div> 8106 </div> 8107 </div> 8108 </div> 8109 <div class="wishlist-right"> 8110 <div class="wishlist-cart"> 8111 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 8112 <div class="others-bottom"> 8113 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 8114 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 8115 <span id="AddToCartText" class="">Beli Sekarang</span> 8116 </button> 8117 </div> 8118 <div id="wishlist-variants-container" class="variants-wrapper"></div> 8119 <div class="quantity-content"> 8120 <label>QTY</label> 8121 <input type="number" size="5" class="" name="quantity" value="1" /> 8122 </div> 8123 </form> 8124 </div> 8125 </div> 8126 </div> 8127 </div> 8128 </div> 8129 </div> 8130 </div> 8131 8132 8133 <style> 8134 .stamped-badge[data-rating="0.0"]{display: none !Important;} 8135 8136 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 8137 border-radius: 0px; 8138 } 8139 .stamped-review-body { 8140 padding-left: 0px !important; 8141 } 8142 #product-reviews .stamped-header:after { 8143 display:none !Important; 8144 } 8145 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 8146 font-family:inherit !important; 8147 } 8148 </style> 8149 8150 8151 8152 <div id='stamped-rewards-init' class='stamped-rewards-init' 8153 data-key-public='' 8154 8155 ></div> 8156 8157
8157<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
8157 8158 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 8159
8159<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
8159 8160 8161
8161<script> 8162 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 8163 </script>
8163 8164
8164<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
8164<style> 8165 .jss59 { 8166 background-color: rgba(0, 0, 0, 0.6); 8167 } 8168 .MuiBackdrop-root { 8169 top: 0; 8170 left: 0; 8171 right: 0; 8172 bottom: 0; 8173 display: flex; 8174 z-index: -1; 8175 position: fixed; 8176 align-items: center; 8177 justify-content: center; 8178 background-color: rgba(0, 0, 0, 0.5); 8179 -webkit-tap-highlight-color: transparent; 8180 } 8181 .MuiDialog-scrollPaper { 8182 display: flex; 8183 align-items: center; 8184 justify-content: center; 8185 } 8186 .MuiDialog-container { 8187 height: 100%; 8188 outline: 0; 8189 } 8190 .MuiPaper-elevation24 { 8191 box-shadow: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12); 8192 } 8193 .MuiDialog-paper { 8194 margin: 32px; 8195 position: relative; 8196 overflow-y: auto; 8197 } 8198 .MuiDialog-paperScrollPaper { 8199 display: flex; 8200 max-height: calc(100% - 64px); 8201 flex-direction: column; 8202 } 8203 .MuiDialog-paperWidthSm { 8204 max-width: 600px; 8205 } 8206 #location-lock-dialog { 8207 top: 20%; 8208 left: 0; 8209 right: 0; 8210 width: 30%; 8211 margin: 0px auto; 8212 display: block; 8213 padding: 30px; 8214 z-index: 99999; 8215 position: fixed; 8216 font-size: 14px; 8217 background: rgb(0, 0, 0); 8218 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 8219 text-align: center; 8220 font-family: Roboto, Arial, sans-serif; 8221 line-height: 1; 8222 border-radius: 8px; 8223 -webkit-font-smoothing: subpixel-antialiased; 8224 } 8225 .MuiButtonBase-root { 8226 color: inherit; 8227 border: 0; 8228 cursor: pointer; 8229 margin: 0; 8230 display: inline-flex; 8231 outline: 0; 8232 padding: 0; 8233 position: relative; 8234 align-items: center; 8235 user-select: none; 8236 border-radius: 0; 8237 vertical-align: middle; 8238 -moz-appearance: none; 8239 justify-content: center; 8240 text-decoration: none; 8241 background-color: transparent; 8242 -webkit-appearance: none; 8243 -webkit-tap-highlight-color: transparent; 8244 } 8245 .MuiIconButton-root { 8246 flex: 0 0 auto; 8247 color: rgba(0, 0, 0, 0.54); 8248 padding: 12px; 8249 overflow: visible; 8250 font-size: 1.5rem; 8251 text-align: center; 8252 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8253 border-radius: 50%; 8254 } 8255 .MuiIconButton-label { 8256 width: 100%; 8257 display: flex; 8258 align-items: inherit; 8259 justify-content: inherit; 8260 } 8261 .MuiSvgIcon-root { 8262 fill: currentColor; 8263 width: 1em; 8264 height: 1em; 8265 display: inline-block; 8266 font-size: 1.5rem; 8267 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8268 flex-shrink: 0; 8269 user-select: none; 8270 } 8271 .MuiTouchRipple-root { 8272 top: 0; 8273 left: 0; 8274 right: 0; 8275 bottom: 0; 8276 z-index: 0; 8277 overflow: hidden; 8278 position: absolute; 8279 border-radius: inherit; 8280 pointer-events: none; 8281 } 8282 .jss36 { 8283 color: #222222; 8284 font-size: 24px; 8285 font-family: Roboto, Arial, sans-serif; 8286 font-weight: 500; 8287 } 8288 .jss37 { 8289 color: #555555; 8290 padding: 10px 0px 0px; 8291 font-size: 14px; 8292 } 8293 .MuiFormGroup-root { 8294 display: flex; 8295 flex-wrap: wrap; 8296 flex-direction: column; 8297 } 8298 .MuiFormGroup-row { 8299 flex-direction: row; 8300 } 8301 .jss63 { 8302 width: 85%; 8303 margin: 15px auto; 8304 display: flex; 8305 padding: 11px 0px 0px; 8306 justify-content: space-evenly; 8307 } 8308 .MuiFormControlLabel-root { 8309 cursor: pointer; 8310 display: inline-flex; 8311 align-items: center; 8312 margin-left: -11px; 8313 margin-right: 16px; 8314 vertical-align: middle; 8315 -webkit-tap-highlight-color: transparent; 8316 } 8317 .jss70 { 8318 margin: 0; 8319 } 8320 .MuiButtonBase-root { 8321 color: inherit; 8322 border: 0; 8323 cursor: pointer; 8324 margin: 0; 8325 display: inline-flex; 8326 outline: 0; 8327 padding: 0; 8328 position: relative; 8329 align-items: center; 8330 user-select: none; 8331 border-radius: 0; 8332 vertical-align: middle; 8333 -moz-appearance: none; 8334 justify-content: center; 8335 text-decoration: none; 8336 background-color: transparent; 8337 -webkit-appearance: none; 8338 -webkit-tap-highlight-color: transparent; 8339 } 8340 .MuiIconButton-root { 8341 flex: 0 0 auto; 8342 color: rgba(0, 0, 0, 0.54); 8343 padding: 12px; 8344 overflow: visible; 8345 font-size: 1.5rem; 8346 text-align: center; 8347 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8348 border-radius: 50%; 8349 } 8350 .MuiIconButton-colorSecondary { 8351 color: #f50057; 8352 } 8353 .jss71 { 8354 padding: 9px; 8355 } 8356 .MuiRadio-root { 8357 color: rgba(0, 0, 0, 0.54); 8358 } 8359 .jss64 { 8360 padding: 2px; 8361 } 8362 .MuiRadio-colorSecondary.Mui-checked { 8363 color: #f50057; 8364 } 8365 .MuiIconButton-label { 8366 width: 100%; 8367 display: flex; 8368 align-items: inherit; 8369 justify-content: inherit; 8370 } 8371 .MuiTypography-root { 8372 margin: 0; 8373 } 8374 .MuiTypography-body1 { 8375 font-size: 18px; 8376 font-family: Roboto,sans-serif; 8377 font-weight: 400; 8378 line-height: 1.5; 8379 } 8380 .location-popup_area-block__sp9Ws { 8381 display: -moz-box; 8382 display: flex; 8383 -moz-box-orient: vertical; 8384 -moz-box-direction: normal; 8385 flex-direction: column; 8386 -moz-box-pack: center; 8387 justify-content: center; 8388 position: relative; 8389 margin: 10px 10% 0;
8390 } 8391 .location-popup_pin-search-box__3l5mJ { 8392 width: 100%; 8393 display: -moz-box; 8394 display: flex; 8395 -moz-box-align: center; 8396 align-items: center; 8397 } 8398 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8399 position: absolute; 8400 z-index: 999; 8401 } 8402 .location-popup_place-icon__jSG0Q { 8403 color: #ffffff; 8404 padding-left: 8px; 8405 } 8406 .location-popup_place-icon__jSG0Q svg { 8407 width: 18px; 8408 height: 18px; 8409 } 8410 .location-popup_cancel-icon__FHujU { 8411 color: #fff; 8412 right: 10px; 8413 width: 16px; 8414 cursor: pointer; 8415 height: 16px; 8416 display: none; 8417 padding: 5px; 8418 position: absolute; 8419 background: #999; 8420 text-align: center; 8421 border-radius: 50%; 8422 } 8423 .location-popup_pin-search-box__3l5mJ>div>select { 8424 /* -webkit-box-shadow: 0 0 10px #ffffff; 8425 box-shadow: 0 0 10px #ffffff; */ 8426 text-transform: capitalize; 8427 border: 1px solid #ffffff; 8428 color: #ffffff; 8429 width: 100%; 8430 margin: 0; 8431 display: -moz-box; 8432 display: flex; 8433 padding: 0 30px; 8434 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8435 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8436 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8437 font-size: 16px; 8438 border-radius: 4px; 8439 height: 44px; 8440 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8441 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8442 } 8443 .MuiButtonBase-root { 8444 color: inherit; 8445 border: 0; 8446 cursor: pointer; 8447 margin: 0; 8448 display: inline-flex; 8449 outline: 0; 8450 padding: 0; 8451 position: relative; 8452 align-items: center; 8453 user-select: none; 8454 border-radius: 0; 8455 vertical-align: middle; 8456 -moz-appearance: none; 8457 justify-content: center; 8458 text-decoration: none; 8459 background-color: transparent; 8460 -webkit-appearance: none; 8461 -webkit-tap-highlight-color: transparent; 8462 } 8463 .MuiButton-root { 8464 color: rgba(0, 0, 0, 0.87); 8465 padding: 6px 16px; 8466 font-size: 0.875rem; 8467 min-width: 64px; 8468 box-sizing: border-box; 8469 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8470 font-family: Roboto,sans-serif; 8471 font-weight: 500; 8472 line-height: 1.75; 8473 border-radius: 4px; 8474 text-transform: uppercase; 8475 } 8476 .MuiButton-contained { 8477 color: rgba(0, 0, 0, 0.87); 8478 box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12); 8479 background-color: #e0e0e0; 8480 } 8481 .MuiButtonBase-root.Mui-disabled { 8482 cursor: default; 8483 pointer-events: none; 8484 } 8485 .MuiButton-label { 8486 width: 100%; 8487 display: inherit; 8488 align-items: inherit; 8489 justify-content: inherit; 8490 } 8491 .cartButton_login_content__2j1f7 { 8492 display: -moz-box; 8493 display: flex; 8494 text-align: center; 8495 z-index: 9; 8496 font-size: 18px; 8497 font-weight: 500; 8498 color: #fff; 8499 } 8500 8501 .jss35 { 8502 top: 5px; 8503 right: 5px; 8504 padding: 4px; 8505 position: absolute; 8506 border-radius: 50%; 8507 } 8508 .jss67 { 8509 cursor: pointer; 8510 font-size: 15px; 8511 line-height: 1.3; 8512 padding-left: 5px; 8513 } 8514 .jss69 { 8515 color: #222222; 8516 } 8517 .jss80 { 8518 color: #fff; 8519 width: 100%; 8520 height: 52px; 8521 padding: 11px 16px; 8522 font-size: 18px; 8523 min-width: 88px; 8524 min-height: 36px; 8525 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8526 font-weight: 500; 8527 line-weight: 1em; 8528 border-radius: 4px; 8529 text-transform: uppercase; 8530 background-color: #E87325; 8531 } 8532 @media (min-width: 991px){ 8533 .cartButton_login_content__2j1f7 { 8534 font-weight: 500; 8535 } 8536 } 8537 8538 @media (max-width: 992px) { 8539 #location-lock-dialog { 8540 width: 100%; 8541 top: auto; 8542 bottom: 0; 8543 padding-left: 0; 8544 padding-right: 0; 8545 } 8546 .MuiFormGroup-row { 8547 display: block 8548 } 8549 .MuiIconButton-label input { 8550 margin: 0; 8551 } 8552 } 8553 </style> 8554 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8555 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8556 <div tabindex="0" data-test="sentinelStart"></div> 8557 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 8558 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8559 <div class="jss31 undefined" id="location-lock-dialog"> 8560 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8561 <span class="MuiIconButton-label"> 8562 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8563 <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path> 8564 </svg> 8565 </span> 8566 <span class="MuiTouchRipple-root"></span> 8567 </button> 8568 <div> 8569 <div class="jss36">Select Delivery Location</div> 8570 <div class="jss37">Select a delivery location to see product availability</div> 8571 </div> 8572 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8573 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8574 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8575 <span class="MuiIconButton-label"> 8576 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8577 <span class="jss41"></span> 8578 </span> 8579 <span class="MuiTouchRipple-root"></span> 8580 </span> 8581 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8582 <span class="jss67 jss69">Jabodetabek</span> 8583 </span> 8584 </label> 8585 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8586 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8587 <span class="MuiIconButton-label"> 8588 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8589 <span class="jss40"></span> 8590 </span> 8591 <span class="MuiTouchRipple-root"></span> 8592 </span> 8593 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8594 <span class="jss67 jss68">Outside Jabodetabek</span> 8595 </span> 8596 </label> 8597 </div> 8598 <div> 8599 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8600 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8601 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8602 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" aria-hidden="true" style="font-size:16px"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg> 8603 </div> 8604 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8605 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8606 </div> 8607 <div style="width: 100%;"> 8608 <select id="choose-location" class="form-control"> 8609 <option value="">Choose Location</option> 8610 <option value="jakarta">Jakarta</option> 8611 <option value="bogor">Bogor</option> 8612 <option value="depok">Depok</option> 8613 <option value="tangerang">Tangerang</option> 8614 <option value="bekasi">Bekasi</option> 8615 </select> 8616 </div> 8617 </div> 8618 </div> 8619 </div> 8620 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" data-testid="location-lock-submit" style="background-color: #ffffff; width: 80%; padding: 14px 0px 12px; margin: 20px 0px; font-size: 18px; font-weight: 500; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px; border-radius: 4px; color: rgb(0, 0, 0); height: 44px;" data-content=""> 8621 <span class="MuiButton-label">
8622 <span class=""></span> 8623 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8624 </span> 8625 </button> 8626 </div> 8627 </div> 8628 </div> 8629 <div tabindex="0" data-test="sentinelEnd"></div> 8630 </div> 8631 8632
8632<script> 8633 const jabodetabek = [ 8634 { 8635 "code": "jakarta", 8636 "city": "jakarta", 8637 "zip": [] 8638 }, 8639 { 8640 "code": "bogor", 8641 "city": "bogor", 8642 "zip": [] 8643 }, 8644 { 8645 "code": "depok", 8646 "city": "depok", 8647 "zip": [] 8648 }, 8649 { 8650 "code": "tangerang", 8651 "city": "tangerang", 8652 "zip": [] 8653 }, 8654 { 8655 "code": "bekasi", 8656 "city": "bekasi", 8657 "zip": [] 8658 } 8659 ] 8660 let cityNonJabodetabek = [ 8661 8662 "pengiriman_aceh", 8663 8664 8665 8666 8667 8668 "pengiriman_ambon", 8669 8670 8671 8672 8673 8674 "pengiriman_atambua", 8675 8676 8677 8678 8679 8680 "pengiriman_badung", 8681 8682 8683 8684 8685 8686 "pengiriman_bali", 8687 8688 8689 8690 8691 8692 "pengiriman_balikpapan", 8693 8694 8695 8696 8697 8698 "pengiriman_bandar lampung", 8699 8700 8701 8702 8703 8704 "pengiriman_bandung", 8705 8706 8707 8708 8709 8710 "pengiriman_bandung barat", 8711 8712 8713 8714 8715 8716 "pengiriman_banjarmasin", 8717 8718 8719 8720 8721 8722 "pengiriman_banyumas", 8723 8724 8725 8726 8727 8728 "pengiriman_banyuwangi", 8729 8730 8731 8732 8733 8734 "pengiriman_batam", 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 "pengiriman_biak", 8745 8746 8747 8748 8749 8750 "pengiriman_binjai", 8751 8752 8753 8754 8755 8756 "pengiriman_blitar", 8757 8758 8759 8760 8761 8762 "pengiriman_blora", 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 "pengiriman_bojonegoro", 8773 8774 8775 8776 8777 8778 "pengiriman_boyolali", 8779 8780 8781 8782 8783 8784 "pengiriman_bukittinggi", 8785 8786 8787 8788 8789 8790 "pengiriman_buleleng", 8791 8792 8793 8794 8795 8796 "pengiriman_ciamis", 8797 8798 8799 8800 8801 8802 "pengiriman_cianjur", 8803 8804 8805 8806 8807 8808 "pengiriman_cibinong", 8809 8810 8811 8812 8813 8814 "pengiriman_cikarang", 8815 8816 8817 8818 8819 8820 "pengiriman_cikupa", 8821 8822 8823 8824 8825 8826 "pengiriman_cilacap", 8827 8828 8829 8830 8831 8832 "pengiriman_cileunyi", 8833 8834 8835 8836 8837 8838 "pengiriman_cimahi", 8839 8840 8841 8842 8843 8844 "pengiriman_cirebon", 8845 8846 8847 8848 8849 8850 "pengiriman_ciwidey", 8851 8852 8853 8854 8855 8856 "pengiriman_deli serdang", 8857 8858 8859 8860 8861 8862 "pengiriman_demak", 8863 8864 8865 8866 8867 8868 "pengiriman_denpasar", 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 "pengiriman_garut", 8879 8880 8881 8882 8883 8884 "pengiriman_gianyar", 8885 8886 8887 8888 8889 8890 "pengiriman_gresik", 8891 8892 8893 8894 8895 8896 "pengiriman_gunung kidul", 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 "pengiriman_jambi", 8907 8908 8909 8910 8911 8912 "pengiriman_jayapura", 8913 8914 8915 8916 8917 8918 "pengiriman_jember", 8919 8920 8921 8922 8923 8924 "pengiriman_jepara", 8925 8926 8927 8928 8929 8930 "pengiriman_jombang", 8931 8932 8933 8934 8935 8936 "pengiriman_karanganyar", 8937 8938 8939 8940 8941 8942 "pengiriman_karawang", 8943 8944 8945 8946 8947 8948 "pengiriman_karo", 8949 8950 8951 8952 8953 8954 "pengiriman_kebumen", 8955 8956 8957 8958 8959 8960 "pengiriman_kediri", 8961 8962 8963 8964 8965 8966 "pengiriman_keerom", 8967 8968 8969 8970 8971 8972 "pengiriman_kendal", 8973 8974 8975 8976 8977 8978 "pengiriman_klaten", 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 "pengiriman_kudus", 8989 8990 8991 8992 8993 8994 "pengiriman_kupang", 8995 8996 8997 8998 8999 9000 "pengiriman_lainnya", 9001 9002 9003 9004 9005 9006 "pengiriman_lamongan", 9007 9008 9009 9010 9011 9012 "pengiriman_lampung", 9013 9014 9015 9016 9017 9018 "pengiriman_lampung barat", 9019 9020 9021 9022 9023 9024 "pengiriman_lembang", 9025 9026 9027 9028 9029 9030 "pengiriman_lombok", 9031 9032 9033 9034 9035 9036 "pengiriman_lumajang", 9037 9038 9039 9040 9041 9042 "pengiriman_madiun", 9043 9044 9045 9046 9047 9048 "pengiriman_magelang", 9049 9050 9051 9052 9053 9054 "pengiriman_majalengka", 9055 9056 9057 9058 9059 9060 "pengiriman_makassar", 9061 9062 9063 9064 9065 9066 "pengiriman_malang", 9067 9068 9069 9070 9071 9072 "pengiriman_manado", 9073 9074 9075 9076 9077 9078 "pengiriman_medan", 9079 9080 9081 9082 9083 9084 "pengiriman_mengwi", 9085 9086 9087 9088 9089 9090 "pengiriman_mojokerto", 9091 9092 9093 9094 9095 9096 "pengiriman_nganjuk", 9097 9098 9099 9100 9101 9102 "pengiriman_ngawi", 9103 9104 9105 9106 9107 9108 "pengiriman_padang", 9109 9110 9111 9112 9113 9114 "pengiriman_palembang", 9115 9116 9117 9118 9119 9120 "pengiriman_pasuruan", 9121 9122 9123 9124 9125 9126 "pengiriman_pati", 9127 9128 9129 9130 9131 9132 "pengiriman_pekalongan", 9133 9134 9135 9136 9137 9138 "pengiriman_pekanbaru", 9139 9140 9141 9142 9143 9144 "pengiriman_pemalang", 9145 9146 9147 9148 9149 9150 "pengiriman_ponorogo", 9151 9152 9153 9154 9155 9156 "pengiriman_pontianak", 9157 9158 9159 9160 9161 9162 "pengiriman_probolinggo", 9163 9164 9165 9166 9167 9168 "pengiriman_purbalingga", 9169 9170 9171 9172 9173 9174 "pengiriman_purwakarta", 9175 9176 9177 9178 9179 9180 "pengiriman_purwokerto", 9181 9182 9183 9184 9185 9186 "pengiriman_rembang", 9187 9188 9189 9190 9191 9192 "pengiriman_riau", 9193 9194 9195 9196 9197 9198 "pengiriman_salatiga", 9199 9200 9201 9202 9203 9204 "pengiriman_samarinda", 9205 9206 9207 9208 9209 9210 "pengiriman_semarang", 9211 9212 9213 9214 9215 9216 "pengiriman_sentani", 9217 9218 9219 9220 9221 9222 "pengiriman_serang", 9223 9224 9225 9226 9227 9228 "pengiriman_sidoarjo", 9229 9230 9231 9232 9233 9234 "pengiriman_singkawang", 9235 9236 9237 9238 9239 9240 "pengiriman_sragen", 9241 9242 9243 9244 9245 9246 "pengiriman_subang", 9247 9248 9249 9250 9251 9252 "pengiriman_sukabumi", 9253 9254 9255 9256 9257 9258 "pengiriman_sumbawa", 9259 9260 9261 9262 9263 9264 "pengiriman_surabaya", 9265 9266 9267 9268 9269 9270 "pengiriman_surakarta solo", 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 "pengiriman_tasikmalaya", 9281 9282 9283 9284 9285 9286 "pengiriman_tegal", 9287 9288 9289 9290 9291 9292 "pengiriman_timika", 9293 9294 9295 9296 9297 9298 "pengiriman_wamena", 9299 9300 9301 9302 9303 9304 "pengiriman_wiyung", 9305 9306 9307 9308 9309 9310 "pengiriman_wonokromo", 9311 9312 9313 9314 9315 9316 "pengiriman_yogyakarta", 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 ] 9927 console.log(cityNonJabodetabek) 9928 let non_jabodetabek = [] 9929 for(var i=0;i<cityNonJabodetabek.length;i++) { 9930 const obj = { 9931 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9932 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9933 "zip": [] 9934 } 9935 non_jabodetabek.push(obj) 9936 } 9937 let current_location = getCookie("location_delivery") 9938 $("[name=location]").change(function(){ 9939 let v = $(this).val() 9940 let option = [] 9941 if(v == 'Jabodetabek') { 9942 for(var i=0;i<jabodetabek.length;i++) { 9943 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9944 option.push(jabodetabekHtml) 9945 } 9946 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9947 } else { 9948 for(var i=0;i<non_jabodetabek.length;i++) { 9949 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9950 option.push(nonjabodetabekHtml) 9951 } 9952 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9953 } 9954 }) 9955 9956 $("#location-lock-submit").click(function(e){
9957 let select = $("#choose-location") 9958 let value = select.val().toLowerCase() 9959 console.log(value) 9960 if(select.val() == "") { 9961 return alert("Choose Your Location") 9962 e.preventDefault() 9963 } 9964 setCookie("location_delivery",value,1000000); 9965 9966 location.reload(); 9967 9968 }) 9969 9970 $("#close-popup-delivery").click(function(){ 9971 $(".MuiDialog-root").hide() 9972 if(!current_location){ 9973 setCookie("location_delivery","jakarta",1000000); 9974 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9975 } 9976 }) 9977 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9978 $(".MuiDialog-root").show() 9979 }) 9980 9981 9982 if(!current_location){ 9983 9984 } else { 9985 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9986 console.log(current_location) 9987 $("#choose-location").each(function(){ 9988 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9989 $("#jabodetabek").trigger("click") 9990 } else { 9991 $("#non-jabodetabek").trigger("click") 9992 } 9993 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9994 }) 9995 } 9996 9997 // if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi' || current_location == 'bandung' || current_location == 'semarang' || current_location == 'yogyakarta' || current_location == 'surabaya'){ 9998 // $("#timeMalam").attr("disabled", false) 9999 // } else { 10000 // $("#timeMalam").attr("disabled", true) 10001 // } 10002 10003 if(current_location && current_location != 'jakarta') { 10004 $("#self-pickup").attr("disabled", true) 10005 } 10006 10007 function setCookie(name,value,days) { 10008 var expires = ""; 10009 if (days) { 10010 var date = new Date(); 10011 date.setTime(date.getTime() + (days*24*60*60*1000)); 10012 expires = "; expires=" + date.toUTCString(); 10013 } 10014 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 10015 } 10016 function getCookie(name) { 10017 var nameEQ = name + "="; 10018 var ca = document.cookie.split(';'); 10019 for(var i=0;i < ca.length;i++) { 10020 var c = ca[i]; 10021 while (c.charAt(0)==' ') c = c.substring(1,c.length); 10022 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 10023 } 10024 return null; 10025 } 10026 </script>
10026 10027 <!-- One Tap --> 10028
10028<script> 10029 console.log("Outerbloom..."); 10030 </script>
10030 10031 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 10032 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 10033
10033<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10033 10034
10034<script> 10035 const widgetConfig = { 10036 id: "clz7897za002cz7otleaz0d3d", 10037 showQuickResponse: false, 10038 quickResponsesData: [], 10039 themeColor: "#ffffff", 10040 widgetText: "", 10041 radiusType: "circle", 10042 widgetIconType: "whatsapp", 10043 position: "right", 10044 storeLogo: "", 10045 storeName: "Outerbloom", 10046 storeDescription: "", 10047 size: "small", 10048 showCard: false, 10049 widgetColorType: "solid", 10050 widgetColor1: "#008069", 10051 widgetColor2: "#008069", 10052 social: { 10053 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 10054 values: { 10055 instagram: { 10056 enabled: false, 10057 value: "", 10058 }, 10059 facebook: { 10060 enabled: false, 10061 value: "", 10062 }, 10063 email: { 10064 enabled: false, 10065 value: "", 10066 }, 10067 x: { 10068 enabled: false, 10069 value: "", 10070 }, 10071 tiktok: { 10072 enabled: false, 10073 value: "", 10074 }, 10075 linkedin: { 10076 enabled: false, 10077 value: "", 10078 }, 10079 youtube: { 10080 enabled: false, 10081 value: "", 10082 }, 10083 }, 10084 }, 10085 }; 10086 10087 function initializeWidget() { 10088 if (typeof BBBWidget !== 'undefined') { 10089 BBBWidget.init(widgetConfig); 10090 } else { 10091 setTimeout(initializeWidget, 100); 10092 } 10093 } 10094 10095 initializeWidget();</script>
10095 10096 10097 10098 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 10099 10100 10101 <div style="position: fixed; bottom: 0; right: 0"></div> 10102 10103
10103<script> 10104 console.info("bitlogin extension version: v2.5.7"); 10105 10106 const googleScript = document.createElement("script"); 10107 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 10108 document.head.append(googleScript); 10109 10110 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 10111 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 10112 10113 const appearance = {"style":"square","hasShadow":true,"domain":"outerbloom1.myshopify.com","colorScheme":"match","backgroundColor":"#ffffff","outlineColor":"#ffe100","textColor":"#700000","position":"top","hideDivider":false,"dividerText":"","size":"small","format":"contentFlex","language":"en","buttonText":"Continue With","redirectLink":"\/account","googleOneTap":true,"googleOneTapBanner":true,"captureAdditionalData":true,"customerTag":"bitLogin","redirectOneTapDesktop":"[{\"label\":\"Account\",\"label2\":\"Desktop: Account\",\"value\":\"account\",\"parentValue\":\"Desktop\"}]","redirectOneTapMobile":"[{\"label\":\"Thank you page\",\"label2\":\"Mobile: Thank you page\",\"value\":\"thank_you\",\"parentValue\":\"Mobile\"}]","watermark":true,"buttonList":{"google":"Continue with Google","facebook":"Continue with Facebook","apple":"Continue with Apple","whatsapp":"Continue with WhatsApp","microsoft":"Continue with Microsoft","twitter":"Continue with X","amazon":"Continue with Amazon","instagram":"Continue with Instagram","magic_link":"Continue with Magic Link","mobile_app":"Continue with Mobile App","linkedin":"Continue with LinkedIn"}}; 10114 const config = [{"domain":"outerbloom1.myshopify.com","provider":"FACEBOOK","enabledMobile":false,"enabledWeb":true,"clientId":"922184709213757","clientSecret":"e3c874c8bce6da4211538ebda706d1cb","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"GOOGLE","enabledMobile":true,"enabledWeb":true,"clientId":"933600373534-vk6hiu9lqrtbblj0357q0gsoo7mqvsd0.apps.googleusercontent.com","clientSecret":"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","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":true,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"APPLE","enabledMobile":true,"enabledWeb":true,"clientId":"com.bitlogin.outerbloom","clientSecret":"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","appleTeamId":"1A","applePrivateKey":"1A","usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"WHATSAPP","enabledMobile":false,"enabledWeb":true,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"MICROSOFT","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"TWITTER","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"AMAZON","enabledMobile":false,"enabledWeb":false,"clientId":"amzn1.application-oa2-client.5b560a5e3e2943d6b25c50cd6dca5532","clientSecret":"amz
10114n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 10115 const redirectUrl = appearance.redirectLink; 10116 10117 let locationCacheSet = false; 10118 let errorLocation = false; 10119 let oneTapSet = false; 10120 10121 let bitloginCache = { 10122 appearance: appearance, 10123 config: config 10124 }; 10125 10126 let isInitializing = false; 10127 const queue = []; 10128 10129 // Add CSS for the popup 10130 const popupStyles = document.createElement('style'); 10131 popupStyles.textContent = ` 10132 /* Styles for login popup */ 10133 .bitlogin-popup-overlay { 10134 position: fixed; 10135 top: 0; 10136 left: 0; 10137 width: 100%; 10138 height: 100%; 10139 background: rgba(0, 0, 0, 0.45); 10140 backdrop-filter: blur(4px); 10141 display: flex; 10142 align-items: center; 10143 justify-content: center; 10144 opacity: 0; 10145 transition: opacity 0.3s ease-in-out; 10146 z-index: 999999; 10147 } 10148 10149 .bitlogin-popup-overlay.visible { 10150 opacity: 1; 10151 } 10152 10153 .bitlogin-popup { 10154 background: #FFFFFF; 10155 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 10156 border-radius: 16px; 10157 width: 100%; 10158 max-width: 560px; 10159 display: flex; 10160 overflow: hidden; 10161 position: relative; 10162 opacity: 0; 10163 transform: translateY(20px) scale(0.98); 10164 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 10165 } 10166 10167 .bitlogin-popup.visible { 10168 opacity: 1; 10169 transform: translateY(0) scale(1); 10170 } 10171 10172 .bitlogin-popup-with-image { 10173 max-width: 640px; 10174 } 10175 10176 .bitlogin-popup-right-image { 10177 flex-direction: row-reverse; 10178 } 10179 10180 .bitlogin-popup-image { 10181 object-fit: cover; 10182 width: 50%; 10183 height: auto; 10184 } 10185 10186 .bitlogin-popup-content { 10187 padding: 32px; 10188 position: relative; 10189 width: 50%; 10190 } 10191 10192 .bitlogin-popup-close { 10193 position: absolute; 10194 top: 16px; 10195 right: 16px; 10196 background: white; 10197 border: none; 10198 width: 30px; 10199 height: 30px; 10200 display: flex; 10201 align-items: center; 10202 justify-content: center; 10203 cursor: pointer; 10204 transition: background-color 0.2s; 10205 color: inherit; 10206 padding: 0; 10207 } 10208 10209 .bitlogin-popup-close:hover { 10210 background-color: #e5e5e5; 10211 } 10212 10213 .bitlogin-popup-buttons { 10214 display: flex; 10215 flex-direction: column; 10216 gap: 12px; 10217 margin-top: 24px; 10218 } 10219 10220 /* Button styles within popup - override width for popup buttons */ 10221 .bitlogin-popup-buttons #google-login, 10222 .bitlogin-popup-buttons #facebook-login, 10223 .bitlogin-popup-buttons #apple-login, 10224 .bitlogin-popup-buttons #whatsapp-login, 10225 .bitlogin-popup-buttons #microsoft-login, 10226 .bitlogin-popup-buttons #twitter-login, 10227 .bitlogin-popup-buttons #amazon-login, 10228 .bitlogin-popup-buttons #instagram-login, 10229 .bitlogin-popup-buttons #magic-link-login, 10230 .bitlogin-popup-buttons #mobile-app-login { 10231 width: 100% !important; 10232 font-family: inherit !important; 10233 } 10234 10235 .bitlogin-popup-footer { 10236 margin-top: 32px; 10237 text-align: center; 10238 font-size: 14px; 10239 opacity: 0.6; 10240 } 10241 10242 /* Modern Typography */ 10243 .bitlogin-popup h2 { 10244 margin-top: 12px; 10245 font-size: 21px !important; 10246 line-height: 1.2 !important; 10247 font-weight: 700 !important; 10248 letter-spacing: -0.02em !important; 10249 margin-bottom: 16px !important; 10250 } 10251 10252 .bitlogin-popup-header { 10253 position: relative; 10254 margin-bottom: 24px; 10255 } 10256 10257 /* Modern gradient accent */ 10258 .bitlogin-popup-content > div { 10259 font-size: 16px !important; 10260 line-height: 1.2 !important; 10261 opacity: 0.85 !important; 10262 } 10263 10264 /* Enhanced button interactions */ 10265 .bitlogin-popup-buttons button { 10266 position: relative; 10267 overflow: hidden; 10268 } 10269 10270 @keyframes ripple { 10271 0% { 10272 transform: scale(0, 0); 10273 opacity: 0.5; 10274 } 10275 100% { 10276 transform: scale(100, 100); 10277 opacity: 0; 10278 } 10279 } 10280 10281 /* Responsive adjustments */ 10282 @media (max-width: 640px) { 10283 .bitlogin-popup { 10284 max-width: 90%; 10285 width: 90%; 10286 margin: 0 16px; 10287 } 10288 10289 .bitlogin-popup-with-image { 10290 flex-direction: column !important; 10291 } 10292 10293 .bitlogin-popup-image { 10294 width: 100%; 10295 height: 180px; 10296 } 10297 10298 .bitlogin-popup-content { 10299 padding: 24px; 10300 } 10301 10302 .bitlogin-popup h2 { 10303 font-size: 24px !important; 10304 } 10305 } 10306 `; 10307
10308 document.head.appendChild(popupStyles); 10309 10310 // Add fonts link for different font options 10311 const fontsLink = document.createElement('link'); 10312 fontsLink.rel = 'stylesheet'; 10313 fontsLink.href = 'https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Roboto:wght@400;500&family=Open+Sans:wght@400;500;600&family=Noto+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Poppins:wght@400;500;600&family=Quicksand:wght@400;500;600&family=Raleway:wght@400;500;600&family=PT+Sans:wght@400;700&family=Oswald:wght@400;500;600&display=swap'; 10314 document.head.appendChild(fontsLink); 10315 10316 (async () => { 10317 try { 10318 let host = window.location.host; 10319 if (host === "admin.shopify.com") { 10320 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 10321 } 10322 10323 const urlSearchParams = new URLSearchParams(window.location.search); 10324 const checkoutUrl = urlSearchParams.get("checkout_url"); 10325 10326 async function init({ inputRef, index }) { 10327 if (isInitializing) { 10328 queue.push(() => init({ inputRef, index })); 10329 return; 10330 } 10331 10332 isInitializing = true; 10333 10334 try { 10335 let bitLoginSectionRoot = document.querySelector( 10336 `.bitlogin-root[data-index="${index}"]` 10337 ); 10338 10339 const formRef = inputRef?.closest( 10340 "form:not([action='/account/recover'])" 10341 ); 10342 10343 if (formRef && !bitLoginSectionRoot) { 10344 await getLocation(); 10345 10346 bitLoginSectionRoot = document.createElement(`div`); 10347 10348 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 10349 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 10350 10351 updateAppearance({ 10352 formRef, 10353 rootRef: bitLoginSectionRoot, 10354 host, 10355 }); 10356 } 10357 } catch (err) { 10358 console.error(`error while initiating bitlogin extensions`, err); 10359 } finally { 10360 // Release the lock 10361 isInitializing = false; 10362 10363 // Check if there are pending items in the queue 10364 if (queue.length > 0) { 10365 // Process the next function in the queue 10366 const nextFunction = queue.shift(); 10367 nextFunction(); 10368 } 10369 } 10370 } 10371 10372 function initAll() { 10373 return new Promise((resolve, reject) => { 10374 setTimeout(async () => { 10375 const inputRefs = document.querySelectorAll( 10376 'input[name="customer[email]"]' 10377 ); 10378 10379 for (let i = 0; i < inputRefs.length; i++) { 10380 const currentInputRef = inputRefs[i]; 10381 const isVisible = isElementVisible(currentInputRef); 10382 10383 if (isVisible) { 10384 await init({ inputRef: currentInputRef, index: i }); 10385 } 10386 } 10387 10388 resolve("ok"); 10389 }, 100); 10390 }); 10391 } 10392 10393 const observer = new MutationObserver((mutationsList) => { 10394 for (let mutation of mutationsList) { 10395 initAll(); 10396 } 10397 }); 10398 10399 observer.observe(document.body, { 10400 childList: true, 10401 subtree: true, 10402 attributes: true, 10403 }); 10404 10405 initAll(); 10406 10407 if (appearance.googleOneTap) { 10408 setupOneTap({ host, checkoutUrl }); 10409 } 10410 10411 // Initialize popup 10412 await initPopup(host); 10413 } catch (error) { 10414 console.error("Error initializing BitLogin:", error); 10415 } 10416 })(); 10417 10418 async function initPopup(host) { 10419 // Check if user is already logged in using Liquid checks properly 10420 const isLoggedIn = false || 10421 document.querySelector('.customer-logout-link') || 10422 document.querySelector('.account-link') || 10423 window.location.pathname.includes('/account'); 10424 10425 if (isLoggedIn) { 10426 return; // User is logged in, don't show popup 10427 } 10428 10429 try { 10430 // Fetch the popup configuration 10431 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 10432 .then(res => res.json()) 10433 .catch(err => { 10434 console.error('Error fetching popup configuration:', err); 10435 return null; 10436 }); 10437 10438 if (!popupConfig || !popupConfig.enabled) { 10439 return;
10439 // Don't show popup if disabled or config not found 10440 } 10441 10442 // Create popup after 10 seconds 10443 setTimeout(() => { 10444 // Check if user is still on the page and still not logged in 10445 if (document.visibilityState === 'visible') { 10446 // Additional check in case user logged in during the 10 second wait 10447 const currentlyLoggedIn = false || 10448 document.querySelector('.customer-logout-link') || 10449 document.querySelector('.account-link'); 10450 10451 if (!currentlyLoggedIn) { 10452 createLoginPopup(popupConfig, host); 10453 } 10454 } 10455 }, 10000); 10456 } catch (error) { 10457 console.error('Error initializing popup:', error); 10458 } 10459 } 10460 10461 function createLoginPopup(popupConfig, host) { 10462 // Font mapping 10463 const fontFamilyMap = { 10464 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 10465 montserrat: 'Montserrat, sans-serif', 10466 roboto: 'Roboto, sans-serif', 10467 open_sans: 'Open Sans, sans-serif', 10468 noto_sans: 'Noto Sans, sans-serif', 10469 lato: 'Lato, sans-serif', 10470 poppins: 'Poppins, sans-serif', 10471 quicksand: 'Quicksand, sans-serif', 10472 raleway: 'Raleway, sans-serif', 10473 pt_sans: 'PT Sans, sans-serif', 10474 oswald: 'Oswald, sans-serif', 10475 }; 10476 10477 // Create overlay 10478 const overlay = document.createElement('div'); 10479 overlay.className = 'bitlogin-popup-overlay'; 10480 10481 // Create popup container with appropriate styling 10482 const popup = document.createElement('div'); 10483 popup.className = 'bitlogin-popup'; 10484 10485 if (popupConfig.layout === 'default') { 10486 popup.style.maxWidth = '400px'; 10487 } 10488 10489 // Function to close the popup 10490 const closePopup = () => { 10491 overlay.classList.remove('visible'); 10492 popup.classList.remove('visible'); 10493 setTimeout(() => { 10494 if (document.body.contains(overlay)) { 10495 document.body.removeChild(overlay); 10496 } 10497 }, 300); 10498 }; 10499 10500 // Add click handler to the overlay to close when clicking outside 10501 overlay.addEventListener('click', (event) => { 10502 // Close only if clicking directly on the overlay, not its children 10503 if (event.target === overlay) { 10504 closePopup(); 10505 } 10506 }); 10507 10508 // Add escape key handler to close popup 10509 document.addEventListener('keydown', (event) => { 10510 if (event.key === 'Escape' && document.body.contains(overlay)) { 10511 closePopup(); 10512 } 10513 }); 10514 10515 // Create layout with image if specified 10516 let contentWrapper; 10517 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 10518 popup.classList.add('bitlogin-popup-with-image'); 10519 10520 if (popupConfig.layout === 'right') { 10521 popup.classList.add('bitlogin-popup-right-image'); 10522 } 10523 10524 // Add image 10525 const image = document.createElement('img'); 10526 image.className = 'bitlogin-popup-image'; 10527 image.src = popupConfig.popupImage; 10528 image.alt = 'Login'; 10529 image.loading = 'lazy'; 10530 popup.appendChild(image); 10531 10532 // Create content container 10533 contentWrapper = document.createElement('div'); 10534 contentWrapper.className = 'bitlogin-popup-content'; 10535 10536 if (popupConfig.layout === 'right') { 10537 const closeButton = document.createElement('button'); 10538 closeButton.className = 'bitlogin-popup-close'; 10539 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="assets/logo/logonix-anim.gif"> 10540 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 10541 </svg>`; 10542 closeButton.setAttribute('aria-label', 'Close'); 10543 closeButton.onclick = closePopup; 10544 10545 popup.appendChild(closeButton); 10546 } 10547 } else { 10548 contentWrapper = document.createElement('div'); 10549 contentWrapper.className = 'bitlogin-popup-content'; 10550 contentWrapper.style.width = '100%'; 10551 } 10552 10553 // Set background style 10554 if (popupConfig.backgroundTheme === 'gradient') { 10555 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 10556 } else { 10557 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 10558 } 10559 10560 // Apply font family 10561 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 10562 10563 if (popupConfig.layout !== 'right') { 10564 const closeButton = document.createElement('button'); 10565 closeButton.className = 'bitlogin-popup-close'; 10566 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="assets/logo/logonix-anim.gif"> 10567 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 10568 </svg>`; 10569 closeButton.setAttribute('aria-label', 'Close'); 10570 closeButton.onclick = closePopup; 10571 10572 contentWrapper.appendChild(closeButton); 10573 } 10574 10575 // Add heading with subtle animation effect 10576 const header = document.createElement('div'); 10577 header.className = 'bitlogin-popup-header'; 10578 10579 const heading = document.createElement('h2'); 10580 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
10580its'; 10581 heading.style.color = popupConfig.fontColor; 10582 header.appendChild(heading); 10583 10584 // Add body text with improved formatting 10585 const bodyText = document.createElement('div'); 10586 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 10587 bodyText.style.color = popupConfig.fontColor; 10588 header.appendChild(bodyText); 10589 10590 contentWrapper.appendChild(header); 10591 10592 // Create buttons container with modern styling 10593 const buttonsContainer = document.createElement('div'); 10594 buttonsContainer.className = 'bitlogin-popup-buttons'; 10595 10596 // Add social buttons 10597 const providerLabels = { 10598 'GOOGLE': 'Continue with Google', 10599 'FACEBOOK': 'Continue with Facebook', 10600 'APPLE': 'Continue with Apple', 10601 'WHATSAPP': 'Continue with WhatsApp', 10602 'MAGIC_LINK': 'Continue with Email', 10603 }; 10604 10605 // Add first login provider button 10606 if (popupConfig.loginProvider1 !== 'NONE') { 10607 const buttonConfig = { 10608 theme: popupConfig.colorScheme || 'match', 10609 customColor: popupConfig.textColor, 10610 format: 'contentFlex', 10611 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 10612 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 10613 style: popupConfig.style || 'rounded', 10614 size: popupConfig.size || 'medium', 10615 colorScheme: popupConfig.colorScheme || 'match', 10616 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 10617 textColor: popupConfig.textColor || '#FFFFFF', 10618 outlineColor: popupConfig.outlineColor || '#3B82F6', 10619 host: host 10620 }; 10621 10622 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 10623 10624 // Handle click event - this overrides the default click handler in createSocialLoginButton 10625 button1.onclick = () => { 10626 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 10627 closePopup(); 10628 }; 10629 10630 buttonsContainer.appendChild(button1); 10631 } 10632 10633 // Add second login provider button if enabled 10634 if (popupConfig.loginProvider2 !== 'NONE') { 10635 const buttonConfig = { 10636 theme: popupConfig.colorScheme || 'match', 10637 customColor: popupConfig.textColor, 10638 format: 'contentFlex', 10639 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 10640 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 10641 style: popupConfig.style || 'rounded', 10642 size: popupConfig.size || 'medium', 10643 colorScheme: popupConfig.colorScheme || 'match', 10644 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 10645 textColor: popupConfig.textColor || '#FFFFFF', 10646 outlineColor: popupConfig.outlineColor || '#3B82F6', 10647 host: host 10648 }; 10649 10650 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 10651 10652 // Handle click event - this overrides the default click handler in createSocialLoginButton 10653 button2.onclick = () => { 10654 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 10655 closePopup(); 10656 }; 10657 10658 buttonsContainer.appendChild(button2); 10659 } 10660 10661 contentWrapper.appendChild(buttonsContainer); 10662 10663 // Append content to popup 10664 popup.appendChild(contentWrapper); 10665 10666 // Append popup to overlay 10667 overlay.appendChild(popup); 10668 10669 // Append overlay to body 10670 document.body.appendChild(overlay); 10671 10672 // Trigger animation with slight delay for better perceived performance 10673 setTimeout(() => { 10674 overlay.classList.add('visible'); 10675 setTimeout(() => { 10676 popup.classList.add('visible'); 10677 }, 50); 10678 }, 10); 10679 } 10680 10681 window.addEventListener("load", () => { 10682 window.addEventListener("message", (event) => { 10683 const receivedData = event.data; 10684 10685 if (receivedData.type === "authorize") { 10686 post( 10687 JSON.parse( 10688 JSON.stringify({ 10689 "customer[email]": receivedData.email, 10690 "customer[password]": receivedData.password, 10691 form_type: "customer_login", 10692 utf8: "â", 10693 return_url: redirectUrl, 10694 }) 10695 ) 10696 ); 10697 } else if (receivedData.type === "rejected") { 10698 if (receivedData.reason === "customer_account_disabled") { 10699 showAlert( 10700 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 10701 ); 10702 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 10703 showAlert( 10704 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 10705 ); 10706 } else if (receivedData.reason === "customer_exist_email_not_set") { 10707 showAlert( 10708 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 10709 ); 10710 } 10711 } 10712 10713 if (receivedData.type === "customer_authenticated") { 10714 // Dispatch a custom event that merchants can listen for to implement their custom logic 10715 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 10716 detail: { 10717 provider: receivedData.provider, 10718 customer: receivedData.customer, 10719 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 10720 } 10721 }); 10722 10723 // Dispatch the event on the window object so merchants can listen for it 10724 window.dispatchEvent(customerAuthEvent); 10725 10726 } 10727 }); 10728 }); 10729 10730 // Reusable functions for social login buttons 10731 function createSocialLoginButton(provider, config = {}) { 10732 const { 10733 theme = 'match', 10734 customColor = null, 10735 format = 'contentFlex', 10736 buttonText = null, 10737 hasShadow = true, 10738 style = 'rounded', 10739 size = 'medium', 10740 colorScheme = 'match', 10741 backgroundColor = '#3B82F6', 10742 textColor = '#FFFFFF', 10743 outlineColor = '#3B82F6', 10744 rootRef = null, 10745 host = null 10746 } = config; 10747 10748 // Create button element with appropriate ID and attributes 10749 const button = document.createElement('button'); 10750 button.id = `${provider.toLowerCase()}-login`; 10751 button.type = 'button'; 10752 10753 // Set the inner SVG based on provider 10754 switch (provider.toUpperCase()) {
10755 case 'GOOGLE': 10756 button.innerHTML = googleLoginIcon(theme, customColor); 10757 break; 10758 case 'FACEBOOK': 10759 button.innerHTML = facebookLoginIcon(theme, customColor); 10760 break; 10761 case 'APPLE': 10762 button.innerHTML = appleLoginIcon(theme, customColor); 10763 break; 10764 case 'WHATSAPP': 10765 button.innerHTML = whatsappLoginIcon(theme, customColor); 10766 break; 10767 case 'MICROSOFT': 10768 button.innerHTML = microsoftLoginIcon(theme, customColor); 10769 break; 10770 case 'TWITTER': 10771 button.innerHTML = twitterLoginIcon(theme, customColor); 10772 break; 10773 case 'AMAZON': 10774 button.innerHTML = amazonLoginIcon(theme, customColor); 10775 break; 10776 case 'INSTAGRAM': 10777 button.innerHTML = instagramLoginIcon(theme, customColor); 10778 break; 10779 case 'MAGIC_LINK': 10780 button.innerHTML = magicLinkLoginIcon(theme, customColor); 10781 break; 10782 case 'MOBILE_APP': 10783 button.innerHTML = mobileAppLoginIcon(theme, customColor); 10784 break; 10785 case 'LINKEDIN': 10786 button.innerHTML = linkedinLoginIcon(theme, customColor); 10787 break; 10788 } 10789 10790 // Add text if format isn't icon-only and buttonText is provided 10791 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 10792 button.innerHTML += `<p>${buttonText}</p>`; 10793 } 10794 10795 // Apply styling 10796 // Shadow 10797 if (hasShadow) { 10798 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 10799 button.style["box-shadow"] = shadowProperties; 10800 } 10801 10802 // Border radius 10803 const radiusProperties = 10804 style === "rounded" 10805 ? "8px" 10806 : style === "square" 10807 ? "0px" 10808 : style === "fullRounded" 10809 ? format === "wrapperFlexContainerOnlyLogo" 10810 ? "50%" 10811 : "50px" 10812 : undefined; 10813 button.style["border-radius"] = radiusProperties; 10814 10815 // Size 10816 const sizeProperties = 10817 size === "medium" 10818 ? "12px" 10819 : size === "small" 10820 ? "8px" 10821 : size === "large" 10822 ? "16px" 10823 : "8px"; 10824 10825 button.style["padding-block"] = sizeProperties; 10826 10827 // Format styling 10828 if (format) { 10829 if ( 10830 format === "contentFlexReverse" || 10831 format === "contentFlexCenterReverse" 10832 ) { 10833 const flexDir = `row-reverse`; 10834 button.style["flex-direction"] = flexDir; 10835 } 10836 10837 if ( 10838 format === "contentFlexCenter" || 10839 format === "contentFlexCenterReverse" 10840 ) { 10841 const justifyContent = `center`; 10842 button.style["justify-content"] = justifyContent; 10843 } else if ( 10844 format === "contentFlex" || 10845 format === "contentFlexReverse" 10846 ) { 10847 const buttonTextElement = button.querySelector("p"); 10848 if (buttonTextElement) { 10849 buttonTextElement.style["flex-grow"] = 1; 10850 buttonTextElement.style["text-align"] = "center"; 10851 } 10852 } 10853 10854 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10855 rootRef.style["flex-direction"] = "row"; 10856 rootRef.style["gap"] = "8px"; 10857 rootRef.style["display"] = "flex"; 10858 rootRef.style["flex-wrap"] = "wrap"; 10859 10860 const sizeMapping = { 10861 small: "52px", 10862 medium: "62px", 10863 large: "72px", 10864 }; 10865 const buttonSize = sizeMapping[size] || "52px"; 10866 10867 button.style["margin"] = 0; 10868 button.style["width"] = buttonSize; 10869 button.style["height"] = buttonSize; 10870 button.style["display"] = "flex"; 10871 button.style["align-items"] = "center"; 10872 button.style["justify-content"] = "center"; 10873 10874 const svgElement = button.querySelector("svg"); 10875 if (svgElement) { 10876 svgElement.style["flex"] = "none"; 10877 } 10878 } 10879 } 10880 10881 // Color scheme styling 10882 if (colorScheme === "black") { 10883 button.classList.add("scheme-black"); 10884 } else if (colorScheme === "white") { 10885 button.classList.add("scheme-white"); 10886 } else if (colorScheme === "custom") { 10887 button.style["background-color"] = backgroundColor; 10888 button.style["color"] = textColor; 10889 button.style["border-color"] = outlineColor; 10890 10891 const darkenColor = (color, percentage) => { 10892 const value = parseInt(color.slice(1), 16); 10893 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10894 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10895 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10896 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10897 }; 10898 10899 button.addEventListener("mouseover", () => {
10900 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10901 }); 10902 button.addEventListener("mouseout", () => { 10903 button.style["background-color"] = backgroundColor; 10904 }); 10905 } else if (colorScheme === "match") { 10906 button.classList.add("scheme-match"); 10907 } else if (colorScheme === "matchOutline") { 10908 button.classList.add("scheme-match-outline"); 10909 } 10910 10911 // Add click event listener if host is provided 10912 if (host) { 10913 button.addEventListener("click", () => 10914 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10915 ); 10916 } 10917 10918 return button; 10919 } 10920 10921 function setupSocialLoginButtons(config, rootRef, data, host) { 10922 // Clear any existing content 10923 rootRef.innerHTML = ''; 10924 10925 const sortedEnabledProviders = config 10926 .filter(c => c.enabledWeb) 10927 .sort((a, b) => a.position - b.position); 10928 10929 sortedEnabledProviders.forEach(provider => { 10930 const key = provider.provider; 10931 const lowerKey = key.toLowerCase(); 10932 10933 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10934 ? (lowerKey === 'twitter' 10935 ? data.buttonList.twitter.replace('Twitter', 'X') 10936 : data.buttonList[lowerKey]) 10937 : null; 10938 10939 const button = createSocialLoginButton(key, { 10940 theme: data.colorScheme || 'match', 10941 customColor: data.textColor, 10942 format: data.format, 10943 buttonText: buttonText, 10944 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10945 style: data.style, 10946 size: data.size, 10947 colorScheme: data.colorScheme, 10948 backgroundColor: data.backgroundColor, 10949 textColor: data.textColor, 10950 outlineColor: data.outlineColor, 10951 rootRef: rootRef, 10952 host: host 10953 }); 10954 10955 rootRef.appendChild(button); 10956 }); 10957 10958 return rootRef; 10959 } 10960 10961 function updateAppearance({ formRef, rootRef, host }) { 10962 if (!formRef) return; 10963 10964 const data = bitloginCache.appearance || { 10965 style: "square", 10966 hasShadow: false, 10967 colorScheme: "match", 10968 backgroundColor: "#FFFFFF", 10969 outlineColor: "#000000", 10970 textColor: "#000000", 10971 position: "bottom", 10972 hideDivider: "false", 10973 dividerText: "OR", 10974 size: "small", 10975 format: "contentFlex", 10976 language: "en", 10977 buttonText: "Continue with", 10978 redirectLink: "/account", 10979 googleOneTap: true, 10980 googleOneTapBanner: true, 10981 customerTag: "bitLogin", 10982 redirectOneTapDesktop: null, 10983 redirectOneTapMobile: null, 10984 buttonList: { 10985 google: "Continue with Google", 10986 facebook: "Continue with Facebook", 10987 apple: "Continue with Apple", 10988 whatsapp: "Continue with WhatsApp", 10989 microsoft: "Continue with Microsoft", 10990 twitter: "Continue with X", 10991 amazon: "Continue with Amazon", 10992 instagram: "Continue with Instagram", 10993 magic_link: "Continue with Magic Link", 10994 mobile_app: "Continue with Mobile App", 10995 linkedin: "Continue with LinkedIn", 10996 }, 10997 }; 10998 10999 // Use the new setupSocialLoginButtons function to create and configure all buttons 11000 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 11001 11002 let divider; 11003 11004 if (!data.hideDivider) { 11005 divider = document.createElement("div"); 11006 const dividerStyle = "text-align:center;margin-block:16px"; 11007 divider.setAttribute("style", dividerStyle); 11008 divider.innerHTML = data.dividerText; 11009 } 11010 11011 if (data.position === "bottom") { 11012 if (divider) { 11013 formRef.appendChild(divider); 11014 } 11015 formRef.appendChild(rootRef); 11016 } else if (data.position === "top") { 11017 if (divider) { 11018 formRef.prepend(divider); 11019 } 11020 formRef.prepend(rootRef); 11021 } 11022 } 11023 11024 11025 async function onClickSocialLogin({ provider, host }) { 11026 const rand = Math.random().toString(); 11027 11028 const locationQueryString = bitloginCache.location 11029 ? `&${objectToQueryString(bitloginCache.location)}` 11030 : ""; 11031 11032 const width = 800; 11033 const height = 600; 11034 const left = (window.screen.width / 2) - (width / 2); 11035 const top = (window.screen.height / 2) - (height / 2) - 50; 11036
11037 if(provider === 'whatsapp') { 11038 window.open( 11039 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 11040 "mywindow", 11041 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11042 ); 11043 } else { 11044 window.open( 11045 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 11046 "mywindow", 11047 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11048 ); 11049 } 11050 } 11051 11052 function objectToQueryString(obj) { 11053 return Object.keys(obj) 11054 .map((key) => { 11055 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 11056 }) 11057 .join("&"); 11058 } 11059 11060 async function getLocation() { 11061 if (locationCacheSet) return; 11062 11063 try { 11064 const response = await fetch("https://ipapi.co/json/"); 11065 11066 if (!response.ok) { 11067 console.error(`error retrieving location...`, response.status); 11068 errorLocation = true; 11069 } else { 11070 const data = await response.json(); 11071 11072 const { city, region, country_name, country_code } = data; 11073 11074 const formattedLocationData = { 11075 city, 11076 region, 11077 country_name, 11078 country_code, 11079 }; 11080 11081 bitloginCache.location = formattedLocationData; 11082 locationCacheSet = true; 11083 errorLocation = false; 11084 } 11085 } catch (err) { 11086 console.error(`error fetching location`, err); 11087 errorLocation = true; 11088 } 11089 } 11090 11091 function post(params) { 11092 // The rest of this code assumes you are not using a library. 11093 // It can be made less verbose if you use one. 11094 const form = document.createElement("form"); 11095 form.method = "post"; 11096 form.action = `/account/login`; 11097 form.acceptCharset = "UTF-8"; 11098 form.setAttribute("data-login-with-shop-sign-in", "true"); 11099 form.setAttribute("novalidate", "novalidate"); 11100 11101 for (const key in params) { 11102 if (params.hasOwnProperty(key)) { 11103 const hiddenField = document.createElement("input"); 11104 hiddenField.type = "hidden"; 11105 hiddenField.name = key; 11106 hiddenField.value = params[key]; 11107 11108 form.appendChild(hiddenField); 11109 } 11110 } 11111 11112 document.body.appendChild(form); 11113 form.submit(); 11114 } 11115 11116 async function setupOneTap({ host, checkoutUrl }) { 11117 if (oneTapSet) return; 11118 11119 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 11120 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 11121 11122 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 11123 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 11124 11125 const currentPath = window.location.pathname.toLowerCase(); 11126 const currentUrl = window.location.href.toLowerCase(); 11127 11128 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 11129 switch (value) { 11130 case 'home': 11131 return currentPath === '/'; 11132 case 'product': 11133 return currentPath.startsWith('/products/'); 11134 case 'collections': 11135 return currentPath.startsWith('/collections'); 11136 case 'cart': 11137 return currentPath === '/cart'; 11138 case 'checkout': 11139 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 11140 case 'thank_you': 11141 return currentPath.includes('/thank_you'); 11142 case 'account': 11143 return currentPath.startsWith('/account'); 11144 case 'pages': 11145 return currentPath.startsWith('/pages'); 11146 case 'blogs': 11147 return currentPath === '/blogs' || currentPath === '/blogs/news'; 11148 case 'blog_post': 11149 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 11150 default: 11151 return false; 11152 } 11153 }); 11154 11155 if (shouldHideGoogleOneTap) return; 11156 11157 const oneTapClientId = bitloginCache.config.find( 11158 (config) => config.provider === "GOOGLE" 11159 )?.clientId; 11160 11161 const isLoggedIn = false; 11162 11163 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 11164 const googleOneTapButton = document.createElement("div"); 11165 googleOneTapButton.setAttribute("id", "g_id_onload"); 11166 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 11167 googleOneTapButton.setAttribute("data-context", "signin"); 11168 googleOneTapButton.setAttribute( 11169 "data-callback", 11170 "handleGoogleOneTapResponse" 11171 ); 11172 googleOneTapButton.setAttribute("data-itp_support", "true"); 11173 11174 const googleOneTapScript = document.createElement("script"); 11175 11176 googleOneTapScript.innerHTML += ` 11177 function handleGoogleOneTapResponse(response) { 11178 if (response.credential) { 11179 const idToken = response.credential; 11180 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 11181 method: 'POST', 11182 headers: { 'Content-Type': 'application/json' }, 11183 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 11184 }).then(response => { 11185 response.json().then((data) => { 11186 post( 11187 JSON.parse( 11188 JSON.stringify({ 11189 "customer[email]": data.email, 11190 "customer[password]": data.password, 11191 form_type: "customer_login", 11192 utf8: "â", 11193 return_url: redirectUrl, 11194 }) 11195 ) 11196 ); 11197 }); 11198 }).catch(error => { 11199 console.error('Error occurred:', error); 11200 }); 11201 } else { 11202 console.error('No credential available'); 11203 } 11204 } 11205 `; 11206 11207 document.body.append(googleOneTapButton); 11208 document.body.append(googleOneTapScript); 11209 } 11210 11211 oneTapSet = true; 11212 } 11213
11214 const googleLoginIcon = ( 11215 theme, 11216 customColor 11217 ) => ` 11218 ${ 11219 theme === "match" || theme === "matchOutline" || theme === "custom" 11220 ? `<svg 11221 xmlns='assets/logo/logonix-anim.gif' 11222 xmlns:v='https://vecta.io/nano' 11223 width='24' 11224 height='24' 11225 viewBox='0 0 186.69 190.5' 11226 > 11227 <g transform="translate(1184.583 765.171)"><path clip-path="none" mask="none" d="M-1089.333-687.239v36.888h51.262c-2.251 11.863-9.006 21.908-19.137 28.662l30.913 23.986c18.011-16.625 28.402-41.044 28.402-70.052 0-6.754-.606-13.249-1.732-19.483z" fill="${ 11228 theme === "custom" ? customColor : "#4285f4" 11229 }"/><path clip-path="none" mask="none" d="M-1142.714-651.791l-6.972 5.337-24.679 19.223h0c15.673 31.086 47.796 52.561 85.03 52.561 25.717 0 47.278-8.486 63.038-23.033l-30.913-23.986c-8.486 5.715-19.31 9.179-32.125 9.179-24.765 0-45.806-16.712-53.34-39.226z" fill="${ 11230 theme === "custom" ? customColor : "#34a853" 11231 }"/><path clip-path="none" mask="none" d="M-1174.365-712.61c-6.494 12.815-10.217 27.276-10.217 42.689s3.723 29.874 10.217 42.689c0 .086 31.693-24.592 31.693-24.592-1.905-5.715-3.031-11.776-3.031-18.098s1.126-12.383 3.031-18.098z" fill="${ 11232 theme === "custom" ? customColor : "#fbbc05" 11233 }"/><path d="M-1089.333-727.244c14.028 0 26.497 4.849 36.455 14.201l27.276-27.276c-16.539-15.413-38.013-24.852-63.731-24.852-37.234 0-69.359 21.388-85.032 52.561l31.692 24.592c7.533-22.514 28.575-39.226 53.34-39.226z" fill="${ 11234 theme === "custom" ? customColor : "#ea4335" 11235 }" clip-path="none" mask="none"/></g> 11236 </svg>` 11237 : `<svg xmlns="assets/logo/logonix-anim.gif" width="25" height="25" viewBox="0 0 25 25" fill="none"> 11238 <path d="M24.1906 12.7758C24.1906 11.96 24.1244 11.1399 23.9833 10.3374H12.6646V14.9584H19.1463C18.8773 16.4488 18.0131 17.7672 16.7476 18.6049V21.6032H20.6146C22.8854 19.5132 24.1906 16.4267 24.1906 12.7758Z" fill="${ 11239 theme !== "black" ? "black" : "white" 11240 }"/> 11241 <path d="M12.6647 24.5001C15.9011 24.5001 18.6305 23.4374 20.619 21.6031L16.7521 18.6048C15.6762 19.3368 14.2873 19.7513 12.6691 19.7513C9.53845 19.7513 6.88403 17.6391 5.93161 14.7996H1.94116V17.8904C3.97828 21.9428 8.12746 24.5001 12.6647 24.5001Z" fill="${ 11242 theme !== "black" ? "black" : "white" 11243 }"/> 11244 <path d="M5.92709 14.7995C5.42442 13.3091 5.42442 11.6953 5.92709 10.205V7.11401H1.94105C0.23905 10.5048 0.23905 14.4996 1.94105 17.8903L5.92709 14.7995Z" fill="${ 11245 theme !== "black" ? "black" : "white" 11246 }"/> 11247 <path d="M12.6647 5.24893C14.3755 5.22248 16.029 5.86623 17.268 7.04794L20.694 3.62188C18.5247 1.58477 15.6454 0.464802 12.6647 0.500076C8.12745 0.500076 3.97828 3.05749 1.94116 7.11408L5.9272 10.205C6.8752 7.36099 9.53403 5.24893 12.6647 5.24893Z" fill="${ 11248 theme !== "black" ? "black" : "white" 11249 }"/> 11250 </svg>` 11251 }`; 11252 11253 const appleLoginIcon = ( 11254 theme, 11255 customColor 11256 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="assets/logo/logonix-anim.gif"> 11257 <path d="M15.4146 22.08C14.263 23.2897 12.9925 23.1013 11.7815 22.5307C10.494 21.9489 9.31698 21.9121 7.95724 22.5307C6.26395 23.322 5.36524 23.092 4.34544 22.08C-1.4122 15.663 -0.562362 5.88801 5.98138 5.52001C7.56844 5.61201 8.6796 6.46991 9.61442 6.54121C11.0039 6.23531 12.3339 5.35901 13.8211 5.47401C15.6078 5.63041 16.9443 6.39401 17.8366 7.76711C14.161 10.1591 15.0321 15.4031 18.4082 16.8751C17.7324 18.7956 16.8656 20.6931 15.4125 22.0961L15.4146 22.08ZM9.48695 5.45101C9.31486 2.59901 11.4501 0.25301 13.9061 0.0230103C14.2439 3.31201 11.1441 5.77301 9.48695 5.45101Z" fill="${ 11258 theme === "custom" 11259 ? customColor 11260 : theme === "match" || theme === "black" 11261 ? "white" 11262 : "black" 11263 }"/> 11264 </svg>`; 11265 11266 const facebookLoginIcon = ( 11267 theme, 11268 customColor 11269 ) => ` 11270 ${ 11271 theme === "match" || theme === "matchOutline" || theme === "custom" 11272 ? `<svg xmlns="assets/logo/logonix-anim.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 11273 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 11274 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 11275 }"/> 11276 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 11277 theme === "match" ? "#1778f2" : "transparent" 11278 }"/> 11279 </svg>` 11280 : `<svg xmlns="assets/logo/logonix-anim.gif" width="24" height="25" viewB
11280ox="0 0 24 25" fill="none"> 11281 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 11282 theme === "black" ? "white" : "black" 11283 }"/> 11284 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 11285 theme === "black" ? "black" : "white" 11286 }"/> 11287 </svg>` 11288 }`; 11289 11290 const whatsappLoginIcon = ( 11291 theme, 11292 customColor 11293 ) => `<svg 11294 viewBox="0 0 24 24" 11295 fill="none" 11296 width="24" 11297 height="25" 11298 xmlns="assets/logo/logonix-anim.gif" 11299 > 11300 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 11301 <g 11302 id="SVGRepo_tracerCarrier" 11303 stroke-linecap="round" 11304 stroke-linejoin="round" 11305 ></g> 11306 <g id="SVGRepo_iconCarrier"> 11307 <path 11308 fill-rule="evenodd" 11309 clip-rule="evenodd" 11310 d="M3.50002 12C3.50002 7.30558 7.3056 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.3278 20.5 8.77127 20.0182 7.45798 19.1861C7.21357 19.0313 6.91408 18.9899 6.63684 19.0726L3.75769 19.9319L4.84173 17.3953C4.96986 17.0955 4.94379 16.7521 4.77187 16.4751C3.9657 15.176 3.50002 13.6439 3.50002 12ZM12 1.5C6.20103 1.5 1.50002 6.20101 1.50002 12C1.50002 13.8381 1.97316 15.5683 2.80465 17.0727L1.08047 21.107C0.928048 21.4637 0.99561 21.8763 1.25382 22.1657C1.51203 22.4552 1.91432 22.5692 2.28599 22.4582L6.78541 21.1155C8.32245 21.9965 10.1037 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM14.2925 14.1824L12.9783 15.1081C12.3628 14.7575 11.6823 14.2681 10.9997 13.5855C10.2901 12.8759 9.76402 12.1433 9.37612 11.4713L10.2113 10.7624C10.5697 10.4582 10.6678 9.94533 10.447 9.53028L9.38284 7.53028C9.23954 7.26097 8.98116 7.0718 8.68115 7.01654C8.38113 6.96129 8.07231 7.046 7.84247 7.24659L7.52696 7.52195C6.76823 8.18414 6.3195 9.2723 6.69141 10.3741C7.07698 11.5163 7.89983 13.314 9.58552 14.9997C11.3991 16.8133 13.2413 17.5275 14.3186 17.8049C15.1866 18.0283 16.008 17.7288 16.5868 17.2572L17.1783 16.7752C17.4313 16.5691 17.5678 16.2524 17.544 15.9269C17.5201 15.6014 17.3389 15.308 17.0585 15.1409L15.3802 14.1409C15.0412 13.939 14.6152 13.9552 14.2925 14.1824Z" 11311 fill="${ 11312 theme === "match" || theme === "black" 11313 ? "#ffffff" 11314 : theme === "white" 11315 ? "#000000" 11316 : theme === "matchOutline" 11317 ? "#25d366" 11318 : customColor 11319 }" 11320 ></path> 11321 </g> 11322 </svg>`; 11323 11324 const microsoftLoginIcon = ( 11325 theme, 11326 customColor 11327 ) => `<svg 11328 xmlns="assets/logo/logonix-anim.gif" 11329 width="25" 11330 height="25" 11331 viewBox="0 0 48 48"> 11332 <path fill="${ 11333 theme === "match" || theme == "matchOutline" 11334 ? "#ff5722" 11335 : theme === "black" 11336 ? "#ffffff" 11337 : theme === "white" 11338 ? "#000000" 11339 : customColor 11340 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 11341 <path 11342 fill="${ 11343 theme === "match" || theme == "matchOutline" 11344 ? "#4caf50" 11345 : theme === "black" 11346 ? "#ffffff" 11347 : theme === "white" 11348 ? "#000000" 11349 : customColor 11350 }" 11351 d="M26 6H42V22H26z" 11352 transform="rotate(-180 34 14)"></path> 11353 <path 11354 fill="${ 11355 theme === "match" || theme == "matchOutline" 11356 ? "#ffc107" 11357 : theme === "black" 11358 ? "#ffffff" 11359 : theme === "white" 11360 ? "#000000" 11361 : customColor 11362 }" 11363 d="M26 26H42V42H26z" 11364 transform="rotate(-180 34 34)"></path> 11365 <path fill="${ 11366 theme === "match" || theme == "matchOutline" 11367 ? "#03a9f4" 11368 : theme === "black" 11369 ? "#ffffff" 11370 : theme === "white" 11371 ? "#000000" 11372 : customColor 11373 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 11374 </svg>`; 11375 11376 const twitterLoginIcon = ( 11377 theme, 11378 customColor 11379 ) => `<svg 11380 xmlns="assets/logo/logonix-anim.gif" 11381 width="25" 11382 height="25" 11383 viewBox="0 0 48 48"> 11384 <polygon fill="${ 11385 theme === "match" || theme === "black" 11386 ? "#ffffff" 11387 : theme === "matchOutline" || theme === "white" 11388 ? "#000000" 11389 : customColor 11390 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 11391 <polygon 11392 fill="${ 11393 theme === "match" || theme === "black" 11394 ? "#000000" 11395 : theme === "matchOutline" || theme === "white" 11396 ? "#ffffff" 11397 : customColor 11398 }" 11399 fill-rule="evenodd" 11400 points="31.143,41 7.82,7 16.777,7 40.1,41" 11401 clip-rule="evenodd"></polygon> 11402 <path 11403 fill="${ 11404 theme === "match" || theme === "black" 11405 ? "#ffffff" 11406 : theme === "matchOutline" || theme === "white" 11407 ? "#000000" 11408 : customColor 11409 }" 11410 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 11411 </svg>`; 11412 11413 const amazonLoginIcon = (theme, customColor) => ` 11414 <svg 11415 xmlns="assets/logo/logonix-anim.gif" 11416 x="0px" 11417 y="0px" 11418 width="25" 11419 height="25"
11420 viewBox="0 0 50 50" 11421 > 11422 <path 11423 fill="${ 11424 theme === "black" 11425 ? "#ffffff" 11426 : theme === "matchOutline" 11427 ? "#FF9900" 11428 : theme === "white" || theme === "match" 11429 ? "#000000" 11430 : customColor 11431 }" 11432 d="M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z" 11433 ></path> 11434 </svg>`; 11435 11436 const instagramLoginIcon= (theme, customColor) => ` 11437 <svg 11438 width="25" 11439 height="25" 11440 viewBox="0 0 25 24" 11441 fill="none" 11442 xmlns="assets/logo/logonix-anim.gif"> 11443 <path 11444 fill-rule="evenodd" 11445 clip-rule="evenodd" 11446 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1144664321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 11447 fill="url(#paint0_radial_378_3535)" /> 11448 <path 11449 fill-rule="evenodd" 11450 clip-rule="evenodd" 11451 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 11452 fill="url(#paint0_radial_378_3535)" /> 11453 <path 11454 fill-rule="evenodd" 11455 clip-rule="evenodd" 11456 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1145664321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 11457 fill="url(#paint0_radial_378_3535)" /> 11458 <path 11459 fill-rule="evenodd" 11460 clip-rule="evenodd" 11461 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 11462 fill="url(#paint1_radial_378_3535)" /> 11463 <defs> 11464 <radialGradient 11465 id="paint0_radial_378_3535" 11466 cx="0" 11467 cy="0" 11468 r="1" 11469 gradientUnits="userSpaceOnUse" 11470 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 11471 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 11472 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 11473 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 11474 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 11475 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 11476 </radialGradient> 11477 <radialGradient 11478 id="paint1_radial_378_3535" 11479 cx="0" 11480 cy="0" 11481 r="1" 11482 gradientUnits="userSpaceOnUse" 11483 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 11484 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 11485 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 11486 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 11487 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 11488 </radialGradient> 11489 </defs> 11490 </svg>`; 11491 11492 const magicLinkLoginIcon = (theme, customColor) => ` 11493 <svg 11494 xmlns="assets/logo/logonix-anim.gif" 11495 width="25" 11496 height="25" 11497 fill="none"
11498 viewBox="0 0 25 25" 11499 > 11500 <path 11501 fill="${ 11502 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 11503 }" 11504 fillRule="evenodd" 11505 d="M10.975 14.51a1.05 1.05 0 000-1.485 2.95 2.95 0 010-4.172l3.536-3.535a2.95 2.95 0 114.172 4.172l-1.093 1.092a1.05 1.05 0 001.485 1.485l1.093-1.092a5.05 5.05 0 00-7.142-7.142L9.49 7.368a5.05 5.05 0 000 7.142c.41.41 1.075.41 1.485 0zm2.05-5.02a1.05 1.05 0 000 1.485 2.95 2.95 0 010 4.172l-3.5 3.5a2.95 2.95 0 11-4.171-4.172l1.025-1.025a1.05 1.05 0 00-1.485-1.485L3.87 12.99a5.05 5.05 0 007.142 7.142l3.5-3.5a5.05 5.05 0 000-7.142 1.05 1.05 0 00-1.485 0z" 11506 clipRule="evenodd" 11507 ></path> 11508 </svg>`; 11509 11510 const mobileAppLoginIcon = (theme, customColor) => ` 11511 <svg 11512 width="20" 11513 height="24" 11514 viewBox="0 0 12 16" 11515 fill="none" 11516 xmlns="assets/logo/logonix-anim.gif" 11517 > 11518 <path 11519 d="M9.75 0.5H2.25C1.42275 0.5 0.75 1.17275 0.75 2V14C0.75 14.8273 1.42275 15.5 2.25 15.5H9.75C10.5773 15.5 11.25 14.8273 11.25 14V2C11.25 1.17275 10.5773 0.5 9.75 0.5ZM2.25 11.7493V2.75H9.75L9.7515 11.7493H2.25Z" 11520 fill=${ 11521 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 11522 } 11523 /> 11524 </svg> 11525 `; 11526 11527 const linkedinLoginIcon = (theme, customColor) => ` 11528 <svg 11529 xmlns="assets/logo/logonix-anim.gif" 11530 width="25" 11531 height="24" 11532 viewBox="0 0 25 24" 11533 fill="none" 11534 > 11535 <path 11536 d="M19.0714 0C19.8304 0 20.5 0.669643 20.5 1.47321V18.5714C20.5 19.375 19.8304 20 19.0714 20H1.88393C1.125 20 0.5 19.375 0.5 18.5714V1.47321C0.5 0.669643 1.125 0 1.88393 0H19.0714ZM6.52679 17.1429V7.63393H3.58036V17.1429H6.52679ZM5.05357 6.29464C5.99107 6.29464 6.75 5.53571 6.75 4.59821C6.75 3.66071 5.99107 2.85714 5.05357 2.85714C4.07143 2.85714 3.3125 3.66071 3.3125 4.59821C3.3125 5.53571 4.07143 6.29464 5.05357 6.29464ZM17.6429 17.1429V11.9196C17.6429 9.375 17.0625 7.36607 14.0714 7.36607C12.6429 7.36607 11.6607 8.16964 11.2589 8.92857H11.2143V7.63393H8.40179V17.1429H11.3482V12.4554C11.3482 11.2054 11.5714 10 13.1339 10C14.6518 10 14.6518 11.4286 14.6518 12.5V17.1429H17.6429Z" 11537 fill=${ 11538 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 11539 } 11540 /> 11541 </svg> 11542 `; 11543 11544 function isElementVisible(element) { 11545 return ( 11546 document.body.contains(element) && 11547 getComputedStyle(element).display !== "none" && 11548 getComputedStyle(element).visibility !== "hidden" && 11549 getComputedStyle(element).opacity !== "0" && 11550 !element.hasAttribute("hidden") && 11551 !isAncestorHidden(element) 11552 ); 11553 } 11554 11555 function isAncestorHidden(element) { 11556 let parent = element.parentElement; 11557 while (parent) { 11558 if ( 11559 getComputedStyle(parent).display === "none" || 11560 getComputedStyle(parent).visibility === "hidden" || 11561 getComputedStyle(parent).opacity === "0" || 11562 parent.hasAttribute("hidden") 11563 ) { 11564 return true; 11565 } 11566 parent = parent.parentElement; 11567 } 11568 return false; 11569 } 11570 11571 function showAlert(message) { 11572 const alertBox = document.createElement("div"); 11573 alertBox.textContent = message; 11574 alertBox.style.position = "fixed"; 11575 alertBox.style.top = "20px"; 11576 alertBox.style.right = "-300px"; // Start off-screen 11577 alertBox.style.backgroundColor = "#000000"; // Black background 11578 alertBox.style.color = "#ffffff"; // White text 11579 alertBox.style.padding = "15px"; 11580 alertBox.style.borderRadius = "8px"; 11581 alertBox.style.zIndex = "1000"; 11582 alertBox.style.transition = 11583 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 11584 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 11585 11586 document.body.appendChild(alertBox); 11587 11588 // Slide in 11589 requestAnimationFrame(() => { 11590 alertBox.style.right = "20px"; // Move into view 11591 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 11592 }); 11593 11594 // Slide out and remove the alert after a few seconds 11595 setTimeout(() => { 11596 alertBox.style.opacity = "0"; // Fade out 11597 alertBox.style.right = "-300px"; // Move out of view 11598 11599 // Wait for the transition to finish before removing the element 11600 setTimeout(() => { 11601 document.body.removeChild(alertBox); 11602 }, 500); // Match this duration with the exit transition duration 11603 }, 3000); 11604 } 11605 </script>
11605 11606 11607<style> 11608.daftarku-fixed-footer { 11609 display: flex; 11610 justify-content: space-around; 11611 position: fixed; 11612 background: linear-gradient(to bottom, #ff0000 0%, #ff0000 50%, #ff0040 100%); 11613 box-shadow: 0 0 14px rgba(255, 0, 0, 0.65); 11614 outline: none; 11615 padding: 5px 0; 11616 left: 0; 11617 right: 0; 11618 bottom: 0; 11619 z-index: 99; 11620 border-radius: 40px 40px 0px 0px; 11621 border-style: dashed; 11622 border-color: #eaf6ff; 11623} 11624 11625.daftarku-fixed-footer a { 11626 flex-basis: calc((100% - 15px*6)/ 5); 11627 text-decoration: none; 11628 display: flex; 11629 flex-direction: column; 11630 justify-content: center; 11631 align-items: center; 11632 color: #ffffff; 11633 max-width: 75px; 11634 font-size: 12px; 11635 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 11636 text-shadow: 0 0 8px rgba(255, 0, 0, 0.75); 11637} 11638 11639.daftarku-fixed-footer a:hover { 11640 font-weight: bold; 11641 color: #eaf6ff; 11642 text-shadow: 0 0 8px #ff0000; 11643} 11644 11645.daftarku-fixed-footer .center { 11646 transform: scale(1.5) translateY(-5px); 11647 background: center no-repeat; 11648 background-size: contain; 11649 background-color: inherit; 11650 border-radius: 50%; 11651} 11652 11653.daftarku-fixed-footer img { 11654 max-width: 50px; 11655 margin-bottom: 0; 11656 max-height: 30px; 11657 filter: drop-shadow(0 0 5px rgba(255, 0, 0, 0.75)); 11658} 11659</style> 11660 11661 <div class="daftarku-fixed-footer"> 11662 <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank"> 11663 <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="PROMOSI"> 11664 PROMO 11665 </a> 11666 <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank"> 11667 <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="LOGIN"> 11668 LOGIN 11669 </a> 11670 <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank" class="tada"> 11671 <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="DAFTAR"> 11672 DAFTAR 11673 </a> 11674 <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank"> 11675 <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="ALTERNATIF"> 11676 ALTERNATIF 11677 </a> 11678 <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank" 11679 class="js_live_chat_link live-chat-link"> 11680 <img class="live-chat-icon" layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="LIVE CHAT"> 11681 LIVE CHAT 11682 </a> 11683 </div> 11684 </div> 11685 </div>
11686<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11686
11686
11687<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"35c0090c7d544a5ebd6cb76e1773c81a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11687
11687
11688<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"1ee2ccbada1c4a408938a31140cbccef","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11688
11688
11689<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"5f80b552d3d14bd6a988a79c643c3b0f","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11689
11689
11690<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"bd4a1bdaab4c445d80d2d23ed1efd4a1","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11690
11690
11691<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"edfb0824af1e46b399d8da29cbae45fe","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11691
11691
11692<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"f4bd7c8c9a5548668da773d83fdb1fc9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11692
11692
11693<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"f4bd7c8c9a5548668da773d83fdb1fc9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11693
11693
11694<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"87370dadfa50460baf120634739f7d92","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11694
11694
11695<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"87370dadfa50460baf120634739f7d92","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11695
11695
11696<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"87370dadfa50460baf120634739f7d92","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11696
11696
11697<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"9cfdacabd7064005ab8f0d4e48128ff3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11697
11697
11698<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"f4e6782979fb4f3f9794d593cfcb5d29","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11698
11698
11699<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"aa0655e88c354309a93649f8c55fad1c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11699
11699
11700<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"75d65b92802345d18219609dccee43a9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 11700
11700
11701<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"aa9f2170cc684afb861513a7c1d683dc","r":1,"spa":2}' crossorigin="anonymous"></script>
11701 11702</body> 11703</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.