www.expoionus.com
Open in
urlscan Pro
104.18.232.42
Public Scan
Submitted URL: http://expoionus.com/
Effective URL: https://www.expoionus.com/
Submission: On March 28 via manual from IT — Scanned from IT
Effective URL: https://www.expoionus.com/
Submission: On March 28 via manual from IT — Scanned from IT
Form analysis
4 forms found in the DOMGET /search
<form class="header__search-modal-content tw-flex-1 tw-container tw-flex tw-items-center" action="/search" method="get">
<button type="submit" class="header__icons-search tw-m-0 tw-p-0 tw-text-0 tw-text-inherit tw-bg-transparent tw-border-0 tw-outline-none tw-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 class="header__search-input tw-flex-1 tw-m-0 tw-p-0 tw-pl-4 tw-pr-16 tw-text-base tw-leading-1 tw-text-header-search-text-color type-text-font-family tw-bg-transparent tw-border-0 tw-outline-none" type="text" autocomplete="off" name="q"
placeholder="Search products">
<button type="button" class="header__search-modal-close tw-m-0 tw-p-0 tw-text-0 tw-text-inherit tw-bg-transparent tw-border-0 tw-outline-none tw-cursor-pointer">
<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 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_bundle_1" id="modal__form" style=" background-image: url('//img.fantaskycdn.com/oss/operation/91a8a84f57b6a6a5ffdd4cdd2ebbe25f_660x.png');">
<div class="modal__top">
<div class="modal__title text-truncate"><span style="display: inline-block;color: #b40101;font-size: 14px;border: 1px solid #b40101;border-left: none;border-right: none;font-family: Lato, Lato-Regular;"
data-mce-style="display: inline-block;color: #b40101;font-size: 14px;border: 1px solid #b40101;border-left: none;border-right: none;font-family: Lato, Lato-Regular;">BUNDLE SALE</span></div>
<div class="modal__bundle-price d-flex flex-row justify-content-center">
<div>
<div style="font-size:14px;line-height:17px;font-family:lato,lato-regular;color:#b40101;display:block" data-mce-style=" font-size: 14px; line-height: 17px; font-family: lato, lato-regular; color: #b40101; display: block; ">Special price of
</div>
<div class="popups___need_scale notranslate" style="display: inline-flex; justify-content: center; transform: scale(1);"><span
style="font-size:32px;font-family:lato,lato-bold;font-weight:700;color:#e50000;line-height:1;margin-top:5px;margin-right:8px"
data-mce-style=" font-size: 32px; font-family: lato, lato-bold; font-weight: 700; color: #e50000; line-height: 1; margin-top: 5px; margin-right: 8px; ">€ </span><span
style="font-size:70px;font-weight:700;color:#df0000;line-height:1;font-family:lato,lato-bold" data-mce-style=" font-size: 70px; font-weight: 700; color: #df0000; line-height: 1; font-family: lato, lato-bold; ">54.52</span></div>
</div>
</div>
<div class="modal__bundle-price_hidden money notranslate">€54.52</div>
</div>
<div class="modal__bottom w-100 d-flex flex-row align-items-center justify-content-center">
<div class="modal__bundle-desc">
<div style="display:flex;justify-content:center;align-items:center;font-family:lato,lato-regular" data-mce-style="display: flex; justify-content: center; align-items: center;font-family: lato, lato-regular;">
<div style="color:#b40101;font-size:16px;line-height:19px;margin-right:6px" data-mce-style=" color: #b40101; font-size: 16px; line-height: 19px; margin-right: 6px;">
<div>WHEN</div>
<div>ORDER</div>
</div>
<div style="color:#b40101;font-size:42px;line-height:52px" data-mce-style=" color: #b40101; font-size: 42px; line-height: 52px">3</div>
</div>
</div>
</div>
<div class="modal__close-icon 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>
<div class="modal__footer d-flex align-items-center justify-content-center">
<svg width="12" height="15" xmlns="http://www.w3.org/2000/svg">
<g fill="#FFCA7D" fill-rule="evenodd">
<path
d="M5.667 15c-.19 0-.379-.115-.51-.338-.238-.401-.2-.999.081-1.335l5.058-6.034-4.71-5.62c-.282-.336-.32-.934-.082-1.335.237-.4.657-.453.939-.116l5.319 6.345c.15.18.238.446.238.726 0 .28-.087.545-.238.726l-5.667 6.76a.562.562 0 01-.428.221">
</path>
<path d="M.667 15c-.19 0-.379-.115-.51-.338-.238-.401-.2-.999.081-1.335l5.058-6.034-4.71-5.62C.304 1.337.266.74.504.338c.237-.4.657-.453.939-.116l5.319 6.345c.15.18.238.446.238.726 0 .28-.087.545-.238.726l-5.667 6.76A.562.562 0 01.667 15">
</path>
</g>
</svg>
<div class="modal__button text-truncate"><span style="color: #CE001E; font-size: 18px; font-family: Lato, Lato-Bold; font-weight: 700;" data-mce-style="color: #CE001E; font-size: 18px; font-family: Lato, Lato-Bold; font-weight: 700;">ENJOY
NOW</span></div>
<svg width="12" height="15" xmlns="http://www.w3.org/2000/svg">
<g fill="#FFCA7D" fill-rule="evenodd">
<path
d="M6.333 15c.19 0 .379-.115.51-.338.238-.401.2-.999-.081-1.335L1.704 7.293l4.71-5.62c.282-.336.32-.934.082-1.335-.237-.4-.657-.453-.939-.116L.238 6.567c-.15.18-.238.446-.238.726 0 .28.087.545.238.726l5.667 6.76c.125.148.277.221.428.221">
</path>
<path
d="M11.333 15c.19 0 .379-.115.51-.338.238-.401.2-.999-.081-1.335L6.704 7.293l4.71-5.62c.282-.336.32-.934.082-1.335-.237-.4-.657-.453-.939-.116L5.238 6.567c-.15.18-.238.446-.238.726 0 .28.087.545.238.726l5.667 6.76c.125.148.277.221.428.221">
</path>
</g>
</svg>
</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
* Fast delivery / Limited time sale / while stocks last * Fast delivery / Limited time sale / while stocks last FREE SHIPPING ON ORDERS OVER €82.24 EXPOION Powered by Traduttore English,Deutsch,Français,Italiano,Español,日本語,Português,Polski,Nederlands,svenska,العربية EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Mexican Pesos (MXN) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Polish Zlotych (PLN) * Log in * Create an account 0 * Home * Hot Sale * New Arrivals * Anime Style🔥 * Dragon Ball * Naruto * Jujutsu Kaisen * One Piece Tee * Solo Leveling * Washed Dragon Ball Tee * One Piece Hoodie * Sweatpant * Racing Style * Racing Hoodie * Racing Tee * Phone Case * Hat * Shop By Style * Basketball Style * Soccer Style * Oversize Graphics * Gym Style * Street Fighter * Surf Style * T-shirts * Vintage T-shirts * Street T-shirts * Shorts * Sweatshirts * Sweatpants * Christmas Clearance * Flannel Jackets * More links * Home * Hot Sale * New Arrivals * Anime Style🔥 * Dragon Ball * Naruto * Jujutsu Kaisen * One Piece Tee * Solo Leveling * Washed Dragon Ball Tee * One Piece Hoodie * Sweatpant * Racing Style * Racing Hoodie * Racing Tee * Phone Case * Hat * Shop By Style * Basketball Style * Soccer Style * Oversize Graphics * Gym Style * Street Fighter * Surf Style * T-shirts * Vintage T-shirts * Street T-shirts * Shorts * Sweatshirts * Sweatpants * Christmas Clearance * Flannel Jackets * More links Sweatpants Christmas Clearance Flannel Jackets English,Deutsch,Français,Italiano,Español,日本語,Português,Polski,Nederlands,svenska,العربية EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Mexican Pesos (MXN) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Polish Zlotych (PLN) EXPOION English,Deutsch,Français,Italiano,Español,日本語,Português,Polski,Nederlands,svenska,العربية EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Mexican Pesos (MXN) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Polish Zlotych (PLN) * Log in * Create an account 0 * Home * Hot Sale * New Arrivals * Anime Style🔥 * Racing Style * Shop By Style * Surf Style * T-shirts * Shorts * Sweatshirts * Sweatpants * Christmas Clearance * Flannel Jackets English,Deutsch,Français,Italiano,Español,日本語,Português,Polski,Nederlands,svenska,العربية EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Japanese Yen (JPY) * Mexican Pesos (MXN) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Polish Zlotych (PLN) Log in Anime Style🔥 * Dragon Ball * Naruto * Jujutsu Kaisen * One Piece Tee * Solo Leveling * Washed Dragon Ball Tee * One Piece Hoodie * Sweatpant Racing Style * Racing Hoodie * Racing Tee * Phone Case * Hat Shop By Style * Basketball Style * Soccer Style * Oversize Graphics * Gym Style * Street Fighter T-shirts * Vintage T-shirts * Street T-shirts * 1 * 2 Every Dragon Ball T-shirt is the beginning of an adventure. It is not just a piece of clothing, but a link between you and the Dragon Ball world. Fight alongside your beloved characters, feel their courage and determination, and unleash the power within you. Whether at home, school or a gathering of friends, you can stand out and become the center of attention. SHOP NOW PAYMENT POLICY CONTACT US FAST DELIVERY EASY RETURN * DBZ 24SS SHOP NOW * EXPOION FACTORY More * EXPOION FANS Fans Shows * MORE COLOR TO CHOOSE COLLECTION LIST Dragon Ball One Piece Hoodie Racing Style Surf T-shirt Shorts Street T-shirt 1/6 Subscribe to us to get the latest clothing and coupons every day Subscribe Thanks for subscribing Follow us * * © 2024 expoion About Us Contact Us Q&A Size Guide Delivery Payment Method Privacy Policy Order Track Refund Policy Cancel Order Edit Shipping Address Terms & Conditions 111 GIFTS POINTS Buy €73.00 more and save €2.77 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} `; })()} BUNDLE SALE Special price of € 54.52 €54.52 WHEN ORDER 3 ENJOY NOW We care about your privacy This website uses cookies to ensure you get the best experience on our website. Privacy Policy DECLINE ACCEPT Testo originale Valuta questa traduzione Il tuo feedback verrà utilizzato per contribuire a migliorare Google Traduttore