www.magianime.com
Open in
urlscan Pro
2606:4700::6812:e92a
Public Scan
Submitted URL: http://www.magianime.com/
Effective URL: https://www.magianime.com/
Submission: On February 12 via api from US — Scanned from DE
Effective URL: https://www.magianime.com/
Submission: On February 12 via api from US — Scanned from DE
Form analysis
3 forms found in the DOMGET /search
<form action="/search" method="get" class="">
<div tabindex="-1" class="header__search tw-flex tw-items-center tw-relative">
<button type="submit" class="header__search-icon tw-m-0 tw-p-0 tw-flex tw-items-center tw-pr-8 tw-bg-transparent tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-text-current" 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>
<input autocomplete="off" name="q" type="text" class="header__search-input tw-bg-header-search tw-w-full tw-flex-1 tw-h-10 tw-p-0 tw-text-body-base tw-leading-none tw-border-none tw-text-current tw-bg-body tw-placeholder-body-alpha-50 "
placeholder="Search our store">
<button type="button" class="header__search-close tw-p-4 tw--mr-4 tw-hidden tw-justify-center tw-items-center tw-m-0 tw-ml-5 tw-bg-transparent tw-border-none tw-outline-none tw-text-current tw-cursor-pointer"><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>
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
* 🚀BUY 2 FREE SHIPPING 📦 🚀BUY 2 FREE SHIPPING 📦 🚀BUY 2 FREE SHIPPING 📦 🚀BUY 2 FREE SHIPPING 📦 🚀BUY 2 FREE SHIPPING 📦 * 🚀BUY 2 FREE SHIPPING 📦 Powered by Google Übersetzer English,Português,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,dansk,Magyar,Romanian,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Colombian Peso (COP) * Hungarian Forint (HUF) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Swedish Kronor (SEK) * Swiss Francs (CHF) * SHOP ALL * SERIES AOT Berserk Chainsow Man JJK Naruto One Piece Soul Eater * TOPS T-SHIRTS SWEATSHIRTS HOODIES & ZIPS VINTAGE WASHED HOODIES KNITS JACKET * Bottoms SHORTS GYM SHORTS TROUSERS * Accessories Apparel Accessories NECKLACES RINGS * FAQS * More links Bottoms Accessories FAQS English,Português,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,dansk,Magyar,Romanian,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Colombian Peso (COP) * Hungarian Forint (HUF) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Log in * Create an account 0 * SHOP ALL * SERIES * SERIES * AOT * Berserk * Chainsow Man * JJK * Naruto * One Piece * Soul Eater * TOPS * TOPS * T-SHIRTS * SWEATSHIRTS * HOODIES & ZIPS * VINTAGE WASHED HOODIES * KNITS * JACKET * Bottoms * Bottoms * SHORTS * GYM SHORTS * TROUSERS * Accessories * Accessories * Apparel Accessories * NECKLACES * RINGS * FAQS Log in English,Português,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,dansk,Magyar,Romanian,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Australian Dollars (AUD) * Colombian Peso (COP) * Hungarian Forint (HUF) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Norwegian Kroner (NOK) * Swedish Kronor (SEK) * Swiss Francs (CHF) LATEST ARRIVALS VIEW ALL * SALE 【PREORDER】GOJO CAT KNIT - JJK - SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】KNIT - BERSERK- SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】BERSERK EMBROIDERED CARGO PANTS - BERSERK - SHIPS FEB 15TH €62.97 €110.20 Save €47.23 * SALE 【PREORDER】ZORO EMBROIDERED CARGO PANTS - O.P - SHIPS FEB 15TH €62.97 €110.20 Save €47.23 * SALE 【PREORDER】JJK SWEATSHIRTS - JJK- SHIPS FEB 15TH €38.89 €77.79 Save €38.89 * SALE 【PREORDER】ITADORI JACKET - JJK- SHIPS FEB 15TH €72.23 €77.79 Save €5.55 * SALE 【PREORDER】KUMA EMBROIDERED ZIP UP HOODIE - O.P - SHIPS FEB 15TH €42.60 €72.23 Save €29.63 * SALE 【PREORDER】HOODIE - BERSERK- SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】PUFFER JACKET - BERSERK- SHIPS FEB 15TH €76.85 €153.71 Save €76.85 * SALE 【PREORDER】URAHARA KISUKE KNIT - BLEACH - SHIPS FEB 15TH €44.45 €92.61 Save €48.15 SHOP ALL VIEW ALL * SALE JJK GOJO EMBROIDERED HOODIE €44.45 €62.97 Save €18.52 * SALE 【PREORDER】GOJO CAT KNIT - JJK - SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】KNIT - BERSERK- SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE BLOOD KNIT - JJK (12) €44.45 €81.49 Save €37.04 * SALE 【PREORDER】HOODIE - BERSERK- SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】PUFFER JACKET - BERSERK- SHIPS FEB 15TH €76.85 €153.71 Save €76.85 * SALE JJK TOJI HOODIE €38.89 €53.71 Save €14.81 * SALE 【PREORDER】VINTAGE WASHED T SHIRT -BERSERK- SHIPS FEB 15TH €32.41 €64.82 Save €32.41 O.P VIEW ALL * SALE 【PREORDER】ZORO SWORDS EMBROIDERED T-SHIRT - O.P.- SHIPS FEB 15TH €29.63 €53.71 Save €24.07 * SALE 【PREORDER】ZORO EMBROIDERED CARGO PANTS - O.P - SHIPS FEB 15TH €62.97 €110.20 Save €47.23 * SALE 【PREORDER】KUMA EMBROIDERED ZIP UP HOODIE - O.P - SHIPS FEB 15TH €42.60 €72.23 Save €29.63 * SALE 【PREORDER】LUFFY/ACE GOMU²/MERA² REVERSIBLE SHERPA JACKET - O.P.- SHIPS FEB 15TH from €58.34 €116.68 Save €58.34 * SALE 【PREORDER】LUFFY GEAR 5 EMBROIDERED T-SHIRT- O.P.- SHIPS FEB 15TH €25.93 €35.19 Save €9.26 +1 * SALE 【PREORDER】O.P. SHERPA FLEECE JACKET- SHIPS FEB 15TH €58.34 €67.60 Save €9.26 JJK VIEW ALL * SALE 【PREORDER】GOJO CAT KNIT - JJK - SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE BLOOD KNIT - JJK (12) €44.45 €81.49 Save €37.04 * SALE JJK GOJO EMBROIDERED HOODIE €44.45 €62.97 Save €18.52 * SALE JJK TOJI HOODIE €38.89 €53.71 Save €14.81 * SALE 【PREORDER】GOJO VINTAGE WASHED T SHIRT - JJK- SHIPS FEB 15TH €27.78 €44.45 Save €16.67 * SALE CURSE VINTAGE HOODIE - JJK €42.60 €64.82 Save €22.22 BERSERK VIEW ALL * SALE 【PREORDER】KNIT - BERSERK- SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】BERSERK EMBROIDERED CARGO PANTS - BERSERK - SHIPS FEB 15TH €62.97 €110.20 Save €47.23 * SALE 【PREORDER】HOODIE - BERSERK- SHIPS FEB 15TH €46.30 €92.61 Save €46.30 * SALE 【PREORDER】PUFFER JACKET - BERSERK- SHIPS FEB 15TH €76.85 €153.71 Save €76.85 * SALE 【PREORDER】VINTAGE WASHED T SHIRT -BERSERK- SHIPS FEB 15TH €32.41 €64.82 Save €32.41 * SALE 【PREORDER】BERSERK GUTS ACID WASH JOGGERS - BERSERK- SHIPS FEB 15TH €35.19 €44.45 Save €9.26 AOT VIEW ALL * SALE 【PREORDER】COLOSSAL - WARRIOR T SHIRT - AOT- SHIPS FEB 15TH €25.93 €35.19 Save €9.26 * SALE 【PREORDER】EREN TEE (HEAVYWEIGHT) - AOT- SHIPS FEB 15TH €25.93 €35.19 Save €9.26 * SALE 【PREORDER】WINGS HOODIE-AOT- SHIPS FEB 15TH €40.74 €74.08 Save €33.34 * SALE 【PREORDER】RUMBLING - ASH HOODIE-AOT- SHIPS FEB 15TH €40.74 €81.49 Save €40.74 * 【PREORDER】WINGS OF FREEDOM QUARTER-ZIP - AOT- SHIPS FEB 15TH €35.19 +1 * 【PREORDER】DEDICATE YOUR HEART HOODIE- AOT- SHIPS FEB 15TH €40.74 ABOUT US Infusing Anime culture with everyday streetwear,Magi Clothing pushes the envelope of style to create unique clothing with a twist. The brand draws from Japan’s deep passion for anime subculture, creating statement hoodies, t-shirts, hats, and accessories, all with a distinct aesthetic WHY MAGI CLOTHING? Maji creates for a new generation of fashion. We believe in the importance of self expression through individual style, bringing together a fusion of streetwear & traditional anime design that is outside the box and isn't confined by traditional norms. Why? Openness and creativity can change the world. ANIME-INSPIRED JAPANESE STREETWEAR FROM BASIC TEES TO SWEATSHIRTS AND HOODIES, FROM BASIC TEES TO SWEATSHIRTS AND HOODIES, we regularly launch the coolest anime clothing and streetwear collections that can take you from day to night. BUY NOW JOIN THE MAGI FAMILY 8 Luke Love the fit and style! rvshi.xx Oops I did it again 🤷🏾♂️ Nikkolai Guaranteed to get you 3 wives Carlos Love this hoodie so much! Marco Gomu Gomu meets One Piece! 【Preorder】Luffy/Ace GOMU²/MERA² Reversible Sherpa Jacket - O.P.- Ships Feb 15th €58.34 €116.68 Save €58.34 DianaC Absolutely loved this one! Felt like a baddie wearing it Aya COOL casxidyy unboxing my gomu gomu jacket !! this is so cool & i love all the freebies (will for sure order from again!!) 【Preorder】Luffy/Ace GOMU²/MERA² Reversible Sherpa Jacket - O.P.- Ships Feb 15th €58.34 €116.68 Save €58.34 Join the Club 🔥 Get access to special offers and exclusive Maji drops🤫 SUBSCRIBE Thanks for subscribing WE ACCEPT Apple Pay Mastercard PayPal Visa Maestro JCB Discover Diners Club Klarna American Express © 2024 Magianime Contact Us Terms of Service Privacy Policy Refund Policy Shipping Policy DMCA FAQS 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 No Thanks 111 GIFTS POINTS Purchase 3 to get 1 free necklace! 111 $0.00 1 Someone in Somewhere purchased Blood Knit - JJK 8 minutes ago Someone recently purchased 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 `; })()} × Want 10%OFF Your First Purchase? Get all the latest about exclusive drops Discoints and 10% OFF your first order! Invalid email GET MY DISCOUNT * Ihre persönlichen Daten werden strengstens vor Offenlegung geschützt. By signing up you agree with our Privacy Policy. Originaltext Diese Übersetzung bewerten Mit deinem Feedback können wir Google Übersetzer weiter verbessern