yhn.prd.testinfo.org
Open in
urlscan Pro
2606:4700::6812:e82a
Public Scan
URL:
https://yhn.prd.testinfo.org/
Submission: On May 14 via api from US — Scanned from DE
Submission: On May 14 via api from US — Scanned from DE
Form analysis
6 forms found in the DOM<form>
<input name="variant_id" type="hidden" value="${data.variants[0].id}">
<button type="button" class="product-snippet__quick-shop-icon" role="addToCart" data-quick-shop="${data.handle}" data-track-product-id="${data.id}" data-track="click" data-track-content="add_to_cart" data-track-source="quick_shop">
<svg class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.6 1.9a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.5H1.9a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.5v5.5a.3.3 0 0 0 .3.3h.6a.3.3 0 0 0 .3-.3V8.6h5.5a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V1.9z" fill="currentColor"></path>
</svg>
</button>
</form>
GET /search
<form class="flex items-center" action="/search" method="get">
<button type="submit" class="clear text-0 text-inherit cursor-pointer">
<svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M17.925 20.057A9.955 9.955 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.968 9.968 0 0 1-2.864 7.006l4.929 4.928a.8.8 0 0 1-1.132 1.132l-5-5-.008-.01zM20.4 12a8.4 8.4 0 1 1-16.8 0 8.4 8.4 0 0 1 16.8 0z"
fill="currentColor"></path>
</svg>
</button>
<input @input-debounced="header_search_predictive_render-sidebar.rerender(data=event.value, redo=true);" class="header__search_sidebar-input flex-1 text-base leading-none type-text-font-family clear" type="text" autocomplete="off" name="q"
placeholder="Search products">
<button type="reset" class="header__search-modal-close text-0 text-inherit clear cursor-pointer" @tap="header_search_sidebar.close()">
<svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
<path d="M21.502 5.732A.85.85 0 0 0 20.3 4.53l-7.32 7.32L5.734 4.6a.85.85 0 0 0-1.202 1.203l7.248 7.247L4.53 20.3A.85.85 0 0 0 5.733 21.5l7.248-7.248 7.319 7.319a.85.85 0 0 0 1.202-1.202l-7.319-7.319 7.319-7.319z" fill="currentColor"></path>
</svg>
</button>
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<spz-render id="quick-shop-btn-price" layout="container" template="quick-shop-button-price-template" manual=""></spz-render>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
<form class="animated modal__form-style_template_discount_gifts_2" id="modal__form">
<div class="modal__content" style=" background-image: url('//img.staticdj.com/oss/operation/345910396b661cb71fd8ebaf1e9920ce_660x.png');">
<div class="modal__title">
<p><span style="font-size: 20px; line-height: 24px; color: #b44802; font-family: Lato, Lato-Bold; font-weight: bold;">SPECIAL OFFER</span></p>
</div>
<div class="modal__desc">
<p><span style="font-size: 84px; font-weight: bold; font-family: Lato, Lato-Bold; color: #c92800;">FREE</span></p>
</div>
<div class="modal__discount-wrap">
<div class="modal__discount_gift" style="transform: scale(1); width: 238px; height: 66px;">
<p style="line-height: 22px;"><span style="font-family: Lato, Lato-Regular; font-size: 18px; font-weight: 400; color: #994906;">SPEND</span><span style="font-family: Lato, Lato-Regular; font-size: 24px; font-weight: bold; color: #c40000;">
<span class="money">€4</span> </span></p>
<p><span style="font-family: Lato, Lato-Regular; font-size: 18px; font-weight: 400; color: #c40000;"><span style="font-family: Lato, Lato-Regular; color: #994906;">GET</span> <span
style="font-family: Lato; font-size: 24px; font-weight: bold; color: #c40000;">1</span> <span style="font-family: Lato, Lato-Regular; font-size: 18px; color: #994906; font-weight: 400;">FREE</span></span></p>
</div>
<div class="modal__discount_gift_hidden">
<p style="line-height: 22px;"><span style="font-family: Lato, Lato-Regular; font-size: 18px; font-weight: 400; color: #994906;">SPEND</span><span style="font-family: Lato, Lato-Regular; font-size: 24px; font-weight: bold; color: #c40000;">
<span class="money">€4</span> </span></p>
<p><span style="font-family: Lato, Lato-Regular; font-size: 18px; font-weight: 400; color: #c40000;"><span style="font-family: Lato, Lato-Regular; color: #994906;">GET</span> <span
style="font-family: Lato; font-size: 24px; font-weight: bold; color: #c40000;">1</span> <span style="font-family: Lato, Lato-Regular; font-size: 18px; color: #994906; font-weight: 400;">FREE</span></span></p>
</div>
</div>
<div class="modal__button" style="background-image: url('//img.staticdj.com/oss/operation/9a98fea8fb899a96a1616f89f1053686_660x.png');">
<p><span style="font-weight: bold; color: #d30808; font-size: 18px; font-family: Lato, Lato-Bold;">GO FOR IT</span></p>
</div>
</div>
<div class="modal__footer">
<div class="modal__footer-desc">
<p><span style="opacity: 0.8; font-size: 14px; font-family: Lato, Lato-Regular; font-weight: 400; text-align: center; color: #fffbf2;">*Spend a specified amount to get free gifts</span></p>
</div>
<div class="modal__close-icon">
<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>
</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="buffalo-get-form">
<input type="email" name="email" class="buffalo-input buffalo-input-get-email " placeholder="Email address" value="" required="">
<p class="buffalo-error buffalo-get-error"></p>
<button type="submit" class="buffalo-button buffalo-button_block buffalo-button-get">Send</button>
</form>
Text Content
${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "133.33%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return ` ${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ` : '' }` : "Sold out" } Mixed Lot ${DATA.TITLE} ${ data.price_min != data.price_max ? `from ` : ` ` } +${data.remainInvisibleThumbCount} ` })()} Free shipping for orders over €200.00 TRISTAN TRISTAN * Log in * Create an account ${data.data && data.data.count} * POINS * sport test oneone * Leather shoes * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 落地页 * 满减活动落地页 * 专辑落地页 * 满送落地页 * overcoat * heaven🙃 ikun🙃 dispont😡 lovely😁 never😥 kindess❤ fover🐷 * thing nothing anying * give up * Home * New Arrival * Collection * T-shirts * pants * mover over * join us * 8 1 2 3 4 5 6 7 * 9 2 * 10 3 * 11 4 * 12 5 * 13 6 * 14 7 * xie * More links ${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 50801363, title: "POINS", url: "#\/?channel=buy_refer", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "sport", url: "\/collections\/sport-shoes", target: "", levels: 1, children: [ { title: "test", url: "\/products\/v-neck-slim-fit-zipper-all-match-womens-sweater_5165", target: "", levels: 0, }, { title: "oneone", url: "", target: "", levels: 0, }, ] }, { title: "Leather shoes", url: "\/collections\/leather-shoes", target: "", levels: 0, children: [ ] }, { title: "1", url: "\/collections\/fff", target: "", levels: 0, children: [ ] }, { title: "2", url: "\/collections\/eee", target: "", levels: 0, children: [ ] }, { title: "3", url: "\/collections\/fff", target: "", levels: 0, children: [ ] }, { title: "4", url: "\/collections\/ddd", target: "", levels: 0, children: [ ] }, { title: "5", url: "\/collections\/ccc", target: "", levels: 0, children: [ ] }, { title: "6", url: "\/blogs\/00000000000000000000000000000000000000000000000000", target: "", levels: 0, children: [ ] }, { title: "7", url: "\/collections\/fashion", target: "", levels: 0, children: [ ] }, ] }, { id: 50801387, title: "\u843d\u5730\u9875", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "\u6ee1\u51cf\u6d3b\u52a8\u843d\u5730\u9875", url: "https:\/\/myskt.myshoplaza.com\/promotions\/rebate\/7b0c00f3-5c86-4bb4-a58c-b7e100bde8d4", target: "", levels: 0, children: [ ] }, { title: "\u4e13\u8f91\u843d\u5730\u9875", url: "\/collections\/\u5546\u54c1\u4e13\u8f91\u843d\u5730\u9875test", target: "", levels: 0, children: [ ] }, { title: "\u6ee1\u9001\u843d\u5730\u9875", url: "https:\/\/myskt.myshoplaza.com\/promotions\/discount\/63a00d6f-f10e-43d8-85a3-ac34cd06343c", target: "", levels: 0, children: [ ] }, ] }, { id: 50801395, title: "overcoat", url: "\/collections\/\u5546\u54c1\u4e13\u8f91test-np9o", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "heaven\ud83d\ude43", url: "\/collections\/fu-zhi-oneone_sgai", target: "", levels: 1, children: [ { title: "ikun\ud83d\ude43", url: "\/collections\/fashion", target: "", levels: 0, }, { title: "dispont\ud83d\ude21", url: "", target: "", levels: 0, }, { title: "lovely\ud83d\ude01", url: "", target: "", levels: 0, }, { title: "never\ud83d\ude25", url: "", target: "", levels: 0, }, { title: "kindess\u2764", url: "", target: "", levels: 0, }, { title: "fover\ud83d\udc37", url: "", target: "", levels: 0, }, ] }, { title: "thing", url: "", target: "", levels: 1, children: [ { title: "nothing", url: "", target: "", levels: 0, }, { title: "anying", url: "", target: "", levels: 0, }, ] }, { title: "give up", url: "", target: "", levels: 0, children: [ ] }, ] }, { id: 50801419, title: "Home", url: "\/", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 50801421, title: "New Arrival", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Collection", url: "\/collections\/test", target: "", levels: 0, children: [ ] }, ] }, { id: 50801425, title: "T-shirts", url: "\/collections\/man-t-shirts", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 50801427, title: "pants", url: "https:\/\/myskt.myshoplaza.com\/pages\/buy_refer?channel=buy_refer", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "mover", url: "\/pages\/refund", target: "", levels: 1, children: [ { title: "over", url: "\/blog\/321321", target: "", levels: 0, }, ] }, ] }, { id: 50801433, title: "join us", url: "https:\/\/myskt.myshoplaza.com\/pages\/join-us", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "8", url: "\/collections\/bbb", target: "", levels: 1, children: [ { title: "1", url: "\/products\/happy", target: "", levels: 0, }, { title: "2", url: "", target: "", levels: 0, }, { title: "3", url: "", target: "", levels: 0, }, { title: "4", url: "", target: "", levels: 0, }, { title: "5", url: "", target: "", levels: 0, }, { title: "6", url: "", target: "", levels: 0, }, { title: "7", url: "", target: "", levels: 0, }, ] }, { title: "9", url: "\/collections\/eee", target: "", levels: 1, children: [ { title: "2", url: "", target: "", levels: 0, }, ] }, { title: "10", url: "\/collections\/ddd", target: "", levels: 1, children: [ { title: "3", url: "", target: "", levels: 0, }, ] }, { title: "11", url: "\/collections\/fashion", target: "", levels: 1, children: [ { title: "4", url: "", target: "", levels: 0, }, ] }, { title: "12", url: "\/collections\/eee", target: "", levels: 1, children: [ { title: "5", url: "", target: "", levels: 0, }, ] }, { title: "13", url: "\/collections\/ccc", target: "", levels: 1, children: [ { title: "6", url: "", target: "", levels: 0, }, ] }, { title: "14", url: "", target: "", levels: 1, children: [ { title: "7", url: "", target: "", levels: 0, }, ] }, ] }, { id: 50801475, title: "xie", url: "#\/?channel=buy_refer", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return ` * ${link.title} ${link.tag.label} * ${second_link.title} ${second_link.tag.label} ${third_links.title} ${third_links.tag.label} * ${link.title} ${link.tag.label} ` })()} * POINS * sport test oneone * Leather shoes * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 落地页 * 满减活动落地页 * 专辑落地页 * 满送落地页 * overcoat * heaven🙃 ikun🙃 dispont😡 lovely😁 never😥 kindess❤ fover🐷 * thing nothing anying * give up * Home * New Arrival * Collection * T-shirts * pants * mover over * join us * 8 1 2 3 4 5 6 7 * 9 2 * 10 3 * 11 4 * 12 5 * 13 6 * 14 7 * xie * More links ${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 50801363, title: "POINS", url: "#\/?channel=buy_refer", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "sport", url: "\/collections\/sport-shoes", target: "", levels: 1, children: [ { title: "test", url: "\/products\/v-neck-slim-fit-zipper-all-match-womens-sweater_5165", target: "", levels: 0, }, { title: "oneone", url: "", target: "", levels: 0, }, ] }, { title: "Leather shoes", url: "\/collections\/leather-shoes", target: "", levels: 0, children: [ ] }, { title: "1", url: "\/collections\/fff", target: "", levels: 0, children: [ ] }, { title: "2", url: "\/collections\/eee", target: "", levels: 0, children: [ ] }, { title: "3", url: "\/collections\/fff", target: "", levels: 0, children: [ ] }, { title: "4", url: "\/collections\/ddd", target: "", levels: 0, children: [ ] }, { title: "5", url: "\/collections\/ccc", target: "", levels: 0, children: [ ] }, { title: "6", url: "\/blogs\/00000000000000000000000000000000000000000000000000", target: "", levels: 0, children: [ ] }, { title: "7", url: "\/collections\/fashion", target: "", levels: 0, children: [ ] }, ] }, { id: 50801387, title: "\u843d\u5730\u9875", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "\u6ee1\u51cf\u6d3b\u52a8\u843d\u5730\u9875", url: "https:\/\/myskt.myshoplaza.com\/promotions\/rebate\/7b0c00f3-5c86-4bb4-a58c-b7e100bde8d4", target: "", levels: 0, children: [ ] }, { title: "\u4e13\u8f91\u843d\u5730\u9875", url: "\/collections\/\u5546\u54c1\u4e13\u8f91\u843d\u5730\u9875test", target: "", levels: 0, children: [ ] }, { title: "\u6ee1\u9001\u843d\u5730\u9875", url: "https:\/\/myskt.myshoplaza.com\/promotions\/discount\/63a00d6f-f10e-43d8-85a3-ac34cd06343c", target: "", levels: 0, children: [ ] }, ] }, { id: 50801395, title: "overcoat", url: "\/collections\/\u5546\u54c1\u4e13\u8f91test-np9o", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "heaven\ud83d\ude43", url: "\/collections\/fu-zhi-oneone_sgai", target: "", levels: 1, children: [ { title: "ikun\ud83d\ude43", url: "\/collections\/fashion", target: "", levels: 0, }, { title: "dispont\ud83d\ude21", url: "", target: "", levels: 0, }, { title: "lovely\ud83d\ude01", url: "", target: "", levels: 0, }, { title: "never\ud83d\ude25", url: "", target: "", levels: 0, }, { title: "kindess\u2764", url: "", target: "", levels: 0, }, { title: "fover\ud83d\udc37", url: "", target: "", levels: 0, }, ] }, { title: "thing", url: "", target: "", levels: 1, children: [ { title: "nothing", url: "", target: "", levels: 0, }, { title: "anying", url: "", target: "", levels: 0, }, ] }, { title: "give up", url: "", target: "", levels: 0, children: [ ] }, ] }, { id: 50801419, title: "Home", url: "\/", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 50801421, title: "New Arrival", url: "", target: "", levels: 1, product0: { id: (null) }, children: [ { title: "Collection", url: "\/collections\/test", target: "", levels: 0, children: [ ] }, ] }, { id: 50801425, title: "T-shirts", url: "\/collections\/man-t-shirts", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 50801427, title: "pants", url: "https:\/\/myskt.myshoplaza.com\/pages\/buy_refer?channel=buy_refer", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "mover", url: "\/pages\/refund", target: "", levels: 1, children: [ { title: "over", url: "\/blog\/321321", target: "", levels: 0, }, ] }, ] }, { id: 50801433, title: "join us", url: "https:\/\/myskt.myshoplaza.com\/pages\/join-us", target: "", levels: 2, product0: { id: (null) }, children: [ { title: "8", url: "\/collections\/bbb", target: "", levels: 1, children: [ { title: "1", url: "\/products\/happy", target: "", levels: 0, }, { title: "2", url: "", target: "", levels: 0, }, { title: "3", url: "", target: "", levels: 0, }, { title: "4", url: "", target: "", levels: 0, }, { title: "5", url: "", target: "", levels: 0, }, { title: "6", url: "", target: "", levels: 0, }, { title: "7", url: "", target: "", levels: 0, }, ] }, { title: "9", url: "\/collections\/eee", target: "", levels: 1, children: [ { title: "2", url: "", target: "", levels: 0, }, ] }, { title: "10", url: "\/collections\/ddd", target: "", levels: 1, children: [ { title: "3", url: "", target: "", levels: 0, }, ] }, { title: "11", url: "\/collections\/fashion", target: "", levels: 1, children: [ { title: "4", url: "", target: "", levels: 0, }, ] }, { title: "12", url: "\/collections\/eee", target: "", levels: 1, children: [ { title: "5", url: "", target: "", levels: 0, }, ] }, { title: "13", url: "\/collections\/ccc", target: "", levels: 1, children: [ { title: "6", url: "", target: "", levels: 0, }, ] }, { title: "14", url: "", target: "", levels: 1, children: [ { title: "7", url: "", target: "", levels: 0, }, ] }, ] }, { id: 50801475, title: "xie", url: "#\/?channel=buy_refer", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return ` * ${link.title} ${link.tag.label} * ${second_link.title} ${second_link.tag.label} ${third_links.title} ${third_links.tag.label} * ${link.title} ${link.tag.label} ` })()} TRISTAN TRISTAN * Log in * Create an account ${data.data && data.data.count} ${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return ''; const keyword = encodeURIComponent(data); return ` View more Your search for '${data}' did not yield any results. ` })()} * POINS * POINS * sport * sport * test * oneone * Leather shoes * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 落地页 * 落地页 * 满减活动落地页 * 专辑落地页 * 满送落地页 * overcoat * overcoat * heaven🙃 * heaven🙃 * ikun🙃 * dispont😡 * lovely😁 * never😥 * kindess❤ * fover🐷 * thing * thing * nothing * anying * give up * Home * New Arrival * New Arrival * Collection * T-shirts * pants * pants * mover * mover * over * join us * join us * 8 * 8 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 9 * 9 * 2 * 10 * 10 * 3 * 11 * 11 * 4 * 12 * 12 * 5 * 13 * 13 * 6 * 14 * 14 * 7 * xie Log in (function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })(); OUR LATEST COLLECTION Pair large text with a full-width image to draw attention to an important detail of your brand or product line. Shop now CHIC DAILY STYLE And big, beautiful imagery Shop now ${Array(data.total || 0).fill().map((val, idx) => idx).map((val, idx) => ` * `).join('')} * * ${function() { return ` ` }()} NEW ARRIVALS A sentence or two introducing your brand, what you sell, and what makes your brand compelling to customers. Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 * LUXURY YOU CAN COUNT ON Our materials are luxurious and our details are refined. Shop now COLLECTION LIST Sweater High heel Bags Jewelry Hats Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 FASHION JEWELRY Shop now Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 Save €11,11 Save €11,11 PRODUCT TITLE €88,88 €99,99 EVERYDAY ESSENTIALS A sentence or two introducing your brand, what you sell, and what makes your brand compelling to customers. * WOOLEN JACKET Pair large text with a full-width image. Shop now * WOOLEN COAT Pair large text with a full-width image. Shop now Limit discounts Short content about your store Contact us Short content about your store Secure payment Short content about your store © 2024 Tristan 1 2 3 4 5 6 CART Your shopping bag is empty Continue shopping * ${item.product_title} * ${item.options.map(option => option.value).join('/')} * ${propertie.name}/${propertie.isImage ? `View image` : propertie.value} Free gift Mixed Lot *${item.quantity} ${item.item_text} ${discount_item.title} (-) Total: ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} * ${discount_application.title}: - ${data.invalid_msg} Check out Taxes and shipping calculated at checkout ${data.invalid_msg} Total: ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} * ${discount_application.title}: - Check out ${data.invalid_msg} Check out Taxes and shipping calculated at checkout * Subtotal: * ${discount_application.title}: - Total: Check out Taxes and shipping calculated at checkout const summaryStickyRender = document.querySelector('#cart-drawer-summary-sticky-render'); if (summaryStickyRender) { document.body.style.setProperty('--cart-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px'); } View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { const nameEscape = opt.name.replace(/\/|\\|\s|\'|\"|`|\<|\>/g, '') product_change_event = product_change_event + `quick-shop-selected-variant-${opt.id}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.id}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${nameEscape}Mouseover="quick-shop-selected-variant-${opt.id}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = null; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const optionId = option.id || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} 111 GIFTS POINTS Choose 2 piece(s) to enjoy bundle sales price for €24 FREE WORLDWIDE SHIPPING - NO MINIMUN! 111 SPECIAL OFFER FREE SPEND €4 GET 1 FREE SPEND €4 GET 1 FREE GO FOR IT *Spend a specified amount to get free gifts €0,00 1 Google form1 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} `; })()} See detail €0,00 Quantity 1 See detail See detail €0,00 Quantity 1 Add to cart word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word mmMwWLliI0fiflO&1 mmMwWLliI0fiflO&1 mmMwWLliI0fiflO&1 mmMwWLliI0fiflO&1 mmMwWLliI0fiflO&1 mmMwWLliI0fiflO&1 mmMwWLliI0fiflO&1 We care about your privacyWe care about your privacyWe care about your privacyWe care about your pri 这是一个cookie test这是一个cookie t这是一个cookie test这是一个 cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个 cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个 cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie test这是一个cookie t Privacy Policy Privacy Policy Privacy Policy1111111ivacy Policy Privacy Policy Privacy Policy1111111 DECLINE DECLINE11111 ACCEPT 按test ACCEPT1 do it now Become a member Welcome Join us Already have an account? Sign in Referral Refer a friend and get paid! Give €25 OFF, Get €20 OFF Points Earn reward points which can be redeemed for discount! Earn your points Sign up reward: 10 point(s) Register to earn points Get your points Share on Twitter: 500 point(s) Share to earn points Get your points Share on Facebook: 300 point(s) Share to earn points Get your points Share on Pinterest: 200 point(s) Share to earn points Get your points Order reward: €1 = 10 point(s) Place an order Get your points Spend your points €5 off Specific products €50 off Get €25 coupon code Send copy to clipboard