www.yolonana.com
Open in
urlscan Pro
2606:4700::6812:e92a
Public Scan
Submitted URL: https://yolonana.com/
Effective URL: https://www.yolonana.com/
Submission: On February 16 via api from US — Scanned from US
Effective URL: https://www.yolonana.com/
Submission: On February 16 via api from US — Scanned from US
Form analysis
7 forms found in the DOMGET /search
<form action="/search" method="get" class="tw-max-w-[250px] tw-mr-11">
<div tabindex="-1" class="tw-flex tw-relative header__search">
<input autocomplete="off" name="q" type="text"
class="tw-w-full tw-flex-1 tw-h-10 tw-py-0 tw-pl-[14px] tw-pr-13 tw-bg-header-search tw-text-current tw-text-sm tw-leading-none tw-rounded-global tw-border tw-border-solid tw-border-header tw-placeholder-current header__search-input"
placeholder="Search...">
<button type="submit" class="tw-flex tw-items-center tw-px-[14px] tw-m-0 tw-bg-transparent tw-text-current tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-absolute tw-right-0 header__search-icon" tabindex="-1"><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></button>
<button type="button"
class="tw-hidden tw-justify-center tw-items-center tw-pr-2 tw-pl-6 tw-m-0 tw-bg-transparent tw-text-header-color tw-border-none tw-outline-none tw-cursor-pointer header__search-close lg:tw-absolute lg:tw--right-11 lg:tw-h-full "><svg class=""
width="14" height="14" xmlns="http://www.w3.org/2000/svg">
<path d="m3 3 8.485 8.485m0-8.485L3 11.485" stroke="currentColor" stroke-width="1.6" stroke-linecap="square"></path>
</svg></button>
</div>
</form>
GET /search
<form action="/search" method="get" class="">
<div tabindex="-1" class="tw-flex tw-relative header__search">
<input autocomplete="off" name="q" type="text"
class="tw-w-full tw-flex-1 tw-h-10 tw-py-0 tw-pl-[14px] tw-pr-13 tw-bg-header-search tw-text-current tw-text-sm tw-leading-none tw-rounded-global tw-border tw-border-solid tw-border-header tw-placeholder-current header__search-input"
placeholder="Search...">
<button type="submit" class="tw-flex tw-items-center tw-px-[14px] tw-m-0 tw-bg-transparent tw-text-current tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-absolute tw-right-0 header__search-icon" tabindex="-1"><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></button>
<button type="button"
class="tw-hidden tw-justify-center tw-items-center tw-pr-2 tw-pl-6 tw-m-0 tw-bg-transparent tw-text-header-color tw-border-none tw-outline-none tw-cursor-pointer header__search-close lg:tw-absolute lg:tw--right-11 lg:tw-h-full "><svg class=""
width="14" height="14" xmlns="http://www.w3.org/2000/svg">
<path d="m3 3 8.485 8.485m0-8.485L3 11.485" stroke="currentColor" stroke-width="1.6" stroke-linecap="square"></path>
</svg></button>
</div>
</form>
GET /search
<form action="/search" method="get" class="">
<div tabindex="-1" class="tw-flex tw-relative header__search">
<input autocomplete="off" name="q" type="text"
class="tw-w-full tw-flex-1 tw-h-10 tw-py-0 tw-pl-[14px] tw-pr-13 tw-bg-header-search tw-text-current tw-text-sm tw-leading-none tw-rounded-global tw-border tw-border-solid tw-border-header tw-placeholder-current header__search-input"
placeholder="Search...">
<button type="submit" class="tw-flex tw-items-center tw-px-[14px] tw-m-0 tw-bg-transparent tw-text-current tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-absolute tw-right-0 header__search-icon" tabindex="-1"><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></button>
<button type="button"
class="tw-hidden tw-justify-center tw-items-center tw-pr-2 tw-pl-6 tw-m-0 tw-bg-transparent tw-text-header-color tw-border-none tw-outline-none tw-cursor-pointer header__search-close lg:tw-absolute lg:tw--right-11 lg:tw-h-full "><svg class=""
width="14" height="14" xmlns="http://www.w3.org/2000/svg">
<path d="m3 3 8.485 8.485m0-8.485L3 11.485" stroke="currentColor" stroke-width="1.6" stroke-linecap="square"></path>
</svg></button>
</div>
</form>
GET /search
<form action="/search" method="get" class="">
<div tabindex="-1" class="tw-flex tw-relative header__search">
<input autocomplete="off" name="q" type="text"
class="tw-w-full tw-flex-1 tw-h-10 tw-py-0 tw-pl-[14px] tw-pr-13 tw-bg-header-search tw-text-current tw-text-sm tw-leading-none tw-rounded-global tw-border tw-border-solid tw-border-header tw-placeholder-current header__search-input"
placeholder="Search...">
<button type="submit" class="tw-flex tw-items-center tw-px-[14px] tw-m-0 tw-bg-transparent tw-text-current tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-absolute tw-right-0 header__search-icon" tabindex="-1"><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></button>
<button type="button" class="tw-hidden tw-justify-center tw-items-center tw-pr-2 tw-pl-6 tw-m-0 tw-bg-transparent tw-text-header-color tw-border-none tw-outline-none tw-cursor-pointer header__search-close "><svg class="" width="14" height="14"
xmlns="http://www.w3.org/2000/svg">
<path d="m3 3 8.485 8.485m0-8.485L3 11.485" stroke="currentColor" stroke-width="1.6" stroke-linecap="square"></path>
</svg></button>
</div>
</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>
<form class="animated modal__form-style_template_rebate_multi layers-4" id="modal__form"
style="image: url(https://img.fantaskycdn.com/4d383001494361cdbb3651de5d5b81ba.png); background: url(https://img.fantaskycdn.com/4d383001494361cdbb3651de5d5b81ba.png) no-repeat scroll center center/100% 100%; background1: #ff704f; background2: #ff274b; backgroundImageTemplate: linear-gradient(180deg, $bg1, $bg2, $bg2); ; width: 620px;">
<div class="modal__title"><span style="font-size: 32px; font-weight: 900; font-family: Lato, Lato-Black; color: #fefffe;" data-mce-style="font-size: 32px; font-weight: 900; font-family: Lato, Lato-Black; color: #fefffe;">SPECIAL OFFER</span></div>
<div class="modal__discount-layers layers-4" style="width: 500px;">
<div class="modal__discount-layer layer-0">
<div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(0.97561); width: 108.65px; height: 82px;">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">10</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$89</span>+</div>
</div>
</div>
<div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">10</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$89</span>+</div>
</div>
</div>
<svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(8 6)">
<use fill="#FFFBF2" xlink:href="#b"></use>
</g>
<path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
</g>
</svg>
</div>
<div class="modal__discount-layer layer-1">
<div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(0.97561); width: 108.65px; height: 82px;">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">15</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$169</span>+</div>
</div>
</div>
<div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">15</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$169</span>+</div>
</div>
</div>
<svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(8 6)">
<use fill="#FFFBF2" xlink:href="#b"></use>
</g>
<path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
</g>
</svg>
</div>
<div class="modal__discount-layer layer-2">
<div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(0.97561); width: 108.65px; height: 82px;">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">20</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$289</span>+</div>
</div>
</div>
<div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">20</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$289</span>+</div>
</div>
</div>
<svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(8 6)">
<use fill="#FFFBF2" xlink:href="#b"></use>
</g>
<path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
</g>
</svg>
</div>
<div class="modal__discount-layer layer-3">
<div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(0.97561); width: 108.65px; height: 82px;">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">25</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$599</span>+</div>
</div>
</div>
<div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
<div style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;text-align: center;white-space: nowrap;">
<div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
<span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">25</span>
<div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
<span style="font-size: 24px;display: block;" data-mce-style="display: block;font-size: 30px; color: #ff2f4b;">%</span>
<span style="color:#b06410;font-size: 12px;" data-mce-style="color:#b06410;font-size: 12px;">OFF</span>
</div>
</div>
<div style="margin-top: 5px;color: #AE6002;font-size: 12px;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;">ON ORDER OF</div>
<div style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;" data-mce-style="margin-top: 5px;font-size: 16px; font-weight: bold; color: #ff2f4b;"><span class="money notranslate">$599</span>+</div>
</div>
</div>
<svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(8 6)">
<use fill="#FFFBF2" xlink:href="#b"></use>
</g>
<path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
</g>
</svg>
</div>
</div>
<div class="modal__button" style="background-color: #fff3be; border-color: #fff3be; "><span style="color: #FF0022; font-size: 16px; font-weight: bold;font-family: Lato, Lato-Regular;"
data-mce-style="color: #FF0022; font-size: 16px; font-weight: bold;font-family: Lato, Lato-Regular;">COLLECT ALL</span></div>
<div class="modal__close-icon d-block d-md-none notranslate">
<svg width="30" height="30" xmlns="http://www.w3.org/2000/svg">
<g fill="#FFF" fill-rule="nonzero">
<path d="M15 0c8.284 0 15 6.716 15 15 0 8.284-6.716 15-15 15-8.284 0-15-6.716-15-15C0 6.716 6.716 0 15 0zm0 2C7.82 2 2 7.82 2 15s5.82 13 13 13 13-5.82 13-13S22.18 2 15 2z"></path>
<path
d="M19.905 9.505a.7.7 0 01.073.903l-.073.087-4.211 4.209 4.21 4.21a.7.7 0 01-.903 1.064l-.086-.073-4.211-4.211-4.209 4.21a.7.7 0 01-1.064-.903l.074-.086 4.21-4.211-4.21-4.209a.7.7 0 01.903-1.064l.087.074 4.209 4.21 4.21-4.21a.7.7 0 01.99 0z">
</path>
</g>
</svg>
</div>
<svg class="modal__close-icon d-md-block d-none" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<defs>
<style></style>
</defs>
<path d="M238.36 863.697L863.696 238.36a46.545 46.545 0 00-65.815-65.815L172.544 797.882a46.545 46.545 0 1065.815 65.815zM172.543 238.36l625.338 625.338a46.545 46.545 0 0065.815-65.815L238.36 172.544a46.545 46.545 0 10-65.815 65.815z"
fill="#ffffff"></path>
</svg>
<div class="modal__footer">
<span style="font-size: 14px; color: #ffffff;font-family: Lato, Lato-Regular;" data-mce-style="font-size: 14px; color: #ffffff;font-family: Lato, Lato-Regular;">*Discounts would automatically apply when placing an order</span>
</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
* FREE SHIPPING ONLY OVER ORDER $69 | GET 8% OFF FOR FIRST ORDER(YN08) * FREE SHIPPING ONLY OVER ORDER $69 | GET 8% OFF FOR FIRST ORDER(YN08) * FREE SHIPPING ONLY OVER ORDER $69 | GET 8% OFF FOR FIRST ORDER(YN08) * FREE SHIPPING ONLY OVER ORDER $69 | GET 8% OFF FOR FIRST ORDER(YN08) Powered by Translate English,Deutsch,Italiano,Français,Español,简体中文 USD * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) YOLONANA English,Deutsch,Italiano,Français,Español,简体中文 USD * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) Search Account * Log in * Create an account 0 Cart Close * HOME * NEW ARRIVAL * 💘💘2024 TRENDING * CUTE MINI * 👙👙BIKINI * SPRING * THREE-PIECE SET * JEANS * WHAT'S HOT * DRESSES * JUMPSUIT * 🎄🎄LUXURY ITEM * TRACK ORDER Log in English,Deutsch,Italiano,Français,Español,简体中文 USD * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * HOME * NEW ARRIVAL * 💘💘2024 TRENDING * CUTE MINI * 👙👙BIKINI * SPRING * THREE-PIECE SET * JEANS * WHAT'S HOT * DRESSES * JUMPSUIT * 🎄🎄LUXURY ITEM * TRACK ORDER * More links JUMPSUIT 🎄🎄LUXURY ITEM TRACK ORDER Top searched FLORAL ONE-SHOULDER FLOWY LONG-SLEEVED DRESS $39.99 2024 TRENDING View all * FLORAL ONE-SHOULDER FLOWY LONG-SLEEVED DRESS $39.99 * FLORAL ONE SHOULDER SEXY LONG-SLEEVED DRESS $39.99 * FLORAL ONE-SHOULDER LONG-SLEEVED DRESS $39.99 * FLORAL ONE-SHOULDER FLORAL LONG-SLEEVED DRESS $39.99 * HALTER DRESS WITH CHEST AND SLEEVE $33.99 * 2024SS SEXY HALTER LACE WISPY DRESS $39.99 * 2024SS SEXY HIGH-NECK PATCHWORK LONG-SLEEVED DRESS $38.99 * SALE +1 STRAP SOLID COLOR SLIT DRESS $33.99 $59.99 Save $26.00 * SEXY STRAPLESS PEPLUM DRESS $39.99 * 2024SS SEXY HALTER STYLE PARTY DRESS $39.99 * 2024SS SEXY STRAP LACE DRESS $39.99 * SOLID COLOR STRAPPING SEXY DRESS $33.99 * 2024SS SEXY HALTER RUFFLED DRESS $39.99 * BLUE SLIT PLEATED STRAPLESS DRESS $33.99 * SLIT PLEATED STRAPLESS DRESS $33.99 * HALTER-NECK DRESS $39.99 NEW ARRIVAL View all * 2024SS SEXY SLEEVELESS DEEP V JUMPSUIT $40.99 * 2024SS SEXY STRAPLESS LACE-UP PARTY DRESS $39.99 * 2024SS SEXY PLANT PRINT DEEP V DRESS $39.99 * 2024SS SEXY SUSPENDERS LOOSE DRESS $38.99 * 2024SS SEXY SLANT SHOULDER PEPLUM SKIRT DRESS $38.99 * 2024SS SEXY HANGING NECK AND EMPTY DRESS $38.99 * 2024SS SOLID COLOR SEXY STRAP SPLIT DRESS $38.99 * 2024SS SEXY SUSPENDERS SPLIT GOLD SPARKLY DRESS $39.99 * 2024SS SEXY SLANT SHOULDER PLEATED DRESS $39.99 * 2024SS SEXY STRAPLESS PEPLUM DRESS $39.99 * 2024SS SEXY SLANT SHOULDER PRINT TOP DRESS $39.99 * 2024SS SEXY TOP TOP COLOR DRESS $38.99 * 2024SS SEXY GLITTER GOLD DRESS $38.99 * 2024SS SEXY HALTER PRINT HALTER DRESS $39.99 * SALE LAPEL SOLID COLOR TWO PIECE SET $38.99 $53.99 Save $15.00 * SALE SLEEVELESS SOLID COLOR HOLLOW WAIST DRESS $38.99 $53.90 Save $14.91 NEWSLETTER Get 8% Off For Your First Order(YN08) | Free Shipping Over Order $69 | Limited Time Sales Get 50% Off On Valentine's Day Subscribe Thanks for subscribing Save 10% on your first purchase Sign up today and we'll send you a 10% discount code towards your first purchase. Thanks for subscribing © 2024 YOLONANA ABOUT US CONTACT US SIZE CHART PRIVACY POLICY RETURN & REFUND SHIPPING & DELIVERY TERM & CONDITIONS PAYMENT METHODS INTELLECTUAL PROPERTY RIGHTS SIGN UP AND SAVE Entice customers to sign up for your mailing list with discounts or exclusive offers. Include an image for extra impact. Subscribe Thanks for subscribing 111 GIFTS POINTS 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) => { this.onBuyNowClick(); 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; const that = this; 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("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: 2 }); window.sa.track("module_impressions", { aid: `smart_recommend.2.${rule.id}` }); } } onBuyNowClick() { const checkoutEl = document.getElementById("smart_cart_pop_checkout"); if (!checkoutEl) return; checkoutEl.addEventListener('click', function(e) { const trackData = { plugin_name: "upsell", event_type: "checkout_submit", rule_id: `${this.activityId_}`, show_type: 2 }; window.sa && window.sa.track("plugin_common", trackData); }); } 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 : '..'} Checkout `; })()} S***e in Somewhere purchased Floral one-shoulder flowy long-sleeved dress 21 minutes ago S***e recently purchased SPECIAL OFFER 10 % OFF ON ORDER OF $89+ 10 % OFF ON ORDER OF $89+ 15 % OFF ON ORDER OF $169+ 15 % OFF ON ORDER OF $169+ 20 % OFF ON ORDER OF $289+ 20 % OFF ON ORDER OF $289+ 25 % OFF ON ORDER OF $599+ 25 % OFF ON ORDER OF $599+ COLLECT ALL *Discounts would automatically apply when placing an order Original text Rate this translation Your feedback will be used to help improve Google Translate