Showing source for: https://hopejeffcoat.com/
Duration: 0.754333s
Server: cloudflare
<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
<meta name="apple-itunes-app" content="app-id=1576832504">
<link rel="icon" type="image/x-icon" href="https://raw.githubusercontent.com/ggeercy/cdn/main/favicon.png">
<!-- Title and description -->
<title>Dollar4D - Sistem Digital Dengan Appliance Manual Library</title>
<meta name="description" content="Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.">
<meta name="keywords" content="Dollar4d, Dollar 4d, Dollar4d login, Dollar4d link, Dollar4d link alternatif" />
<link rel="canonical" href="https://hopejeffcoat.com">
<link rel="amphtml" href="https://hopebestcoatpolar.vercel.app/amp/"/>
<link rel="alternate" hreflang="id-id" href="https://hopebestcoatpolar.vercel.app/amp/"/>
<link rel="alternate" href="https://hopebestcoatpolar.vercel.app/amp/"/>
<link rel="alternate" hreflang="id" href="https://hopebestcoatpolar.vercel.app/amp/"/>
<link rel="alternate" hreflang="en" href="https://hopejeffcoat.com"/>
<!-- /snippets/social-meta-tags.liquid -->
<meta property="og:type" content="dollar4d">
<meta property="og:title" content="Dollar4D - Sistem Digital Dengan Appliance Manual Library">
<meta property="og:image" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta property="og:image:secure_url" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta property="og:image" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta property="og:image:secure_url" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta property="og:image" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta property="og:image:secure_url" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta property="og:description" content="Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.">
<meta property="og:price:amount" content="10,000-,">
<meta property="og:price:currency" content="IDR">
<meta property="og:url" content="https://hopejeffcoat.com">
<meta property="og:site_name" content="dollar4d">
<meta name="twitter:site" content="@dollar4d">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Dollar4D - Sistem Digital Dengan Appliance Manual Library">
<meta name="twitter:description" content="Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.">
<meta name="twitter:image" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<meta name="twitter:image:width" content="600">
<meta name="twitter:image:height" content="600">
<link rel="shortcut icon" href="https://raw.githubusercontent.com/ggeercy/cdn/main/favicon.png" type="image/png">
<meta name="theme-color" content="#ffffff">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
<link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
<link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
defer
></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script><!-- Facebook Pixel Code -->
<meta name="google-site-verification" content="4TnCp78ZJn9bT0IhE5ZhIRcprS6R64JQek3508YZaNk" />
<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
<!-- Bing UET -->
<script>
(function(w,d,t,r,u)
{
var f,n,i;
w[u]=w[u]||[],f=function()
{
var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
},
n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
{
var s=this.readyState;
s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
},
i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
})
(window,document,"script","//bat.bing.com/bat.js","uetq");
</script>
<script>
window.uetq = window.uetq || [];
window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
</script>
<!-- End Bing UET -->
<!-- Microsoft Clarity -->
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "h7rbxqry9k");
</script>
<!-- End Microsoft Clarity -->
<link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
<link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
<link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
<link rel="alternate" type="application/json+oembed" href="https://hopejeffcoat.com.oembed">
<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
<script>var Shopify = Shopify || {};
Shopify.shop = "outerbloom1.myshopify.com";
Shopify.locale = "en";
Shopify.currency = {"active":"IDR","rate":"1.0"};
Shopify.country = "ID";
Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
Shopify.theme.handle = "null";
Shopify.theme.style = {"id":null,"handle":null};
Shopify.cdnHost = "outerbloom.com/cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "/";</script>
<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
<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>
<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
"></script>
<script>(function() {
var isLoaded = false;
function asyncLoad() {
if (isLoaded) return;
isLoaded = true;
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"];
for (var i = 0; i < urls.length; i++) {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = urls[i];
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
};
if(window.attachEvent) {
window.attachEvent('onload', asyncLoad);
} else {
window.addEventListener('load', asyncLoad, false);
}
})();</script>
<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>
<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
<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>
<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>
<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)}};
</script>
<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
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);
</script>
<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})}}));
</script>
<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
<!-- /snippets/oldIE-js.liquid -->
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
<link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
<link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
<![endif]-->
<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">
<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
<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>
<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-1WN1QBYNPC\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-1WN1QBYNPC\\\",\\\"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":835000.0,"currencyCode":"IDR"},"product":{"title":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","url":"\/products\/blossom-shine","type":"Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah."},"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\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"Dollar4D - Sistem Digital Dengan Appliance Manual Library\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"Dollar4D - Sistem Digital Dengan Appliance Manual Library\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script><script>
window.ShopifyAnalytics = window.ShopifyAnalytics || {};
window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
window.ShopifyAnalytics.meta.currency = 'IDR';
var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.","variants":[{"id":44083045826775,"price":1000000
,"name":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
for (var attr in meta) {
window.ShopifyAnalytics.meta[attr] = meta[attr];
}
</script>
<script class="analytics">
(function () {
var customDocumentWrite = function(content) {
var jquery = null;
if (window.jQuery) {
jquery = window.jQuery;
} else if (window.Checkout && window.Checkout.$) {
jquery = window.Checkout.$;
}
if (jquery) {
jquery('body').append(content);
}
};
var hasLoggedConversion = function(token) {
if (token) {
return document.cookie.indexOf('loggedConversion=' + token) !== -1;
}
return false;
}
var setCookieIfConversion = function(token) {
if (token) {
var twoMonthsFromNow = new Date(Date.now());
twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
}
}
var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
if (trekkie.integrations) {
return;
}
trekkie.methods = [
'identify',
'page',
'ready',
'track',
'trackForm',
'trackLink'
];
trekkie.factory = function(method) {
return function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(method);
trekkie.push(args);
return trekkie;
};
};
for (var i = 0; i < trekkie.methods.length; i++) {
var key = trekkie.methods[i];
trekkie[key] = trekkie.factory(key);
}
trekkie.load = function(config) {
trekkie.config = config || {};
trekkie.config.initialDocumentCookie = document.cookie;
var first = document.getElementsByTagName('script')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.onerror = function(e) {
var scriptFallback = document.createElement('script');
scriptFallback.type = 'text/javascript';
scriptFallback.onerror = function(error) {
var Monorail = {
produce: function produce(monorailDomain, schemaId, payload) {
var currentMs = new Date().getTime();
var event = {
schema_id: schemaId,
payload: payload,
metadata: {
event_created_at_ms: currentMs,
event_sent_at_ms: currentMs
}
};
return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
},
sendRequest: function sendRequest(endpointUrl, payload) {
// Try the sendBeacon API
if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
var blobData = new window.Blob([payload], {
type: 'text/plain'
});
if (window.navigator.sendBeacon(endpointUrl, blobData)) {
return true;
} // sendBeacon was not successful
} // XHR beacon
var xhr = new XMLHttpRequest();
try {
xhr.open('POST', endpointUrl);
xhr.setRequestHeader('Content-Type', 'text/plain');
xhr.send(payload);
} catch (e) {
console.log(e);
}
return false;
},
isIos12: function isIos12() {
return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
}
};
Monorail.produce('monorail-edge.shopifysvc.com',
'trekkie_storefront_load_errors/1.1',
{shop_id: 15896833,
theme_id: 153139282135,
app_name: "storefront",
context_url: window.location.href,
source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
};
scriptFallback.async = true;
scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
first.parentNode.insertBefore(scriptFallback, first);
};
script.async = true;
script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
first.parentNode.insertBefore(script, first);
};
trekkie.load(
{"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}}
);
var loaded = false;
trekkie.ready(function() {
if (loaded) return;
loaded = true;
window.ShopifyAnalytics.lib = window.trekkie;
var originalDocumentWrite = document.write;
document.write = customDocumentWrite;
try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
document.write = originalDocumentWrite;
window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
var token = match? match[1]: undefined;
if (!hasLoggedConversion(token)) {
setCookieIfConversion(token);
window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
}
});
var eventsListenerScript = document.createElement('script');
eventsListenerScript.async = true;
eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
})();</script>
<script>
if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
window.ga = function ga() {
(window.ga.q = window.ga.q || []).push(arguments);
if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
}
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.");
};
if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
}
}
</script>
<script
defer
src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
data-application="storefront-renderer"
data-shop-id="15896833"
data-render-region="gcp-asia-southeast1"
data-page-type="product"
data-theme-instance-id="153139282135"
data-theme-name=""
data-theme-version=""
data-monorail-region="shop_domain"
data-resource-timing-sampling-rate="10"
data-shs="true"
data-shs-beacon="true"
data-shs-export-with-fetch="true"
data-shs-logs-sample-rate="1"
></script>
</head><body
data-template="product"
id="blossom-shine"
class="template-product template-product"
>
<div class="button-login-daftar">
<a class="login" href="https://go.myshortlink.org/pqm5u9v" rel="nofollow noreferrer" style="color: white;">
LOGIN
</a>
<a class="register" href="https://go.myshortlink.org/pqm5u9v" rel="nofollow noreferrer" style="color: white;">
DAFTAR
</a>
</div>
<div class="header-wrapper">
<div id="shopify-section-NotifBar" class="shopify-section m-0">
<style>
#notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
#notification.promo-up {top: -48px!important;}
.promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
.notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
.notification__message p a {text-decoration: underline;color: #ffffff;}
@media (max-width: 991px){
.notification__message p {font-size: 14px!important;}
}
.nav-menu a {
color: #fff;
text-decoration: none;
}
</style>
<input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
<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">
<div class="page-width notification__inner ">
<div class="notification__message text-center">
<p><a href="https://hopejeffcoat.com" title="dollar4d">Dollar4D - Sistem Digital Dengan Appliance Manual Library</a></p>
</div>
</div>
</div>
</div>
<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"/>
<header style="background-image: url(https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg); background-attachment: fixed;">
<div class="container">
<div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
<a href="https://hopejeffcoat.com">
<img src="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" alt="logo-dollar4d" style="width: 190px;"></a>
<link href="https://raw.githubusercontent.com/ggeercy/cdn/main/favicon.png" rel="shortcut icon" type="image/x-icon" />
<div id="menu-hamburger" class="d-lg-none">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="16" height="10" viewBox="0 0 16 10" fill="none">
<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"/>
</svg>
<a href="/"><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" viewBox="0 0 854 78.29">
<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>
</svg>
</a>
</div>
<div class="header-icon-right header-icons col-3">
<div class="icon icon-account-header d-none d-lg-block">
<a href="https://hopejeffcoat.com">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="20" height="21" viewBox="0 0 20 21" fill="none">
<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"/>
<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"/>
</svg>
</a>
</div>
<div class="icon icon-wishlist-header">
<a href="https://hopejeffcoat.com">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
<span class="wishlist-count d-none">0</span>
</a>
</div>
<div class="icon icon-cart-header">
<a href="https://hopejeffcoat.com">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="22" height="21" viewBox="0 0 22 21" fill="none">
<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"/>
<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"/>
</svg>
</a>
</div>
</div>
</div>
</div>
</header>
<nav class="nav-header" style="background-color: #242424;">
<div class="nav-account-mobile row m-0 d-lg-none">
<div class="col-6 welcome-cust p-0">
<h1 class="logo">
<a href="https://hopejeffcoat.com">
<img src="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" alt="dollar4d" style="max-height:60px;">
</a>
</h1>
</div>
<div class="col-6 login-register text-right p-0">
<a href="https://hopebestcoatpolar.vercel.app/amp/">Log In</a> | <a href="https://hopebestcoatpolar.vercel.app/amp/">Sign Up</a>
</div>
</div>
<ul class="nav-menu container">
<li class="nav-menu container">
<a href="https://hopejeffcoat.com">
dollar4d </a></li>
<li class=" nav-menu container">
<a href="https://hopejeffcoat.com">
dollar4d SLOT</a></li>
<li class=" nav-menu container">
<a href="https://hopejeffcoat.com">
?php echo $titlebrand; ?> GACOR</a></li>
<li class=" nav-menu container">
<a href="https://hopejeffcoat.com">
SITUS dollar4d</a></li>
<li class=" nav-menu container">
<a href="https://hopejeffcoat.com">
dollar4d ALTERNATIF</a></li>
<li class=" nav-menu container">
<a href="https://hopejeffcoat.com">
dollar4d LOGIN</a></li>
</ul>
<div class="overlay-nav">
<!-- Mobile Close Button in Overlay -->
<button id="nav-close" class="nav-close-btn d-lg-none">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png">
<path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</div>
<script>
if ($(window).width() < 992) {
// Level 1 menu accordion (main menu items)
$(".nav-menu .nav-menu container > a").click(function(e){
e.preventDefault()
const parentLi = $(this).parent()
const isCurrentlyOpen = parentLi.hasClass("menu-open")
// Close all other open menus (accordion behavior)
$(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
$(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
// Toggle current menu
if (isCurrentlyOpen) {
parentLi.removeClass("menu-open")
$(this).next(".megamenu").slideUp()
} else {
parentLi.addClass("menu-open")
$(this).next(".megamenu").slideDown()
}
})
// Level 2 menu accordion (submenu items with grandchildren)
$(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
e.preventDefault()
const parentLi = $(this).parent()
const isCurrentlyOpen = parentLi.hasClass("submenu-open")
const grandchild = $(this).next(".grandchild")
// Close all other open submenus in the same dropdown (accordion behavior)
parentLi.siblings('.has-submenu').removeClass("submenu-open")
parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
// Toggle current submenu
if (isCurrentlyOpen) {
parentLi.removeClass("submenu-open")
grandchild.slideUp()
$(this).find('.chevron-right').css('transform', 'rotate(0deg)')
} else {
parentLi.addClass("submenu-open")
grandchild.slideDown()
$(this).find('.chevron-right').css('transform', 'rotate(90deg)')
}
})
$("#menu-hamburger").click(function(e){
e.preventDefault()
$("body").toggleClass("nav_open")
})
// Handle close button click
$("#nav-close").click(function(e){
e.preventDefault()
$("body").removeClass("nav_open")
// Close all open menus when close button is clicked
$(".nav-menu .nav-menu container").removeClass("menu-open")
$(".nav-menu .megamenu").slideUp()
$(".dropdown-menu .has-submenu").removeClass("submenu-open")
$(".dropdown-menu .grandchild").slideUp()
$(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
})
}
$(".overlay-nav").click(function(e){
e.preventDefault()
$("body").removeClass("nav_open")
// Close all open menus when overlay is clicked
$(".nav-menu .nav-menu container").removeClass("menu-open")
$(".nav-menu .megamenu").slideUp()
$(".dropdown-menu .has-submenu").removeClass("submenu-open")
$(".dropdown-menu .grandchild").slideUp()
$(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
})
</script>
</div>
<div id="shopify-section-search-popup" class="shopify-section m-0"><style>
#search-trigger {
cursor: pointer;
}
#search-popup {
display: none;
position: fixed;
left: 0;
width: 100%;
top: 0;
height: 100%;
justify-content: center;
z-index: 9999;
background: rgb(196 196 196 / 30%);
}
#search-input {
align-self: center;
width: 100%;
height: 80px;
position: absolute;
top: 0;
border-bottom: 0.5px solid #A3A3A3;
background-color: #fff;
}
#search-input * {
align-self: center;
}
#search-type {
width: 100%;
border: none;
padding-right: 20px;
padding-left: 20px;
font-size: 16px;
color: #757575;
}
#search-btn {
font-size: 16px;
font-weight: 500;
}
#search-result {
min-height: 490px;
width: 100%;
padding-top: 80px;
}
#search-result .container {
background-color: #fff;
padding: 20px 40px;
}
body.search-popup-open {
/* .search-popup-open */
overflow: hidden;
}
.search-popup-open #loc_delivery {
display: none
}
.search-header svg {
display: none;
cursor: pointer;
}
.wrapper-search-popup {
max-height: calc(100vh - 150px);
overflow-y: auto;
overflow-x: hidden;
}
.group-recommend {
padding: 20px 40px;
}
.resultsearch {
display: none;
}
.results { padding: 20px 40px }
.resultsearch label {
font-weight: 600;
padding-bottom: 20px;
display: block;
margin-bottom: 20px;
border-bottom: 1px solid #AAAAAA;
}
ul.result_product {
max-height: 300px;
overflow: auto;
}
.group-promotion ul {
margin: 0;
}
.group-promotion li {
list-style: none;
margin-bottom: 12px;
}
.group-promotion li a {
color: inherit;
}
.group-recent {
position: relative;
padding: 20px 40px;
}
.group-recent ul {
margin: 0;
}
.group-recent li {
list-style: none;
display: inline-block;
margin-right: 60px;
}
.group-recent li a {
color: inherit;
}
.last-search svg {
width: 20px;
vertical-align: middle;
}
ul.last-search a {
vertical-align: middle;
padding: 0 10px;
}
ul.last-search li span {
cursor: pointer;
}
.delete-all-history {
position: absolute;
top: 25px;
right: 40px;
text-decoration: underline;
color: #e11d1d;
cursor: pointer;
font-size: 12px;
}
form.search.search-modal__form {
position: relative;
}
button.search__button svg {
width: 25px;
color: #495057;
fill: #757582;
}
button.search__button.field__button {
position: absolute;
top: 50%;
margin-top: -12px;
}
.close-search {
display: none;
position: absolute;
right: 65px;
top: 10px;
cursor: pointer;
}
.site-overlay {
position: fixed;
top: 0;
width: 100vw;
height: 100vh;
z-index: 1000;
background: #0000005c;
visibility: hidden;
opacity: 0;
pointer-events: none;
transition: all .3s linear;
display: block !important;
}
.search-popup-open .site-overlay {
opacity: 1;
visibility: visible;
pointer-events: all;
z-index: -1;
cursor: pointer;
}
@media (min-width: 991px) {
.group-recent ul {
column-count: 3;
}
.group-promotion li a {
font-size: 12px;
font-weight: 400;
}
.group-recent li a {
font-size: 12px;
font-weight: 400;
}
}
.moreresult {
padding: 10px 40px;
border-top: 1px solid #AAAAAA;
}
.moreresult * {
align-self: center;
}
.moreresult p {
margin: 0;
font-size: 12px !important;
}
.moreresult svg {
width: 13px;
}
@media (max-width: 992px) {
.icon-key-mobile {
height: auto!important;
width: 10px!important;
}
body.grid-view.search-popup-open .products {
-ms-flex: 0 0 100%!important;
flex: 0 0 100%!important;
max-width: 100%!important;
}
button.search__button svg {
width: 20px;
}
#search-result {
padding-left: 0;
padding-right: 0;
}
#search-result {
padding-top: 55px;
}
#search-input {
height: 55px;
}
.group-recommend {
padding: 20px;
}
#search-input .container {
padding: 0 20px;
}
#search-type {
font-size: 14px;
}
#search-btn {
font-size: 12px;
text-decoration: underline;
}
.results {
padding: 20px;
}
.group-recommend h3 {
font-size: 16px;
}
.products .card-body {
padding: 8px 0px 10px;
}
.moreresult {
padding: 10px 20px;
}
}
</style>
<style type="text/css">
div.advertisement-placeholder {
text-align: center;
padding-bottom: 20px;
display: flex;
flex-direction: column;
justify-content: center;
}
div.advertisement-text p {
margin: 0;
font-family: Open Sans;
font-style: normal;
font-weight: normal;
font-size: 10px;
line-height: 20px;
color: #999999;
}
div.advertisement-banner {
margin: 0px auto;
}
div#div-gpt-ad-billboard-placeholder {
width: 996px;
margin: 0 auto;
background: #F5F5F5;
padding-bottom: unset !important;
min-height: 200px;
}
div#div-gpt-ad-lb-placeholder {
background: #F5F5F5;
padding-bottom: unset !important;
min-height: 280px;
}
.faq-section{
max-width:1200px;
margin:50px auto;
padding:40px 20px;
position:relative;
background-color: rgba(0, 0, 0, 0.1);
backdrop-filter: blur(25px);
border-radius: 20px;
}
.faq-section::before{
content:"";
position:absolute;
top:0;left:50%;
transform:translateX(-50%);
width:80%;
height:2px;
background:linear-gradient(90deg,transparent,#66390f,transparent)
}
.faq-section h2{
text-align:center;
font-size:34px;font-weight:700;
margin-bottom:50px;
background: linear-gradient(135deg, #596b59, #66390f, #66390f);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
font-family:"Poppins",sans-serif;letter-spacing:1px
}
.faq-container{
display:flex;
flex-direction:column;
gap:25px
}
.faq-item{
background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
border:2px solid #66390f;
border-radius:20px;overflow:hidden;
transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
}
.faq-item:hover{
border-color:#66390f;
transform:translateX(10px);
box-shadow:0 12px 35px rgba(253, 4, 4, 0.25)
}
.faq-question{width:100%;
padding:28px 35px;background:transparent;
color:#ffffff;
font-size:18px;
font-weight:600;
text-align:left;
border:none;cursor:pointer;
display:flex;
justify-content:space-between;
align-items:center;
font-family:"Poppins",sans-serif;
transition:all .3s ease
}
.faq-question:hover{
color:#66390f
}
.faq-question::after{
content:'+';
font-size:32px;
font-weight:300;
transition:all .4s ease;
color:#66390f;
width:40px;
height:40px;
display:flex;
align-items:center;
justify-content:center;
border:2px solid #66390f;border-radius:50%;
background:rgba(0, 0, 0, 0.1)
}
.faq-item.active .faq-question::after{
transform:rotate(135deg);
background:linear-gradient(135deg,#66390f,#66390f);
color:#000;border-color:transparent
}
.faq-answer{
max-height:0;
overflow:hidden;
transition:max-height .5s ease,padding .5s ease;
background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
padding:0 35px
}
.faq-item.active .faq-answer{
max-height:800px;padding:30px 35px;
border-top:1px solid rgba(253, 4, 4, 0.3)
}
.faq-answer p{
color:#e0e0e0;
font-size:16px;
line-height:2;
margin:0;
font-family:"Poppins",sans-serif
}
@media
(max-width:768px)
{
.faq-section
{padding:30px 15px}
.faq-section h2
{font-size:26px}
.faq-question
{font-size:16px;
padding:22px 25px}
.faq-question::after
{width:35px;
height:35px;
font-size:28px}
.faq-answer
{padding:0 25px}
.faq-item.active .faq-answer
{padding:25px}
.faq-item:hover
{transform:translateX(5px)}
}
</style>
<div id="search-popup">
<div id="search-input" class="row">
<div class="container w-100">
<form
action="/search"
method="get"
role="search"
class="search search-modal__form d-flex justify-content-between"
>
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="20" height="20" viewBox="0 0 20 20" fill="none">
<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"/>
</svg>
<input type="hidden" name="type" value="product">
<input
type="text"
id="search-type"
name="q"
class="search-popup"
placeholder="Gifts that linger: Uncover treasures for cherished moments."
>
<div class="close-search"><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
<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 12.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"/>
</svg>
</div>
<button id="search-btn">Search</button>
</form>
</div>
</div>
<div id="search-result" class="container m-auto">
<div class="container p-0">
<div class="group-promotion">
<div class="resultsearch">
<div class="row results">
<div class="col-12 col-lg-6 mb-3 mb-lg-0">
<label>SUGGESTIONS</label>
<ul class="result_collection"></ul>
</div>
<div class="col-12 col-lg-6">
<label>PRODUCTS</label>
<ul class="result_product"></ul>
</div>
</div>
<div class="d-flex justify-content-between moreresult m-0">
<p>Search for<span></span></p>
<svg version="1.1" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="32" height="32" viewBox="0 0 32 32">
<title>icon-arrow-right</title>
<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>
</svg>
</div>
</div>
</div>
<div class="group-recent hide">
<h3>RECENT SEARCH</h3>
<span class="delete-all-history">Hapus riwayat</span>
<ul class="last-search"></ul>
</div>
<div class="group-recommend">
<h3>YOU MAY ALSO LIKE</h3>
<div class="row popup-recommend c-products-grid infinite-case product-multi-">
<div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/mid-autumn-of-love-mooncake">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
Mid Autumn of Love Mooncake
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 588.000</s>
<span class="product-card-discount small">
(-40%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 348.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/mid-autumn-of-joy-mooncake">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
Mid Autumn of Joy Mooncake
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 888.000</s>
<span class="product-card-discount small">
(-33%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 588.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/mid-autumn-of-fortune-mooncake">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
Mid Autumn of Fortune Mooncake
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 1.188.000</s>
<span class="product-card-discount small">
(-33%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 788.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/mid-autumn-festival-mooncake">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
Mid Autumn Festival Mooncake
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 1.288.000</s>
<span class="product-card-discount small">
(-23%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 988.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/the-jade-bouquet">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
The Jade Bouquet
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 435.000</s>
<span class="product-card-discount small">
(-34%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 285.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/the-selena-bouquet">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
The Selena Bouquet
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 335.000</s>
<span class="product-card-discount small">
(-29%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 235.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/the-viola-bouquet">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
The Viola Bouquet
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 385.000</s>
<span class="product-card-discount small">
(-25%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 285.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/the-minerva-bouquet">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
The Minerva Bouquet
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 385.000</s>
<span class="product-card-discount small">
(-25%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 285.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/congraduations-bouquet">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
Congraduations Bouquet
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 380.000</s>
<span class="product-card-discount small">
(-25%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 285.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="swiper-slide card">
<div class="products" data-lazy="false">
<div class="bg-products">
<div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
<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.11233C11.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"/>
</svg>
</div>
<a href="/products/grad-gorgeous-bouquet">
<div class="product-card-img-container p-0 position-relative">
<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">
</div>
<div class="card-body product-card-info">
<h5 class="h5 mb-0">
Grad & Gorgeous Bouquet
</h5>
<div class="product-card-price">
<div class="product-price-sale">
<s class="product-card-price-before card-money">Rp 380.000</s>
<span class="product-card-discount small">
(-25%)
</span>
</div>
<div class="price-discount">
<h4 class="product-card-price-after card-money">Rp 285.000</h4>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="site-overlay" style="display: none"></div>
</div>
<script>
var swiper = new Swiper('.popup-recommend', {
slidesPerView : 4,
spaceBetween: 30,
lazy: true ,
speed: 300,
breakpoints: {
// when window width is <= 576px
576: {
slidesPerView: 2,
spaceBetween: 10,
freeMode: true,
resistance : true,
resistanceRatio : 0,
freeModeMomentumRatio : 0.45,
freeModeMomentumVelocityRatio : 1.5
},
768: {
slidesPerView: 2,
spaceBetween: 10
},
992: {
slidesPerView: 3,
spaceBetween: 20
}
}
});
const searchContainer = $("#search-popup")
const searchInput = $(".search-popup")
const result_collection = $('.result_collection')
const result_product = $('.result_product')
const resultsearch = $('.resultsearch')
const resultrecommend = $(".group-recommend")
const moreresult = $(".moreresult")
searchInput.keyup(function(){
const input = $(this).val()
moreresult.find("p span").text(` “${input}”`)
if(input.length > 2) {
$(".close-search").show()
const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
$.ajax({
type: 'GET',
url,
beforeSend: function() {
// setting a timeout
// $(placeholder).addClass('loading');
},
success: function(response) {
resultsearch.show()
resultrecommend.hide()
result_collection.html("")
result_product.html("")
const collections = response.resources.results.collections
const products = response.resources.results.products
let collection_length = collections.length
let product_length = products.length
// if(collections.length > 5) {
// collection_length = 5
// }
// if(products.length > 5) {
// product_length = 5
// }
for(let i=0;i<collection_length;i++){
const title = collections[i].title
const url = collections[i].url
let html_collection
if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
html_collection = `
<li class="item" data-title="${title}">
<a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
</li>
`
}
result_collection.append(html_collection)
}
for(let i=0;i<product_length;i++){
const title = products[i].title
const url = products[i].url
const image = products[i].featured_image.url
const vendor = products[i].vendor
let html_product
if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
html_product = `
<li class="item" data-vendor="${vendor}">
<a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
<img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
</a>
</li>
`
}
result_product.append(html_product)
}
},
error: function(xhr) { // if error occured
alert("Error occured.please try again");
},
complete: function(response) {
// $(placeholder).removeClass('loading');
},
dataType: 'JSON'
});
} else {
result_collection.html("")
result_product.html("")
resultsearch.hide()
resultrecommend.show()
}
})
moreresult.click(function(){
$("#search-btn").trigger("click");
})
$(".close-search").click(function(){
$(this).hide()
searchInput.val("")
searchInput.focus()
resultsearch.hide()
resultrecommend.show()
})
function setCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
let last_search_name = []
let last_search_url = []
$(".group-recent").hide()
if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
$(".group-recent").show()
last_search_name = getCookie("last_search_name");
last_search_url = getCookie("last_search_url");
const arrName = last_search_name.substring(1).split(',').reverse()
const arrUrl = last_search_url.substring(1).split(',').reverse()
console.log(arrName, 'Array Name')
console.log(arrUrl, 'Array Url')
let length = arrName.length
if(arrName.length > 5) {
length = 5
}
for(let n=0;n<length;n++){
let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png"><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]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
$(".group-recent ul").append(html2)
}
}
}
console.log(last_search_name, 'Name')
console.log(last_search_url, 'url')
resultsearch.delegate(".item a", "click", function(){
let name = [last_search_name]
let url = [last_search_url]
name.push($(this).attr('data-title'))
url.push($(this).attr('data-url'))
setCookie("last_search_name",name,7);
setCookie("last_search_url",url,7);
})
$(".delete-all-history").click(function() {
setCookie("last_search_name",null,0);
setCookie("last_search_url",null,0);
$(".last-search").hide();
setTimeout(function(){
location.reload();
}, 500);
})
$("#search-trigger").click(function(){
search_open()
})
$(".icon-search-mobile").click(function(){
search_open()
})
$(".search-header svg").click(function(){
search_close()
})
$(".icon-key-mobile").click(function(){
search_close()
})
function search_open() {
$("body").addClass("search-popup-open")
$("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
$("#search-popup, .search-header svg, .icon-key-mobile").show()
$(".search-popup").focus()
$('.popup-recommend')[0].swiper.update();
}
function search_close() {
$("body").removeClass("search-popup-open")
$("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
$("#search-popup, .search-header svg, .icon-key-mobile").hide()
searchInput.val("")
resultsearch.hide()
resultrecommend.show()
}
$(".site-overlay").click(function(){
search_close()
})
</script>
</div>
</div>
<div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
<main class="main-content pt-0" role="main">
<div id="breadcrumbProduct" class="d-none d-lg-block">
<style>
#breadcrumbProduct {
padding: 20px 0;
}
#breadcrumbProduct ul {
display: flex;
padding: 0;
list-style: none;
margin: 0;
gap: 12px;
}
#breadcrumbProduct ul li {
text-transform: uppercase;
margin: 0;
font-size: 12px;
}
#breadcrumbProduct ul li a {
color: #757575;
}
#breadcrumbProduct ul li svg {
width: 10px;
height: 10px;
padding: 0;
color: #757575;
vertical-align: middle;
}
</style>
<div class="container" style="color: #ffffff;">
<ul role="navigation" aria-label="breadcrumbs">
<li><a href="https://hopejeffcoat.com" style="color: #ffffff;">dollar4d</a></li>
<li><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
<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"/>
</svg></li>
<li>dollar4d SLOT</li>
<li>dollar4d SLOT</li>
<li>dollar4d LOGIN</li>
<li>Dollar4D - Sistem Digital Dengan Appliance Manual Library</li>
</ul>
</div>
</div>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Dollar4D - Sistem Digital Dengan Appliance Manual Library",
"image": "https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg",
"description": "Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.",
"brand": {
"@type": "Brand",
"name": "dollar4d"
},
"sku": "dollar4d",
"mpn": "dollar4d",
"url": "https://hopejeffcoat.com",
"offers": {
"@type": "Offer",
"url": "https://hopejeffcoat.com",
"priceCurrency": "USD",
"price": "10.00",
"priceValidUntil": "2025-12-25",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "dollar4d"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5.0",
"reviewCount": 858
},
"review": [
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "hylos"
}
},
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "tigreal"
}
}
]
}
</script><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "dollar4d",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "dollar4d SLOT",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 3,
"name": "dollar4d GACOR",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 4,
"name": "SITUS dollar4d",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 5,
"name": "dollar4d ALTERNATIF",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 6,
"name": "dollar4d LINK",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 7,
"name": "dollar4d LOGIN",
"item": "https://hopejeffcoat.com"
},
{
"@type": "ListItem",
"position": 8,
"name": "Dollar4D - Sistem Digital Dengan Appliance Manual Library",
"item": "https://hopejeffcoat.com"
}
]
}
</script>
<!--faq-->
<script type="application/ld+json" id="faq-schema">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "1. Apa itu dollar4d?",
"acceptedAnswer": {
"@type": "Answer",
"text": "dollar4d adalah platform slot online server luar yang menyediakan permainan resmi dengan sistem aman dan stabil."
}
},
{
"@type": "Question",
"name": "2. Apakah dollar4d menerima deposit 5rb?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ya. dollar4d menyediakan layanan slot deposit 5rb untuk pemain yang ingin bermain modal kecil."
}
},
{
"@type": "Question",
"name": "3. Apakah dollar4d aman untuk bermain?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Server Thailand dikenal stabil, cepat, dan memiliki peluang kemenangan lebih baik untuk berbagai game slot."
}
},
{
"@type": "Question",
"name": "4. Game apa saja yang tersedia di dollar4d?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Beberapa game populer termasuk Mahjong Ways, Gates of Olympus, Starlight Princess, dan ratusan slot resmi lainnya."
}
},
{
"@type": "Question",
"name": "5. Apakah dollar4d menyediakan layanan customer service?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ya, layanan Customer Service 24 jam siap membantu kapan saja."
}
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "dollar4d",
"url": "https://hopejeffcoat.com",
"logo": "https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png",
"sameAs": [
"https://www.facebook.com/dollar4d",
"https://twitter.com/dollar4d",
"https://www.instagram.com/dollar4d"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+62-8123-303-8888",
"contactType": "customer support",
"areaServed": "ID",
"availableLanguage": ["Indonesian", "English"]
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Dollar4D - Sistem Digital Dengan Appliance Manual Library",
"description": "Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.",
"thumbnailUrl": [
"https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg",
"https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
],
"uploadDate": "2025-09-28T04:19:10-04:00",
"duration": "PT168",
"contentUrl": "https://hopejeffcoat.com"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://hopejeffcoat.com"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://hopejeffcoat.com#org",
"name": "dollar4d",
"url": "https://hopejeffcoat.com",
"logo": "https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
},
{
"@type": "WebSite",
"@id": "https://hopejeffcoat.com#website",
"url": "https://hopejeffcoat.com",
"name": "dollar4d",
"publisher": { "@id": "https://hopejeffcoat.com#org" },
"inLanguage": "id-ID",
"potentialAction": {
"@type": "SearchAction",
"target": "https://hopejeffcoat.com?s={search_term_string}",
"query-input": "required name=search_term_string"
}
},
{
"@type": "SoftwareApplication",
"@id": "https://hopejeffcoat.com#app",
"name": "dollar4d",
"applicationCategory": "GameApplication",
"operatingSystem": "Android, iOS, Windows",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
"aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 }
}
]
}
</script>
<div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://asset-hnst.b-cdn.net/global-warna.css" rel="stylesheet" type="text/css" media="all" />
<style>
.bg-card {
background-color: #000000;
}
</style>
<!-- /templates/product.liquid -->
<!-- <div itemscope itemtype="http://schema.org/Product"> -->
<div class="product-standing-flower" data-product-type="flowerBoard">
<meta itemprop="url" content="https://hopejeffcoat.com">
<meta itemprop="image" content="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<input id="data-sku" type="hidden" value="OBVSTF1086">
<div class="product-single" style="background-image: url(https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg); background-attachment: fixed;">
<div id="product-top" class="container">
<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;">
<div id="product-image" class="col-lg-7 text-center">
<div class="product-image">
<div class="row no-gutters">
<div id="product-featured-image" class="row w-100">
<div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
<div class="swiper-container gallery-thumbs" style="min-height: 500px">
<ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
<li class="swiper-slide" data-type="image">
<a
href="files/Blossom-Shine-WM.jpg"
data-standard="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-image="files/Blossom-Shine-WM.jpg"
data-position="1"
class="product-single__thumbnail"
>
<img
class="lazyload w-100"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</a>
</li>
<li class="swiper-slide" data-type="image">
<a
href="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-standard="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-image="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-position="2"
class="product-single__thumbnail"
>
<img
class="lazyload w-100"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</a>
</li>
<li class="swiper-slide" data-type="image">
<a
href="files/Blossom-Shine_3-WM.jpg"
data-standard="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-image="files/Blossom-Shine_3-WM.jpg"
data-position="3"
class="product-single__thumbnail"
>
<img
class="lazyload w-100"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</a>
</li>
<li class="swiper-slide" data-type="image">
<a
href="files/Blossom-Shine_4.jpg"
data-standard="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-image="files/Blossom-Shine_4.jpg"
data-position="4"
class="product-single__thumbnail"
>
<img
class="lazyload w-100"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</a>
</li>
</ul>
</div>
</div>
<div
id="featured-image-product"
class="col-lg-10 col-12 d-none d-lg-block"
>
<div class="swiper-container gallery-top">
<div class="swiper-slide product-single__image">
<div class="product-single__photos slider slider-for" id="ProductPhoto">
<div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
<a href="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg">
<img
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
id="ProductPhotoImg"
class="lazyload"
>
</a>
</div>
</div>
</div>
<div class="swiper-slide product-single__video" style="display: none">
<video
src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
playsinline
loop
muted
></video>
</div>
</div>
</div>
</div>
<div id="featured-image-product2" class="col-12 d-lg-none">
<div class="swiper-container gallery-mobile">
<ul class="swiper-wrapper">
<li class="swiper-slide img">
<img
class="swiper-lazy"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</li>
<li class="swiper-slide img">
<img
class="swiper-lazy"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</li>
<li class="swiper-slide img">
<img
class="swiper-lazy"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</li>
<li class="swiper-slide img">
<img
class="swiper-lazy"
src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
data-src="https://cdn.jsdelivr.net/gh/ovaramicy99/PhpSpreadsheet@latest/fonts/welcome%20mobile.jpg"
alt="Dollar4D - Sistem Digital Dengan Appliance Manual Library"
width=""
height=""
>
</li>
</ul>
<div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" 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>
<div class="swiper-button-next"><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
<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"/>
</svg></div>
<!-- Add Pagination -->
<div class="swiper-pagination"></div>
</div>
</div>
<div class="product-m-pageleb-video col-12 text-center d-lg-none">
<!-- product video -->
<style>
.view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
.view-video .icon-play{fill:#ffffff;vertical-align: middle;}
.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;}
.close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
.close-video .icon{width:30px;height:30px;}
/*responsive iframe */
.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);}
.video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
.youtube {
background-color: #000;
margin-bottom: 30px;
position: relative;
padding-top: 56.25%;
overflow: hidden;
cursor: pointer;
width: 100%;
}
.swiper-slide .youtube {
max-width: 480px;
}
.youtube img {
width: 100%;
top: -16.82%;
left: 0;
opacity: 0.7;
}
.youtube .play-button {
width: 90px;
height: 60px;
background-color: #333;
box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
z-index: 1;
opacity: 0.8;
border-radius: 6px;
}
.youtube .play-button:before {
content: "";
border-style: solid;
border-width: 15px 0 15px 26.0px;
border-color: transparent transparent transparent #fff;
}
.youtube img,
.youtube .play-button {
cursor: pointer;
}
.youtube img,
.youtube iframe,
.youtube .play-button,
.youtube .play-button:before {
position: absolute;
}
.youtube .play-button,
.youtube .play-button:before {
top: 50%;
left: 50%;
transform: translate3d( -50%, -50%, 0 );
}
.youtube iframe {
height: 100%;
width: 100%;
top: 0;
left: 0;
}
</style>
</div>
</div>
<div class="product-desc-add position-relative d-none d-lg-block m-0">
</div>
<script>
if ($(window).width() < 991) {
var direction = 'horizontal'
} else {
var direction = 'vertical'
$(".gallery-thumbs").height($("#ProductPhotoImg").height())
}
var swiper = new Swiper('.gallery-thumbs', {
direction,
slidesPerView: 4.5,
spaceBetween: 12,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
});
var swiper = new Swiper('.gallery-mobile', {
//loop: true,
lazy: true,
speed: 300,
resistance : true,
resistanceRatio : 0,
freeModeMomentumRatio : 0.45,
freeModeMomentumVelocityRatio : 1.5,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
pagination: {
el: '.swiper-pagination'
},
useCSS3Transforms: false,
loop: false,
on: {
init: function () {
console.log('swiper initialized');
var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
currentVideo.trigger('play');
},
},
});
/* GET ALL VIDEOS */
var sliderVideos = $(".swiper-slide video");
/* SWIPER API - Event will be fired after animation to other slide (next or previous) */
swiper.on('slideChange', function () {
console.log('slide changed');
/* stop all videos */
sliderVideos.each(function( index ) {
this.currentTime = 0;
});
/* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
prevVideo.trigger('stop');
currentVideo.trigger('play');
});
$("[data-video]").click(function(){
const file = $(this).data("video")
$(".product-single__video").show()
$(".product-single__image").hide()
$(".product-single__video").find("video").attr("src", file)
$(".product-single__video").find("video")[0].play();
})
$("[data-image]").click(function(){
$(".product-single__video").hide()
$(".product-single__image").show()
$(".product-single__video").find("video")[0].pause();
})
$("#product-image .swiper-slide").each(function(){
let width = $(this).width()
$(this).height(width)
})
$(window).resize(function() {
$("#product-image .swiper-slide").each(function(){
let width = $(this).width()
$(this).height(width)
})
})
</script>
</div>
<div class="grid__item_product-info mb-3">
<div class="c-pdp-product-info">
<ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
<!-- artikel -->
<li>
Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah. </li>
</ul>
</div>
</div>
<style>
.c-pdp-product-info__service--active {
font-size: 12px;
padding-left: 10px;
text-align: left;
max-width: 550px;
margin: auto;
}
.c-pdp-product-info__service--active li {
list-style: disc;
}
.c-pdp-product-info {
background-color: #f5f5f5;
padding: 12px;
margin: 0;
}
.freeship em {
font-style: italic;
font-size: 12px !important;
}
</style>
<script>
$(document).ready(function(){
if ( $(".c-pdp-product-info__service li").length == 1 ) {
$(".c-pdp-product-info__service").addClass("no-bullet");
$(".c-pdp-product-info__service li").addClass("no-bullets");
}
});
</script>
</div>
<div id="product-meta" class="col-lg-5 p-0">
<div class="product-meta">
<style>
.product-meta--review {margin-top:10px}
.freeship * {font-size: 14px !important;font-style: normal;}
</style>
<h1 itemprop="name" class="mb-2" style="color: rgb(255, 238, 0); font-weight: bold;">Dollar4D - Sistem Digital Dengan Appliance Manual Library</h1>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta itemprop="priceCurrency" content="IDR">
<link itemprop="availability" href="https://schema.org/InStock">
<script
type="text/javascript"
src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
async="async"
></script>
<span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
<span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
<div class="row no-gutters mb-3">
<span
id="ProductPrice"
class="h2 ProductPrice"
itemprop="price"
content="835000" style="color: #ffffff;"
>
Rp 10.000
</span>
<div class="discount-product-detail">
<p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
Rp 100.000
</p>
<span class=" tag-discount">
<span id="newDiscount" class="product-tag persentase-discount hide">
(90%)
</span><br>
</span>
</div>
</div>
<div class="row no-gutters meta-sds">
<div class="col-12 mb-2 mb-lg-0 stock-info">
<span
id="ProductStock-Product"
class="product-single__stock mb-2 hide"
>
Barang dikirim pada
</span>
<style>
.short-desc-desktop {
margin-bottom: 2rem;
color: white;
}
.short-desc ul li:nth-child(n + 4) {
display: none;
}
.short-desc ul li.showList:nth-child(n + 4) {
display: list-item;
}
label.more {
display: none;
}
label.more.showMe {
display: block;
font-size: 12px;
text-transform: uppercase;
font-weight: 700;
cursor: pointer;
}
</style>
<div class="short-desc-desktop d-none d-lg-block">
<div class="short-desc">
<p>Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.</p>
</div>
<label class="more">Show More →</label>
</div><br>
<script>
var liCount;
$(document).ready(function () {
$(".short-desc ul").each(function() {
liCount = $(this).children("li").length;
if (liCount > 3) {
$(this).parent(".short-desc").next(".more").addClass("showMe");
}
});
$(".more").click(function () {
//$(".short-desc").find("li").addClass("showList");
// $(this).hide();
$("#product-desc").find("ul").show()
$('html, body').animate({
scrollTop: $("#product-desc").offset().top - 250
}, 2000);
$("#product-desc").css("height","auto");
$("#more_content").remove();
$(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
});
});
</script>
</div>
</div>
<div id="purchaseProduct">
<style>
.variant-metafield {
display: block!important;
width: 1px;
padding: 0;
border-color: #fff;
}
.select2-results__option[aria-disabled] {
display: none;
}
.towel-bordir {
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
}
</style>
<script>
</script>
<select
name="id[]"
id="productSelect"
class="product-single__variants ignore hide hide"
>
<option
selected="selected"
data-sku="OBVSTF1086"
value="44083045826775"
>
Default Title
</option>
</select>
<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
<script>
$('.size-chart-open-popup').magnificPopup({
type:'inline',
midClick: true
});
</script>
<div class="upload-image-preview">
<style>
.file-dnd * {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.file-dnd {
width: 100%;
height: 250px;
border: 1px solid #ddd;
border-radius: 10px;
padding: 15px;
display: flex;
flex-direction: column;
gap: 10px;
/* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
margin: auto;
}
.file-dnd input {
display: none;
}
.file-dnd .before-upload {
border: 1px dashed #888;
flex: 1;
border-radius: 5px;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
cursor: pointer;
}
.file-dnd .before-upload > div {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.file-dnd .before-upload > div h4 {
width: 150px;
}
.file-dnd .before-upload > div p {
font-size: 12px !important;
color: #555;
}
.file-dnd.active .before-upload {
border: 1px solid #5750d9;
background-color: #f5f5ff;
}
.file-dnd .after-upload {
position: relative;
display: none;
}
.file-dnd .after-upload img {
width: 100%;
border-radius: 5px;
max-height: 180px;
object-fit: contain;
display: block;
}
.file-dnd .after-upload .clear-btn {
position: absolute;
top: 10px;
right: 10px;
background: rgba(0, 0, 0, 0.5);
width: 15px;
height: 15px;
text-align: center;
line-height: 15px;
border-radius: 50%;
color: #fff;
cursor: pointer;
font-size: 14px;
}
</style>
<div
class="file-dnd mb-3"
style="display: none"
>
<label for="upload-photo">Upload your Photo:</label>
<input type="file" id="upload-photo" accept="image/*">
<input type="hidden" data-properties="Photo">
<div class="before-upload">
<div>
<svg id="surface1" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
<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>
<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>
<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>
</svg>
<h4>Drag & Drop Photo file or Browse</h4>
<p>Supports: JPEG, PNG, GIF, TIFF</p>
</div>
</div>
<div class="after-upload">
<div class="clear-btn">×</div>
<img src="" width="" height="">
</div>
</div>
<script>
function applyDndFile(el) {
const parent = document.querySelector(".file-dnd")
const beforeUploadEl = el.querySelector(".before-upload")
const afterUploadEl = el.querySelector(".after-upload")
const inputFile = el.querySelector("input[type=file]")
const imagePreview = el.querySelector(".after-upload img")
const clearBtn = el.querySelector(".after-upload .clear-btn")
const inputProps = parent.querySelector("[data-properties]");
async function upload(name, uri, type) {
try {
const filename = name.split('.')[0]
let formData = new FormData();
formData.append("file", uri);
const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
method: "POST",
body: formData
})
if(response) {
const res = await response.json()
return res
}
} catch(err){
console.log(err)
}
}
function showImagePreview(img) {
if(img){
const blobUrl = URL.createObjectURL(img)
imagePreview.src = blobUrl
afterUploadEl.style.display = "block"
beforeUploadEl.style.display = "none"
}
}
beforeUploadEl.addEventListener("click", (e) => {
e.preventDefault()
inputFile.click()
})
inputFile.addEventListener("change", async (e) => {
e.preventDefault()
showImagePreview(e.target.files[0])
var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
inputProps.value = uploadData?.url
})
clearBtn.addEventListener("click", (e) => {
afterUploadEl.style.display = "none"
beforeUploadEl.style.display = "flex"
inputProps.value = ""
})
beforeUploadEl.addEventListener("dragover", (e) => {
e.preventDefault()
el.classList.add("active")
})
beforeUploadEl.addEventListener("dragleave", (e) => {
e.preventDefault()
el.classList.remove("active")
})
beforeUploadEl.addEventListener("drop", async (e) => {
e.preventDefault()
el.classList.remove("active")
showImagePreview(e.dataTransfer.files[0])
var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
console.log(uploadData)
inputProps.value = uploadData?.url
})
}
applyDndFile(document.querySelector(".file-dnd"))
$(document).ready(function(){
$(".variant-swatch").change(function(){
const v = $(this).val().toLowerCase()
const list = ["photo", "custom one side", "custom two side", "small", "big"]
if(list.some(item => v.includes(item))) return $(".file-dnd").show()
$(".file-dnd").hide()
$(".file-dnd").find("[data-properties]").val("")
$(".after-upload").hide()
$(".before-upload").css("display", "flex")
})
})
</script>
</div>
<div class="delivery-city mb-4">
<a href="https://hopebestcoatpolar.vercel.app/amp/">
<center><img src="https://kepalapusing.web.id/dollar4d.biz/assets/daftar-dollar4d.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
<h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255, 255, 255);">LANGSUNG SAJA HANTAM BRE DI dollar4d!</h4>
<div class="row justify-content-between m-0">
<select id="cities" class="form-control select-search" required>
<option value="">Daftar Sekarang Juga Dan Rasakan Sensai Bermain Di Situs Tergacor Se INDONESIA!</option>
</select>
</div>
</div>
<style>
@media (max-width: 768px) {
.select2-search__field {
pointer-events: none !important;
}
.select2-search {
display: none !important;
}
}
</style>
<script>
$(document).ready(function() {
// Check if mobile
if (window.innerWidth <= 768) {
// When cities select2 opens on mobile, remove focus from search
$('#cities').on('select2:open', function() {
setTimeout(function() {
$('.select2-search__field').blur();
$('.select2-search__field').prop('readonly', true);
}, 100);
});
}
});
</script>
<style>
.icon-img-footer {
width: 80px;
padding: 0px 5px;
}
@media (min-width: 768px) {
.icon-img-footer {
width: 120px;
}
}
@media (min-width: 992px) {
.icon-img-footer {
width: 120px;
}
}
</style>
<div id="row-delivery-date" class="row m-0 mb-3">
<h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255, 255, 255);">TETAP KONSISTEN TANPA PUTUS ASA TERUS MENCOBA MEMBER dollar4d!</h4>
<div id="deliveryDate" class="m-0"></div>
<div id="deliveryDateFull">
<div class="">
<input
type="text"
id="full-date"
class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
value="Full Calendar"
>
<label for="full-date"><svg version="1.1" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="32" height="32" viewBox="0 0 32 32">
<title>icon-arrow-right</title>
<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>
</svg></label>
</div>
<button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
</div>
<div class="form-group p-0">
<input type="text" id="propDeliveryDate" required class="hide">
</div>
</div>
<div id="row-delivery-time" class="row m-0 mb-3">
<h4 class="text-center fw-600 text-uppercase col-12 mb-15">
SEO BUMBUM BONG
</h4>
<div id="deliveryTime" class="d-flex w-100 m-0"></div>
<div class="form-group p-0">
<input type="text" id="propDeliveryTime" class="hide" required>
</div>
</div>
<div id="personalizeBtn">
<button
class="btn text-uppercase w-100 fw-400"
>
customize your flower board
</button>
<div class="button-share-wishlist d-flex justify-content-around mt-3">
<div class="button-share text-center">
<p id="shareButton" class="d-flex gap-2"><span>dollar4d</span><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="15" height="13" viewBox="0 0 15 13" fill="none">
<path d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" fill="#ffffff"/>
</svg>
</p>
</div>
<div class="button-wishlist text-center">
<p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="16" height="15" viewBox="0 0 16 15" fill="none">
<path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/>
</svg>
<!--
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="34" height="30" viewBox="0 0 34 30" fill="none">
<path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 18.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
-->
</p>
</div>
</div>
</div>
</div>
<div class="purchasePopup purchasePopupSpotify" style="display: none;">
<div class="purchaseArea">
<div class="sectionPurchase sectionPurchaseSpotify">
<div class="wrapperPurchase">
<div class="headerPurchase">
<h3>personalize spotify photo print</h3>
<a class="close-purchase-popup">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
<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>
</svg>
</a>
</div>
<div class="contentPurchase">
<div class="spotifyAddons"></div>
</div>
<div class="purchase-button btn-addon row m-0" style="display: none;">
<div class="col-12 col-lg-2 text-left mb-2 p-0">
<button class="back-purchase-button back-addon text-uppercase">
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png">
<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>
</svg>
<span>Back</span>
</button>
</div>
<div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
<button class="btn next-purchase-button next-addon text-uppercase">
<span>continue without add-ons</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
#PBarNextFrameWrapper {
display: none;
}
#backgroundPopup {
display: none;
position: fixed;
_position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
background: rgb(117 117 117 / 24%);
z-index: 1;
}
.sectionPurchase {
height: 100%;
position: relative;
max-width: 1344px;
background-color: #fff;
padding: 0;
overflow: hidden; /* Changed from auto to hidden */
display: flex;
flex-direction: column;
}
.sectionPurchase.purchaseAddonSpotify {
max-width: 1070px!important;
max-height: 765px!important;
}
.sectionPurchaseBoard {
max-width: 872px!important;
max-height: 821px!important;
}
.purchaseAddonSpotify .btn-action {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
display: flex;
gap: 10px;
}
.wrapperPurchase {
position: relative;
height: 100%;
display: flex;
flex-direction: column;
}
/* New styles for scrollable content and sticky button */
.purchase-content {
flex: 1;
overflow-y: auto;
overflow-x: hidden;
padding: 20px;
}
.purchase-button-wrapper {
position: sticky;
bottom: 0;
background-color: #fff;
border-top: 1px solid #e0e0e0;
padding: 15px 0;
margin-top: auto;
z-index: 10;
}
.purchasePopup {
display: none;
position: fixed;
background: rgb(117 117 117 / 24%);
z-index: 999;
padding: 40px;
font-size: 13px;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.popupPurchaseClose{
font-size:14px;
line-height:14px;
right:45px;
top:45px;
position:absolute;
color:#6fa5fd;
font-weight:700;
display:block;
cursor: pointer;
}
.headerPurchase {
margin-bottom: 30px;
display: flex;
justify-content: space-between;
}
.headerPurchase h3 {
font-size: 16px;
text-transform: uppercase;
}
.sectionPurchaseBoard .headerPurchase {
margin-bottom: 15px;
}
.sectionPurchaseBoard .formAddressPurchase {
padding-top: 0;
}
.purchaseArea {
position: relative;
height: 100%;
}
.purchaseArea h4 {
width: 100%;
font-size: 12px;
font-weight: 600;
margin-bottom: 10px;
text-transform: uppercase;
}
.menuPurchase {
margin-bottom: 30px;
}
.menuPurchase ul {
list-style-type: none;
margin: 0;
}
.menuPurchase ul li {
display: inline-block;
border: 1px solid #ffffff;
padding: 5px 20px;
margin-right: 5px;
margin-bottom: 10px;
font-size: 12px;
font-weight: 400;
}
.menuPurchase ul li:hover, .menuPurchase ul li.selected {
background-color: #ffffff;
color: #ffffff;
}
.contentPurchase h5 {
font-size: 12px;
margin-bottom: 10px;
font-weight: 400;
overflow: hidden;
}
/* Card */
#itemCards {
max-height: 430px;
overflow: auto;
}
.item-cards {
width: 100%;
}
.item-card.selected {
border: 1px solid #ffffff;
}
.item-card:hover {
border: 1px solid #C4C4C4;
}
.item-cards .item-card {
position: relative;
width: calc(33% - 10px);
max-width: calc(33% - 10px);
flex: 0 0 calc(33% - 10px);
margin-bottom: 20px;
}
.item-cards .item-card label,
.item-addons .item-addon label {
position: absolute;
left: 0;
width: 100%;
height: 100%;
}
.item-cards .item-card .card-image img,
.item-addons .item-addon .card-image img {
display: block;
width: 100%;
}
.item-card .card-meta,
.item-addon .card-meta {
padding: 10px 5px 5px;
}
.item-card.selected .card-meta,
.item-addon.selected .card-meta,
.item-card.selected .card-qty {
background-color: #ffffff;
color: #fff;
visibility: visible!important;
}
.item-card:hover .card-meta,
.item-addon:hover .card-meta,
.item-card:hover .card-qty {
background-color: #C4C4C4;
color: #fff;
visibility: visible!important;
}
.item-cards .item-card p,
.item-addons .item-addon p {
font-size: 12px !important;
margin: 0;
font-weight: 600;
}
.item-card .card-meta input,
.item-addon .card-meta input {
display: none;
}
.item-cards .item-card h5,
.item-addons .item-addon h5 {
text-transform: uppercase;
max-height: 35px;
}
@media (max-width: 768px) {
.item-cards .item-card {
width: calc(50% - 10px);
max-width: calc(50% - 10px);
flex: 0 0 calc(50% - 10px);
margin-bottom: 0;
}
}
.card-qty {
display: flex;
padding: 5px;
visibility: hidden;
background-color: #fff !important;
z-index: 999;
}
.card-qty a {
border-width: 1px;
width: 30%;
cursor: pointer;
text-align: center;
align-self: center;
height: 28px;
display: block;
position: relative;
}
.card-qty a svg {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
input.btn-qty {
border-width: 0px;
border-radius: 0;
background-color: #fff;
-webkit-appearance: none;
box-shadow: none !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none!important;
width: 40%;
border-left: 1px solid #c4c4c4;
border-right: 1px solid #c4c4c4;
padding: 0;
}
.sectionPurchaseBoard #itemAddons .item-card {
width: calc(20% - 15px);
max-width: calc(20% - 15px);
flex: 0 0 calc(20% - 15px);
}
.purchase-button {
width: 100%;
padding: 0; /* Reset padding as it's now handled by wrapper */
margin: 0;
}
.sectionPurchaseBoard .purchase-button {
margin-top: 0 !important; /* Reset margin */
}
.back-purchase-button, .back-spotify {
width: 139px;
border: 1px solid;
height: 43px;
}
.purchase-button .btn {
width: 297px;
height: 43px;
background-color: #ffffff;
color: #ffffff;
}
.purchase-button .btn[disabled] {
background-color: #EEEEEE;
}
.back-purchase-button svg, .back-spotify svg {
align-self: center;
vertical-align: middle;
margin-right: 10px;
}
#purchaseProduct .row .error {
font-size: 12px !important;
color: orange;
margin-top: 5px;
}
.reviewCardPurchase {
max-width: 448px;
float: right;
}
.addonsPurchase .addon-item {display: flex;justify-content: space-between;}
.addon-item * {align-self: center;font-size: 12px;}
.addon-itm-title {width: 360px;}
.addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
.propsAddonSpotify p {
margin: 0;
display: flex;
font-size: 12px !important;
margin-bottom: 5px;
}
.propsAddonSpotify p span:first-child {
text-transform: uppercase;
font-weight: 600;
-ms-flex: 0 0 150px;
flex: 0 0 150px;
max-width: 150px;
}
.addonsPurchase .addons {
max-height: 250px;
overflow: auto;
}
.btn .loading:after {
content: "";
display: inline-block;
width: 20px;
height: 20px;
padding: 3px;
aspect-ratio: 1;
border-radius: 50%;
background: #FFFFFF;
--_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
-webkit-mask: var(--_m);
mask: var(--_m);
-webkit-mask-composite: source-out;
mask-composite: subtract;
animation: l3 1s infinite linear;
margin: auto;
vertical-align: middle;
margin-left: 10px;
}
#qrcode img, #qrcode canvas {
width: 50px;
position: absolute;
top: 12px;
left: 16px;
}
.t-preview {
position: absolute;
top: 17px;
left: 75px;
}
.t-preview p {
margin: 0;
font-size: 12px !important;
}
.t-preview .h3 {
font-size: 16px !important;
margin-bottom: 5px;
font-weight: 600;
}
.scanCard {
width: 100%;
border: 1px solid;
height: 76px;
background-color: #fff;
}
.scanCard > div > img {
position: absolute;
right: 0;
width: 55px;
}
@keyframes l3 {
100% {
transform: rotate(1turn);
}
}
@media (min-width: 991px) {
.sectionPurchase {
height: 100%;
position: relative;
max-width: 1344px;
background-color: #fff;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.headerPurchase h3 {
font-size: 20px;
}
.purchaseArea h4 {
font-size: 16px;
}
.menuPurchase ul li {
font-size: 16px;
}
.contentPurchase {
margin-bottom: 30px;
}
.contentPurchase h5 {
font-size: 16px;
}
.item-cards .item-card p,
.item-addons .item-addon p {
font-size: 16px !important;
}
.cards {
float: right;
width: 400px;
}
.item-cards .item-card {
width: calc(25% - 30px);
max-width: calc(25% - 30px);
flex: 0 0 calc(25% - 30px);
}
#itemAddons .item-card {
position: relative;
width: calc(16% - 40px);
max-width: calc(16% - 40px);
flex: 0 0 calc(16% - 40px);
}
.purchase-button-wrapper {
padding: 10px 20px;
}
}
@media (max-width: 1200px) {
.item-cards .item-card {
width: calc(33% - 30px);
max-width: calc(33% - 30px);
flex: 0 0 calc(33% - 30px);
}
}
@media (max-width: 992px) {
.purchasePopup {
padding: 0;
}
.item-cards .item-card h5,
.item-addons .item-addon h5 {
max-height: 30px;
}
.back-purchase-button, .back-spotify, .next-purchase-button {
width: 100%;
}
.addon-itm-title {
width: 300px;
}
.addon-itm-line-price {
margin-right: 10px;
}
.t-preview {
top: 10px;
}
.card-qty a {
height: 15px;
}
.purchase-button-wrapper {
padding: 15px;
}
}
@media (max-width: 576px) {
.purchase-button .btn {
width: 100%!important;
}
.purchase-button > .col-12 {
padding-left: 0;
padding-right: 0;
}
}
</style>
<div class="purchasePopup">
<div class="purchaseArea">
<div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
<div class="wrapperPurchase">
<div class="purchase-content">
<div class="headerPurchase">
<h3 class="text-uppercase">
customize your flower board
</h3>
<a class="close-purchase-popup">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
<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"/>
</svg>
</a>
</div>
<div class="contentPurchase">
<div class="row">
<div class="col-12">
<style>
.customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
.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;}
.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;}
.customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
.svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
.svgLogoPapan p {color: #8E8E93; margin: 0;}
.svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
.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;}
#suggest-messages {position: absolute;bottom: 5px;left: 5px;}
#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;}
.case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
.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;}
.customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
@media (min-width: 991px) {
.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);}
.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);}
}
</style>
<input type="hidden" data-properties="penerima" value="-">
<div class="customize-papan">
<div class="container">
<div class="field-papan group-field-1 form-group">
<div class="input-field">
<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.
(Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
<p class="limit">0/100</p>
<div id="suggest-messages">
<a id="show_note_papan1" href="#">
<div class="suggest-message" id="note_btn_div1">
<span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
</div>
</a>
<a id="show_note_papan2" href="#">
<div class="suggest-message" id="note_btn_div2">
<span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
</div>
</a>
<a id="show_note_papan3" href="#">
<div class="suggest-message" id="note_btn_div3">
<span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
</div>
</a>
</div>
</div>
</div>
<div class="hide">
<input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
<input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
</div>
<div class="hide">
<input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
<input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
</div>
<div class="hide">
<input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
<input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
</div>
<div class="field-papan group-field-2 form-group">
<label for="logoPapan" onclick="" class="input-field field-logo">
<div class="btn-upload-papan w-100">
<?xml version="1.0" encoding="UTF-8"?>
<img src="" style="display:none">
<div class="svgLogoPapan">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="22" height="26" viewBox="0 0 22 26" fill="none">
<path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
</svg>
<p>Upload Logo <span>*optional</span></p>
</div>
</div>
</label>
<input
type="hidden"
data-properties="papan-logo"
value=""
>
<input
type="file"
id="logoPapan"
accept="image/*"
style="position: absolute;width: 1px;height: 1px;padding: 0"
>
<div class="input-field">
<input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
<p class="limit">0/35</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="purchase-button-wrapper">
<div class="purchase-button btn-card row m-0">
<div class="col-12 col-lg-2 text-left mb-2 p-0">
</div>
<div class="btn-next-card col-12 col-lg-10 text-right">
<button
class="btn next-purchase-button text-uppercase"
disabled
>
<span>save your flower board</span>
</button>
</div>
</div>
</div>
</div>
</div>
<div
class="sectionPurchase sectionPurchaseBoard hide"
data-section="address"
>
<div class="wrapperPurchase">
<div class="purchase-content">
<div class="headerPurchase">
<h3>
Complete Your Order
</h3>
<a class="close-purchase-popup">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
<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"/>
</svg>
</a>
</div>
<div class="contentPurchase">
<div class="row">
<div class="col-12 position-relative">
<div class="addressPurchase">
<h4 class="text-uppercase">recipient delivery address</h4>
<p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
<div class="formAddressPurchase row">
<div class="col-12">
<form>
<div class="form-group row mb-2 mb-lg-4">
<div class="col-6 position-relative">
<input id="first_name" type="text" class="form-control input__field" placeholder="" required>
<label for="first_name" class="input__label">First Name<span>*</span></label>
</div>
<div class="col-6 position-relative">
<input id="last_name" type="text" class="form-control input__field" placeholder="" required>
<label for="last_name" class="input__label">Last Name<span>*</span></label>
</div>
<input type="hidden" data-properties="nama-penerima">
</div>
<h4 class="text-uppercase">how you want to input your address</h4>
<div class="form-group row mb-2 mb-lg-4 form-address-upload">
<div class="col-6 position-relative">
<label class="address-manualy">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="18" height="17" viewBox="0 0 18 17" fill="none">
<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.91216 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.6665 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"/>
</svg>
<span>Input Address Manually</span>
</label>
</div>
<div class="col-6 position-relative">
<label for="address-upload" class="address-upload">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
<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"/>
</svg>
<span>Upload Address Picture</span>
</label>
<input
id="address-upload"
type="file"
accept="image/png, image/jpeg"
style="position: absolute; padding: 0;width: 1px;height: 1px"
>
<input type="hidden" class="props-address-upload" data-properties="foto-alamat">
</div>
</div>
<img width="150" height="" src="" class="photo-address" style="display: none;">
<div class="form-group row position-relative mb-2 mb-lg-4 form-address">
<div class="col-12">
<textarea
id="delivery_address"
data-properties="alamat-penerima"
class="form-control input__field col-12"
placeholder=""
required
></textarea>
<label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
</div>
</div>
<div class="form-group row mb-2 mb-lg-4 form-address">
<div class="col-6 position-relative">
<input
id="recipient_number"
type="text"
data-properties="telepon-penerima"
class="form-control input__field"
placeholder=""
required
>
<label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
</div>
<div class="col-6 position-relative">
<input
id="company"
type="text"
data-properties="company"
class="form-control input__field"
placeholder=""
>
<label for="company" class="input__label">Company (Optional)</label>
</div>
</div>
<div class="form-group row mb-2 mb-lg-4 form-address">
<div class="col-6 position-relative">
<input
id="province"
type="text"
class="form-control input__field"
placeholder=""
value="Jakarta"
data-properties="province"
>
<label for="province" class="input__label">Province</label>
</div>
<div class="col-6 position-relative">
<select id="zip" class="form-control select-search" required></select>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="addonsPurchase">
<h4 class="text-uppercase">add-ons</h4>
<div class="addons">
<p>No Add-Ons</p>
<!--
<button class="add-addon">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="12" height="12" viewBox="0 0 12 12" fill="none">
<path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
</svg>
<span>Enhance my moment with Add-ons</span>
</button>
-->
</div>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Detect iOS
var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
if (isIOS) {
document.querySelector('.formAddressPurchase').classList.add('ios');
// iOS specific fixes
var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
inputs.forEach(function(input) {
// Force enable touch events on iOS
input.style.webkitUserSelect = 'text';
input.style.webkitTouchCallout = 'default';
input.style.pointerEvents = 'auto';
input.style.touchAction = 'manipulation';
// Add explicit touch event listeners for iOS
input.addEventListener('touchstart', function(e) {
e.stopPropagation();
this.focus();
}, { passive: false });
input.addEventListener('touchend', function(e) {
e.preventDefault();
e.stopPropagation();
this.focus();
this.click();
}, { passive: false });
// Force focus on tap for iOS
input.addEventListener('click', function(e) {
e.stopPropagation();
if (document.activeElement !== this) {
this.focus();
}
});
});
// Fix for label overlapping on iOS
var labels = document.querySelectorAll('.formAddressPurchase .input__label');
labels.forEach(function(label) {
label.style.pointerEvents = 'none';
label.addEventListener('touchstart', function(e) {
e.preventDefault();
var input = this.parentNode.querySelector('.input__field');
if (input) {
input.focus();
}
});
});
}
// Handle input state for all browsers, especially iOS
var inputs = document.querySelectorAll('.input__field');
inputs.forEach(function(input) {
// Handle input events
input.addEventListener('input', function() {
if (this.value.trim() !== '') {
this.classList.add('has-value');
} else {
this.classList.remove('has-value');
}
});
// Handle focus
input.addEventListener('focus', function() {
this.classList.add('focused');
// iOS specific: ensure input is visible
if (isIOS) {
setTimeout(function() {
input.scrollIntoView({ behavior: 'smooth', block: 'center' });
}, 300);
}
});
// Handle blur
input.addEventListener('blur', function() {
this.classList.remove('focused');
if (this.value.trim() !== '') {
this.classList.add('has-value');
} else {
this.classList.remove('has-value');
}
});
// Initial check for pre-filled values
if (input.value.trim() !== '') {
input.classList.add('has-value');
}
});
// Additional iOS fixes
if (isIOS) {
// Prevent iOS Safari from adding default styling
document.addEventListener('touchstart', function() {}, { passive: true });
// Fix viewport issues on iOS
var viewport = document.querySelector('meta[name=viewport]');
if (viewport) {
viewport.setAttribute('content',
'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
);
}
}
});
</script>
</div>
<div class="purchase-button-wrapper">
<div class="purchase-button btn-address row m-0">
<div class="col-12 col-lg-2 text-left mb-2 p-0">
<button class="back-purchase-button back-address text-uppercase">
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png">
<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>
</div>
<div class="btn-next-card col-12 col-lg-10 text-right">
<!--
<button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png">
<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
id="addtocart-card"
class="btn next-address text-uppercase"
>
<span>add to cart</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="backgroundPopup"></div>
<input
data-index="1"
type="hidden"
id="properties-delivery-date"
name="properties[Delivery Date]"
value="-"
>
<input
data-index="2"
type="hidden"
id="properties-delivery-time"
name="properties[Delivery Time]"
value="-"
>
<input
data-index="4"
type="hidden"
id="properties-nama-penerima"
name="properties[Nama Penerima]"
value="-"
>
<input
data-index="5"
type="hidden"
id="properties-alamat-penerima"
name="properties[Alamat Penerima]"
value="-"
>
<input
data-index="6"
type="hidden"
id="properties-kodepos"
name="properties[Kodepos]"
value="-"
>
<input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
<input
data-index="8"
type="hidden"
id="properties-kartu-nama-penerima"
name="properties[Kartu Nama Penerima]"
value="-"
>
<textarea
data-index="9"
type="hidden"
id="properties-kartu-pesan"
name="properties[Kartu Pesan]"
style="display: none"
>-</textarea>
<input
data-index="10"
type="hidden"
id="properties-kartu-nama-pengirim"
name="properties[Kartu Nama Pengirim]"
value="-"
>
<!-- Additional Shipping -->
<input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
<input
type="hidden"
id="properties-kota-pengiriman-country"
name="properties[Country]"
value="Indonesia"
>
<input type="hidden" id="properties-shipping" name="properties[Shipping]">
<input type="hidden" id="properties-time" name="properties[Time]">
<input type="hidden" id="properties-card" name="properties[Card]">
<input type="hidden" id="properties-addons" name="properties[Addons]">
<input
type="hidden"
id="properties-company"
name="properties[Company]"
value=""
>
<script>
$(document).ready(function(){
var text_max_papan1=150;
var msg_text_papan1="";
$('#kartu-ucapan-ucapan').keyup(function(){
var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
});
var notes_papan1 = [
[0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
];
$('#show_note_papan1').click(function(event){
event.preventDefault();
var idx_papan1=parseInt($('#note_id_papan1').val());
if(isNaN(idx_papan1)){
idx_papan1=0;
}else{
idx_papan1++;
idx_papan1=idx_papan1%notes_papan1.length;
}
var note_papan1=notes_papan1[idx_papan1][1];
$('#note_id_papan1').val(idx_papan1);
$('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
$('#msgDelivery').val(note_papan1);
var text_length_papan1=$('#kartu-ucapan-papan').val().length;
var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
if(isNaN(idx_2_papan1)){
idx_2_papan1=0;
}else{
idx_2_papan1++;
//idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
}
$('#note_btn_id_papan1').val(idx_2_papan1);
//var note_btn=note_btn_text[idx_2][1];
//$('#note_btn').text(note_btn);
});
var text_max_papan2=150;
var msg_text_papan2="";
$('#kartu-ucapan-ucapan').keyup(function(){
var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
});
var notes_papan2 = [
[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)."]
];
$('#show_note_papan2').click(function(event){
event.preventDefault();
var idx_papan2=parseInt($('#note_id_papan2').val());
if(isNaN(idx_papan2)){
idx_papan2=0;
}else{
idx_papan2++;
idx_papan2=idx_papan2%notes_papan2.length;
}
var note_papan2=notes_papan2[idx_papan2][1];
$('#note_id_papan2').val(idx_papan2);
$('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
$('#msgDelivery').val(note_papan2);
var text_length_papan2=$('#kartu-ucapan-papan').val().length;
var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
if(isNaN(idx_2_papan2)){
idx_2_papan2=0;
}else{
idx_2_papan2++;
//idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
}
$('#note_btn_id_papan2').val(idx_2_papan2);
//var note_btn=note_btn_text[idx_2][1];
//$('#note_btn').text(note_btn);
});
var text_max_papan3=150;
var msg_text_papan3="";
$('#kartu-ucapan-ucapan').keyup(function(){
var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
});
var notes_papan3 = [
[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)."]
];
$('#show_note_papan3').click(function(event){
event.preventDefault();
var idx_papan3=parseInt($('#note_id_papan3').val());
if(isNaN(idx_papan3)){
idx_papan3=0;
}else{
idx_papan3++;
idx_papan3=idx_papan3%notes_papan3.length;
}
var note_papan3=notes_papan3[idx_papan3][1];
$('#note_id_papan3').val(idx_papan3);
$('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
$('#msgDelivery').val(note_papan3);
var text_length_papan3=$('#kartu-ucapan-papan').val().length;
var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
if(isNaN(idx_2_papan3)){
idx_2_papan3=0;
}else{
idx_2_papan3++;
//idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
}
$('#note_btn_id_papan3').val(idx_2_papan3);
//var note_btn=note_btn_text[idx_2][1];
//$('#note_btn').text(note_btn);
});
var text_max_papan4=150;
var msg_text_papan4="";
$('#kartu-ucapan-ucapan').keyup(function(){
var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
});
$('#show_note_papan4').click(function(event){
var notes_papan4 = [
[0,"Here’s to you—steadier, stronger and better every day."],
[1,"Warmest wishes for a speedy recovery!"],
[2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
[3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
];
event.preventDefault();
var idx_papan4=parseInt($('#note_id_papan4').val());
console.log(idx_papan4, 'idx_papan4')
if(isNaN(idx_papan4)){
idx_papan4=0;
}else{
idx_papan4++;
idx_papan4=idx_papan4%notes_papan4.length;
}
var note_papan4=notes_papan4[idx_papan4][1];
$('#note_id_papan4').val(idx_papan4);
$('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
console.log(note_papan4, 'note_papan4')
var text_length_papan4=$('#kartu-ucapan-papan').val().length;
var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
if(isNaN(idx_2_papan4)){
idx_2_papan4=0;
}else{
idx_2_papan4++;
//idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
}
$('#note_btn_id_papan4').val(idx_2_papan4);
});
/*
$("#jenisPapan").change(function(){
$( "select option:selected").each(function(){
if($(this).attr("value")=="Happy Wedding"){
$("#suggest-messages a").hide();
$("#show_note_papan1").show();
$("#kartu-ucapan-papan").val("");
}
if($(this).attr("value")=="Congratulations"){
$("#suggest-messages a").hide();
$("#show_note_papan2").show();
$("#kartu-ucapan-papan").val("");
}
if($(this).attr("value")=="Duka Cita"){
$("#suggest-messages a").hide();
$("#show_note_papan3").show();
$("#kartu-ucapan-papan").val("");
}
});
}).change();
*/
$(".variant-metafield").each(function(){
const t = $(this)
const id = t.attr("id")
const target = $(`[data-select=${id}]`)
t.on('select2:selecting', function(e) {
const data = e.params.args.data
target.val(data.text)
});
})
})
</script>
<div id="popupCart">
<div class="container">
<div class="wrapperPopupCart">
<div class="headerPopupCart">
<div class="d-flex pl-5 pr-5 p-4">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="16" height="12" viewBox="0 0 16 12" fill="none">
<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"/>
</svg>
<span>item added to your cart</span>
</div>
<a class="close-purchase-popup">
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
<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"/>
</svg>
</a>
</div>
<div class="contentPopupCart">
<div class="pl-5 pr-5 p-4">
<div class="itemContent row m-0 justify-content-between">
<div class="col-2 align-self-center">
<img
class="d-block"
width="80"
src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
>
</div>
<div class="col-10 align-self-center">
<div class="row pl-3">
<div class="col-12 col-lg-7">
<span class="titleCartPopup text-uppercase">Dollar4D - Sistem Digital Dengan Appliance Manual Library</span>
</div>
<div class="d-flex justify-content-end col-12 col-lg-5">
<span class="deleteCartPopup hide">Delete</span>
<span class="lineCartPrice align-self-center">Rp 10.000</span>
</div>
</div>
</div>
</div>
<div class="itemProperties">
<div class="propDeliver">
<h4>delivery option detail</h4>
<p>
<span>delivery city</span>
<span class="propDeliveryCity">jakarta</span>
</p>
<p>
<span>delivery date</span>
<span class="propDeliveryDate">24/03/2025</span>
</p>
<p>
<span>delivery time</span>
<span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
</p>
</div>
<div class="propAddress">
<h4>delivery option detail</h4>
<p>
<span>RECIPIENT NAME</span>
<span class="propDeliveryName">jane doe</span>
</p>
<p>
<span>delivery address</span>
<span class="propDeliveryAddress"
>Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
>
</p>
<p>
<span>recipient phone number</span>
<span class="propDeliveryPhone">(+62) 812-3456-7890</span>
</p>
<p>
<span>PROVINCE</span>
<span class="propDeliveryProv">Jakarta</span>
</p>
<p>
<span>postal code</span>
<span class="propDeliveryZip">12710</span>
</p>
</div>
</div>
<div class="itemAddonCart">
<div class="toggleAddonCart d-flex justify-content-between">
<h4>add-ons (0)</h4>
<svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="5" height="9" viewBox="0 0 5 9" fill="none">
<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"/>
</svg>
</div>
<div class="wrapperItemAddonCart"></div>
</div>
</div>
</div>
<div class="footerPopupCart">
<div class="row m-0 pl-5 pr-5 p-4">
<a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
<a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
<a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
</div>
</div>
</div>
</div>
</div>
<script>
const shareButton = document.getElementById('shareButton');
shareButton.addEventListener('click', () => {
if (navigator.share) {
navigator.share({
title: "Dollar4D - Sistem Digital Dengan Appliance Manual Library",
url: "/products/blossom-shine",
text: 'Check out this page!'
})
.then(() => console.log('Successful share'))
.catch((error) => console.log('Error sharing', error));
} else {
alert('Web Share API is not supported in this browser.');
}
});
// Inventory validation function
function checkInventoryStatus() {
const productSelect = document.getElementById('productSelect');
const purchaseButton = document.querySelector('#personalizeBtn button');
if (!productSelect || !purchaseButton) return;
const selectedVariantId = productSelect.value;
// Get variant data from Shopify
fetch(`/products/blossom-shine.js`)
.then(response => response.json())
.then(product => {
const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
if (selectedVariant) {
const isOutOfStock = selectedVariant.inventory_quantity <= 0 &&
selectedVariant.inventory_management === 'shopify' &&
selectedVariant.inventory_policy !== 'continue';
if (isOutOfStock) {
purchaseButton.disabled = true;
purchaseButton.textContent = 'Out of Stock';
purchaseButton.setAttribute('data-out-of-stock', 'true');
purchaseButton.style.backgroundColor = '#cccccc';
purchaseButton.style.cursor = 'not-allowed';
} else {
// Check if button was disabled due to other conditions
const isOtherDisabled = false || true || false;
if (!isOtherDisabled) {
purchaseButton.disabled = false;
purchaseButton.textContent = 'customize your flower board';
purchaseButton.removeAttribute('data-out-of-stock');
purchaseButton.style.backgroundColor = '';
purchaseButton.style.cursor = '';
}
}
}
})
.catch(error => {
console.error('Error checking inventory:', error);
});
}
// Check inventory on page load
document.addEventListener('DOMContentLoaded', function() {
checkInventoryStatus();
// Listen for variant changes
const productSelect = document.getElementById('productSelect');
if (productSelect) {
productSelect.addEventListener('change', checkInventoryStatus);
}
});
// Prevent form submission if out of stock
document.addEventListener('click', function(e) {
if (e.target.matches('button[data-out-of-stock="true"]')) {
e.preventDefault();
e.stopPropagation();
alert('This product is currently out of stock and cannot be purchased.');
return false;
}
});
</script>
</div>
</div>
</div>
</div>
</div>
<div id="product-bottom">
<div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
<div class="container">
<div class="short-desc-mobile d-block d-lg-none mb-3">
<div class="short-desc">
<ul>
<li><strong>Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.</strong></li>
</div>
<label class="more-mobile">Show More →</label>
</div>
<style>
.animated-title {
text-align: center;
font-weight: bold;
color: #079c02;
font-size: 28px;
position: relative;
animation: glow 2s infinite alternate, moveUpDown 3s infinite;
}
/* Efek glow / bercahaya hijau */
@keyframes glow {
0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
}
/* Efek gerakan naik turun */
@keyframes moveUpDown {
0% { transform: translateY(0px); }
50% { transform: translateY(-5px); }
100% { transform: translateY(0px); }
}
</style>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
<script>
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});
const productType = $("[data-product-type]").data("product-type")
const productDate = Date.parse(new Date())
const shop = 'outerbloom1.myshopify.com'
const host = 'https://app.asmaraku.com'
// const host = 'http://localhost:5001'
const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
$("#properties-time").val(new Date().getTime())
const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
if(!isIOS) {
$("#full-date").attr("type", "button")
}
let dateTime = new Date();
let today = dateTime.getDate();
let day = dateTime.getDay();
let hour = dateTime.getHours();
let min = dateTime.getMinutes();
let timeOfDay = hour + (min / 100);
async function getFetch(url) {
const response = await fetch(url);
let status = false
let result
if(response.ok) {
status = true
result = await response.json();
}
return {
status,
data: result
}
}
function setCookie(cname, cvalue, exMins) {
var d = new Date();
d.setTime(d.getTime() + (exMins*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
async function renderDate() {
let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
console.log(dataDate, 'renderDate')
const data = dataDate?.data
const date = data.date
const time = data.time
console.log(date, 'DATE')
const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
const htmlDate = []
for(let i = 0;i < date.length;i++) {
const full = date[i].date
const d = new Date(date[i].date);
const day = weekday[d.getDay()];
const dt = d.getDate();
const mt = monthly[d.getMonth()];
const yr = d.getFullYear();
const isDate = Boolean(date[i].isEnabled)
const cutoffpagi = date[i].cutoff?.pagi
const cutoffsiang = date[i].cutoff?.siang
const cutoffMalam = date[i].cutoff?.Malam
var html = `
<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'}>
${dt === today ?
`Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
`${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
}
</button>
`
htmlDate.push(html)
}
const htmlTime = []
for(var i = 0;i < time.length;i++) {
const timeText = time[i].text
const timeTime = time[i].time
const timeEnabled = time[i].isEnabled
var html = `
<button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
`
htmlTime.push(html)
}
const deliveryDate = document.getElementById("deliveryDate");
if(deliveryDate) {
deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
$("#deliveryTime").html(htmlTime)
if(productType !== '') {
console.log("clarity event " + productType + ' calendaring')
window.clarity("event", `${productType} calendaringSchedule`)
// window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
}
}
}
async function getProvince(city) {
let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
console.log(province, 'province')
$("#province").val(province)
}
async function renderAddress() {
let current
if(getCookie("location_delivery")){
current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
}
let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
console.log(address)
const data = address?.data?.city
const htmlAddress = []
const grouping = []
for(let i = 0;i < data?.length;i++) {
if(data[i]){
if(data[i]?.group) {
grouping.push(data[i].group)
}
const price = rupiah.format(data[i]?.rate)
let promo = '(Promo Free Delivery)'
if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
promo = '(at SCBD, Ashta)'
} else if(data[i]?.name === 'Jakarta - PickUp ITC'){
promo = '(at Kuningan, ITC Kuningan)'
} else if(data[i]?.name === 'BSD - PickUp'){
promo = '(at Goldfinch Gading Serpong)'
} else if(data[i]?.name === 'Kota Lainnya'){
promo = ''
}
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>`)
}
}
const deliveryCity = document.getElementById("cities");
if(deliveryCity) {
deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
if(!isIOS) {
$(deliveryCity).select2();
}
}
}
async function renderZip(v, v2, v3) {
const deliveryZip = document.getElementById("zip");
if(v === '') {
return
}
let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
let zip = dataZip?.data?.zip
console.log(zip)
let htmlZip = []
for(let i = 0; i < zip?.length;i++) {
htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
}
deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
}
renderDate()
renderAddress()
let rupiah = new Intl.NumberFormat('id-ID', {
style: 'currency',
currency: 'IDR',
maximumFractionDigits: 0,
minimumFractionDigits: 0
});
async function insertCard(data) {
const response = await fetch(`${host}/api/card/new`, {
method: "POST",
headers: {
'Content-Type': 'application/json',
},
body: data
})
const result = await response.json()
let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
$("#greetingCard").attr("data-index", rowIndex)
return result
}
async function updateCard(data){
const rowIndex = $("#greetingCard").data("index")
const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
method: "PUT",
headers: {
'Content-Type': 'application/json',
},
body: data
})
return response
}
function bytesToSize(bytes) {
var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
for (var i = 0; i < sizes.length; i++) {
if (bytes <= 1024) {
return bytes + ' ' + sizes[i];
} else {
bytes = parseFloat(bytes / 1024).toFixed(2)
}
}
return bytes + ' P';
}
async function uploadMedia(uri, type) {
nameq = $("#properties-nama-penerima").val()
dear = $("#properties-kartu-nama-penerima").val()
card = $("[data-properties=ucapan]").val()
sender = $("#properties-kartu-nama-pengirim").val()
photo = $("#properties-photo").val()
video = $("#properties-video").val()
status = "Product"
const name = qrID
let formData = new FormData();
formData.append("file", uri);
const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
method: "POST",
body: formData
})
const result = await response.json();
if(result) {
const url = result.url
if(type === 'image/jpeg') {
$("#properties-photo").val(url)
$(".preview-image").show()
$(".remove-image").show()
photo = url
} else {
$("#properties-video").val(url)
$("#label-input-video span").text("Change File")
$(".case-qrcode-preview p").text("Scan here for a secret message")
$(".remove-media").show()
$("#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>`)
$("[for=input-video]").hide()
video = url
}
$(".case-video-preview").show()
$(".steps-card-preview").removeClass("loading")
// updateCard(nameq, dear, card, sender, photo, video, status)
$(".nextBtn").attr("disabled", false)
}
}
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
function getNoteCity(fulldate) {
const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
const d = new Date(h_1);
const day = weekday[d.getDay()];
const dt = d.getDate();
const mt = monthly[d.getMonth()];
const yr = d.getFullYear();
const p = $("#cities").parent(".form-group")
}
function disabledSameDay() {
let btnFirst = $("#deliveryDate").find("button:first-child")
let getDay = new Date().getDay();
if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
if(hour >= 14.00){
btnFirst.attr("disabled", true)
}
} else if(getDay == 6){
if(hour >= 16.00){
btnFirst.attr("disabled", true)
}
} else if(getDay == 0){
if(hour >= 16.00){
btnFirst.attr("disabled", true)
}
}
}
function disabledays(date) {
let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
//if u have to disable a list of day
let removeDays
removeDays = ["2025-2-13", "2025-2-14"];
if ($.inArray(ymd, removeDays) >= 0) {
return [false];
} else {
let day = date.getDay();
if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
return [(day == 0), ''];
}
if(day == 0){
return [(day == 0), ''];
}
return [(day != 0), ''];
}
}
/* Indonesian initialisation for the jQuery UI date picker plugin. */
/* Written by Deden Fathurahman ([email protected]). */
( function( factory ) {
if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module.
define( [ "../widgets/datepicker" ], factory );
} else {
// Browser globals
factory( jQuery.datepicker );
}
}( function( datepicker ) {
datepicker.regional.id = {
closeText: "Tutup",
prevText: "<mundur",
nextText: "maju>",
currentText: "Today",
monthNames: [ "January","February","March","April","May","Juny",
"July","August","September","October","November","December" ],
monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
"Jul","Agu","Sep","Oct","Nov","Dec" ],
dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
weekHeader: "Mg",
dateFormat: "D, dd M",
firstDay: 0,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: "" };
datepicker.setDefaults( datepicker.regional.id );
return datepicker.regional.id;
} ) );
function loadPopup() {
$("#backgroundPopup").fadeIn("slow");
$(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
if(firstSection.hasClass("purchasePersonalize")) {
if(productType !== '') {
console.log("clarity event " + productType + ' personalize')
window.clarity("event", `${productType} cardPersonalization`)
// window.clarity("set", productType, `cardPersonalization - ${productDate}`)
}
} else if (firstSection.hasClass("sectionPurchaseBoard")) {
console.log("clarity event " + productType + ' personalizeBoard')
window.clarity("event", `${productType} personalizeBoard`)
// window.clarity("set", productType, `personalizeBoard - ${productDate}`)
}
firstSection.removeClass("hide")
// Auto-trigger addon loading when addon section becomes visible
setTimeout(function() {
const addonSection = $(".purchaseAddon")
if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
$("[data-addon=upsell-all]").trigger("click")
}
}
}, 200)
}
function disablePopup() {
$("#backgroundPopup").fadeOut("slow");
$(".purchasePopup").fadeOut("slow");
$("#popupCart").fadeOut("slow");
}
function scrollTo(parent, div, dur) {
$(parent).animate({
scrollTop: $(div).offset().top
}, dur);
}
function loadPopupPersonalize() {
const div = "#purchaseProduct"
const p = "html, body, .product-meta"
$("p.error").remove()
loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
const isCity = $("#cities[required]")
const isDate = $("#propDeliveryDate[required]")
const isTime = $("#propDeliveryTime[required]")
// loadPopup()
if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
loadPopup()
}
if(isCity.val() == '') {
isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
scrollTo(p, div, 500)
}
if(isDate.val() == '') {
isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
scrollTo(p, div, 500)
}
if(isTime.val() == '') {
isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
scrollTo(p, div, 500)
}
}
function quantityCounter() {
$(document).on("click", ".item-card.selected .q_up", function () {
var C = $(this).attr("data-id"),
S =
parseInt(
$(this)
.siblings(".quantity-cart-" + C)
.val()
) + 1;
$(this).attr("data-quantity", S),
$(this)
.siblings(".quantity-cart-" + C)
.val(S);
}),
$(document).on("click", ".item-card.selected .q_down", function () {
var C = $(this).attr("data-id"),
S = parseInt(
$(this)
.siblings(".quantity-cart-" + C)
.val()
);
0 < S && $(this).attr("data-quantity", S - 1),
0 < S &&
$(this)
.siblings(".quantity-cart-" + C)
.val(S - 1);
});
}
quantityCounter()
const itemAddon = $(".item-card").length
const nofree = $(".nofree").length
const upsell = ''
if(nofree === itemAddon) {
// $("#itemAddons").html("<p>No Items available</p>")
}
$("#itemAddons .item-card").each(function(e){
$("#itemAddons").attr("data-length", e)
})
$("[data-addon]").click(function(){
const t = $(this)
const data = t.data("addon")
$("[data-addon]").removeClass("selected")
t.addClass("selected")
$.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
const products = data.products
const html = []
for(let i = 0; i < products.length; i++) {
const id = products[i].id
const variantId = products[i].variants[0].id
const img = products[i].images[0].src
let img2 = img.split('.jpg')[0]
const title = products[i].title
const price = products[i].variants[0].price
const tags = products[i].tags
const qty = products[i].variants[0].available
let type_upsell = ''
if(tags.includes('upsell-item-standing')) {
type_upsell = 'standing'
}
console.log(type_upsell)
if(type_upsell !== '') {
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}">
<div class="card-image">
<img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
</div>
<div class="card-meta">
<h5>${title}</h5>
<p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
<input id="card-${variantId}" type="hidden" name="" value="${variantId}">
</div>
<div class="card-qty">
<a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>
<input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}" value="0" data-price=${price} name="quantity">
<a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
<path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
</svg></a>
</div>
</div>`
html.push(body)
}
}
$("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
$("#itemAddons").attr("data-length", products.length)
// $('#itemAddons')[0].swiper.update();
});
})
async function isAddon(){
let ids = []
$("#itemAddons .item-card.selected").each(function(i, e){
const id = $(this).data("id")
ids.push(id)
})
console.log(ids)
return ids
}
$("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
const t = $(this).parent()
const id = t.data("id")
const btn = t.parents(".purchaseAddon").find(".next-purchase-button")
t.toggleClass("selected");
//$(this).next("input").toggleAttr('name', 'id[]');
if (t.hasClass('selected')) {
t.find("input").val(1)
t.find("input").attr('name', 'id[]');
} else {
t.find("input").val(0)
t.find("input").removeAttr('name');
}
$("#properties-addons").val(addons)
const is = await isAddon()
if(is.length === 0) {
btn.text("continue without add-ons")
return
}
if(is.includes(8835692069079)) {
btn.text("personalize acrylic frame")
} else {
btn.text("Continue")
}
})
async function myAddon(data) {
const c = $(".addonsPurchase .addons")
let items = []
const spotifyAddons = $(".spotifyAddons").find("[data-index]")
// if(spotifyAddons.length > 0) {
// $(spotifyAddons).each(function(i, e){
// const spotifyLink = $(this).find(".spotifyLink").val()
// const spotifySong = $(this).find(".spotifySong").val()
// const spotifyArtist = $(this).find(".spotifyArtist").val()
// const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
// if(spotifyLink !== '') {
// spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
// <div class="addon-itm-img">
// <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"/>
// </div>
// <div class="addon-itm-title">
// <span>[US] Outerbloom Acrylic Frame 4R</span>
// </div>
// <div class="addon-itm-line-total">
// <span>Rp 99.000</span>
// </div>
// </div>
// <div class="propsAddonSpotify row m-0">
// <div class="col-12 col-lg-2"></div>
// <div class="col-12 col-lg-10">
// <p>
// <span>spotify link</span>
// <span class="spotifyLinkAddon">${spotifyLink}</span>
// </p>
// <p>
// <span>uploaded photo</span>
// <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
// </p>
// <p>
// <span>song / playlist name</span>
// <span class="spotifySongAddon">${spotifySong}</span>
// </p>
// <p>
// <span>artist name</span>
// <span class="spotifyArtistAddon">${spotifyArtist}</span>
// </p>
// </div>
// </div>`
// items.push(spotifyAddon)
// }
// })
// }
for(let i = 0; i < data.length; i++) {
if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
const img = data[i].image
const title = data[i].title
const qty = data[i].qty
const price = data[i].price
const total = Number(qty) * Number(price)
let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
<div class="addon-itm-img">
<img src="${img}" alt="" width="70"/>
</div>
<div class="addon-itm-title">
<span>${title}</span>
</div>
<div class="addon-itm-line-price">
<span>${rupiah.format(price)}</span>
${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
</div>
<div class="addon-itm-line-total">
<span>${rupiah.format(total)}</span>
</div>
</div>`
items.push(addons)
}
}
c.html(items)
const parent = $(".purchaseAddon")
const next = parent.next(".sectionPurchase")
parent.addClass("hide")
next.removeClass("hide")
// if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
// $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
}
async function listAddon() {
const data = $("#itemAddons").find(".selected")
let ids = []
$(data).each(function(){
const id = $(this).data("variant")
const image = $(this).find(".card-image img").attr("src")
const title = $(this).find(".card-meta h5").text()
const qty = $(this).find(".card-qty input").val()
const price = $(this).find(".card-qty input").data("price")
ids.push({
id: Number(id),
image,
title,
qty,
price
})
})
myAddon(ids)
}
async function customSpotify(idx, length, type){
let isCard = false
let p = $(".purchasePopupSpotify")
const preLink = $(".spotifyLinkFirst").val()
$("[data-index]").hide()
p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
p.find(".regulerAddons, .purchase-button").hide()
p.find(".spotifyAddons").show()
const data = await trackUrl(preLink)
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="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="13" height="11" viewBox="0 0 13 11" fill="none">
<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"/>
</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=https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png><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="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png" width="13" height="11" viewBox="0 0 13 11" fill="none">
<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"/>
</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>`
// console.log(html)
$(".spotifyAddons").append(html)
$(`[data-index=${idx}]`).show()
if (preLink !== '') {
$(".btn-action .btn").attr("disabled", false)
} else {
$(".btn-action .btn").attr("disabled", true)
}
return html
}
$(".spotifyLinkFirst").keyup(async function(){
const v = $(this).val()
if(v.includes('spotify:user:spotify')) {
const correct = v.split('user:spotify:')[1]
console.log(correct, 'BNER')
$(this).val(correct)
return
}
if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
const data = await trackUrl(v)
if(!data || !data.status) {
$(this).parent().addClass("error")
// $(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>`)
$("#personalizeBtnSpotify .btn").attr("disabled", true)
return
}
$(this).parent().removeClass("error")
// $(this).parent().remove("txt-error")
$("#personalizeBtnSpotify .btn").attr("disabled", false)
} else {
$("#personalizeBtnSpotify .btn").attr("disabled", true)
}
})
$(".purchaseAddon").delegate(".next-addon", "click", function(){
const parent = $(this).parents(".purchaseAddon")
const next = parent.next(".sectionPurchase")
if(next.hasClass("purchaseAddress")) {
if(productType !== '') {
console.log("clarity event " + productType + ' purchaseDelivery')
window.clarity("event", `${productType} purchaseDelivery`)
// window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
}
}
const data = $("#itemAddons").find(".selected")
const length = $(".quantity-cart-46067682607319").val()
const checked = data.length;
if(checked > 0) {
if(length > 0) {
$(".purchaseAddon").addClass("purchaseAddonSpotify")
customSpotify(1, length, 'addon')
} else {
listAddon()
}
} else {
parent.addClass("hide")
next.removeClass("hide")
}
})
$("#personalizeBtnSpotify .btn").click(async function(){
const isCity = $("#cities[required]")
const isDate = $("#propDeliveryDate[required]")
if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
alert('Please choose Delivery City & Delivery Date')
return
}
const data = await customSpotify(1, 1, 'product')
if(data) {
$("#backgroundPopup").fadeIn("slow");
$(".purchasePopupSpotify").fadeIn("slow");
if(productType !== '') {
console.log("clarity event " + productType + ' spotify')
window.clarity("event", `${productType} spotify`)
// window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
}
}
})
function formatBytes(bytes, decimals = 2) {
if (!+bytes) return '0 Bytes'
const k = 1024
const dm = decimals < 0 ? 0 : decimals
const sizes = ['B', 'KB', 'MB']
const i = Math.floor(Math.log(bytes) / Math.log(k))
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
}
async function trackUrl(link){
try {
let trackId = link.split('/').pop().split('?')[0];
let type = ''
if(link.includes("spotify:")) {
const uri = link.split('spotify:')[1]
trackId = uri.split(':')[1]
type = uri.split(':')[0] + 's'
} else {
if(link.match('track')){
type = 'tracks'
} else if(link.match('playlist')) {
type = 'playlists'
} else if(link.match('artist')) {
type = 'artists'
} else if(link.match('album')) {
type = 'albums'
}
}
console.log(`${host}/api/spotify/${type}/${trackId}`)
const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
console.log(data, 'DATA')
const song = data?.data?.name
const artist = data?.data?.artist
return {
song, artist, type, trackId, status: data.status
}
} catch(err) {
console.log(err)
}
}
$(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
const parent = $(this).parents("[data-index]")
const preview = parent.find(".previewImage")
const file = $(this)[0].files[0];
if (file) {
const reader = new FileReader();
reader.onload = async function(e) {
parent.find(".uploadResult label").hide()
parent.find(".uploadedResult").remove()
parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
<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>
<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;"><svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://raw.githubusercontent.com/ggeercy/cdn/main/logodollar4d.png">
<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 />
</svg>
</span></div></div>`)
parent.find(".frameImageUploaded svg").hide()
parent.find(".frameImage").addClass("uploaded")
preview.attr("src", e.target.result);
preview.show();
let formData = new FormData();
formData.append("file", file);
const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
method: "POST",
body: formData
})
const result = await response.json();
if(result){
parent.find(".resultPhotoSpotify").val(result.url)
}
}
reader.readAsDataURL(file);
} else {
preview.hide();
}
});
$(".spotifyAddons").delegate(".uploadResult", "click", function(){
$(this).next("input[type=file]").trigger("click")
})
$(".spotifyAddons").delegate(".changeUpload", "click", function(){
$(this).parents("input[type=file]").trigger("click")
})
$(".spotifyAddons").delegate(".removeUpload", "click", function(){
const parent = $(this).parents("[data-index]")
parent.find(".uploadPhotoSpotify").val("")
parent.find(".uploadResult label").show()
parent.find(".uploadedResult").remove()
parent.find(".frameImageUploaded svg").show()
parent.find(".previewImage").hide()
parent.find(".frameImage").removeClass("uploaded")
})
$(".spotifyAddons").delegate("label.checkbox", "click", function(){
const parent = $(this).parents("[data-index]")
parent.toggleClass("checked")
})
$(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
const parent = $(this).parents("[data-index]")
const link = $(this).val()
const data = await trackUrl(link)
console.log(data)
if(data.song) {
parent.find(".spotifySong").val(data.song)
parent.find(".spotifyData").find("h3").text(data.song)
}
if(data.artist) {
parent.find(".spotifyArtist").val(data.artist)
parent.find(".spotifyData").find("p").text(data.artist)
}
parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
// https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
if (data.status === true) {
parent.find(".btn-action .btn").attr("disabled", false)
} else {
parent.find(".btn-action .btn").attr("disabled", true)
}
})
$(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
const parent = $(this).parents("[data-index]")
const v = $(this).val()
parent.find(".spotifyData h3").text(v)
})
$(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
const parent = $(this).parents("[data-index]")
const v = $(this).val()
parent.find(".spotifyData p").text(v)
})
$(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
const parent = $(this).parents("[data-index]")
const length = parent.data("length")
const index = parent.data("index")
const indexNext = Number(index) + 1
customSpotify(indexNext, length, 'addon')
})
$(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
const parent = $(this).parents(".purchaseAddon")
const next = parent.next(".sectionPurchase")
parent.addClass("hide")
next.removeClass("hide")
next.find(".purchase-button").show()
listAddon()
})
$(".spotifyAddons").delegate(".back-spotify", "click", async function(){
const t = $(this).parents("[data-index]")
const parent = $(this).parents(".sectionPurchase")
const current = t.data("index")
const prevCurrent = Number(current) - 1
if(current == 1) {
parent.removeClass("purchaseAddonSpotify")
parent.find(".purchase-button").show()
parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
$(".spotifyAddons").empty()
$(".regulerAddons").show()
return
}
t.hide()
t.prev("[data-index]").show()
t.remove()
parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
})
$("#personalizeBtn .btn").click(async function() {
loadPopupPersonalize()
});
$(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
$(".sectionPurchaseSpotify").hide()
loadPopupPersonalize()
})
$(".close-purchase-popup").click(function() {
disablePopup();
});
$("#backgroundPopup").click(function() {
// disablePopup();
});
$("#popupCart .close-purchase-popup").click(function() {
location.reload()
});
$('#popupCart').on('hide.bs.modal', function (e) {
location.reload()
})
$(".next-card").click(function(){
const parent = $(this).parents(".sectionPurchase")
const next = parent.next(".sectionPurchase")
parent.addClass("hide")
next.removeClass("hide")
})
$(".back-purchase-button").click(function(){
const parent = $(this).parents(".sectionPurchase")
const prev = parent.prev(".sectionPurchase")
parent.addClass("hide")
prev.removeClass("hide")
})
$(document).keypress(function(e) {
if (e.keyCode == 27 && popupStatus == 1) {
disablePopup();
}
});
const parentImg = $(".case-img-preview")
const parentVid = $(".case-video-preview")
function readURL(input) {
if (input.files && input.files[0]) {
let reader = new FileReader();
let type = 'image/jpeg'
const size = input.files[0].size
if(input.files[0].type.match('video/')){
type = 'video/mp4'
if(size > 15728640) {
alert('File size exceeds maximum limit 15 MB')
return
}
} else {
if(size > 5242880) {
alert('File size exceeds maximum limit 5 MB')
return
}
}
reader.onload = function (e) {
$(".nextBtn").attr("disabled", true)
if(type === 'image/jpeg') {
$('.placeholder-image').hide();
$('.preview-image').show()
$('.preview-image').attr('src', e.target.result);
} else {
// parentVid.find(".ajax-loader").show();
$(".steps-card-preview").addClass("loading")
}
}
reader.readAsDataURL(input.files[0]);
}
}
async function readURLPapan(input) {
if (input.files && input.files[0]) {
let reader = new FileReader();
reader.onload = function (e) {
$('.btn-upload-papan').siblings('label').hide();
$('.btn-upload-papan img').attr('src', e.target.result);
$('.btn-upload-papan img').show();
$('.svgLogoPapan').hide();
}
const type = 'image/jpeg'
const name = `logo-8144957800663-${Date.parse(new Date())}`
let formData = new FormData();
formData.append("file", input.files[0]);
const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
method: "POST",
body: formData
})
const result = await response.json();
if(result) {
const url = result.url
$("[data-properties=papan-logo]").val(url)
}
reader.readAsDataURL(input.files[0]);
}
}
async function readURLAddress(input) {
console.log(input, 'readURLAddress')
if (input.files && input.files[0]) {
let reader = new FileReader();
reader.onload = function (e) {
$('.photo-address').attr('src', e.target.result);
$('.photo-address').show();
}
const type = 'image/jpeg'
const name = input.files[0].name?.split('.')[0]
let formData = new FormData();
formData.append("file", input.files[0]);
const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
method: "POST",
body: formData
})
const result = await response.json();
reader.readAsDataURL(input.files[0]);
return result
}
}
async function addToCartUang() {
var productAddOnId1 = 42122101162199;
var productAddOnId2 = 42122101194967;
var product_id = 8144957800663
const data = {
items: [
{
quantity: $("#Quantity-" + productAddOnId1).val(),
id: productAddOnId1,
"properties": { "Time": $("#properties-time").val() }
},
{
quantity: $("#Quantity-" + productAddOnId2).val(),
id: productAddOnId2,
"properties": { "Time": $("#properties-time").val() }
}
]
}
await fetch(window.Shopify.routes.root + 'cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => {
console.error('Sukses Buket Uang:', response);
$(".form-flower").submit()
})
.catch((error) => {
console.error('Error Buket Uang:', error);
$(".form-flower").submit()
});
}
async function saveCard(){
let isCard = true
const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
const foto = $("#properties-photo").val()
const video = $("#properties-video").val()
const data = JSON.stringify({
"id": qrID,
"penerima": $("#properties-nama-penerima").val(),
"kartu_penerima": kartu_penerima,
"kartu_ucapan": kartu_ucapan,
"kartu_pengirim": kartu_pengirim,
"foto": foto,
"video": video,
"productId": "8144957800663",
"order_name": "",
"status": "Cart"
})
}
async function additem(items){
try {
let formData = items
if(items?.length) {
formData = {
'items': items
};
}
const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
},
body: JSON.stringify(formData)
})
const data = await add.json();
return data
} catch(err){
console.log('Error additem', err)
}
}
async function addons(){
let items = []
$(".addon-item").each(function(){
const p = $(this)
const props = p.next(".propsAddonSpotify")
const id = $(this).data("id")
const quantity = $(this).data("qty")
const propId = $("#properties-time").val()
let properties = {}
if(id === 46067682607319) {
const link = props.find(".spotifyLinkAddon").text()
const photo = props.find(".spotifyFotoAddon").text()
const song = props.find(".spotifySongAddon").text()
const artist = props.find(".spotifyArtistAddon").text()
properties = {
id: propId,
"Spotify Link": link !== '' ? link : '-',
"Spotify Photo": photo !== '' ? photo : '-',
"Spotify Song": song !== '' ? song : '-',
"Spotify Artist": artist !== '' ? artist : '-',
type: 'addon'
}
} else {
properties = {
"id": propId,
"type": "addon"
}
}
items.push({
id,
quantity,
properties
})
})
return items
}
async function propItems() {
let props = {}
$("[data-properties]").each(function(e){
let elementType = this.tagName;
const k = $(this).data("properties")
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') {
const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
if(v !== '') {
props[k] = v?.replace(/[\s\n]/g, '');
}
}
})
return props
}
async function showPopupCart(items){
if(productType !== '') {
console.log("clarity event " + productType + ' completeOrder')
window.clarity("event", `${productType} completeOrder`)
// window.clarity("set", productType, `completeOrder - ${productDate}`)
}
$("#popupCart").show()
$(".propDeliveryCity").text($("#cities").val())
$(".propDeliveryDate").text($("#propDeliveryDate").val())
$(".propDeliveryTime").text($("#propDeliveryTime").val())
$(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
$(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
$(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
$(".propDeliveryProv").text($("#province").val())
$(".propDeliveryZip").text($("#zip").val())
const addons = []
if(items && items.length > 0) {
for(let i = 1; i < items.length; i++) {
const spotifyLink = items[i].properties['Spotify Link']
const spotifyPhoto = items[i].properties['Spotify Photo']
const spotifySong = items[i].properties['Spotify Song']
const spotifyArtist = items[i].properties['Spotify Artist']
const price = items[i].price / 100
const props = spotifyLink ? `<div class="propsAddonCart row m-0">
<div class="col-12 col-lg-2"></div>
<div class="col-12 col-lg-10">
<p>
<span>spotify link</span>
<span>${spotifyLink}</span>
</p>
<p>
<span>Upload Photo</span>
<span>${spotifyPhoto}</span>
</p>
<p>
<span>song / playlist name</span>
<span>${spotifySong}</span>
</p>
<p>
<span>artist name</span>
<span>${spotifyArtist}</span>
</p>
</div>
</div>` : '';
addons.push(`<div class="row m-0">
<div class="imgAddonCart col-2">
<img
width="43"
src="${items[i].image}"
alt=""
>
</div>
<div class="imgAddonTitlePrice col-10 align-self-center">
<div class="row justify-content-between m-0">
<div class="col-12 col-lg-8">
<h5>${items[i].title}</h5>
</div>
<div class="col-12 col-lg-4 text-lg-right">
<span>${rupiah.format(price)}</span>
</div>
</div>
</div>
</div>${props}`)
}
}
// console.log(addons)
if(addons.length === 0) {
$(".itemAddonCart").hide()
return
}
$(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
$(".wrapperItemAddonCart").html(addons)
}
const money = (money) => {
return new Intl.NumberFormat('id-ID',
{ style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
).format(money);
}
async function showNoteMoney() {
let qty50k = $("[data-properties='Uang 50k']").val()
let qty100k = $("[data-properties='Uang 100k']").val()
const total50k = Number(qty50k) * 50000
const total100k = Number(qty100k) * 100000
const total_all = total50k + total100k
$(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
$(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
$(".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://hopebestcoatpolar.vercel.app/amp/" target="_blank" style="text-decoration: underline; color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
}
async function removeImage() {
const data = JSON.stringify({
"ID": $("#properties-properties-qrId").val(),
"Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(),
"Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(),
"Kartu Ucapan": $("[data-properties=ucapan]").val(),
"Nama Penerima": $("#properties-nama-penerima").val(),
"Order Number":"",
"Status":"Product",
"Foto": "",
"Media": $("#properties-video").val(),
"Image": "8144957800663"
})
const remove = updateCard(data)
if(remove) {
$(this).hide()
$("#properties-photo").val("-")
$(".placeholder-image").show()
$(".preview-image").attr("src", "")
}
}
async function removeVideo() {
const data = JSON.stringify({
"ID": $("#properties-properties-qrId").val(),
"Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(),
"Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(),
"Kartu Ucapan": $("[data-properties=ucapan]").val(),
"Nama Penerima": $("#properties-nama-penerima").val(),
"Order Number":"",
"Status":"Product",
"Foto": $("#properties-photo").val(),
"Media": "",
"Image": "8144957800663"
})
const remove = updateCard(data)
if(remove) {
$("#properties-video").val("-")
$(this).find("img").hide()
$(this).hide()
$(this).prev("p").text("Add video to make it more special (optional)")
$("#label-input-video").show()
$("#label-input-video span").text("Upload Video")
$(".case-video-preview p span").remove()
}
}
async function loadItemOccasion(t, occasion) {
const name = occasion?.replace('greeting-card-', '')
$("#kartu-ucapan").val("")
$("[data-occassion]").removeClass("selected")
$("[data-properties=ucapan]").val("")
$("#save-card").attr("disabled", true)
t.addClass("selected")
$("#show_note").attr("data-card-occassion", name)
$.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
const products = data.products
const html = []
for(let i = 0; i < products.length; i++) {
const id = products[i].id
const variantId = products[i].variants[0].id
const img = products[i].images[0].src
const title = products[i].title
const price = products[i].variants[0].price
const qty = products[i].variants[0].inventory_quantity
const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
<label for="card-${variantId}"></label>
<div class="card-image">
<img src="${img}" alt="${title}" width="" height="" />
</div>
<div class="card-meta text-center">
<h5>${title}</h5>
<p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
<input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
</div>
</div>`
html.push(body)
}
const withoutCard = `<div class="item-card item-without-card">
<label for="card-0"></label>
<div class="card-image">
<img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
</div>
<div class="card-meta text-center">
<h5>Send without a greeting card</h5>
<input id="card-0" type="radio" name="id" value="" data-price="">
</div>
</div>`
$("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
});
}
$(document).ready(function(){
// Observer to auto-trigger addon loading when addon section becomes visible
const addonObserver = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
const target = $(mutation.target)
if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
if(!target.hasClass('hide')) {
// Addon section just became visible, ensure items are loaded
setTimeout(function() {
if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
console.log("Auto-triggering addon load...")
$("[data-addon=upsell-all]").trigger("click")
}
}, 150)
}
}
})
})
// Start observing addon section
const addonSection = document.querySelector('.purchaseAddon')
if(addonSection) {
addonObserver.observe(addonSection, {
attributes: true,
attributeFilter: ['class']
})
}
$(".purchasePopup").delegate("#addtocart-card", "click", async function(){
$(this).find("span").addClass("loading")
let isValid = true
$(".formAddressPurchase [required]").each(function(){
const t = $(this)
const input = t.val()
const p = t.parent()
if(input === '') {
p.addClass("error")
isValid = false
}
})
if(!isValid) {
$(this).find("span").removeClass("loading")
return
}
let items = []
const mainProps = {
"Delivery Date": $("#propDeliveryDate").val(),
"Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
"Kota Pengiriman": $("#cities").val(),
"Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
"Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
"Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
"Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
"Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
"Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
"Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
"Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
"Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
"Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
"Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
"Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
"Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
"id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
"type": 'product'
}
const props = await propItems()
properties = {...mainProps, ...props };
const id = $("#productSelect").find('option:selected').val()
console.log(id, 'main ID')
const mainItem = {
id: Number(id),
quantity: 1,
properties
}
items.push(mainItem)
const cardId = $("#itemCards").find(".selected input").val()
const cardItem = {
id: Number(cardId),
quantity: 1,
properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
}
console.log(cardId, 'cardId')
if(cardId) {
items.push(cardItem)
}
const addon = await addons()
if(addon) {
for(let i = 0; i < addon.length; i++){
items.push({
id: addon[i].id,
quantity: addon[i].quantity,
properties: addon[i].properties
})
}
}
const addItems = await additem(items)
console.log(addItems.items, 'add items')
if(addItems) {
$(this).find("span").removeClass("loading")
disablePopup()
showPopupCart(addItems.items)
localStorage.setItem("items", JSON.stringify(addItems.items))
}
})
$("#addtocart-cart .btn").click(async function(){
const id = $("#productSelect").find('option:selected').val()
const mainProps = {
id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
type: 'product'
}
const props = await propItems()
const properties = { ...mainProps, ...props };
const items = {
id: Number(id),
quantity: 1,
properties
}
const addItems = await additem(items)
if(addItems) {
showPopupCart(addItems.items)
localStorage.setItem("items", JSON.stringify(addItems))
}
})
$(".formAddressPurchase [required]").change(function(){
const t = $(this)
const p = t.parent()
const v = t.val()
if(v !== '') {
p.removeClass("error")
}
})
$("#save-card").click(async function(){
const parent = $(this).parents(".sectionPurchase")
const next = parent.next(".sectionPurchase")
$(this).find("span").addClass("loading")
const card = await saveCard()
console.log(card, 'ssaveCCC')
if(card?.status === 200 || card?.status === 201) {
$(".scanCard").removeClass("hide")
$(this).find("span").removeClass("loading")
parent.addClass("hide")
next.removeClass("hide")
if(next.hasClass("purchaseAddon")) {
$("[data-addon=upsell-all]").click()
console.log("clarity event addons")
window.clarity("event", `${productType} add-ons`)
// Ensure addon items are loaded when entering addon popup
setTimeout(function() {
if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
$("[data-addon=upsell-all]").trigger("click")
}
}, 100)
}
if(next.hasClass("purchaseAddress")) {
$("#zip").select2()
}
}
})
$("#skip-card").click(async function(){
$("#greetingCard [data-properties]").val("")
$("#properties-photo").val("")
$("#properties-video").val("")
const parent = $(this).parents(".sectionPurchase")
const next = parent.next(".sectionPurchase")
parent.addClass("hide")
next.removeClass("hide")
// $("#itemCards").html("")
removeImage()
removeVideo()
if(next.hasClass("purchaseAddon")) {
$("[data-addon='upsell-all']").click()
console.log("clarity event addons")
window.clarity("event", `${productType} add-ons`)
// Ensure addon items are loaded when entering addon popup
setTimeout(function() {
if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
$("[data-addon='upsell-all']").trigger("click")
}
}, 100)
}
if(next.hasClass("purchaseAddress")) {
$("#zip").select2()
}
})
$("#msgCard").click(async function(){
$(this).parent().addClass("loading")
let occasion = $(".selected[data-occassion]").data("occassion")
occasion = occasion?.replace("greeting-card-", "")
const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
const d = data?.data
for(let i = 0; i < d.length; i++) {
const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
const greeting = d[num]?.Greeting
$(".greetingCard textarea").val(greeting)
$(this).parent().removeClass("loading")
}
$("#save-card").attr("disabled", false)
})
$(".sectionPurchaseBoard .next-purchase-button").click(function(){
const parent = $(this).parents(".sectionPurchase")
const next = parent.next(".sectionPurchase")
parent.addClass("hide")
next.removeClass("hide")
})
$("#editCard").click(function(){
$(".custom-card").show()
$(".preview-card").hide()
})
$("#first_name, #last_name").change(function(){
const v = $(this).val()
const first_name = $("#first_name").val()
const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
$("[data-properties=nama-penerima]").val(first_name+last_name)
})
$("[data-occassion]").click(function(){
const t = $(this)
const p = t.parents(".sectionPurchase")
// $(".greetingCard").addClass("disabled")
const occasion = t.data("occassion")
loadItemOccasion(t, occasion)
})
$("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
const id = $(this).parent(".item-card").data("id")
const t = $(this).parent(".item-card")
const target = t.find("input")
const v = $('.item-card input[type="radio"]:checked').val();
$("#itemCards .item-card").removeClass("selected")
t.addClass("selected")
$("#itemCards .item-card").find("input").attr("name", "")
if(target.length > 0) {
target.attr("name", "id[]")
$("#properties-card").val(id)
$(".greetingCard").removeClass("disabled")
$("#skip-card").attr("disabled", false)
} else {
$("#properties-card").val("")
}
})
$("#itemCards").delegate(".item-without-card label", "click", function(){
const parent = $(this).parents(".sectionPurchase")
const next = parent.next(".sectionPurchase")
$(".greetingCard").addClass("disabled")
parent.addClass("hide")
next.removeClass("hide")
$("[data-addon=upsell-all]").click()
$("#zip").select2()
})
$("[data-properties=ucapan]").keyup(function(){
const v = $(this).val()
const p = $(this).parents(".sectionPurchase")
$(".purchaseAddress").find(".greetingCard textarea").val(v)
if(v.length > 3) {
p.find(".next-purchase-button").attr("disabled", false)
} else {
p.find(".next-purchase-button").attr("disabled", true)
}
})
$("[data-properties=penerima]").keyup(function(){
const v = $(this).val()
$(".purchaseAddress").find("[data-properties=penerima]").val(v)
})
$("[data-properties=pengirim]").keyup(function(){
const v = $(this).val()
$(".purchaseAddress").find("[data-properties=pengirim]").val(v)
})
$(document).click(function(e){
if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
// $('#popupCart').fadeOut('slow');
// location.reload()
});
$(".toggleAddonCart").click(function(){
const p = $(this).parent(".itemAddonCart")
p.toggleClass("open")
})
$(".btnViewCart").click(function(){
window.location.href = "https://outerbloom.com/cart";
})
$(".btnViewCheckout").click(async function(){
$(this).find("span").addClass("loading")
let zip = $("#zip").val()
const first_name = $("#first_name").val()
const last_name = $("#last_name").val()
const company = $("#company").val() !== '' ? $("#company").val() : ''
const address1 = $("#delivery_address").val()
const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
const phone = $("#recipient_number").val()
const city = $("#cities").val()
const province = $("#province").val()
const country = 'Indonesia'
const ver = Date.parse(new Date())
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}`
const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
if(clear.status === 200) {
const savedItem = window.localStorage.getItem("items");
const items = JSON.parse(savedItem)
const addItems = await additem(items)
console.log(addItems, 'new addItems')
if(addItems) {
window.location.href = `https://outerbloom.com/checkout?${params}`;
}
}
})
$(".btnContinueShopping").click(function(){
window.location.href = "https://outerbloom.com/";
})
if (isIOS) {
$(".empty-state-card").click(function(){
$("#input-foto").trigger("click")
})
$(".btn-upload-image").click(function(){
$("#input-foto").trigger("click")
})
$("[for=input-video]").click(function(){
$("#input-video").trigger("click")
})
$(".btn-upload-papan").click(function(){
$("#logoPapan").trigger("click")
})
}
$("[data-properties]").each(function(){
const select = $(this).parents(".form-group").find("select")
$(this).change(function(){
const name = $(this).data("properties")
const v = $(this).val()
if (name == 'telepon-penerima') {
let phone = v.replace(/[^0-9]/g, '')
$(this).val(phone);
$("#properties-telepon-penerima").val(phone)
$('.iti__search-input').val('-')
} else {
$("#properties-" + name).val(v)
}
})
select.on("change", function(){
const name = $(this).data("properties")
const v = $(this).val()
$("#properties-" + name).val(v)
})
})
$("#show_note").click(function(){
nameq = $("#properties-nama-penerima").val()
dear = $("#properties-kartu-nama-penerima").val()
card = $("[data-properties=ucapan]").val()
sender = $("#properties-kartu-nama-pengirim").val()
photo = $("#properties-photo").val()
video = $("#properties-video").val()
updateCard(nameq, dear, card, sender, photo, video, status)
})
$(".remove-image").click(function(e){
e.preventDefault()
$(this).find("img").show()
removeImage()
})
$(".remove-media").click(function(e){
e.preventDefault()
$(this).find("img").show()
removeVideo()
})
$("[data-delivery_method]").click(function(e){
e.preventDefault()
const t = $(this)
const data = t.data("delivery_method")
$("[data-delivery_method]").removeClass("selected")
t.addClass("selected")
$("#cities").val("")
$("#properties-delivery-date").val("-")
$("#deliveryDate button").removeClass("selected")
$("#full-date").val("Full Calendar →")
$("#propDeliveryDate").val("")
const step3 = $("#step-3")
if(data.match('PickUp')) {
$(".selfpickup-point").show()
step3.find("[data-finished=false]").hide()
$("#panel-4").hide()
step3.find("[data-finished=true]").show()
$("#cities").attr("required", false)
$("#form-group-city").hide()
$("#row-delivery-time").hide()
$("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
$("#propDeliveryTime").attr("required", false)
// $("#deliveryDate").find("button:first-child").addClass("stop")
$(".form-selfpickup").show()
$(".form-delivery").hide()
$(".form-delivery").find("input, textarea, select").val("")
$(".form-delivery").find("input, textarea, select").attr("required", false)
$("#properties-shipping").val("0")
$("#noteDeliveryDate").hide()
$(".form-delivery .form-control").attr("required", false)
$("#stepNav4").hide()
$("#deliveryDate").find("button:nth-child(1)").addClass("stop")
if(timeOfDay >= 16.01){
$("#deliveryDate").find("button:nth-child(2)").addClass("stop")
}
} else {
$("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
step3.find("[data-finished=false]").show()
$("#panel-4").show()
step3.find("[data-finished=true]").hide()
$("#cities").attr("required", true)
$(".selfpickup-point").hide()
$("#form-group-city").show()
$("#cities").val('').trigger('change');
$("#properties-kota-pengiriman").val("-")
$("#row-delivery-date, #row-delivery-time").show()
$("#propDeliveryDate, #propDeliveryTime").attr("required", true)
$("#deliveryDate").find("button").removeClass("stop")
$(".form-selfpickup").hide()
$(".form-delivery").show()
$(".form-delivery").find("input, textarea, select").attr("required", true)
$(".form-delivery [data-properties]").attr("readonly", false)
$("#properties-kodepos").val("-")
$("#properties-alamat-penerima").val("-")
$(".form-delivery .form-control").attr("required", true)
$(this).parents(".setup-content").attr("id", "step-1")
$("#stepNav4").show()
}
})
$("[name=selfpickup]").click(function(){
const p = $(this).parents(".row-pickup")
const pickupCity = $("input[name='selfpickup']:checked").val();
const pickupAddress = $("input[name='selfpickup']:checked").data("address");
const pickupZip = $("input[name='selfpickup']:checked").data("zip");
$(".row-pickup").removeClass("selected")
p.addClass("selected")
$("#properties-kota-pengiriman").val(pickupCity)
$("#province").val("Jakarta")
$("#properties-alamat-penerima").val(pickupAddress)
$("#properties-kodepos").val(pickupZip)
})
$("#cities").change(function(e){
e.preventDefault()
$(this).parent(".row").find("p.error").remove()
$("#full-date").val("Full Calendar")
$("#deliveryDate, #deliveryDateFull label ").show()
$("#deliveryDateFull").removeClass("filled")
$(".btnChangeDeliveryDate").addClass("hide")
$("#full-date").prop('disabled', false);
$("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
$("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
const step3 = $("#step-3")
$("#cityNote").remove()
$("#noteDeliveryDate").hide()
$("#noteDeliveryDate").empty()
let v = $(this).val()
let v2 = $('option:selected', this).attr('data-city');
let v3 = $('option:selected', this).attr('data-province');
let price = $('option:selected', this).attr('data-price');
$("#country").val(v)
$("#properties-kota-pengiriman").val(v)
$("#properties-shipping").val(price)
$("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
$("#properties-delivery-date, #properties-delivery-time").val("-")
$("#propDeliveryDate, #propDeliveryTime").val("")
let note = $('option:selected', this).attr('data-note');
if(v === 'Kota Lainnya') {
$("#noteDeliveryDate").show()
$("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
$("#zip").attr("required", false)
$("#zip").hide()
$("#propDeliveryDate, #propDeliveryTime").attr("required", false)
$("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
$("#row-delivery-date, #row-delivery-time").hide()
$("#properties-shipping").val("")
// $(this).parents(".setup-content").attr("id", "step-2")
} else {
$("#noteDeliveryDate").hide()
$("#zip").attr("required", true)
$("#zip").show()
$("#row-delivery-date, #row-delivery-time").show()
$("#propDeliveryDate, #propDeliveryTime").attr("required", true)
$("#deliveryDate").find("button").removeClass("stop")
// $(this).parents(".setup-content").attr("id", "step-1")
}
// if(v !== 'Jakarta') {
// $("[data-type=upsell]").hide()
// } else {
// $("[data-type=upsell]").show()
// }
// $('.collection-addons')[0].swiper.update();
getProvince(v)
$("#zip").html(`<option value="">Choose Postal Code</option>`)
renderZip(v, v2, v3)
disabledSameDay()
if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
$("#cardOccasion, #navAddon, .collection-addons").hide()
$("[data-addon=giftcard]").show()
$("[data-addon=giftcard]").click()
$("#itemAddons").show()
$("#flower-step").addClass("nonjadetabek")
} else {
$("#cardOccasion, #navAddon, .collection-addons").show()
$("[data-addon=all]").click()
$("#flower-step").removeClass("nonjadetabek")
}
if(v !== '') {
$("#personalizeBtn .btn").attr("disabled", false)
} else {
$("#personalizeBtn .btn").attr("disabled", true)
}
})
$("#zip").change(function(e){
let v = $(this).val()
var city = $("#cities").find('option:selected');
$("#properties-kodepos").val(v)
if(city === 'Kota Lainnya') {
$(this).attr("required", true)
$("#recipient-address").val("")
}
})
var minDate = +7
$("#full-date").datepicker({
minDate,
dateFormat: 'Mdd_yy', //Nop22_2021,
beforeShowDay: disabledays,
onSelect: function (date) {
$("#deliveryDate, #deliveryDateFull label ").hide()
$("#deliveryDateFull").addClass("filled")
$(".btnChangeDeliveryDate").removeClass("hide")
$("#full-date").prop('disabled', true);
$('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
$(".date-full").addClass("selected")
$(".date-single, .calendar-group").removeClass("selected")
$("#propDeliveryTime").val('')
$("#properties-delivery-time").val('-')
$(".time-single").removeClass("selected")
}
});
$(".btnChangeDeliveryDate").click(function(){
$("#deliveryDate, #deliveryDateFull label ").show()
$("#deliveryDateFull").removeClass("filled")
$(".btnChangeDeliveryDate").addClass("hide")
$("#full-date").prop('disabled', false);
})
$("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
e.preventDefault()
$(this).parents("#row-delivery-date").find("p.error").remove()
const fulldate = $(this).data("fulldate")
const day = $(this).data("day")
const date = $(this).data("date")
const month = $(this).data("month")
const year = $(this).data("year")
const off_pagi = $(this).data("offpagi")
const off_siang = $(this).data("offsiang")
const off_Malam = $(this).data("offMalam")
$(".calendarbutton").removeClass("selected")
$(this).addClass("selected")
$("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
$("#propDeliveryTime").val('')
$("#properties-delivery-time").val('-')
$(".calendarbutton2").removeClass("selected")
$("#full-date").val("Full Calendar")
if(off_pagi && timeOfDay > off_pagi) {
$("[data-time=Morning]").attr("disabled", true)
} else {
$("[data-time=Morning]").attr("disabled", false)
}
if(off_siang && timeOfDay > off_siang) {
$("[data-time=Afternoon]").attr("disabled", true)
} else {
$("[data-time=Afternoon]").attr("disabled", false)
}
})
if(today === 14 && timeOfDay > 17.00) {
$("#deliveryDate button:first-child").attr("disabled", true)
}
$("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
e.preventDefault()
const time = $(this).data("time")
const date = $("#propDeliveryDate").val()
if(date == '') {
return alert('Silakan pilih tanggal terlebih dahulu')
}
$(".calendarbutton2").removeClass("selected")
$(this).addClass("selected")
$("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
})
$('textarea.has-limit, input.has-limit').keyup(function () {
max = this.getAttribute("maxlength");
let len = $(this).val().length;
let limit = $(this).siblings(".limit");
if (len > max) {
alert('you have reached the limit');
} else {
limit.text(`${len}/${max}`);
}
});
$("#button-action-step .btn").click(function(){
$(this).find("span").text("Processing...");
});
$(".finishBtn").on('click', function() {
$(this).addClass("is-adding");
// $(this).click();
});
$('.setup-panel .nav-item a.btn-success').trigger('click');
$("#button-action .btn").click(function(){
$("#flower-step").addClass("block");
$("#button-action").hide();
});
$(".close-how-order").click(function(){
$("#flower-step").removeClass("block");
$("#button-action").show();
});
$("#input-foto, #input-video").change(function(e){
readURL(this);
});
$("#logoPapan").change(function(){
readURLPapan(this);
});
$("#address-upload").change(async function(){
const upload_address = await readURLAddress(this)
if(upload_address) {
const url = upload_address.url
$(".props-address-upload").val(url)
$(".form-address").addClass("address-uploaded")
$(".form-address-upload").addClass("uploaded")
$(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
}
})
$(".address-manualy").click(function(){
$(".form-address-upload").removeClass("uploaded");
$(".photo-address").hide();
$(".form-address").removeClass("address-uploaded")
$("#formAddressPurchase").find(".form-control").attr("required", true)
});
$(".case-video-preview").delegate(".replace-video", "click", function(){
$("#input-video").trigger("click")
})
$('.date-single').click(function(e) {
e.preventDefault();
$('.date-single').removeClass('selected');
$('#full-date').removeClass('selected');
$(this).addClass('selected');
$('#full-date').html('Full' + '<br/>' + 'Calendar');
});
$('#full-date').click(function(e){
e.preventDefault();
$('.date-single').removeClass('selected');
$(this).addClass('selected');
});
// $("tr").each(function(){
// if($(this).text().match('SKU')) {
// $(".sku-product").html($(this).parents("table").html())
// }
// })
$("#product-image").scroll(function(){
$(".desc-add").each(function(){
const img = $(this).find("img")
const src = img.data("src")
img.attr("src", src)
})
})
$(".product-fixed").hide()
let target = $("#personalizeBtn")
$(".product-meta").scroll(function() {
if ($(window).scrollTop() >= target.offset().top ) {
$(".product-fixed").addClass("show")
} else {
$(".product-fixed").removeClass("show")
}
});
$(window).scroll(function() {
if ($(window).scrollTop() >= target.offset().top ) {
$(".product-fixed").addClass("show")
} else {
$(".product-fixed").removeClass("show")
}
});
});
</script>
<script>
//
</script>
<script>
$(document).ready(function(){
$('table tr td').each(function(){
var texto = $(this).text();
var nextto = $(this).next("td");
var sku = $("#data-sku").val()
if(texto == 'SKU'){
nextto.text(sku)
}
});
$(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
$(".stamped-summary-actions-newreview").text("Tulis Review");
$("#tab-questions").text("Pertanyaan");
$(".freeship .icon").click(function(){
$(".fs-content").slideToggle();
$(this).parents(".freeship").toggleClass("expand");
});
var $easyzoom = $('.easyzoom').easyZoom();
// Setup thumbnails example
var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
$('.thumbnails').on('click', 'a', function(e) {
var $this = $(this);
e.preventDefault();
// Use EasyZoom's `swap` method
api1.swap($this.data('standard'), $this.attr('href'));
});
$('#playerID').click(function(){
var videoURL = $('#VdoID').attr('src'),
dataplay = $('#VdoID').attr('data-play');
//for check autoplay
//if not set autoplay=1
if(dataplay == 0 ){
$('#VdoID').attr('src',videoURL+'?autoplay=1');
$('#VdoID').attr('data-play',1);
}
else{
var videoURL = $('#VdoID').attr('src');
videoURL = videoURL.replace("?autoplay=1", "");
$('#VdoID').prop('src','');
$('#VdoID').prop('src',videoURL);
$('#VdoID').attr('data-play',0);
}
});
$(".product-photo-thumb-video").click(function(e){
e.preventDefault();
var newEmbed = $(this).attr('href');
$("#featured-image-product").addClass("img-video");
$("#ProductPhotoImg").hide();
$("#featured-image-product .video").show();
$("#featured-image-product iframe").attr('src', newEmbed);
$("#VdoID")[0].src += "&autoplay=1";
});
$(".product-single__thumbnail").click(function(evt){
evt.preventDefault();
$("#featured-image-product").removeClass("img-video");
$("#ProductPhotoImg").show();
$("#featured-image-product .video").hide();
$("#featured-image-product iframe").attr('src', '');
});
if($('#product-meta .short-desc > div').length >= 1){
//console.log('div detected')
var replacer = $('#product-meta .short-desc > div').contents();
$('#product-meta .short-desc > div').replaceWith(replacer);
var cAssured = $('.c-assured').detach();
cAssured.insertAfter('.meta-sds .stock-info');
}
$(".heading-toggle").click(function(){
$(this).parent().toggleClass("open")
});
});
</script>
<script type="application/json" id="ProductJson-Product">
{"id":8144957800663,"title":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah."}
</script>
<script type="application/json" id="VariantJson-Product">
[
{
"incoming": false,
"next_incoming_date": null
}
]
</script>
</div>
<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
<style>
.stamped-review-header-title,
.stamped-review-header .author,
.stamped-review-content-body,
.stamped-sort-select,
.stamped-review-header .verified-badge[data-type=buyer]:after,
.stamped-review-header-byline,
.stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
.stamped-review {margin-bottom: 0;}
.stamped-review-body {padding-left: 65px;}
.stamped-review:first-child {padding-top: 25px;}
.stamped-review-content {clear: none;}
.stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
.stamped-review-reply-body {padding-left: 65px;}
.stamped-review-header .author {text-transform: capitalize;}
.stamped-questions .stamped-review-content {padding-left: 65px;}
.stamped-pagination {margin: 20px 0 0;}
.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;}
.stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
.stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
.stamped-pagination li:hover a {background: #ddd;}
.stamped-pagination .next {border-right: 1px solid #ccc;}
.stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
.stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
#stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
#stamped-pagination-question span {font-size: 14px;}
#stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
#stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
.stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
.stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
.stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
@media (max-width: 480px){
.stamped-review-reply {margin-left: 0!important;}
select.stamped-sort-select {font-size: 13px!important;}
}
#product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
display: block !important;
}
</style>
<script>
var selectCallback = function(variant, selector) {
timber.productPage({
money_format: "Rp {{amount_no_decimals}}",
variant: variant,
selector: selector
});
};
jQuery(function($) {
new Shopify.OptionSelectors('productSelect', {
product:
{"id":8144957800663,"title":"Dollar4D - Sistem Digital Dengan Appliance Manual Library","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah."},
onVariantSelected: selectCallback,
enableHistoryState: true
});
// Add label if only one product option and it isn't 'Title'. Could be 'Size'.
// Hide selectors if we only have 1 variant and its title contains 'Default'.
$('.selector-wrapper').hide();
});
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"offers": {
"@type": "Offer",
"availability":"https://schema.org/InStock",
"price": 835000,
"priceValidUntil": "05-10-2025",
"priceCurrency": "IDR",
"url": "https://hopejeffcoat.com"
},
"brand": {
"@type": "Brand",
"name": "Outerbloom Florist"
},
"sku": "8144957800663",
"gtin13": "Jawa",
"name": "Dollar4D - Sistem Digital Dengan Appliance Manual Library",
"description": "Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.",
"category": "Dollar4D menyediakan Appliance Manual Library agar petunjuk penggunaan berbagai perangkat rumah dapat disimpan dan ditemukan kembali dengan mudah.",
"url": "https://hopejeffcoat.com",
"image": {
"@type": "ImageObject",
"url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
"image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
"name": "Dollar4D - Sistem Digital Dengan Appliance Manual Library",
"width": 1024,
"height": 1024
}
}
</script>
<script id="bss-ltap-hide-price" type="text/javascript" >
!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)}))})),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)})),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()}if("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)}if(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");c&&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-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");i&&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--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.myshopify.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.sty
| # |
Url |
Url |
Source |
Date |
| 1 |
https://hopejeffcoat.com/ |
|
2026-10-20 15:45:06 |
| 2 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:45:05 |
| 3 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:45:04 |
| 4 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 15:45:03 |
| 5 |
http://digi3sa.s3-website-us-east-… |
|
2026-10-20 15:45:03 |
| 6 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:45:02 |
| 7 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:45:01 |
| 8 |
https://www.swimmingpool.com/ |
|
2026-10-20 15:45:01 |
| 9 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:45:01 |
| 10 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:45:01 |
| 11 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 15:44:58 |
| 12 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:44:58 |
| 13 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:44:57 |
| 14 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-20 15:44:57 |
| 15 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:44:57 |
| 16 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-20 15:44:56 |
| 17 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 15:44:56 |
| 18 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:44:56 |
| 19 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 15:44:56 |
| 20 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-20 15:44:56 |