www.mildstyles.com
Open in
urlscan Pro
104.17.246.119
Public Scan
Submitted URL: https://gets.gift/bXa8n
Effective URL: https://www.mildstyles.com/cart?stream_m=eyJtb2RlIjoyLCJjb2RlIjoiTU0xNSIsImRlc2MiOiIxNSUgT0ZGIGZvciBhbnkgb3JkZXIifQ%3D%3D&s...
Submission: On August 02 via api from US — Scanned from DE
Effective URL: https://www.mildstyles.com/cart?stream_m=eyJtb2RlIjoyLCJjb2RlIjoiTU0xNSIsImRlc2MiOiIxNSUgT0ZGIGZvciBhbnkgb3JkZXIifQ%3D%3D&s...
Submission: On August 02 via api from US — Scanned from DE
Form analysis
8 forms found in the DOMGET
<form class="flex-grow-1 i-spzhtml-form" id="header-search-form" is="spz-form" action-xhr="/search" method="get" novalidate="">
<div tabindex="-1" class="flex relative header__search">
<input autocomplete="off" id="header-search-form-input" type="text" name="q" value="" class="border header__search-placeholder-current header__search-input" placeholder="Search..."
@input-debounced="search-predictive.open;header-search-search-icon-render.rerender(data=event.value);search-predictive-result.rerender(data=event.value);">
<label for="header-search-form-input" id="header-search-input-replace" style="position: absolute; height: 40px; width: calc(100% - 52px); background-color: transparent;"
@tap="search-input-close.toggleClass(class='header__search-close-show', force=true);header-search-input-replace.toggleClass(class='opacity-0', force=true);"> </label>
<spz-render class="header-search-search-icon-container absolute top-0 color-body-40 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="header-search-search-icon-render" layout="container" manual=""
i-spzhtml-layout="container">
<template>
<a class="header-search-search-icon flex" href="/search?q=${encodeURIComponent(typeof(data||'')=='string'?data:'')}">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
</template>
<a class="header-search-search-icon flex" href="/search?q=">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a></spz-render>
</div>
</form>
GET
<form class="flex-grow-1 i-spzhtml-form" id="header-search-form" is="spz-form" action-xhr="/search" method="get" novalidate="">
<div tabindex="-1" class="flex relative header__search">
<input autocomplete="off" id="header-search-form-input" type="text" name="q" value="" class="border header__search-placeholder-current header__search-input" placeholder="Search..."
@input-debounced="search-predictive.open;header-search-search-icon-render.rerender(data=event.value);search-predictive-result.rerender(data=event.value);">
<label for="header-search-form-input" id="header-search-input-replace" style="position: absolute; height: 40px; width: calc(100% - 52px); background-color: transparent;"
@tap="search-input-close.toggleClass(class='header__search-close-show', force=true);header-search-input-replace.toggleClass(class='opacity-0', force=true);"> </label>
<spz-render class="header-search-search-icon-container absolute top-0 color-body-40 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" id="header-search-search-icon-render"
layout="container" manual="" i-spzhtml-layout="container">
<a class="header-search-search-icon flex" href="/search?q=">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
<template>
<a class="header-search-search-icon flex" href="/search?q=${encodeURIComponent(typeof(data||'')=='string'?data:'')}">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
</template>
</spz-render>
</div>
</form>
GET
<form class="flex-grow-1 i-spzhtml-form" id="header-search-formmd" is="spz-form" action-xhr="/search" method="get" novalidate="">
<div tabindex="-1" class="flex relative header__search">
<input autocomplete="off" id="header-search-form-inputmd" type="text" name="q" value="" class="border header__search-placeholder-current header__search-input" placeholder="Search..."
@input-debounced="search-predictive.open;header-search-search-icon-rendermd.rerender(data=event.value);search-predictive-result.rerender(data=event.value);">
<label for="header-search-form-inputmd" id="header-search-input-replacemd" style="position: absolute; height: 40px; width: calc(100% - 52px); background-color: transparent;"
@tap="search-input-closemd.toggleClass(class='header__search-close-show', force=true);header-search-input-replacemd.toggleClass(class='opacity-0', force=true);"> </label>
<spz-render class="header-search-search-icon-container absolute top-0 color-body-40 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" id="header-search-search-icon-rendermd"
layout="container" manual="" i-spzhtml-layout="container">
<a class="header-search-search-icon flex" href="/search?q=">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
<template>
<a class="header-search-search-icon flex" href="/search?q=${encodeURIComponent(typeof(data||'')=='string'?data:'')}">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
</template>
</spz-render>
</div>
</form>
GET
<form class="flex-grow-1 i-spzhtml-form" id="header-search-formmodel" is="spz-form" action-xhr="/search" method="get" novalidate="">
<div tabindex="-1" class="flex relative header__search">
<input autocomplete="off" id="header-search-form-inputmodel" type="text" name="q" value="" class="border header__search-placeholder-current header__search-input" placeholder="Search..."
@input-debounced="search-predictive.open;header-search-search-icon-rendermodel.rerender(data=event.value);search-predictive-result.rerender(data=event.value);">
<label for="header-search-form-inputmodel" id="header-search-input-replacemodel" style="position: absolute; height: 40px; width: calc(100% - 52px); background-color: transparent;"
@tap="search-input-closemodel.toggleClass(class='header__search-close-show', force=true);header-search-input-replacemodel.toggleClass(class='opacity-0', force=true);"> </label>
<spz-render class="header-search-search-icon-container absolute top-0 color-body-40 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" id="header-search-search-icon-rendermodel"
layout="container" manual="" i-spzhtml-layout="container">
<a class="header-search-search-icon flex" href="/search?q=">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
<template>
<a class="header-search-search-icon flex" href="/search?q=${encodeURIComponent(typeof(data||'')=='string'?data:'')}">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path></svg>
</a>
</template>
</spz-render>
</div>
</form>
POST
<form id="cart-note-form" class="w-full mb-5 hidden i-spzhtml-form spz-form-initial-success" method="POST" action-xhr="/api/cart/note" items="cart" novalidate="" initial-xhr="/api/cart">
<textarea class="cart-note-textarea type-body-font-family w-full color-body body-text-base bg-body" id="cart-note-textarea" name="note" rows="4" @input-debounced="cart-note-form.insert(name='note', value=event.value);"
@change="cart-note-form.submit(actionXhr='/api/cart/note');cart-note-render.rerender(data=event);" autofocus=""></textarea>
</form>
POST
<form class="footer-newsletter-form relative flex justify-center items-stretch md:w-full i-spzhtml-form" id="footer-newsletter-form" method="POST" action-xhr="/api/customers/newsletters" custom-validation="change-interact-and-submit"
@submitsuccess="footer-newsletter-form.toggleClass(class='hidden', force=true);footer-newsletter-thanks.toggleClass(class='hidden', force=false);"
@submiterror="footer-newsletter-error.show(text=event.errors);footer-newsletter-error.toggleClass(class='hidden', force=false);" novalidate="">
<div class="footer-newsletter-form__email md:inline-block md:w-full">
<input class="footer-newsletter-form__input rounded-btn text-body-color rounded-r-none w-full h-full bg-white color-body body-text-base md:w-full md:leading-1.1" id="footer-newsletter-email" type="text" name="email" required=""
pattern="[a-zA-Z0-9!#$%&'*+\/=?^_`\{\|\}~\-]+(?:\.[a-zA-Z0-9!#$%&'*+\/=?^_`\{\|\}~\-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?" placeholder="Enter your email"
@input-debounced="footer-newsletter-error.toggleClass(class='hidden', force=true);">
<spz-toast validation-for="footer-newsletter-email" visible-when-invalid="valueMissing" layout="nodisplay" hidden="" class="i-spzhtml-layout-nodisplay" style="display: none" i-spzhtml-layout="nodisplay">Please fill in this field</spz-toast>
<spz-toast validation-for="footer-newsletter-email" visible-when-invalid="patternMismatch" layout="nodisplay" hidden="" class="i-spzhtml-layout-nodisplay" style="display: none" i-spzhtml-layout="nodisplay">Please enter a valid email
address</spz-toast>
<spz-toast id="footer-newsletter-error" layout="nodisplay" class="i-spzhtml-layout-nodisplay" hidden="" style="display: none" i-spzhtml-layout="nodisplay"></spz-toast>
</div>
<button type="submit" class="footer-newsletter-form__submit body-plus-2 button-primary rounded-r-btn font-bold leading-1.4 m-0 md:flex md:items-center">
<span class="md:hidden">Subscribe</span>
<svg class="lg:hidden" width="20" height="6" xmlns="http://www.w3.org/2000/svg">
<path d="m14 0 6 3-6 3V4H0V2h14V0z" fill="currentColor"></path>
</svg>
</button>
</form>
<form class="">
<div class="zb-flex">
<a href="${product.url}?${toQuery({ aid: 'smart_recommend.2.' + data.id, ifb: product.ifb || '', cfb: product.cfb || '', scm: product.scm || data.scm || '', ssp: data.ssp || '' })}" impr="1" imprevt="1" class="zb-w-[132px] zb-mr-4 rtl:zb-ml-4 rtl:zb-mr-0" data-prdct="${product.id}" data-ifb="${product.ifb || ''}" data-cfb="${product.cfb || ''}" data-scm="${product.scm || data.scm || ''}" data-spm="${productIndex}"> <ljs-render layout="container" id="smart_cart_pop_image_${product.id}" template="smart_cart_pop_image_template" manual=""></ljs-render> </a>
<div class="zb-flex zb-flex-col zb-flex-grow zb-justify-between">
<div>
<div class="zb-line-clamp-2 zb-text-sm zb-mb-2">${product.title}</div> <ljs-render layout="container" id="smart_cart_pop_price_${product.id}" template="smart_cart_pop_price_template" manual=""></ljs-render>
</div>
<div>
<div class="zb-relative zb-w-full zb-cursor-pointer">
<div class="zb-border zb-border-solid zb-border-[#eee] zb-px-3 zb-py-[10px] zb-flex zb-items-center zb-justify-between zb-font-semibold zb-text-sm zb-rounded-sm"
@tap="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);smart_cart_pop_variant_${product.id}_mobile.toggleClass(class=zb-hidden);smart_cart_pop_variant_${product.id}_pc.toggleClass(class=smart_cart_pop_variant_pc_show,force=true);smart_cart_pop_variant_modal_${product.id}.open"
spz-if="${!!(product.options && product.options.length && product.options.length > 0) && data.config.variant_select_visible}"> <ljs-render manual="" layout="container" id="smart_cart_pop_variant_text_${product.id}"
template="smart_cart_pop_variant_text_template"></ljs-render> <svg id="smart_pop_variant-select-${product.id}" width="12" height="8" class="zb-ml-2" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M6.00002 7.06738C6.19244 7.06775 6.38498 6.99453 6.5318 6.84772C6.54504 6.83447 6.55769 6.82086 6.56973 6.8069L11.1251 2.25152C11.418 1.95863 11.418 1.48375 11.1251 1.19086C10.8322 0.897968 10.3573 0.897968 10.0645 1.19086L6.00003 5.25529L1.9356 1.19086C1.64271 0.897968 1.16784 0.897968 0.874943 1.19086C0.58205 1.48375 0.58205 1.95863 0.874943 2.25152L5.43033 6.8069C5.44237 6.82086 5.45502 6.83447 5.46826 6.84772C5.61507 6.99453 5.8076 7.06775 6.00002 7.06738Z"
fill="#0A1533"></path>
</svg> </div> <ljs-lightbox layout="nodisplay" disable-unmount="" class="smart_cart_pop_lightbox_pc" id="smart_cart_pop_variant_modal_${product.id}" @close="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);">
<div id="smart_cart_pop_variant_${product.id}_pc" class="zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template"
onclick="event.stopPropagation()" disabled-dj-event="" interference=""> </ljs-variants></div>
</ljs-lightbox>
</div>
<div class="zb-mt-3"> <button product-id="${product.id}" id="smart_cart_pop_atc_btn_${product.id}"
class="zb-flex zb-items-center zb-justify-center zb-w-full zb-text-white zb-py-[10px] zb-h-9 zb-text-xs zb-font-normal zb-border-none zb-rounded-[4px] smart_cart_pop_atc_btn_bg" type="button" role="addToCart"
@tap="smart_cart_pop_loading_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_btn_${product.id}.toggleClass(class=zb-pointer-events-none);custom-func.addATCHook(activity_id='${data.id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${product.scm || data.scm}',ssp='${data.ssp}',spm='${data.spmBase}.${productIndex}')">
<ljs-render layout="container" id="smart_cart_pop_atc_${product.id}" template="smart_cart_pop_atc_template" mamual="" class="notranslate"> </ljs-render>
<div id="smart_cart_pop_added_${product.id}" class="zb-hidden"><span class="zb-flex zb-justify-center zb-gap-1"><svg width="14" height="15" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8 16.5006C3.58171 16.5006 0 12.9183 0 8.5C0 4.08171 3.58171 0.5 8 0.5C12.4183 0.5 16 4.08171 16 8.5C16 12.9183 12.4183 16.5006 8 16.5006ZM8 2.04344C4.21314 2.04344 1.54287 4.71371 1.54287 8.50057C1.54287 12.2874 4.21314 14.9577 8 14.9577C11.7869 14.9577 14.4571 12.2874 14.4571 8.50057C14.4571 4.71371 11.7869 2.04344 8 2.04344ZM7.26057 11.1909L7.12229 11.3286L7.09543 11.3017C7.02286 11.336 6.94286 11.3577 6.85714 11.3577C6.73543 11.3577 6.62857 11.3109 6.536 11.2463L6.52229 11.2594L6.45371 11.1909C6.45314 11.1903 6.45314 11.1903 6.45257 11.1897L4.09771 8.83486L4.90629 8.02686L6.85714 9.97771L11.1629 5.67143L11.9714 6.48L7.26171 11.1897C7.26114 11.1903 7.26114 11.1903 7.26057 11.1909Z"
fill="white"></path>
</svg>Added</span></div>
<div id="smart_cart_pop_loading_${product.id}" class="zb-hidden">
<div class="smart_cart_pop_loading"></div>
</div>
</button> </div>
</div>
</div>
</div>
<div id="smart_cart_pop_variant_${product.id}_mobile" class="zb-hidden md:zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template" onclick="event.stopPropagation()"
disabled-dj-event="" interference=""> </ljs-variants></div>
</form>
POST //translate.googleapis.com/translate_voting?client=te
<form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text"
name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form>
Text Content
View all * 🚚 Free Shipping On Order $89 🚚 Free Shipping On Order $89 Shop now 🚚 Free Shipping On Order $89 Shop now 🚚 Free Shipping On Order $89 Shop now MILDSTYLES Powered by Google Übersetzer English,한국어,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar Search Account Log in Create an account ${data.data.count > 99 ? '99+' : data.data.count} 0 Cart Close * NEW IN * New items in July * New items in June * New items in May * New items in April * New items in March * New items in February * BEST SELLER * TRENDING * Animal Series * Fox * Bear * Deer * Wolf * Geometric Series * Forest Series * Viking Series * All-Over-Print * Music Series * 🌠Space Series * 🌄Mountain Terrain * Outdoor Series * 🏕Camping * Hiking & Climbing * 🏝Beach Series * Dark Series * Skull Series * GYM Series * TOPS * T-SHIRTS * Short Sleeve T-shirt * Solid Color T-shirts * V-neck T-shirts * Back Print T-shirts * All-Over-Print * Long Sleeve T-shirts * Washed Cotton T-Shirt * HENLEY SHIRTS * TANK TOPS * HOODIES * Fleece Hoodie * All Over Print Hoodie * SWEATER * COAT * BOTTOMS * Shorts * Pants * Jeans * Coat * Underwear * 🔥CUSTOMIZE🔥 * WOMEN * T-shirts * Hoodies * Vest * KIDS * T-Shirt * Hoodie * Sweatshirt * Coat * Pants * ACC * Necklace * Hat * Keychain * Patch * Socks * Phone Case * Earphone Case * Shoes * Cup * Mug * Mask * Ring * Gloves * More links ${function() { var linkList = [ { id: 64747609, index: 1, title: "NEW IN", url: '/collections/new-in', target: '', tag: "", product0: null , children: [ { title: "New items in July", url: '/collections/new-items-in-july', target: '', tag: "", children: [ ] }, { title: "New items in June", url: '/collections/new-items-in-june', target: '', tag: "", children: [ ] }, { title: "New items in May", url: '/collections/new-items-in-may', target: '', tag: "", children: [ ] }, { title: "New items in April", url: '/collections/new-items-in-april', target: '', tag: "", children: [ ] }, { title: "New items in March", url: '/collections/new-items-in-march', target: '', tag: "", children: [ ] }, { title: "New items in February", url: '/collections/new-items-in-february', target: '', tag: "", children: [ ] }, ] }, { id: 64747623, index: 2, title: "BEST SELLER", url: '/collections/best-seller', target: '', tag: "", product0: null , children: [ ] }, { id: 64747625, index: 3, title: "TRENDING", url: '/collections/trending-series-p2nb', target: '', tag: "", product0: null , children: [ { title: "Animal Series", url: '/collections/animal-series', target: '', tag: "", children: [ { title: "Fox", url: '/collections/fox', target: '', tag: "", }, { title: "Bear", url: '/collections/bear', target: '', tag: "", }, { title: "Deer", url: '/collections/deer', target: '', tag: "", }, { title: "Wolf", url: '/collections/wolf', target: '', tag: "", }, ] }, { title: "Geometric Series", url: '/collections/geometric-t-shirts', target: '', tag: "", children: [ ] }, { title: "Forest Series", url: '/collections/forest-style', target: '', tag: "", children: [ ] }, { title: "Viking Series", url: '/collections/viking-series', target: '', tag: "", children: [ ] }, { title: "All-Over-Print", url: '/collections/all-over-print', target: '', tag: "", children: [ ] }, { title: "Music Series", url: '/collections/music-series', target: '', tag: "", children: [ ] }, { title: "\ud83c\udf20Space Series", url: '/collections/space-series', target: '', tag: "", children: [ ] }, { title: "\ud83c\udf04Mountain Terrain", url: '/collections/mountain-terrain', target: '', tag: "", children: [ ] }, { title: "Outdoor Series", url: '/collections/outdoor-series', target: '', tag: "", children: [ { title: "\ud83c\udfd5Camping", url: '/collections/camping', target: '', tag: "", }, { title: "Hiking & Climbing", url: '/collections/hiking-climbing', target: '', tag: "", }, ] }, { title: "\ud83c\udfddBeach Series", url: '/collections/beach-series', target: '', tag: "", children: [ ] }, { title: "Dark Series", url: '/collections/dark-series', target: '', tag: "", children: [ ] }, { title: "Skull Series", url: '/collections/skull-t-shirts', target: '', tag: "", children: [ ] }, { title: "GYM Series", url: '/collections/gym-series', target: '', tag: "", children: [ ] }, ] }, { id: 64747665, index: 4, title: "TOPS", url: '/collections/tops', target: '', tag: "", product0: null , children: [ { title: "T-SHIRTS", url: '/collections/t-shirts-858o', target: '', tag: "", children: [ { title: "Short Sleeve T-shirt", url: '/collections/short-sleeve-t-shirt', target: '', tag: "", }, { title: "Solid Color T-shirts", url: '/collections/solid-color-t-shirts', target: '', tag: "", }, { title: "V-neck T-shirts", url: '/collections/v-neck-t-shirts', target: '', tag: "", }, { title: "Back Print T-shirts", url: '/collections/back-print-t-shirts', target: '', tag: "", }, { title: "All-Over-Print", url: '/collections/all-over-print', target: '', tag: "", }, { title: "Long Sleeve T-shirts", url: '/collections/long-sleeve-t-shirts', target: '', tag: "", }, { title: "Washed Cotton T-Shirt", url: '/collections/washed-cotton-t-shirt', target: '', tag: "", }, ] }, { title: "HENLEY SHIRTS", url: '/collections/henry-collar-t-shirts', target: '', tag: "", children: [ ] }, { title: "TANK TOPS", url: '/collections/vest', target: '', tag: "", children: [ ] }, { title: "HOODIES", url: '/collections/mens-hoodies', target: '', tag: "", children: [ { title: "Fleece Hoodie", url: '/collections/fleece-hoodie', target: '', tag: "", }, { title: "All Over Print Hoodie", url: '/collections/all-over-print-hoodie', target: '', tag: "", }, ] }, { title: "SWEATER", url: '/collections/sweater', target: '', tag: "", children: [ ] }, { title: "COAT", url: '/collections/coat', target: '', tag: "", children: [ ] }, ] }, { id: 64747697, index: 5, title: "BOTTOMS", url: '/collections/bottoms', target: '', tag: "", product0: null , children: [ { title: "Shorts", url: '/collections/shorts', target: '', tag: "", children: [ ] }, { title: "Pants", url: '/collections/pants', target: '', tag: "", children: [ ] }, { title: "Jeans", url: '/collections/jeans', target: '', tag: "", children: [ ] }, { title: "Coat", url: '/collections/womens-coat', target: '', tag: "", children: [ ] }, { title: "Underwear", url: '/collections/underwear', target: '', tag: "", children: [ ] }, ] }, { id: 64747709, index: 6, title: "\ud83d\udd25CUSTOMIZE\ud83d\udd25", url: '/collections/customized-series', target: '', tag: "", product0: null , children: [ ] }, { id: 64747711, index: 7, title: "WOMEN", url: '/collections/women', target: '', tag: "", product0: null , children: [ { title: "T-shirts", url: '/collections/womens-t-shirts', target: '', tag: "", children: [ ] }, { title: "Hoodies", url: '/collections/womens-hoodies-wrbp', target: '', tag: "", children: [ ] }, { title: "Vest", url: '/collections/womens-vest', target: '', tag: "", children: [ ] }, ] }, { id: 64747719, index: 8, title: "KIDS", url: '/collections/kids-clothing', target: '', tag: "", product0: null , children: [ { title: "T-Shirt", url: '/collections/kids-t-shirt', target: '', tag: "", children: [ ] }, { title: "Hoodie", url: '/collections/kids-hoodie', target: '', tag: "", children: [ ] }, { title: "Sweatshirt", url: '/collections/kids-sweatshirt', target: '', tag: "", children: [ ] }, { title: "Coat", url: '/collections/kids-coat', target: '', tag: "", children: [ ] }, { title: "Pants", url: '/collections/kids-pants', target: '', tag: "", children: [ ] }, ] }, { id: 64747731, index: 9, title: "ACC", url: '/collections/accessories', target: '', tag: "", product0: null , children: [ { title: "Necklace", url: '/collections/necklace', target: '', tag: "", children: [ ] }, { title: "Hat", url: '/collections/hat', target: '', tag: "", children: [ ] }, { title: "Keychain", url: '/collections/keychain', target: '', tag: "", children: [ ] }, { title: "Patch", url: '/collections/patch', target: '', tag: "", children: [ ] }, { title: "Socks", url: '/collections/socks', target: '', tag: "", children: [ ] }, { title: "Phone Case", url: '/collections/phone-case', target: '', tag: "", children: [ ] }, { title: "Earphone Case", url: '/collections/earphone-case', target: '', tag: "", children: [ ] }, { title: "Shoes", url: '/collections/shoes', target: '', tag: "", children: [ ] }, { title: "Cup", url: '/collections/cup', target: '', tag: "", children: [ ] }, { title: "Mug", url: '/collections/mug', target: '', tag: "", children: [ ] }, { title: "Mask", url: '/collections/mask', target: '', tag: "", children: [ ] }, { title: "Ring", url: '/collections/ring', target: '', tag: "", children: [ ] }, { title: "Gloves", url: '/collections/gloves', target: '', tag: "", children: [ ] }, ] }, ].slice(offset); var hasChild = linkList.some(v => (v.children && v.children.length || v.product0)); if (!hasChild) { return ` ${linkList.map(item => ` * ${item.url ? ` ${item.title} ${item.tag ? ` ${item.tag.label} ` : ''} `: ` ${item.title} ${item.tag ? ` ${item.tag.label} ` : ''} `} ${item.children.length ? ` ` : ''} `).join('')} ` } else { return ` ${linkList.map(item => ` * ${item.url ? ` ${item.title} ${item.tag ? ` ${item.tag.label} ` : ''} `: ` ${item.title} ${item.tag ? ` ${item.tag.label} ` : ''} `} ${item.children.length ? ` ` : ''} `).join('')} ${linkList.map(item => ` ${item.children ? ` ${item.children.map(link => { return ` * ${link.url ? ` ${link.title} ${link.tag ? ` ${link.tag.label} ` : ''} `: ` ${link.title} ${link.tag ? ` ${link.tag.label} ` : ''} `} ${link.children ? ` ${link.children.map(link_3 => ` * ${link_3.url ? ` ${link_3.title} ${link_3.tag ? ` ${link_3.tag.label} ` : ''} `: ` ${link_3.title} ${link_3.tag ? ` ${link_3.tag.label} ` : ''} `} `).join('')} ` : ''} `}).join('')} ${function() { const data = item.product0; if (!data) return ''; return ` ` }()} ` : ''} `).join('')} ` } }()} * NEW IN NEW IN * New items in July * New items in June * New items in May * New items in April * New items in March * New items in February * BEST SELLER * TRENDING TRENDING * Animal Series Animal Series * Fox * Bear * Deer * Wolf * Geometric Series * Forest Series * Viking Series * All-Over-Print * Music Series * 🌠Space Series * 🌄Mountain Terrain * Outdoor Series Outdoor Series * 🏕Camping * Hiking & Climbing * 🏝Beach Series * Dark Series * Skull Series * GYM Series * TOPS TOPS * T-SHIRTS T-SHIRTS * Short Sleeve T-shirt * Solid Color T-shirts * V-neck T-shirts * Back Print T-shirts * All-Over-Print * Long Sleeve T-shirts * Washed Cotton T-Shirt * HENLEY SHIRTS * TANK TOPS * HOODIES HOODIES * Fleece Hoodie * All Over Print Hoodie * SWEATER * COAT * BOTTOMS BOTTOMS * Shorts * Pants * Jeans * Coat * Underwear * 🔥CUSTOMIZE🔥 * WOMEN WOMEN * T-shirts * Hoodies * Vest * KIDS KIDS * T-Shirt * Hoodie * Sweatshirt * Coat * Pants * ACC ACC * Necklace * Hat * Keychain * Patch * Socks * Phone Case * Earphone Case * Shoes * Cup * Mug * Mask * Ring * Gloves English,한국어,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar Log in Create an account ${function() { if (data === undefined || typeof data !== 'string' || data == '') return ` `; if (data === 'close') return ''; return ` View more `; }()} CART ${data.line_items.map(item => { return ` ${item.product_title} ${item.options.map(o => ` ${o.name}: ${o.value} `).join('')} ${(item.parsedProperties || []).map((propertie)=>{ if (propertie.isImage){ return ` ${propertie.name}: View image ` }else{ return ` ${propertie.name}: ${propertie.value} ` } }).join('')} *${item.quantity} Free gift Remove ${ (item.discount_applications || []).map(discount_item => { const discount_item_amount = discount_item.discount_amount || discount_item.amount || ''; return ` ${discount_item.title} (-) ` }).join('') } ${ (item.discount_applications || []).map(discount_item => { const discount_item_amount = discount_item.discount_amount || discount_item.amount || ''; return ` ${discount_item.title} (-) ` }).join('') } `; }).join('')} GOES GREAT WITH Add order note Add order note Add order note Add order note ${function() { const postageFreeAmount = 89; const totalPrice = +data.total_price; const diffPrice = postageFreeAmount - totalPrice; const text = ("Buy {amount} more to enjoy FREE Shipping").replace(/\{\s*amount\s*\}/g, ``); const remainPercent = ((1 - diffPrice / postageFreeAmount) * 100).toFixed(2); return ` ${text} ${remainPercent}% Shipping Free `; }()} ${data.total_discount > 0 ? ( ` Discount - ` ) : ''} Subtotal Taxes and shipping calculated at checkout Check out Continue shopping Buy more to enjoy FREE Shipping 0.00% Shipping Free Subtotal Taxes and shipping calculated at checkout Check out Continue shopping cart cart Your cart is currently empty. Continue shopping RECENTLY VIEWED Subscribe today to hear first about our sales Please fill in this field Please enter a valid email address Subscribe Thanks for subscribing Company Info * Shipping & Delivery * Terms of Services * Return & Refund Policy * Privacy Policy * Payment Method * PayPal Installment Payment * How Klarna works * Dropshipping Program * INTELLECTUAL PROPERTY RIGHTS Menu * NEW IN * BEST SELLER * TRENDING * TOPS * BOTTOMS * 🔥CUSTOMIZE🔥 * WOMEN * KIDS * ACC Help & Support * About Us * Contact Us * Blogs * FAQS * Shipping Delay Notice * How to Choose Your Size * How to Check Your Orders * How to use Coupons Email us Follow us We accept Company Info * Shipping & Delivery * Terms of Services * Return & Refund Policy * Privacy Policy * Payment Method * PayPal Installment Payment * How Klarna works * Dropshipping Program * INTELLECTUAL PROPERTY RIGHTS Menu * NEW IN * BEST SELLER * TRENDING * TOPS * BOTTOMS * 🔥CUSTOMIZE🔥 * WOMEN * KIDS * ACC Help & Support * About Us * Contact Us * Blogs * FAQS * Shipping Delay Notice * How to Choose Your Size * How to Check Your Orders * How to use Coupons Email us Follow us We accept © 2024 mildstyles ${function(){ const settings_product_title = "title"; const product_grid_image_size = "natural"; const settings_product_image_hover_on = true; let settings_product_save_label = false; const settings_product_swatches_name = ["color"]; const settings_collection_color_swatches = true; const variantShowLimit = 4; const private_id = 'product-tmpl-' + Math.random().toFixed(6).slice(-6) const product_variants = data.variants || []; const product_id = data.id; const images = data.images || []; const image = data.image || {}; const imageWidth = image.width; let imageHeight = image.height; if (product_grid_image_size !== 'natural') { imageHeight = (imageWidth * parseFloat(product_grid_image_size)) / 100; } const price = Number(data.price_min); let compareAtPrice = Number(data.compare_at_price); let offRatio = data.off_ratio; const type = data.type; const isMock = data.isMock; let product_image_hover_on = false; for (let i = 0; i < product_variants.length; i++) { const item = product_variants[i]; const vcap = Number(item.compare_at_price); if (item.price == price && vcap > compareAtPrice) { compareAtPrice = vcap; offRatio = item.off_ratio; } } let second_image = null; if (settings_product_image_hover_on) { for (let i = 1; i < images.length; i++) { const img = images[i]; if (img.src && img.src.indexOf('video=') === -1) { second_image = img; product_image_hover_on = true; break; } } } let sold_label_on = false; let sale_label_on = false; if (settings_product_save_label == null) { settings_product_save_label = true; } if (!data.available) { sold_label_on = true; } if (settings_product_save_label && compareAtPrice > price && data.available) { sale_label_on = true; } const diffPrice = compareAtPrice - price; const variantValues = []; const showVariants = []; if (data.need_variant_image && settings_collection_color_swatches && settings_product_swatches_name.length > 0) { for (let i = 0; i < (data.options || []).length; i++) { const option = data.originData.options[i]; const optionName = option.name && option.name.toLowerCase(); if (settings_product_swatches_name.includes(optionName)) { for (let j = 0; j < product_variants.length; j++) { const variant = product_variants[j]; const value = variant.options[i].value; if (!variantValues.includes(value)) { variantValues.push(value); showVariants.push(variant); } } break; } } } return ` ${function(){ if(showVariants.length == 0){ return ` ` } return ` ${ showVariants.map(item=>{ return ` `; }).join('') } ` }() } SOLD OUT SALE ${ showVariants.slice(0,variantShowLimit).map((item,index)=>{ return ``; }).join('') } +${showVariants.length - variantShowLimit} ${(settings_product_title === 'sub_title' && data.brief) ? data.brief : data.title} Save ${offRatio}% `; }()} - × Congratulations! You've earned a coupon! Don't forget to use the discount code at checkout! 15% OFF for any order MM15 COPY SHOP NOW 111 111 111 $0.00 1 Item has been added ${(function(){ const products = data.products; const getDefaultVariant = function(product){ if (product.min_price_variant.available){ return product.min_price_variant; }else { const avail_variants = product.variants.filter(function(variant){ return variant.available; }); if (avail_variants.length) { return avail_variants[0]; } } }; const toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&') : `${k}=${encodeURIComponent(obj[k])}` ) .join('&'); const getDefaultTrackParams = function(product, index){ const variant = getDefaultVariant(product); const params = { aid: 'smart_recommend.2.' + data.id, scm: product.scm || data.scm || '', spm: data.spmBase + '.' + index, ssp: data.ssp || '', }; const trackParams = Object.keys(params).map(function(key){ return params[key]; }).join('__'); return trackParams; }; const hasMore = (data.products.length - data.target_top_product_num - data.page * data.limit) === 0; return ` ${(function(){ return ` ${data.config.pop_title} ${data.rebate_tips || ''} `; })()} ${product.title} Added `; })()} class SpzCustomComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this._atcLineItem = {}; this.cart_ = {}; this.top_product_ids_ = []; this.products_ = []; this.activityId_ = null; this.rendered_ = false; this.myInterceptor_ = null; this.i18n_ = {}; this.config_ = {}; this.page_ = 1; this.limit_ = 10; this.loading_ = false; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('pop mounted'); this.i18n_ = window.smartRecommendI18n && window.smartRecommendI18n[document.documentElement.lang || 'en-US'] || {}; const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const modalEl = document.getElementById("smart_cart_pop_modal"); const spmBase = `smart_recommend_2`; const extra = { spmBase: spmBase, i18n: this.i18n_, }; const that = this; document.addEventListener('dj.addToCart', (event) => { try { const e = event.detail; if (e.source === 'buy_now' || window.__upsell_block || this.rendered_) return; that.fetchActivityData({product_id: e.product_id, variant_id: e.variant_id}).then(data => { if (!data || !data.products || !data.products.length) return; that.config_ = data.config; const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` #plugin_recommend_atc_pop { display: none !important; } `; document.head.appendChild(recommendStyle); if (data.config.pop_frequency === 'once' && window.sessionStorage.getItem('smart_pop_times') > 0) return; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ api.render(Object.assign({}, data, extra), true).then(function() { that.rendered_ = true; if (data.products.length) { const headEl = document.getElementById("smart_cart_pop_head_render"); if (headEl) { SPZ.whenApiDefined(headEl).then(function(head){ head.render({ data: data }); }); } SPZ.whenApiDefined(modalEl).then(function(api){ that.impressListen('#smart_cart_pop_activity', function(){ that.trackPluginImpression_(data); }); api.open(); const intersectionObserver = new IntersectionObserver( function (entries) { if (entries[0].intersectionRatio > 0){ !that.loading_ && (that.products_.length - that.target_top_product_num_) === that.page_ * that.limit_ && that.viewMore(); } }, { threshold: [0.1] } ); intersectionObserver.observe( document.querySelector('#smart_cart_pop_view_more_text') ); }); } }) }); }) } catch (e) { console.error(e); } }); } unmountCallback() { } viewMore () { const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const that = this; const data = {}; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ that.fetchActivityData({ page: that.page_ + 1, limit: that.limit_ }).then(function(data) { data.products = that.products_; data.target_top_product_num = that.target_top_product_num_; data.i18n = that.i18n_; data.spmBase = `smart_recommend_2`; api.render(data); }) }) } fetchActivityData(data) { const that = this; if (data.product_id) { that._atcLineItem = data; } that.loading_ = true; return that.getCart().then(cart => { that.cart_ = cart.cart; return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_activities", { method: "POST", headers: { "Content-Type": "application/json", "store-id": window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ "show_type": 2, "line_item": { "product_id": that._atcLineItem.product_id, "variant_id": that._atcLineItem.variant_id, }, line_items: cart.cart.line_items, "page": data.page || 1, "limit": data.limit || 10, }) }).then(function(res){ if(res.ok){ return res.json(); } }).then(function(data){ data.cart = cart.cart; if (data.page === 1) { that.target_top_product_num_ = data.target_top_product_num || 0; } that.products_ = that.products_.concat(data.products || []); that.page_ = data.page || 1; that.limit_ = data.limit || 10; return data; }).catch(function(e){ console.log(e); }).finally(function(){ that.loading_ = false; }) }); }; setAction_() { this.registerAction('changeBannerColor', (data) => { if (!data.args.data || !data.args.data.data || !data.args.data.data.data) return false; const config = data.args.data.data.data.config; const bannerBgEl = document.querySelector('.smart_cart_pop_banner_bg'); if (bannerBgEl && config) { bannerBgEl.style.background = config.banner_bg_color; bannerBgEl.style.color = config.banner_text_color; } }); this.registerAction('handleProductChange', (data) => { const that = this; const imageEl = document.getElementById(`smart_cart_pop_image_${data.args.data.product_id}`); SPZ.whenApiDefined(imageEl).then(function(api){ api.render({ data: data.args.data, config: that.config_ }); }); const atcTextEl = document.getElementById(`smart_cart_pop_atc_${data.args.data.product_id}`); SPZ.whenApiDefined(atcTextEl).then(function(api){ api.render({ data: data.args.data, defaultText: data.args.defaultText, soldOutText: that.i18n_.sold_out }); }); if (data.args.data.variant.available) { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.remove('zb-pointer-events-none'); } else { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.add('zb-pointer-events-none'); } }); this.registerAction('handleProduct', (detail) => { const that = this; this.renderProductsForm_(detail.args.data.data); }); this.registerAction('addATCHook', (data) => { const params = data.args; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: 'smart_recommend.2.' + params.activity_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${params.spm}`, }, once: true }); }); this.registerAction('handleAtcSuccess', (detail) => { detail.args.data.product = detail.args.data.product || {}; detail.args.data.variant = detail.args.data.variant || {}; const defParams = detail.args.product.split('__'); const product_id = detail.args.data.product.id; const product_title = detail.args.data.product.title; const variant_id = detail.args.data.variant.id; const price = detail.args.data.variant.price; const aid = defParams[0]; const ifb = detail.args.data.product.ifb; const cfb = detail.args.data.product.cfb; const scm = defParams[1]; const spm = defParams[2]; const ssp = defParams[3]; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; const activity_id = `${detail.args.activity_id}`; const target_drive_way = detail.args.target_drive_way; document.getElementById(`smart_cart_pop_loading_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_added_${product_id}`).classList.remove('zb-hidden'); setTimeout(() => { document.getElementById(`smart_cart_pop_added_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_atc_${product_id}`).classList.remove('zb-hidden'); document.getElementById(`smart_cart_pop_atc_btn_${product_id}`).classList.remove('zb-pointer-events-none'); }, 1000); this.tranckAddToCart(params); if (target_drive_way === 'rebate') { const bannerEl = document.getElementById(`smart_cart_pop_banner`); this.getRecommendInfo(activity_id).then(res => { if (res && res.rebate_tips) { bannerEl.innerHTML = res.rebate_tips; } }) } }); this.registerAction('handleCartSummary', (event) => { const that = this; const checkoutButtonEle = document.getElementById("smart_cart_pop_checkout_button"); if (checkoutButtonEle) { SPZ.whenApiDefined(checkoutButtonEle).then(function(api){ api.render({ i18n: that.i18n_ }, false); }); } const tipEl = document.getElementById("smart_cart_pop_tip_info"); const cart = event && event.args && event.args.data && event.args.data.data; if (!tipEl || !cart) return; let total_price = cart.total_price; if (!total_price) { SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); } else { this.getBindDiscount_(cart.line_items).then(res => { if (res && res.discount_code){ const total = cart.line_price - cart.total_discount - res.bundle_discount_value; if (total > 0) { total_price = total; } else { total_price = 0; } } SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); }) } }); this.registerAction('open', () => { window.sessionStorage.setItem('smart_pop_times', Number(window.sessionStorage.getItem('smart_pop_times')) + 1); }); this.registerAction('close', () => { this.rendered_ = false; this.products_ = []; window.djInterceptors && window.djInterceptors.track.eject(this.myInterceptor_); }); } getCart() { return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/cart`, { method: 'GET', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, }).then(res => res.json()) } getRecommendInfo (activity_id) { return this.getCart().then(cart => { this.cart_ = cart.cart; return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/possum/recommend_info`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, body: JSON.stringify({ show_type: 2, rule_id: `${activity_id}`, line_items: cart.cart.line_items, line_item: this._atcLineItem, }) }).then(res => res.json()) }) } renderProductsForm_(data) { const products = data.products; const listPopRenderEl = document.getElementById("smart_cart_pop_render"); if (!listPopRenderEl) return; listPopRenderEl.querySelectorAll('.smart_cart_pop_atc_btn_bg').forEach(function(el){ el.style.background = data.config.add_to_cart_button_color; }); products.forEach(function(product){ const productId = product.id; const productFormEls = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]`); let variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_mobile ljs-variants`); if (window.innerWidth > 768) { variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_pc ljs-variants`); } productFormEls.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.setProduct(product); }); }); variantsEl.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.handleRender(product); }); }) }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } trackPluginImpression_(rule){ if (window.sa && window.sa.track) { window.sa.track("module_impressions", { aid: `smart_recommend.2.${rule.id}` }); } } getBindDiscount_(carts) { let bundle_sale_ids = []; try { bundle_sale_ids = sessionStorage['bundle_sale_ids'] && JSON.parse(sessionStorage['bundle_sale_ids']).filter((item, index, arr) => arr.indexOf(item, 0) === index).slice(-5); } catch (err) { console.error(err); } if (!carts.length) { Promise.resolve(); } return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/bundle-sales/cart`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', 'store-id': window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ cart: carts, action_type: 'cart', bundle_sale_ids }) }).then(res => res.json()) } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart', SpzCustomComponent); ${function(){ return ` ${data.data.rebate_tips || ''} `; }()} ${function(){ const getImageHeight = function(image){ const width = image.width || 500; const height = image.height || 500; const image_size = data.config.image_size || 0; let ratio = 0; if(image_size == 0){ ratio = (height / width).toFixed(2); }else if(image_size == 1){ ratio = 1.5; } return 132 * ratio; }; const image = data.data.variant.image || data.data.product.image; return ` `; }()} ${(function(){ const product = data.product; const avail_variants = product.variants.filter(function(variant){ return variant.available; }); const selected_variant = product.min_price_variant.available ? product.min_price_variant : avail_variants.length && avail_variants[0]; return ` ${option.name} ${ option.values.map(function(value, index){ const checked = selected_variant["option"+option.position] == value ? "checked": ""; return ` ${value} ` }).join("") } ` })()} ${(function(){ const variant = data.variant; return ` `; })()} ${(function(){ const variant = data.variant; return ` ${ variant.options.map(function(option){ return option.value; }).join("/") || 'Not exist' } `; })()} ${(function(){ const variant = data.data && data.data.variant; const defaultText = data.defaultText || 'Add To Cart'; const text = (!variant || variant.available) ? defaultText: data.soldOutText; return ` ${text} `; })()} ${(function(){ let cart = data; if(data.data) { cart = data.data; } return ` ${cart.item_count >=0 ? cart.item_count : '..'} `; })()} ${(function(){ return ` ${data.i18n.checkout} `; })()} 111 See detail $0.00 GIFTS POINTS $0.00 1 Originaltext Diese Übersetzung bewerten Mit deinem Feedback können wir Google Übersetzer weiter verbessern