www.animefwiw.com
Open in
urlscan Pro
2606:4700::6811:f777
Public Scan
Submitted URL: http://www.animefwiw.com/products/sailor-neptune-40oz-travel-tumbler-personalized-with-handle-custom-anime-cup-mv21112330...
Effective URL: https://www.animefwiw.com/products/sailor-neptune-40oz-travel-tumbler-personalized-with-handle-custom-anime-cup-mv21112330...
Submission: On June 13 via api from US — Scanned from DE
Effective URL: https://www.animefwiw.com/products/sailor-neptune-40oz-travel-tumbler-personalized-with-handle-custom-anime-cup-mv21112330...
Submission: On June 13 via api from US — Scanned from DE
Form analysis
4 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="product-info product-info-c456e3c5-e026-484e-a67b-a8f6d3736bfc">
<input type="hidden" name="product_id" value="c456e3c5-e026-484e-a67b-a8f6d3736bfc">
<input type="hidden" name="variant_id" id="selected_variant_id_c456e3c5-e026-484e-a67b-a8f6d3736bfc" value="d8fb9ca7-7741-4d03-825e-52b9b8ad6a95">
<div class="product-info__body" data-sold-out="Sorry, the goods have been sold out." data-unavailable="This combination does not exist, please try other.">
<div class="tw-my-2 first:tw-mt-0 last:tw-mb-0 product-info__header">
<h2 class="product-info__header_title tw-m-0 type-title-font-family tw-text-heading tw-break-words ">Sailor Neptune 40oz Tumbler Cup With Handle Anime</h2>
</div>
<div class="tw-my-4 first:tw-mt-0 last:tw-mb-0 product-info__header_price-wrapper">
<p class="tw-m-0 lg:tw-hidden tw-mb-2 tw-body-sm tw-font-bold tw-uppercase tw-tracking-widest">Price</p>
<div class="tw-flex tw-justify-between tw-items-center tw--mt-2">
<div class="tw-flex tw-flex-wrap tw-items-center tw-text-price-color tw-leading-none">
<del class="money tw-text-compare-at-price-color product-info__header_compare-at-price tw-hidden tw-mt-2 tw-mr-4 tw-body-plus-4 lg:tw-mr-5">$0.00</del>
<span class="money product-info__header_price tw-mt-2 tw-mr-4 tw-body-plus-4 lg:tw-mr-5">$39.00</span>
</div>
</div>
</div>
<div class="bootstrap">
<div class="plugin__wrappers d-flex flex-column"></div>
</div>
<div class="tw-mt-2 first:tw-mt-0 tw--mb-2 tw-flex tw-flex-wrap tw--mr-2">
<div class="tw-body-minus-4 tw-leading-none tw-mr-2 tw-mb-2 tw-px-2 tw-py-[5px] tw-rounded-btn tw-text-save-color tw-border-solid tw-border-[1px] tw-border-save-color">𝐁𝐮𝐲 𝟐 𝐢𝐭𝐞𝐦𝐬 𝐠𝐞𝐭 𝐅𝐑𝐄𝐄𝐒𝐇𝐈𝐏𝐏𝐈𝐍𝐆✈️& 𝟏𝟎%𝐎𝐅𝐅🔥
</div>
<div class="tw-body-minus-4 tw-leading-none tw-mr-2 tw-mb-2 tw-px-2 tw-py-[5px] tw-rounded-btn tw-text-save-color tw-border-solid tw-border-[1px] tw-border-save-color">Buy 3 items get 15%OFF</div>
<div class="tw-body-minus-4 tw-leading-none tw-mr-2 tw-mb-2 tw-px-2 tw-py-[5px] tw-rounded-btn tw-text-save-color tw-border-solid tw-border-[1px] tw-border-save-color">Buy 4 items get 20%OFF</div>
</div>
<div class="product-info__variants tw-space-y-5 tw-my-5 first:tw-mt-0 last:tw-mb-0" data-soldout="Sold out">
<div class="product-info__variants-wrapper product-info__variants_items slider-switch " data-selected-variant="false">
<p class="product-info__variants_title tw-m-0 md:tw--mb-1 tw-body-sm tw-font-bold tw-uppercase tw-tracking-widest" data-keyword="size" style="overflow: hidden;">
<a onclick="openSizeModal()" class="size_guide_btn " data-toggle="modal" data-target="#size_guide_modal" data-product_id="c456e3c5-e026-484e-a67b-a8f6d3736bfc" href="javascript:void"><img src="https://static.staticdj.com/oss/operation/59f8c5c1edab2e685e2602a1f710adc8.png" alt="size guide"> Tumbler Size </a>
<script>
function openSizeModal() {
document.documentElement.style.overflow = 'hidden'
}
</script> size
</p>
<div class="tw-flex tw-flex-wrap tw-mb-[10px]">
<div class="product-info__variants_value tw-relative ">
<input type="radio" class="tw-hidden product-info__variants_radio" name="option1-c456e3c5-e026-484e-a67b-a8f6d3736bfc" id="option1-0-c456e3c5-e026-484e-a67b-a8f6d3736bfc" value="Tumbler 40oz" checked="">
<label class="product-info__label tw-flex tw-justify-center tw-items-center tw-min-w-[44px] tw-min-h-[44px] tw-px-4 tw-py-[14px] tw-mt-3 tw-mr-3 tw-leading-none tw-cursor-pointer lg:tw-mt-4"
for="option1-0-c456e3c5-e026-484e-a67b-a8f6d3736bfc" data-track="switch_variants">Tumbler 40oz</label>
</div>
</div>
<div class="product-info__variant-tips tw-text-[15px] tw-leading-none tw-text-[#F0672C] tw-font-bold tw-hidden">Please select a size</div>
</div>
</div>
<div class="product-info__qty_container tw-my-5 first:tw-mt-0 last:tw-mb-0">
<p class="tw-m-0 tw-body-sm tw-font-bold tw-uppercase tw-tracking-widest">Quantity</p>
<div class="product-info__qty tw-relative tw-h-11 tw-mt-2 tw-rounded-global-fixed lg:tw-mt-4 tw-flex tw-items-center">
<button data-track="product_minus_quantity" type="button" class="
tw-bg-transparent tw-border tw-border-solid tw-border-line tw-m-0 tw-p-0 tw-w-11 tw-h-full tw-cursor-pointer disabled:tw-cursor-default disabled:tw-bg-[#f9f9f9] disabled:tw-text-[#90959a] tw-outline-none tw-flex tw-justify-center tw-items-center product-info__qty_btn tw-text-[#d8d8d8] lg:hover:tw-bg-[#f2f2f2]
product-info__qty_decr" data-click="decrease" disabled="disabled"><svg class="tw-text-[#888888]" width="13" height="13" xmlns="http://www.w3.org/2000/svg">
<path d="M1 6h11v1H1z" fill-rule="evenodd" fill="currentColor"></path>
</svg></button>
<input class="tw-box-border tw-p-0 tw-w-11 tw-h-full tw-text-center tw-body-plus-2 tw-text-body-color tw-bg-transparent tw-border-0 tw-border-t tw-border-b tw-border-solid tw-border-line tw-outline-none form-control product-info__qty_num"
id="product_quantity_c456e3c5-e026-484e-a67b-a8f6d3736bfc" name="quantity" type="text" value="1">
<button data-track="product_add_quantity" type="button" class="
tw-bg-transparent tw-border tw-border-solid tw-border-line tw-m-0 tw-p-0 tw-w-11 tw-h-full tw-cursor-pointer disabled:tw-cursor-default disabled:tw-bg-[#f9f9f9] disabled:tw-text-[#90959a] tw-outline-none tw-flex tw-justify-center tw-items-center product-info__qty_btn tw-text-[#d8d8d8] lg:hover:tw-bg-[#f2f2f2]
product-info__qty_incr " data-click="increase"><svg class="tw-text-[#888888]" width="13" height="13" xmlns="http://www.w3.org/2000/svg">
<path d="M7 1v5h5v1H7v5H6V7H1V6h5V1h1z" fill="currentColor"></path>
</svg></button>
</div>
</div>
<div class="product-info__btn tw-mt-6 lg:tw-mt-9 first:tw-mt-0 last:tw-mb-0">
<div class="tw-flex tw-flex-col tw-space-y-3">
<button type="button"
class="product-info__add-to-cart tw-primary-btn-style tw-relative tw-h-12 tw-text-center tw-uppercase tw-body-minus-4 tw-font-bold tw-tracking-widest tw-leading-1.3 tw-rounded-btn tw-border tw-border-solid tw-border-line tw-cursor-pointer painter-swing-animation"
data-click="addToCart" data-on-sale="Add to cart" data-unavailable="Unavailable" data-sold-out="Sold out" data-btn-class=" tw-primary-btn-style " data-track="click" data-track-content="add_to_cart" data-track-source="add_to_cart"> Add to
cart - <span class="money">$39.00</span>
</button>
<button type="button" class="product-info__buy-now tw-secondary-btn tw-h-12" data-click="submit" data-track="click" data-track-content="checkout" data-track-source="buy_now">Buy it now</button>
<div class="" id="paypal-express-button-container">
<div id="zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze" class="paypal-buttons paypal-buttons-context-iframe paypal-buttons-label-unknown paypal-buttons-layout-horizontal" data-paypal-smart-button-version="5.0.443"
style="height: 48px; transition: all 0.2s ease-in-out 0s;">
<style nonce="">
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze {
position: relative;
display: inline-block;
width: 100%;
min-height: 25px;
min-width: 150px;
font-size: 0;
}
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze>iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze>iframe.component-frame {
z-index: 100;
}
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze>iframe.prerender-frame {
transition: opacity .2s linear;
z-index: 200;
}
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze>iframe.visible {
opacity: 1;
}
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze>iframe.invisible {
opacity: 0;
pointer-events: none;
}
#zoid-paypal-buttons-uid_648bfa5ac4_mtq6mdy6mze>.smart-menu {
position: absolute;
z-index: 300;
top: 0;
left: 0;
width: 100%;
}
</style><iframe allowtransparency="true"
name="__zoid__paypal_buttons__eyJzZW5kZXIiOnsiZG9tYWluIjoiaHR0cHM6Ly93d3cuYW5pbWVmd2l3LmNvbSJ9LCJtZXRhRGF0YSI6eyJ3aW5kb3dSZWYiOnsidHlwZSI6InBhcmVudCIsImRpc3RhbmNlIjowfX0sInJlZmVyZW5jZSI6eyJ0eXBlIjoicmF3IiwidmFsIjoie1widWlkXCI6XCJ6b2lkLXBheXBhbC1idXR0b25zLXVpZF82NDhiZmE1YWM0X210cTZtZHk2bXplXCIsXCJjb250ZXh0XCI6XCJpZnJhbWVcIixcInRhZ1wiOlwicGF5cGFsLWJ1dHRvbnNcIixcImNoaWxkRG9tYWluTWF0Y2hcIjp7XCJfX3R5cGVfX1wiOlwicmVnZXhcIixcIl9fdmFsX19cIjpcIlxcXFwucGF5cGFsXFxcXC4oY29tfGNuKSg6XFxcXGQrKT8kXCJ9LFwidmVyc2lvblwiOlwiMTBfM18zXCIsXCJwcm9wc1wiOntcImVudlwiOlwicHJvZHVjdGlvblwiLFwiY29tbWl0XCI6dHJ1ZSxcInN0eWxlXCI6e1wibGFiZWxcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwibGF5b3V0XCI6XCJob3Jpem9udGFsXCIsXCJjb2xvclwiOlwiZ29sZFwiLFwic2hhcGVcIjpcInJlY3RcIixcInRhZ2xpbmVcIjpmYWxzZSxcImhlaWdodFwiOjQ4LFwicGVyaW9kXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm1lbnVQbGFjZW1lbnRcIjpcImJlbG93XCIsXCJkaXNhYmxlTWF4V2lkdGhcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYm9yZGVyUmFkaXVzXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifX0sXCJmdW5kaW5nXCI6e1wiZGlzYWxsb3dlZFwiOltcImNyZWRpdFwiXX0sXCJvbkFwcHJvdmVcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81YTFmYWNlZWMxX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJvbkFwcHJvdmVcIn19LFwiY3JlYXRlT3JkZXJcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9iZDI3YzdlNzYzX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJjcmVhdGVPcmRlclwifX0sXCJjc3BOb25jZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhbGxvd0JpbGxpbmdQYXltZW50c1wiOnRydWUsXCJhbW91bnRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYXBpU3RhZ2VIb3N0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwcGxlUGF5XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwcGxlUGF5U3VwcG9ydFwiOmZhbHNlLFwiYnJhbmRlZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJidXR0b25Mb2NhdGlvblwiOlwid3d3LmFuaW1lZndpdy5jb21cIixcImJ1dHRvblNlc3Npb25JRFwiOlwidWlkXzQwMGM4MGIwMWVfbXRxNm1keTZtemVcIixcImJ1dHRvblNpemVcIjpcImh1Z2VcIixcImJ1eWVyQ291bnRyeVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjbGllbnRBY2Nlc3NUb2tlblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjdXN0b21lcklkXCI6XCJcIixcImNsaWVudElEXCI6XCJBVXdvUmx2M2laM2p0M28zaGhjZnRfdFo1ZzZ0dmVmRXBqQ2Y5WU5HZUg3cThwX1dyYWxlaXRrS2ZMbldJczhITHB6YWxnUkE1QU1UMEJZT1wiLFwiY2xpZW50TWV0YWRhdGFJRFwiOlwidWlkXzI1YWIxOWQzNTdfbXRxNm1keTZtemVcIixcImNvbXBvbmVudHNcIjpbXCJidXR0b25zXCJdLFwiY3JlYXRlQmlsbGluZ0FncmVlbWVudFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjcmVhdGVTdWJzY3JpcHRpb25cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY3JlYXRlVmF1bHRTZXR1cFRva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImNzcFwiOntcIm5vbmNlXCI6XCJcIn0sXCJjdXJyZW5jeVwiOlwiVVNEXCIsXCJkZWJ1Z1wiOmZhbHNlLFwiZGlzYWJsZUNhcmRcIjpbXSxcImRpc2FibGVGdW5kaW5nXCI6W1wiY2FyZFwiLFwiYmFuY29udGFjdFwiLFwiYmxpa1wiLFwiZXBzXCIsXCJnaXJvcGF5XCIsXCJpZGVhbFwiLFwibWVyY2Fkb3BhZ29cIixcIm15YmFua1wiLFwicDI0XCIsXCJzZXBhXCIsXCJzb2ZvcnRcIixcInZlbm1vXCJdLFwiZGlzYWJsZVNldENvb2tpZVwiOnRydWUsXCJkaXNwbGF5T25seVwiOltdLFwiZW5hYmxlRnVuZGluZ1wiOltcInBheWxhdGVyXCJdLFwiZW5hYmxlVGhyZWVEb21haW5TZWN1cmVcIjpmYWxzZSxcImVuYWJsZVZhdWx0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImV4cGVyaW1lbnRcIjp7XCJlbmFibGVWZW5tb1wiOmZhbHNlfSxcImV4cGVyaW1lbnRhdGlvblwiOnt9LFwiZmxvd1wiOlwicHVyY2hhc2VcIixcImZ1bmRpbmdFbGlnaWJpbGl0eVwiOntcInBheXBhbFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOmZhbHNlfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOmZhbHNlLFwicHJvZHVjdHNcIjp7XCJwYXlJbjNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmFyaWFudFwiOm51bGx9LFwicGF5SW40XCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfX19LFwiY2FyZFwiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJicmFuZGVkXCI6dHJ1ZSxcImluc3RhbGxtZW50c1wiOmZhbHNlLFwidmVuZG9yc1wiOntcInZpc2FcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcIm1hc3RlcmNhcmRcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImFtZXhcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImRpc2NvdmVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiaGlwZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6ZmFsc2V9LFwiZWxvXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiamNiXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwibWFlc3Ryb1wiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiZGluZXJzXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJjdXBcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfX0sXCJndWVzdEVuYWJsZWRcIjpmYWxzZX0sXCJ2ZW5tb1wiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJ2YXVsdGFibGVcIjpmYWxzZX0sXCJpdGF1XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJjcmVkaXRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImFwcGxlcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzZXBhXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJpZGVhbFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYmFuY29udGFjdFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiZ2lyb3BheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiZXBzXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzb2ZvcnRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm15YmFua1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicDI0XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJ3ZWNoYXRwYXlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInBheXVcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImJsaWtcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInRydXN0bHlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm94eG9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImJvbGV0b1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYm9sZXRvYmFuY2FyaW9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm1lcmNhZG9wYWdvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJtdWx0aWJhbmNvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzYXRpc3BheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicGFpZHlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfX0sXCJmdW5kaW5nU291cmNlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImdldFBhZ2VVcmxcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9jNjgwMjk4ZDJlX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJnZXRQYWdlVXJsXCJ9fSxcImdldFBvcHVwQnJpZGdlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfMGJjNDc3ZGE2ZV9tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwiZ2V0UG9wdXBCcmlkZ2VcIn19LFwiZ2V0UHJlcmVuZGVyRGV0YWlsc1wiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2U3NzVmZTFkNzdfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcImdldFByZXJlbmRlckRldGFpbHNcIn19LFwiZ2V0UXVlcmllZEVsaWdpYmxlRnVuZGluZ1wiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzQyZDAwYTViNTZfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcImdldFF1ZXJpZWRFbGlnaWJsZUZ1bmRpbmdcIn19LFwiaG9zdGVkQnV0dG9uSWRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiaW50ZW50XCI6XCJjYXB0dXJlXCIsXCJqc1Nka0xpYnJhcnlcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwibG9jYWxlXCI6e1wiY291bnRyeVwiOlwiVVNcIixcImxhbmdcIjpcImVuXCJ9LFwibWVyY2hhbnRJRFwiOltdLFwibWVyY2hhbnRSZXF1ZXN0ZWRQb3B1cHNEaXNhYmxlZFwiOmZhbHNlLFwibWVzc2FnZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJub25jZVwiOlwiXCIsXCJvbkNhbmNlbFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvbkNsaWNrXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uQ29tcGxldGVcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25Jbml0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNWU1NWMyNzAyYl9tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwib25Jbml0XCJ9fSxcIm9uTWVzc2FnZUNsaWNrXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZDJmMDkwYThiM19tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwib25NZXNzYWdlQ2xpY2tcIn19LFwib25NZXNzYWdlSG92ZXJcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8wYWE0NjBhMTI4X210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJvbk1lc3NhZ2VIb3ZlclwifX0sXCJvbk1lc3NhZ2VSZWFkeVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2ZjZTVmNzFmNmJfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcIm9uTWVzc2FnZVJlYWR5XCJ9fSxcIm9uU2hpcHBpbmdBZGRyZXNzQ2hhbmdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uU2hpcHBpbmdDaGFuZ2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25TaGlwcGluZ09wdGlvbnNDaGFuZ2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiaGFzU2hpcHBpbmdDYWxsYmFja1wiOmZhbHNlLFwicGFnZVR5cGVcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwicGFydG5lckF0dHJpYnV0aW9uSURcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwicGF5bWVudE1ldGhvZE5vbmNlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBheW1lbnRNZXRob2RUb2tlblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXltZW50UmVxdWVzdFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwbGF0Zm9ybVwiOlwiZGVza3RvcFwiLFwicmVmZXJyZXJEb21haW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwicmVtZW1iZXJcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF83MTU0NmFkNWRhX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJyZW1lbWJlclwifX0sXCJyZW1lbWJlcmVkXCI6W10sXCJyZW5kZXJlZEJ1dHRvbnNcIjpbXCJwYXlwYWxcIl0sXCJzZXNzaW9uSURcIjpcInVpZF8yNWFiMTlkMzU3X210cTZtZHk2bXplXCIsXCJzZGtDb3JyZWxhdGlvbklEXCI6XCJmMzU2NDMyMTJmNWU5XCIsXCJzZXNzaW9uU3RhdGVcIjp7XCJnZXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF80ZTU4ZjE3YzExX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJnZXRcIn19LFwic2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZTRmMWQwYTNlZl9tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwic2V0XCJ9fX0sXCJzdGFnZUhvc3RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwic3RvcmFnZUlEXCI6XCJ1aWRfMTk0YzZhNDk1ZV9tdHE2bWR5Nm16ZVwiLFwic3RvcmFnZVN0YXRlXCI6e1wiZ2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfMzJkYTlkOTU2Zl9tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwiZ2V0XCJ9fSxcInNldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzI2NTE4YWMxZjhfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcInNldFwifX19LFwic3VwcG9ydGVkTmF0aXZlQnJvd3NlclwiOmZhbHNlLFwic3VwcG9ydHNQb3B1cHNcIjp0cnVlLFwidGVzdFwiOntcImFjdGlvblwiOlwiY2hlY2tvdXRcIn0sXCJ1c2VyRXhwZXJpZW5jZUZsb3dcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidXNlcklEVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidmF1bHRcIjpmYWxzZSxcIndhbGxldFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn19LFwiZXhwb3J0c1wiOntcImluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81ZGRkZmViYzliX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJpbml0XCJ9fSxcImNsb3NlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZTU1ZjU5ODc2ZF9tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwiY2xvc2U6Om1lbW9pemVkXCJ9fSxcImNoZWNrQ2xvc2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF80YTQ3NjA3YjAzX210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJjaGVja0Nsb3NlXCJ9fSxcInJlc2l6ZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzcwYzEyOTAyYjhfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcIl9uXCJ9fSxcIm9uRXJyb3JcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF85NWZhODBiNWQ5X210cTZtZHk2bXplXCIsXCJuYW1lXCI6XCJxblwifX0sXCJzaG93XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZDMwMmE0NGJjOF9tdHE2bWR5Nm16ZVwiLFwibmFtZVwiOlwiZ25cIn19LFwiaGlkZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzVmMGM5OWVjZTJfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcInZuXCJ9fSxcImV4cG9ydFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzk5MGIzYTQ3OTdfbXRxNm1keTZtemVcIixcIm5hbWVcIjpcIlduXCJ9fX19In19__"
title="PayPal" allowpaymentrequest="allowpaymentrequest" scrolling="no" id="jsx-iframe-50fe9b4a6f" class="component-frame visible" style="background-color: transparent; border: none;"></iframe>
<div id="smart-menu" class="smart-menu"></div>
<div id="installments-modal" class="installments-modal"></div><iframe name="__detect_close_uid_4e0988720a_mtq6mdy6mze__" style="display: none;"></iframe>
</div>
</div>
<div class="product-info__tips empty:tw-hidden tw-mt-3 tw-text-center tw-text-sm tw-leading-none tw-font-medium" data-unavailable="Product is unavailable." data-out-of-stock="Product was out of stock."></div>
</div>
</div>
<div class="tw-space-y-4 tw-my-5 first:tw-mt-0 last:tw-mb-0">
<div class="tw-flex tw-items-center">
<svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M18.41 14.672a1.811 1.811 0 0 0-1.743-1.359c-.834 0-1.538.578-1.743 1.359H13.81v-4.366h5.238v4.366h-.638zm-1.743 1.552a1.04 1.04 0 0 1-.929-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .929-.582c.404 0 .757.237.928.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.928.582zm-3.81-1.552h-5.4a1.811 1.811 0 0 0-1.743-1.359c-.833 0-1.538.578-1.743 1.359H.952V4.97h11.905v9.702zm-7.143 1.552a1.04 1.04 0 0 1-.928-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .928-.582c.405 0 .757.237.929.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.929.582zM16.9 6.91l1.699 2.426h-4.79V6.91H16.9zm.486-.97H13.81V4H0v11.642h3.971c.205.78.91 1.358 1.743 1.358.834 0 1.538-.577 1.743-1.358H14.924c.205.78.91 1.358 1.743 1.358.833 0 1.538-.577 1.743-1.358H20V9.666L17.386 5.94z"
fill="currentColor"></path>
</svg>
<span class="tw-ml-3 md:tw-body-minus-2">Free Delivery: Free international delivery available over 2 items.</span>
</div>
<div class="tw-flex tw-items-center">
<svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M9.496 0 0 5.45v8.993L9.5 20l9.5-5.522V5.281L9.496 0zm-7.96 5.745 7.968-4.573 3.01 1.673-7.67 4.77-3.308-1.87zm4.321 2.442 7.678-4.775 3.929 2.183-7.968 4.648-3.639-2.056zm4.149 2.94 7.983-4.657v7.416l-7.983 4.64v-7.4zM1.01 13.852V6.62l3.34 1.888v3.007l1.012.45V9.079l3.631 2.052v7.391l-7.983-4.67z"
fill="currentColor"></path>
</svg>
<span class="tw-ml-3 md:tw-body-minus-2">Free Returns: Not in love? 100% guarantee & free returns.</span>
</div>
<div class="tw-flex tw-items-center">
<svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="m16.185 9.248-4.237-.92 4.46-4.46c.345 1.804.26 3.646-.223 5.38m-3.019 5.18-.092.091c-2.54 2.484-5.592 1.881-7.533.216l5.592-5.591 4.749 1.03a11.784 11.784 0 0 1-2.716 4.253m-8.094-7.91.092-.093a11.775 11.775 0 0 1 4.252-2.717l1.031 4.751-5.591 5.591c-1.666-1.94-2.268-4.993.216-7.532m8.45-3.548c.734 0 1.472.072 2.202.212l-4.462 4.462-.919-4.235a11.829 11.829 0 0 1 3.18-.439m3.634-.193-.072-.27-.27-.073A12.802 12.802 0 0 0 4.477 5.74l-.099.099c-2.094 2.14-2.985 5.782-.205 8.894L2 16.905l.686.686 2.17-2.171c1.383 1.235 2.869 1.752 4.283 1.752 1.769 0 3.424-.796 4.614-1.96l.1-.1a12.802 12.802 0 0 0 3.304-12.336"
fill="currentColor"></path>
</svg>
<span class="tw-ml-3 md:tw-body-minus-2">Made to order in 5-10 Days for planet's protection.</span>
</div>
</div>
<script async="" crossorigin="anonymous" src="//static.staticdj.com/cuttlefish/v1/spz.min.js"></script>
<div class="rebate-wrap" id="no-rebate-activity">
<div class="rebate-skeleton"> The current produc does not participate any Rebate. Switch the participating product to check the design. <br> (This prompt will not be displayed on the client-side.) </div>
</div>
<ljs-render manual="" layout="container" id="app_rebate_block" @finish="rebate_custom_component.bindPropagation" class="i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template>
<div> ${function() { const show = rebate.format_rules.length > data.maxShowCount; return ` <div>
<div class="rebate_modal__list" ${show?`@tap="rebate_block_modal.open" `:''}="">
<style>
:root {
--rebate-modal-footer: $ {
data.modalFooterImg
}
;
}
</style>
<a class="product_detail_rebate_list" impr="1" imprevt="1" href="${landPage}">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="24" fill="none" class="rebate-icon"><g clip-path="url(#a)"><path fill="#EB391B" fill-rule="evenodd" d="M9.127 1.275a1.576 1.576 0 0 0-2.255 0l-.693.709a1.576 1.576 0 0 1-1.146.475l-.991-.012a1.576 1.576 0 0 0-1.595 1.595l.011.991a1.576 1.576 0 0 1-.475 1.146l-.708.693a1.576 1.576 0 0 0 0 2.255l.709.693c.308.3.48.716.475 1.146l-.012.992a1.576 1.576 0 0 0 1.595 1.594l.991-.011a1.577 1.577 0 0 1 1.146.475l.693.709a1.575 1.575 0 0 0 2.255 0l.693-.71a1.576 1.576 0 0 1 1.146-.475l.992.012a1.575 1.575 0 0 0 1.594-1.594l-.011-.992a1.577 1.577 0 0 1 .475-1.146l.709-.693a1.575 1.575 0 0 0 0-2.255l-.71-.693a1.576 1.576 0 0 1-.475-1.146l.012-.991a1.576 1.576 0 0 0-1.594-1.595l-.992.011a1.576 1.576 0 0 1-1.146-.475l-.693-.708ZM5.84 6.92a1.08 1.08 0 1 0 0-2.16 1.08 1.08 0 0 0 0 2.16Zm4.32 4.32a1.08 1.08 0 1 0 0-2.161 1.08 1.08 0 0 0 0 2.16Zm.56-5.96a.793.793 0 0 1 0 1.12L6.4 10.72A.792.792 0 0 1 5.28 9.6L9.6 5.28a.792.792 0 0 1 1.12 0Z" clip-rule="evenodd"></path></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"></path></clipPath></defs></svg>
<div style="flex:1;">
<li spz-for="rule in originData.rebate.format_rules" class="rebate_rule">
${rule}
</li>
</div>
</a> ${function() { if(!show) return ""; return ` <i id="rebate_icon">
<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><defs><style></style></defs><path d="M636.48 512.32l-366.4 366.4a48 48 0 0067.84 67.872l384.672-384.64a48 48 0 0011.456-49.6 48 48 0 00-11.456-49.6L337.952 78.016a48 48 0 00-67.904 67.904l366.4 366.4z"></path></svg>
</i> `; }()}
</div> `; }()} <ljs-dropdown id="rebate_block_modal" layout="nodisplay" placement="bottomRight" class="rebate_modal" @dropdownopen="rebate_custom_component.triggerGetRenderData;rebate_icon.toggleClass(class='rebate_rotate',force=true)"
@dropdownclose="rebate_icon.toggleClass(class='rebate_rotate',force=false)">
<ljs-loading @tap="rebate_block_modal.close" class="loading" layout="container" has-mask=""></ljs-loading>
<div class="rebate-modal-content">
<div class="modal-header justify-content-center p-1">
<span class="modal-title p-1">${data.i18n.special_offer}</span>
<i type="button" class="modal_close" @tap="rebate_block_modal.close" aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" class="icon" viewBox="0 0 1024 1024"><path fill="currentColor" d="M512 1024C229.805 1024 0 794.195 0 512S229.805 0 512 0s512 229.805 512 512-229.805 512-512 512zm0-47.628C768 976.372 976.372 768 976.372 512S768 47.628 512 47.628 47.628 256 47.628 512 256 976.372 512 976.372z"></path><path fill="currentColor" d="m540.577 507.237 167.888 167.889c9.526 9.525 9.526 23.814 0 33.34s-23.814 9.525-33.34 0l-167.888-167.89-169.079 167.89c-9.525 9.525-23.814 9.525-33.34 0-9.525-9.526-9.525-23.815 0-33.34l167.889-167.889-167.888-169.079c-9.526-9.525-9.526-23.814 0-33.34 9.525-9.525 23.814-9.525 33.34 0l167.888 167.889 167.888-167.888c9.525-9.526 23.814-9.526 33.34 0 9.525 9.525 9.525 23.814 0 33.34L540.576 507.236z"></path></svg>
</i>
</div>
<div class="modal-body">
<div class="rebate_modal__wrapper">
<img alt="product rebate"
src="data:image/png;base64,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">
<div class="rebate_modal__wrapper-bg">
<div class="rebate_modal__wrapper-list">
<ljs-render manual="" layout="container" id="rebate_modal_content">
<template>
<a impr="1" imprevt="1" href="${landPage}">
<li spz-for="rule in originData.rebate.format_rules" class="rebate_rule">
${rule}
</li>
</a>
</template>
</ljs-render>
</div>
</div>
<img alt="product rebate" class="plugin_modals__wrapper-bottom w-100"
src="data:image/png;base64,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">
</div>
</div>
<div class="modal-footer d-md-none">
<a @tap="rebate_block_modal.close" type="button" class="footer_close" style="border-radius: 100px" data-dismiss="modal">${data.i18n.close}</a>
</div>
</div>
</ljs-dropdown>
</div>
</div>
</template>
<div>
<div>
<div class="rebate_modal__list">
<style>
:root {
--rebate-modal-footer: url(//img.fantaskycdn.com/oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg);
}
</style>
<a class="product_detail_rebate_list" impr="1" imprevt="1" href="/promotions/rebate/062ff146-9dec-4725-a7e8-347a829d7a2a" imprsd="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="24" fill="none" class="rebate-icon"><g clip-path="url(#a)"><path fill="#EB391B" fill-rule="evenodd" d="M9.127 1.275a1.576 1.576 0 0 0-2.255 0l-.693.709a1.576 1.576 0 0 1-1.146.475l-.991-.012a1.576 1.576 0 0 0-1.595 1.595l.011.991a1.576 1.576 0 0 1-.475 1.146l-.708.693a1.576 1.576 0 0 0 0 2.255l.709.693c.308.3.48.716.475 1.146l-.012.992a1.576 1.576 0 0 0 1.595 1.594l.991-.011a1.577 1.577 0 0 1 1.146.475l.693.709a1.575 1.575 0 0 0 2.255 0l.693-.71a1.576 1.576 0 0 1 1.146-.475l.992.012a1.575 1.575 0 0 0 1.594-1.594l-.011-.992a1.577 1.577 0 0 1 .475-1.146l.709-.693a1.575 1.575 0 0 0 0-2.255l-.71-.693a1.576 1.576 0 0 1-.475-1.146l.012-.991a1.576 1.576 0 0 0-1.594-1.595l-.992.011a1.576 1.576 0 0 1-1.146-.475l-.693-.708ZM5.84 6.92a1.08 1.08 0 1 0 0-2.16 1.08 1.08 0 0 0 0 2.16Zm4.32 4.32a1.08 1.08 0 1 0 0-2.161 1.08 1.08 0 0 0 0 2.16Zm.56-5.96a.793.793 0 0 1 0 1.12L6.4 10.72A.792.792 0 0 1 5.28 9.6L9.6 5.28a.792.792 0 0 1 1.12 0Z" clip-rule="evenodd"></path></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"></path></clipPath></defs></svg> <div style="flex:1;"> <li class="rebate_rule"> Buy <b>2</b> items and save <b>10%</b> off </li><li class="rebate_rule"> Buy <b>3</b> items and save <b>15%</b> off </li><li class="rebate_rule"> Buy <b>4</b> items and save <b>20%</b> off </li> </div> </a>
</div> <ljs-dropdown id="rebate_block_modal" layout="nodisplay" placement="bottomRight" class="rebate_modal" @dropdownopen="rebate_custom_component.triggerGetRenderData;rebate_icon.toggleClass(class='rebate_rotate',force=true)"
@dropdownclose="rebate_icon.toggleClass(class='rebate_rotate',force=false)"> <ljs-loading @tap="rebate_block_modal.close"
class="loading i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-container spz-unresolved i-spzhtml-unresolved" layout="container" has-mask="" i-spzhtml-layout="container"></ljs-loading>
<div class="rebate-modal-content">
<div class="modal-header justify-content-center p-1"> <span class="modal-title p-1">SPECIAL OFFER</span>
<i type="button" class="modal_close" @tap="rebate_block_modal.close" aria-label="Close"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" class="icon" viewBox="0 0 1024 1024"><path fill="currentColor" d="M512 1024C229.805 1024 0 794.195 0 512S229.805 0 512 0s512 229.805 512 512-229.805 512-512 512zm0-47.628C768 976.372 976.372 768 976.372 512S768 47.628 512 47.628 47.628 256 47.628 512 256 976.372 512 976.372z"></path><path fill="currentColor" d="m540.577 507.237 167.888 167.889c9.526 9.525 9.526 23.814 0 33.34s-23.814 9.525-33.34 0l-167.888-167.89-169.079 167.89c-9.525 9.525-23.814 9.525-33.34 0-9.525-9.526-9.525-23.815 0-33.34l167.889-167.889-167.888-169.079c-9.526-9.525-9.526-23.814 0-33.34 9.525-9.525 23.814-9.525 33.34 0l167.888 167.889 167.888-167.888c9.525-9.526 23.814-9.526 33.34 0 9.525 9.525 9.525 23.814 0 33.34L540.576 507.236z"></path></svg> </i>
</div>
<div class="modal-body">
<div class="rebate_modal__wrapper"> <img alt="product rebate"
src="data:image/png;base64,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">
<div class="rebate_modal__wrapper-bg">
<div class="rebate_modal__wrapper-list"> <ljs-render manual="" layout="container" id="rebate_modal_content" class="i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-container spz-unresolved i-spzhtml-unresolved"
i-spzhtml-layout="container"> <template>
<a impr="1" imprevt="1" href="/promotions/rebate/062ff146-9dec-4725-a7e8-347a829d7a2a"> <li class="rebate_rule"> Buy <b>2</b> items and save <b>10%</b> off </li><li class="rebate_rule"> Buy <b>3</b> items and save <b>15%</b> off </li><li class="rebate_rule"> Buy <b>4</b> items and save <b>20%</b> off </li> </a>
</template> </ljs-render> </div>
</div> <img alt="product rebate" class="plugin_modals__wrapper-bottom w-100"
src="data:image/png;base64,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">
</div>
</div>
<div class="modal-footer d-md-none"> <a @tap="rebate_block_modal.close" type="button" class="footer_close" style="border-radius: 100px" data-dismiss="modal">CLOSE</a> </div>
</div>
</ljs-dropdown>
</div>
</div>
</ljs-render>
<ljs-render manual="" layout="container" id="app_rebate_section" class="i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template>
<a class="rebate_rule_section" style="background: linear-gradient(135deg, #FE4747, #FA7F67);color:#FEFFFE" impr="1" imprevt="1" href="${landPage}">
<span>${originData.rebate.format_rules.join(", ")}</span>
<svg style="min-width: 20px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" t="1675674957969" viewBox="0 0 1024 1024" version="1.1" p-id="2667" width="20" height="20"><path d="M729.6 448H128v85.333333h601.6L597.333333 665.6l59.733334 59.733333 234.666666-234.666666L661.333333 256l-59.733333 59.733333 128 132.266667z" fill="currentColor" p-id="2668"></path></svg>
</a>
</template>
</ljs-render>
<spz-custom-rebate id="rebate_custom_component" layout="logic" @getrenderdata="rebate_modal_content.rerender(data=event)" class="i-spzhtml-element i-spzhtml-layout-logic i-spzhtml-built i-spzhtml-layout"
i-spzhtml-layout="logic"></spz-custom-rebate>
<ljs-script style="display: none;" layout="logic" type="application/javascript" class="i-spzhtml-element i-spzhtml-layout-logic i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="logic"> if(window.self === window.top) { (window.disabled_exts
||=[]).push('product_detail_rebate'); } class SpzRebateComponent extends SPZ.BaseElement { constructor(element) { super(element); } xhr_ = SPZServices.xhrFor(this.win); viewport_ = this.getViewport(); action_ = null; lang =
document.documentElement.lang || 'en-US'; i18n = {"ar-SA":{"special_offer":"عرض خاص","close":"إغلاق"},"de-DE":{"special_offer":"Sonderangebot","close":"Schließen"},"en-US":{"special_offer":"SPECIAL
OFFER","close":"CLOSE"},"es-ES":{"special_offer":"Oferta especial","close":"Cerrar"},"fr-FR":{"special_offer":"Offre spéciale","close":"Fermer"},"id-ID":{"special_offer":"Penawaran istimewa","close":"Tutup"},"it-IT":{"special_offer":"Offerta
speciale","close":"Chiudi"},"ja-JP":{"special_offer":"特別なオファー","close":"閉じる"},"ko-KR":{"special_offer":"특별 메뉴","close":"닫기"},"nl-NL":{"special_offer":"Speciale aanbieding","close":"sluiten"},"pl-PL":{"special_offer":"Oferta
specjalna","close":"blisko"},"pt-PT":{"special_offer":"Oferta especial","close":"Fechar"},"ru-RU":{"special_offer":"Специальное
предложение","close":"Закрыть"},"th-TH":{"special_offer":"ข้อเสนอพิเศษ","close":"ปิด"},"zh-CN":{"special_offer":"特价","close":"关闭"},"zh-TW":{"special_offer":"特價","close":"關閉"}}; landPage = "\/promotions\/rebate\/"; pageType = 1; cart =
{"line_items":[],"ineffectives":[],"discount_applications":[],"total_discount":"0.00","discount_line_item_price":"0.00","invalid_msg":"","currency":null,"note":"","item_count":0,"original_line_price":0,"original_total_price":0,"line_price":0,"total_price":0,"total_weight":0};
initData = null; rebateInfo = null; renderData = null; footerImage = `${this.win.SHOPLAZZA["image_domain"]}oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg`; isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback()
{ this.initData = this.getProduct(); this.action_ = SPZServices.actionServiceForDoc(this.element); this.registerAction("triggerGetRenderData", () => { const event = SPZUtils.Event.create(this.win, "triggerGetRenderData", this.renderData);
this.action_.trigger(this.element, "getRenderData", event); }); this.registerAction("bindPropagation", () => { document.querySelector(".product_detail_rebate_list").addEventListener("click", e => { e.stopPropagation(); this.win.sa
&& this.win.sa.track("plugin_rebate_promotion_click", { plugin_timestamp: Date.now(), plugin_location: "info", product_id: this.initData.product.id, discount_id: this.rebateInfo.discount_list.map((item) => item.discount_id)[0], });
}); }); } async mountCallback() { document.addEventListener("dj.variantChange", e => { const data = e.detail; if (document.querySelector("#product-select-modal.show")) return; if (this.initData && this.initData.product &&
data.product && this.initData.product.id === data.product.id) { this.initData = data; this.initRebate(this.initData, true); } else { this.initData = data; this.getRebateInfo(); } }); document.addEventListener("dj.addToCart", e => {
const v = e.detail; this.rebateInfo && this.win.sa && this.win.sa.track("plugin_rebate_atc", { variant_discount_id: this.getVariantDiscountId(v.variant_id).map(item => item.discount_id), discount_ids:
this.rebateInfo.discount_list.map(item => item.discount_id), variant_id: v.variant_id, product_id: v.product_id, price: v.item_price, number: v.number, }); }); await this.getRebateInfo(); if
(document.querySelector(".plugin-container__bottom-fixed")) { this.showDiscountPopupsInfoBar(); } else { this.win.addEventListener("extloaded", () => { this.showDiscountPopupsInfoBar(); }); } } getProduct = (() => {
document.addEventListener("dj.variantChange", e => { if (!e.detail || !e.detail.product) return; const productJson = document.querySelector("#product-json"); if (productJson && productJson.textContent &&
JSON.parse(productJson.textContent)) { productJson.textContent = JSON.stringify(e.detail); } if (this.win.jQuery && this.win.jQuery.fn && this.win.jQuery(document).data("djproduct")) { this.win.jQuery(document).data("djproduct",
e.detail); } }); return () => { let productData = null; if (this.win.jQuery && this.win.jQuery.fn) { try { let product = this.win.jQuery(document).data("djproduct"); if (product) { productData = JSON.parse(JSON.stringify(product)); }
else { productData = null; } } catch (error) { productData = null; } } if (!productData) { const productJson = document.querySelector("#product-json"); productData = (productJson && productJson.textContent &&
JSON.parse(productJson.textContent)) || null; } return productData; }; })(); initRebate = this.win.SPZCore.Types.debounce( this.win, ((data, variantChange) => { let discount_list = Object.assign([], this.rebateInfo.discount_list); /*
按子商品的多少对优惠信息进行排序 */ discount_list && discount_list.sort((a, b) => { return b.variant_ids.length - a.variant_ids.length; }); /* 选中子商品时 筛选子商品的优惠信息 */ if (data.selected && data.selected.id) { discount_list =
this.getVariantDiscountId(data.selected.id); } /* 无满减信息 */ if (!(discount_list && discount_list.length)) { return; } const isSection = !!document.querySelector( `div[data-section-type^="shoplazza://apps/publicapp/blocks/rebate"]
#rebate_custom_component` ); if ( (this.rebateInfo.rebate_type == "sku" && data && data.selected && data.selected.id) || this.rebateInfo.rebate_type == "spu" ) { if (discount_list[0]) { this.landPage +=
discount_list[0].discount_id || ""; } const info = { rebate: discount_list[0], maxShowCount: this.win.innerWidth > 768 ? 3 : 1, landPage: this.landPage, modalFooterImg:
`url(${`${this.win.SHOPLAZZA["image_domain"]}oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg`})`, i18n: this.i18n[this.lang] }; this.renderData = info; SPZ.whenApiDefined( document.getElementById(isSection ? "app_rebate_section" :
"app_rebate_block") ).then(apis => { apis.render(info, true); }); } this.insertSlideTag(this.rebateInfo.tag, variantChange); var pluginCurrencyEvent = new CustomEvent("plugin_currency_update"); document.dispatchEvent(pluginCurrencyEvent);
}).bind(this), 10 ); getRebateInfo = async () => { if (this.initData && this.initData.product && this.initData.product.id) { var variant_ids = this.initData.product.variants.map(variant => variant.id); const res = await
this.xhr_.fetchJson( "\/api\/discount-rebate\/product-discount", { method: "POST", body: { product_id: this.initData.product.id, product_type: this.initData.product.product_type, variant_ids: variant_ids, }, } ); if
(!SPZCore.Types.isEmptyObject(res.rebate_info)) { res.rebate_info.tag = res.tag; res.rebate_info.rebate_type = res.rebate_type; this.rebateInfo = res.rebate_info; this.initRebate(this.initData); } else { if (this.win.top !== this.win.self) {
const noActivity = document.getElementById("no-rebate-activity"); noActivity && (noActivity["style"].display = "block"); } } } }; getVariantDiscountId = (variant_id) => { if (!variant_id || !this.rebateInfo) return []; var rebateId =
this.rebateInfo.variant_discount_map[variant_id]; return this.rebateInfo.discount_list.filter(item => item.discount_id == rebateId) || []; }; insertSlideTag = (tag, variantChange) => { setTimeout(() => { if (tag) { var tag_container;
var modal = document.getElementById("product-select-modal"); if (modal && modal.classList.contains("show")) { if (!variantChange && modal.querySelector(".slider-discount-tag")) return; if ( variantChange &&
modal.querySelector(".slider-discount-tag:not(.rebate-tag)") ) return; tag_container = modal; } else { var product_detail_card = document.querySelector( '.page_container > [data-section-type="product_detail"], .page_container >
[data-section-type="product-template"]' ); if(!product_detail_card) return; if (!variantChange && product_detail_card.querySelector(".slider-discount-tag")) return; if (variantChange &&
product_detail_card.querySelector(".slider-discount-tag:not(.rebate-tag)")) return; tag_container = product_detail_card; } if (tag_container.matches("#product-select-modal") && this.pageType === 13 &&
document.documentElement.clientWidth < 768) return; const tagDom = `<div class="slider-discount-tag dj_skin_product_title rebate-tag">${tag}</div>` if (document.querySelector(".sep-loaded-slider")) { var loadedSlider =
tag_container.querySelector(".sep-loaded-slider"); loadedSlider.querySelectorAll(".slider-discount-tag").forEach(function(element) { element.remove(); }); loadedSlider.insertAdjacentHTML("beforeend", tagDom); } else { if
(tag_container.querySelector(".support-slick")) { var supportSlick = tag_container.querySelectorAll(".support-slick, .sep-slider"); supportSlick.forEach((element) => { element.querySelectorAll(".slider-discount-tag").forEach((element) =>
{ element.remove(); }); element.insertAdjacentHTML("beforeend",tagDom); }); } else { var sepSlider = tag_container.querySelector(".sep-slider"); sepSlider.querySelectorAll(".slider-discount-tag").forEach(function(element) { element.remove();
}); sepSlider.insertAdjacentHTML("beforeend",tagDom); } } if (document.documentElement.clientWidth < 768) { const sliderDiscountTagHeight = tag_container.querySelector(".slider-discount-tag").offsetHeight || 0;
document.querySelector(".product-image__swiper_bullets").style.bottom = `${sliderDiscountTagHeight + 15}px`; } } }, 1000); }; fetchInfoBar = () => { let discount_ids = []; if (this.pageType === 1) { discount_ids = this.rebateInfo &&
this.rebateInfo.discount_list.map(item => item.discount_id); } else if (this.pageType === 38) { discount_ids = [this.win.rebateObj.rebateCollection_id] || []; } const productObj = this.getProduct(); return
this.xhr_.fetchJson("\/api\/discount-rebate\/global-text", { method: "POST", body: { product_type: productObj && productObj.product && productObj.product.product_type, line_items: (this.cart.line_items || []).map(item => ({
variant_id: item.variant_id, product_id: item.product_id, quantity: item.quantity, price: item.price, selected: !item.unchecked, })), discount_ids: discount_ids, }, }); }; renderBottomBanner = res => { if (!res.tips) return; if
(document.querySelector(".discount__info-bar")) return; var bar_style = `background:linear-gradient(90deg,${res.config.background_color_start},${res.config.background_color_end}); color:${res.config.color};`; let data = { tips: res.tips,
landPage: this.landPage + res.id, bar_style }; const html = SPZCore.Dom.htmlFor(this.element); const banner = html([ `<a impr="1" imprevt="1" id="rebate_bottom_bar" href=${data.landPage} class="discount__info-bar text-truncate"
data-activity-type="rebate" style="${data.bar_style}">${data.tips}</a>`, ]); document.querySelector(".plugin-container__bottom-fixed").appendChild(banner); const pluginCurrencyEvent = new CustomEvent("plugin_currency_update");
document.dispatchEvent(pluginCurrencyEvent); if (res.id) { var trackParams = { page: this.pageType, discount_id: res.id, product_id: this.getProduct()?.product.id, }; banner.addEventListener("click", () => { this.win.sa &&
this.win.sa.track("plugin_rebate_promotion_click", { plugin_timestamp: Date.now(), plugin_location: "bottom_bar", product_id: trackParams.product_id, discount_id: trackParams.discount_id, }); }); this.win.sa &&
this.win.sa.track("plugin_rebate_banner_pv", trackParams); } }; showDiscountPopupsInfoBar = () => { if ([13, 14, 19, 30, 31].includes(this.pageType)) return; if (document.querySelector(".plugin-container__bottom-fixed .discount__info-bar"))
return; this.fetchInfoBar().then(this.renderBottomBanner); document.addEventListener("dj.cartChange", () => { this.fetchInfoBar().then(this.renderBottomBanner); }); }; } SPZ.defineElement("spz-custom-rebate", SpzRebateComponent);
</ljs-script>
</div>
<div class="plugin__buy_on_others empty:tw-hidden"></div>
</form>
<form class="zb-flex zb-flex-col zb-relative zb-w-full">
<div class="zb-overflow-y-auto zb-pb-[100px]">
<div class="zb-flex zb-items-center zb-pb-4 zb-border-b zb-border-t-0 zb-border-l-0 zb-border-r-0 zb-border-solid zb-border-[#eee] md:zb-border-none">
<ljs-render layout="container" class="zb-flex-shrink-0 zb-w-[66px] zb-mr-4 rtl:zb-ml-4 rtl:zb-mr-0 zb-h-[70px] md:zb-hidden" id="smart_recommend_product_image" manual="" template="smart_recommend_product_image_template"></ljs-render>
<div class="zb-w-full">
<div class="zb-line-clamp-2 zb-mb-2 zb-text-sm md:zb-text-base">${product.title}</div>
<div class="zb-flex zb-justify-between zb-items-center">
<spz-render layout="container" template="smart_recommend_price_template" id="smart_recommend_modal_price" manual="">
<div class="zb-flex zb-items-center">
<ljs-currency class="zb-font-semibold zb-text-[22px] zb-text-[#CD201A] zb-mr-2" layout="container" value="${product.min_price_variant.price}"></ljs-currency>
<ljs-currency class="zb-text-[#93989D] zb-text-xs zb-line-through" layout="container" value="${product.min_price_variant.compare_at_price}"
spz-if="${product.min_price_variant.compare_at_price > product.min_price_variant.price ? true : false}"></ljs-currency>
</div>
</spz-render>
<a class="zb-flex zb-items-center zb-cursor-pointer zb-text-[#212B36] zb-no-underline" href="${product.url}?${toQuery({ aid: 'smart_recommend.' + data.show_type + '.' + data.rule_id, ifb: product.ifb || '', cfb: product.cfb || '', scm: data.scm || '', ssp: data.ssp || '' })}">
<span class="zb-text-[13px]">See detail</span>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path d="M13.1714 12.0007L8.22168 7.05093L9.63589 5.63672L15.9999 12.0007L9.63589 18.3646L8.22168 16.9504L13.1714 12.0007Z" fill="#93989D"></path></svg>
</a>
</div>
</div>
</div>
<ljs-variants id="smart_recommend_product_variants" layout="container" template="smart_recommend_product_variant_template" slide="smart_recommend_carousel" disabled-dj-event="" interference="">
</ljs-variants>
<div class="zb-text-sm zb-mb-2">Quantity</div>
<ljs-quantity disabled-dj-event="" layout="fixed" width="150" height="52" min="1" max="999999" value="1" input-class="!zb-text-base" icon-class="!zb-p-3"></ljs-quantity>
</div>
<div class="zb-absolute zb-bottom-0 zb-flex md:zb-flex-col zb-w-full zb-bg-white">
<button class="zb-flex zb-items-center zb-mr-2 rtl:zb-ml-2 rtl:zb-mr-0 md:zb-mb-2 zb-justify-center zb-cursor-pointer zb-w-full zb-border zb-border-solid zb-border-[#313131] zb-bg-white zb-rounded zb-h-[42px]" role="addToCart" type="button"
@tap="smart_recommend_func.addATCHook(rule_id='${data.rule_id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${data.scm}',ssp='${data.ssp}',spmIndex='${data.productIndex}');">
<span>Add To Cart</span>
</button>
<button class="zb-flex zb-items-center zb-justify-center zb-cursor-pointer zb-w-full zb-bg-[#292929] zb-text-white zb-rounded zb-h-[42px] zb-border-none" type="button" role="buyNow"
@tap="smart_recommend_loading.showLoading;smart_recommend_func.addATCHook(rule_id='${data.rule_id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${data.scm}',ssp='${data.ssp}',spmIndex='${data.productIndex}');">
<span>Buy Now</span>
</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>
Text Content
* 𝐁𝐮𝐲 𝟐 𝐢𝐭𝐞𝐦𝐬 𝐠𝐞𝐭 𝐅𝐑𝐄𝐄𝐒𝐇𝐈𝐏𝐏𝐈𝐍𝐆✈️& 𝟏𝟎%𝐎𝐅𝐅🔥 * 𝐁𝐮𝐲 𝟐 𝐢𝐭𝐞𝐦𝐬 𝐠𝐞𝐭 𝐅𝐑𝐄𝐄𝐒𝐇𝐈𝐏𝐏𝐈𝐍𝐆✈️& 𝟏𝟎%𝐎𝐅𝐅🔥 * Log in * Create an account 0 * Trending Now * 🩳Gym Shorts * 🏖️Hawaiian Shirts * Baseball Jerseys⚾ * 🥤Tumbler * TOPS Button Up Shirts Baseball Jerseys Rash Guard T-Shirts Sweatshirts All Tops * BOTTOMS Gym Shorts Board Shorts Basketball Shorts Sweatpants All Bottoms * HOODIES Streetwear Hoodies Zip Hoodies Dream Cloak Blanket Hoodies All Hoodies * SHOP BY ANIME Pokemon One Piece Demon Slayer Naruto Pop Culture My Hero Academia Bleach Dragon Ball Attack On Titan Super Mario Bros Jujutsu Kaisen Jojo's Bizarre Adventure Hunter X Hunter Studio Ghibli Fullmetal Alchemist Chainsaw Man Oshi no Ko Black Clover One Punch Man Berserk Tokyo Revengers Seven Deadly Sins Spy x Family Tokyo Ghoul Neon Genesis Evangelion Solo Leveling Baki Konosuba Harry Potter Rick and Morty Final Fantasy Cyberpunk Magic the Gathering Resident Evil * More links SHOP BY ANIME * Trending Now * 🩳Gym Shorts * 🏖️Hawaiian Shirts * Baseball Jerseys⚾ * 🥤Tumbler * TOPS * TOPS * Button Up Shirts * Baseball Jerseys * Rash Guard * T-Shirts * Sweatshirts * All Tops * BOTTOMS * BOTTOMS * Gym Shorts * Board Shorts * Basketball Shorts * Sweatpants * All Bottoms * HOODIES * HOODIES * Streetwear Hoodies * Zip Hoodies * Dream Cloak * Blanket Hoodies * All Hoodies * SHOP BY ANIME * SHOP BY ANIME * Pokemon * One Piece * Demon Slayer * Naruto * Pop Culture * My Hero Academia * Bleach * Dragon Ball * Attack On Titan * Super Mario Bros * Jujutsu Kaisen * Jojo's Bizarre Adventure * Hunter X Hunter * Studio Ghibli * Fullmetal Alchemist * Chainsaw Man * Oshi no Ko * Black Clover * One Punch Man * Berserk * Tokyo Revengers * Seven Deadly Sins * Spy x Family * Tokyo Ghoul * Neon Genesis Evangelion * Solo Leveling * Baki * Konosuba * Harry Potter * Rick and Morty * Final Fantasy * Cyberpunk * Magic the Gathering * Resident Evil Log in SAILOR NEPTUNE 40OZ TUMBLER CUP WITH HANDLE ANIME Price $0.00 $39.00 𝐁𝐮𝐲 𝟐 𝐢𝐭𝐞𝐦𝐬 𝐠𝐞𝐭 𝐅𝐑𝐄𝐄𝐒𝐇𝐈𝐏𝐏𝐈𝐍𝐆✈️& 𝟏𝟎%𝐎𝐅𝐅🔥 Buy 3 items get 15%OFF Buy 4 items get 20%OFF Tumbler Size size Tumbler 40oz Please select a size Quantity Add to cart - $39.00 Buy it now Free Delivery: Free international delivery available over 2 items. Free Returns: Not in love? 100% guarantee & free returns. Made to order in 5-10 Days for planet's protection. The current produc does not participate any Rebate. Switch the participating product to check the design. (This prompt will not be displayed on the client-side.) ${function() { const show = rebate.format_rules.length > data.maxShowCount; return ` ${rule} ${function() { if(!show) return ""; return ` `; }()} `; }()} ${data.i18n.special_offer} ${rule} ${data.i18n.close} Buy 2 items and save 10% off Buy 3 items and save 15% off Buy 4 items and save 20% off SPECIAL OFFER Buy 2 items and save 10% off Buy 3 items and save 15% off Buy 4 items and save 20% off CLOSE ${originData.rebate.format_rules.join(", ")} if(window.self === window.top) { (window.disabled_exts ||=[]).push('product_detail_rebate'); } class SpzRebateComponent extends SPZ.BaseElement { constructor(element) { super(element); } xhr_ = SPZServices.xhrFor(this.win); viewport_ = this.getViewport(); action_ = null; lang = document.documentElement.lang || 'en-US'; i18n = {"ar-SA":{"special_offer":"عرض خاص","close":"إغلاق"},"de-DE":{"special_offer":"Sonderangebot","close":"Schließen"},"en-US":{"special_offer":"SPECIAL OFFER","close":"CLOSE"},"es-ES":{"special_offer":"Oferta especial","close":"Cerrar"},"fr-FR":{"special_offer":"Offre spéciale","close":"Fermer"},"id-ID":{"special_offer":"Penawaran istimewa","close":"Tutup"},"it-IT":{"special_offer":"Offerta speciale","close":"Chiudi"},"ja-JP":{"special_offer":"特別なオファー","close":"閉じる"},"ko-KR":{"special_offer":"특별 메뉴","close":"닫기"},"nl-NL":{"special_offer":"Speciale aanbieding","close":"sluiten"},"pl-PL":{"special_offer":"Oferta specjalna","close":"blisko"},"pt-PT":{"special_offer":"Oferta especial","close":"Fechar"},"ru-RU":{"special_offer":"Специальное предложение","close":"Закрыть"},"th-TH":{"special_offer":"ข้อเสนอพิเศษ","close":"ปิด"},"zh-CN":{"special_offer":"特价","close":"关闭"},"zh-TW":{"special_offer":"特價","close":"關閉"}}; landPage = "\/promotions\/rebate\/"; pageType = 1; cart = {"line_items":[],"ineffectives":[],"discount_applications":[],"total_discount":"0.00","discount_line_item_price":"0.00","invalid_msg":"","currency":null,"note":"","item_count":0,"original_line_price":0,"original_total_price":0,"line_price":0,"total_price":0,"total_weight":0}; initData = null; rebateInfo = null; renderData = null; footerImage = `${this.win.SHOPLAZZA["image_domain"]}oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg`; isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.initData = this.getProduct(); this.action_ = SPZServices.actionServiceForDoc(this.element); this.registerAction("triggerGetRenderData", () => { const event = SPZUtils.Event.create(this.win, "triggerGetRenderData", this.renderData); this.action_.trigger(this.element, "getRenderData", event); }); this.registerAction("bindPropagation", () => { document.querySelector(".product_detail_rebate_list").addEventListener("click", e => { e.stopPropagation(); this.win.sa && this.win.sa.track("plugin_rebate_promotion_click", { plugin_timestamp: Date.now(), plugin_location: "info", product_id: this.initData.product.id, discount_id: this.rebateInfo.discount_list.map((item) => item.discount_id)[0], }); }); }); } async mountCallback() { document.addEventListener("dj.variantChange", e => { const data = e.detail; if (document.querySelector("#product-select-modal.show")) return; if (this.initData && this.initData.product && data.product && this.initData.product.id === data.product.id) { this.initData = data; this.initRebate(this.initData, true); } else { this.initData = data; this.getRebateInfo(); } }); document.addEventListener("dj.addToCart", e => { const v = e.detail; this.rebateInfo && this.win.sa && this.win.sa.track("plugin_rebate_atc", { variant_discount_id: this.getVariantDiscountId(v.variant_id).map(item => item.discount_id), discount_ids: this.rebateInfo.discount_list.map(item => item.discount_id), variant_id: v.variant_id, product_id: v.product_id, price: v.item_price, number: v.number, }); }); await this.getRebateInfo(); if (document.querySelector(".plugin-container__bottom-fixed")) { this.showDiscountPopupsInfoBar(); } else { this.win.addEventListener("extloaded", () => { this.showDiscountPopupsInfoBar(); }); } } getProduct = (() => { document.addEventListener("dj.variantChange", e => { if (!e.detail || !e.detail.product) return; const productJson = document.querySelector("#product-json"); if (productJson && productJson.textContent && JSON.parse(productJson.textContent)) { productJson.textContent = JSON.stringify(e.detail); } if (this.win.jQuery && this.win.jQuery.fn && this.win.jQuery(document).data("djproduct")) { this.win.jQuery(document).data("djproduct", e.detail); } }); return () => { let productData = null; if (this.win.jQuery && this.win.jQuery.fn) { try { let product = this.win.jQuery(document).data("djproduct"); if (product) { productData = JSON.parse(JSON.stringify(product)); } else { productData = null; } } catch (error) { productData = null; } } if (!productData) { const productJson = document.querySelector("#product-json"); productData = (productJson && productJson.textContent && JSON.parse(productJson.textContent)) || null; } return productData; }; })(); initRebate = this.win.SPZCore.Types.debounce( this.win, ((data, variantChange) => { let discount_list = Object.assign([], this.rebateInfo.discount_list); /* 按子商品的多少对优惠信息进行排序 */ discount_list && discount_list.sort((a, b) => { return b.variant_ids.length - a.variant_ids.length; }); /* 选中子商品时 筛选子商品的优惠信息 */ if (data.selected && data.selected.id) { discount_list = this.getVariantDiscountId(data.selected.id); } /* 无满减信息 */ if (!(discount_list && discount_list.length)) { return; } const isSection = !!document.querySelector( `div[data-section-type^="shoplazza://apps/publicapp/blocks/rebate"] #rebate_custom_component` ); if ( (this.rebateInfo.rebate_type == "sku" && data && data.selected && data.selected.id) || this.rebateInfo.rebate_type == "spu" ) { if (discount_list[0]) { this.landPage += discount_list[0].discount_id || ""; } const info = { rebate: discount_list[0], maxShowCount: this.win.innerWidth > 768 ? 3 : 1, landPage: this.landPage, modalFooterImg: `url(${`${this.win.SHOPLAZZA["image_domain"]}oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg`})`, i18n: this.i18n[this.lang] }; this.renderData = info; SPZ.whenApiDefined( document.getElementById(isSection ? "app_rebate_section" : "app_rebate_block") ).then(apis => { apis.render(info, true); }); } this.insertSlideTag(this.rebateInfo.tag, variantChange); var pluginCurrencyEvent = new CustomEvent("plugin_currency_update"); document.dispatchEvent(pluginCurrencyEvent); }).bind(this), 10 ); getRebateInfo = async () => { if (this.initData && this.initData.product && this.initData.product.id) { var variant_ids = this.initData.product.variants.map(variant => variant.id); const res = await this.xhr_.fetchJson( "\/api\/discount-rebate\/product-discount", { method: "POST", body: { product_id: this.initData.product.id, product_type: this.initData.product.product_type, variant_ids: variant_ids, }, } ); if (!SPZCore.Types.isEmptyObject(res.rebate_info)) { res.rebate_info.tag = res.tag; res.rebate_info.rebate_type = res.rebate_type; this.rebateInfo = res.rebate_info; this.initRebate(this.initData); } else { if (this.win.top !== this.win.self) { const noActivity = document.getElementById("no-rebate-activity"); noActivity && (noActivity["style"].display = "block"); } } } }; getVariantDiscountId = (variant_id) => { if (!variant_id || !this.rebateInfo) return []; var rebateId = this.rebateInfo.variant_discount_map[variant_id]; return this.rebateInfo.discount_list.filter(item => item.discount_id == rebateId) || []; }; insertSlideTag = (tag, variantChange) => { setTimeout(() => { if (tag) { var tag_container; var modal = document.getElementById("product-select-modal"); if (modal && modal.classList.contains("show")) { if (!variantChange && modal.querySelector(".slider-discount-tag")) return; if ( variantChange && modal.querySelector(".slider-discount-tag:not(.rebate-tag)") ) return; tag_container = modal; } else { var product_detail_card = document.querySelector( '.page_container > [data-section-type="product_detail"], .page_container > [data-section-type="product-template"]' ); if(!product_detail_card) return; if (!variantChange && product_detail_card.querySelector(".slider-discount-tag")) return; if (variantChange && product_detail_card.querySelector(".slider-discount-tag:not(.rebate-tag)")) return; tag_container = product_detail_card; } if (tag_container.matches("#product-select-modal") && this.pageType === 13 && document.documentElement.clientWidth < 768) return; const tagDom = `<div class="slider-discount-tag dj_skin_product_title rebate-tag">${tag}</div>` if (document.querySelector(".sep-loaded-slider")) { var loadedSlider = tag_container.querySelector(".sep-loaded-slider"); loadedSlider.querySelectorAll(".slider-discount-tag").forEach(function(element) { element.remove(); }); loadedSlider.insertAdjacentHTML("beforeend", tagDom); } else { if (tag_container.querySelector(".support-slick")) { var supportSlick = tag_container.querySelectorAll(".support-slick, .sep-slider"); supportSlick.forEach((element) => { element.querySelectorAll(".slider-discount-tag").forEach((element) => { element.remove(); }); element.insertAdjacentHTML("beforeend",tagDom); }); } else { var sepSlider = tag_container.querySelector(".sep-slider"); sepSlider.querySelectorAll(".slider-discount-tag").forEach(function(element) { element.remove(); }); sepSlider.insertAdjacentHTML("beforeend",tagDom); } } if (document.documentElement.clientWidth < 768) { const sliderDiscountTagHeight = tag_container.querySelector(".slider-discount-tag").offsetHeight || 0; document.querySelector(".product-image__swiper_bullets").style.bottom = `${sliderDiscountTagHeight + 15}px`; } } }, 1000); }; fetchInfoBar = () => { let discount_ids = []; if (this.pageType === 1) { discount_ids = this.rebateInfo && this.rebateInfo.discount_list.map(item => item.discount_id); } else if (this.pageType === 38) { discount_ids = [this.win.rebateObj.rebateCollection_id] || []; } const productObj = this.getProduct(); return this.xhr_.fetchJson("\/api\/discount-rebate\/global-text", { method: "POST", body: { product_type: productObj && productObj.product && productObj.product.product_type, line_items: (this.cart.line_items || []).map(item => ({ variant_id: item.variant_id, product_id: item.product_id, quantity: item.quantity, price: item.price, selected: !item.unchecked, })), discount_ids: discount_ids, }, }); }; renderBottomBanner = res => { if (!res.tips) return; if (document.querySelector(".discount__info-bar")) return; var bar_style = `background:linear-gradient(90deg,${res.config.background_color_start},${res.config.background_color_end}); color:${res.config.color};`; let data = { tips: res.tips, landPage: this.landPage + res.id, bar_style }; const html = SPZCore.Dom.htmlFor(this.element); const banner = html([ `<a impr="1" imprevt="1" id="rebate_bottom_bar" href=${data.landPage} class="discount__info-bar text-truncate" data-activity-type="rebate" style="${data.bar_style}">${data.tips}</a>`, ]); document.querySelector(".plugin-container__bottom-fixed").appendChild(banner); const pluginCurrencyEvent = new CustomEvent("plugin_currency_update"); document.dispatchEvent(pluginCurrencyEvent); if (res.id) { var trackParams = { page: this.pageType, discount_id: res.id, product_id: this.getProduct()?.product.id, }; banner.addEventListener("click", () => { this.win.sa && this.win.sa.track("plugin_rebate_promotion_click", { plugin_timestamp: Date.now(), plugin_location: "bottom_bar", product_id: trackParams.product_id, discount_id: trackParams.discount_id, }); }); this.win.sa && this.win.sa.track("plugin_rebate_banner_pv", trackParams); } }; showDiscountPopupsInfoBar = () => { if ([13, 14, 19, 30, 31].includes(this.pageType)) return; if (document.querySelector(".plugin-container__bottom-fixed .discount__info-bar")) return; this.fetchInfoBar().then(this.renderBottomBanner); document.addEventListener("dj.cartChange", () => { this.fetchInfoBar().then(this.renderBottomBanner); }); }; } SPZ.defineElement("spz-custom-rebate", SpzRebateComponent); Description All of our 40oz. Tumblers with handle are custom-made-to-order and handcrafted to the highest quality standards. * High-Quality Material: Our tumblers are using SUS 304 body and a premium transparent material lid. * The double-wall insulated design, with a vacuum layer in between, keeps your drink at the desired temperature for 3 to 4 hours. * The durable color coating ensures it won’t fade, peel, or crack even with extended field use, and it provides an additional grip. * User-Friendly: We recommend hand washing for easy maintenance. The removable lid twists off effortlessly, allowing convenient filling and cleaning. * We use water-soluble and eco-friendly ink, which is then cured through a heat treatment process. This ensures the design’s color-fastness and lasting durability. Tumbler's colors will remain vibrant and intact for years to come! FAQ ORDERING -IS YOUR SITE SAFE AND SECURE? Yes, our site is 100% secure. We use 256-bit SSL, the same level of encryption used by large banks around the world. -HOW MUCH IS SHIPPING? We offer affordable shipping, starting at just $5.99 (Free shipping on orders of two items or more)for shipping worldwide. -DO YOU SHIP OUTSIDE OF THE US? Yes. Check our full shipping policy to see what countries we ship to! -WHAT FORMS OF PAYMENT DO YOU ACCEPT? We take PayPaly, Klarna, Visa, Mastercard, American Express, Discover and more! -DO YOU HAVE A QUALITY GUARANTEE? Yes absolutely! We want you to be completely satisfied with your purchase. If your products are flawed in any way, just contact us and we’ll make it right. -HOW LONG DOES IT TAKE FOR ANIME FWIW TO SHIP? All of our items are handcrafted so please allow 5-10 business days for your order to ship out. We source products from all over the world to bring you epic offers and the lowest prices. This means sometimes you have to wait a little longer to get your order depending on the item but it’s always worth it! You will receive a tracking number via email once they are shipped. Once shipped, please allow 3-7 business days for your order to arrive to the majority of the continental United States and please allow 1-2 weeks for your order to arrive to most international countries. CUSTOMERS -WHEN CAN I EXPECT MY ITEMS? All of our items are handcrafted so please allow 5-10 business days for your order to ship out. We source products from all over the world to bring you epic offers and the lowest prices. This means sometimes you have to wait a little longer to get your order depending on the item but it’s always worth it! You will receive a tracking number via email once they are shipped. Once shipped, please allow 3-7 business days for your order to arrive to the majority of the continental United States and please allow 1-2 weeks for your order to arrive to most international countries. -HOW CAN I CANCEL OR CHANGE MY ORDER? Regrets happen, we know… So If you decide you want to cancel an order, just contact us within 24 hours after the order was placed and we’ll cancel it no questions asked. If it has been more than 24 hours, we may have already sent your order to the printer and may not be able to cancel as it will already be in the crafting or shipping process. -I ORDERED 2 ITEMS, WHY DID I ONLY RECEIVE ONE? Since we have fulfillment centers all over the world, when you order multiple items, they may be shipped from different warehouses. You may receive one item before the next. So don’t panic if you don’t receive all of your items at once…they will get to you, and if in doubt, just contact us. -THE STATUS OF MY TRACKING NUMBER HAS NOT CHANGED? Depending on which fulfillment center is crafting your orders, they may create the tracking number while your order is still being crafted to prepare the courier of the incoming shipment. If so, it may look like your package is standing still, but don’t worry, it is making progress to reach your hands. Also, during holiday months, we may have delays because of a bigger volume of orders, please be patient with us as we are a small business and take pride in masterfully crafting each product to ensure the highest quality when it reaches its new home. -OH NO, I MESSED UP MY SHIPPING ADDRESS AND/OR SIZE! CAN I CHANGE IT? If this happens to you, just email us as soon as you can and we MIGHT be able care of it. However, we can’t make any promises. All of our shirts are printed on demand so we usually start immediately after you order and it ships out the same day. If your order has already been shipped, take heart. We’ll still try to make it right. We know how frustrating it can be to pay for something you can’t use. -I DIDN'T RECEIVE AN ORDER CONFIRMATION EMAIL AFTER MY ORDER? If you have not received an Order Confirmation Email, please check your Spam Folder. If you did not receive it, please feel free to contact us if necessary. -MY ITEM CAME IN WITH SOME DISCOLORATION THAT LOOKS LIKE A STAIN, WHAT SHOULD I DO? Due to our sublimation printing process and vacuum sealed shipping, lighter colored items may arrive with slight discoloration which is completely normal and will come out after one light wash! RETURNS -WHAT IS THE RETURN POLICY? Our 30 Day Return Policy guarantees you’ll make a no-regret purchase when you buy. Unhappy with your product for any reason? We’ll take it back! We stand by our high quality products with award winning customer service. Your satisfaction is 100% guaranteed -ARE THERE ANY CHARGES FOR EXCHANGES OR RETURNS? At this time, all customers are responsible for their own return postage since we are still a small but growing company Original shipping charges are also non-refundable -HOW DO I REQUEST A RETURN? Just contact us and we’ll process your return in a snap! -WHAT ITEMS ARE RETURNABLE? Any items purchased within the last 30 days In original condition Unwashed and unworn In the original packaging (if applicable) -I RECEIVED A DEFECTIVE, DAMAGED OR AN INCORRECT ITEM, WHAT SHOULD I DO? If you received a defective, damaged or an incorrect item, contact us within 7 days of receiving your order and we will get it sorted out immediately; since it was our fault, we will not require you to ship the item back. Shipping Info Shipping Information: - We offer worldwide shipping to all countries. No matter where you are, you can place an order for our products. - Handling Time: 3-7 business days - Standard Shipping: 10-20 Business Days - Receiving Time = Handling Time + Shipping Time Shipping Policy: - Free shipping on orders of two items or more. - For orders of less than two items, a shipping fee of $5.99 will be applied. Thank you for choosing us as your shopping destination! UNIQUE ANIME DESIGN - TUMBLER This travel tumbler is just what you need for all-day hydration. Take it with you to a high-intensity workout or on an extra-long commute to keep your drink cold for hours. The lid features a rotating cover with three positions: a straw opening, a wide mouth for drinking, and a full-cover top to prevent spills. EXPLORE MORE TUMBLER ${function(){ const rules = data.data.rules; return ` ` }()} You May Also Like * Snorlax Face Pokemon Gym Shorts Quick Shop * Togepi Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Shine Sprite Super Mario Sunshine Button Up Hawaiian Shirt Quick Shop * The Cream of the Crop Randy Savage Pop Culture Button Up Hawaiian Shirt Quick Shop * Stormtroopers Star Wars Baseball Jersey Quick Shop * Gengar Classic Pokemon Gym Shorts Quick Shop * Mega Powers Macho Man and Hulk Hogan Pop Culture Gym Shorts Quick Shop * Gengar Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Vegeta Badman Pink Dragon Ball Z Button Up Hawaiian Shirt Quick Shop * Togepi Pokemon Hoodie Quick Shop * Togepi Pattern Pokemon Gym Shorts Quick Shop * Eva 1 Neon Genesis Evangelion Dream Cloak Coat Quick Shop * Jiraiya Toad Sage Naruto Dream Cloak Coat Quick Shop * Snorlax Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Planeswalkers Magic the Gathering Baseball Jersey Quick Shop * Piranha Plant Super Mario Bros Button Up Hawaiian Shirt Quick Shop * Capsule Corp Dragon Ball Z Zip Hoodie Jacket Quick Shop * Trippy The Cream of the Crop Randy Savage Pop Culture Gym Shorts Quick Shop * Gengar Face Pokemon Gym Shorts Quick Shop * Super Mario Items Pattern Button Up Hawaiian Shirt Quick Shop * Pokemon Charizard Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Jedi Skywalker Star Wars Baseball Jersey Quick Shop * Chimera V1 Fullmetal Alchemist Button Up Hawaiian Shirt Quick Shop * Snorlax Classic Pokemon Gym Shorts Quick Shop * Android 17 Dragon Ball Z T-Shirt Quick Shop * Bartholomew Kuma One Piece Zip Hoodie Jacket Quick Shop * Sylveon Pokemon Zip Hoodie Jacket Quick Shop * Mario Super Mario Bros Baseball Jersey Quick Shop * Magikarp Face Pokemon Gym Shorts Quick Shop * Snorlax Pokemon Hoodie Quick Shop * Spongebob Pattern Spongebob Squarepants Button Up Hawaiian Shirt Quick Shop * Naruto Shippuden Zip Hoodie Jacket Quick Shop * Monkey D. Luffy Gear 5 Name Coffee 40oz Tumbler Cup With Handle Anime Quick Shop * Snorlax Pokemon Button Up Hawaiian Shirt Quick Shop * Strawhats Jolly Roger One Piece Board Shorts Swim Trunks Quick Shop * Uchiha Symbol Naruto T-Shirt Quick Shop * Magikarp Pokemon Button Up Hawaiian Shirt Quick Shop * Sailor Moon 40oz Tumbler Cup With Handle Anime Quick Shop * Doflamingo Pattern One Piece Button Up Hawaiian Shirt Quick Shop * Pokemon Eevee Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Jigglypuff Face Pokemon Gym Shorts Quick Shop * Jigglypuff Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Goku Dragon Ball Z Gym Shorts Quick Shop * Pokemon Dragonite Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Umbrella Corp Resident Evil Baseball Jersey Quick Shop * Elements of Magic the Gathering Baseball Jersey Quick Shop * Trippy The Cream of the Crop Randy Savage Pop Culture Pokemon T-Shirt Quick Shop * Pokemon Bulbasaur Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Usagi Tsukino Sailor Moon Button Up Hawaiian Shirt Quick Shop * Bulbasaur Classic Pokemon Gym Shorts Quick Shop * Satoru Gojo 40oz Tumbler Cup With Handle Jujutsu Kaisen Anime Quick Shop * Squirtle Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Zelda Shield Style The Legend of Zelda Gym Shorts Quick Shop * Crest Symbols Digimon Button Up Hawaiian Shirt Quick Shop * Sharingan Naruto Shippuden Button Up Hawaiian Shirt Quick Shop * Gengar 40oz Tumbler Cup With Handle Pokemon Anime Cup Quick Shop * Mew Classic Pokemon Gym Shorts Quick Shop * Vegeta Dum Cumpster Pink Dragon Ball Z Abridged Button Up Hawaiian Shirt Quick Shop * Luffy Straw Hats One Piece Basketball Shorts Quick Shop * Pokemon Snorlax 40oz Tumbler Cup With Handle Quick Shop * Android 17 MIR Dragon Ball Super Hoodie Quick Shop * Venom Marvel Comics Button Up Hawaiian Shirt Quick Shop * Gengar Nightshade Pokemon Gym Shorts Quick Shop * Strawhats Jolly Roger One Piece T-Shirt Quick Shop * Bulbasaur Face Pokemon Gym Shorts Quick Shop * Snorlax Attack Pokemon T-Shirt Quick Shop * Gengar Attack Pokemon Gym Shorts Quick Shop * Dragonite Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Navy Blue Monkey D. Luffy Dressrosa One Piece Button Up Hawaiian Shirt Quick Shop * King Bob Omb Super Mario Bros Button Up Hawaiian Shirt Quick Shop * Togepi Pokemon Zip Hoodie Jacket Quick Shop * Psyduck Pokemon Streetwear Sweatpants Quick Shop * Typhlosion Pokemon Streetwear Hoodie Quick Shop * King Boo and Boo Ghosts Super Mario Bros Button Up Hawaiian Shirt Quick Shop * Capsule Corp Dragon Ball Z Gym Shorts Quick Shop * Koopa Troopas Super Mario Bros Baseball Jersey Quick Shop * Umbreon Pokemon Hoodie Quick Shop * Luffy v2 One Piece Gym Shorts Quick Shop * Edward Elric Fullmetal Alchemist Dream Cloak Coat Quick Shop * Vegeta Blowjob Princess Pink Dragon Ball Z Abridged Button Up Hawaiian Shirt Quick Shop * Yoshi Super Mario Bros Button Up Hawaiian Shirt Quick Shop * Majoras Mask v2 Legend of Zelda Button Up Hawaiian Shirt Quick Shop * Chimera Fullmetal Alchemist Gym Shorts Quick Shop * Trippy Ghostly Evolution Ghastly Haunter Gengar Pokemon Dream Cloak Coat Quick Shop * Bowser Super Mario Button Up Hawaiian Shirt Quick Shop * Bartholomew Kuma One Piece Hoodie Quick Shop * The Cream of the Crop Randy Savage Pop Culture Gym Shorts Quick Shop * Naruto Shippuden Button Up Hawaiian Shirt Quick Shop * Cloud Strife Final Fantasy 7 Baseball Jersey Quick Shop * Link Legend of Zelda Button Up Hawaiian Shirt Quick Shop * Chimera V2 Fullmetal Alchemist Button Up Hawaiian Shirt Quick Shop * Vegeta Pattern Dragon Ball Button Up Hawaiian Shirt Quick Shop * Goku Super Saiyan 2 Anime 40oz Tumbler Cup With Handle Manga Art Name Quick Shop * Gengar V2 Pokemon Streetwear T-Shirt Quick Shop * Frankys Shirt One Piece Button Up Hawaiian Shirt Quick Shop * Blastoise Classic Pokemon Gym Shorts Quick Shop * Umbreon Face Pokemon Gym Shorts Quick Shop * Dungeons & Dragons Baseball Jersey Quick Shop * Minato Namikaze 4th Hokage Naruto Dream Cloak Coat Quick Shop * Sailor Jupiter 40oz Tumbler Cup With Handle Anime Quick Shop Related Items * Sailor Uranus 40oz Tumbler Cup With Handle Anime Quick Shop * Sailor Venus 40oz Tumbler Cup With Handle Anime Quick Shop * Sailor Pluto 40oz Tumbler Cup With Handle Anime Quick Shop * Sailor Moon 40oz Tumbler Cup With Handle Anime Quick Shop * Sailor Mars 40oz Tumbler Cup With Handle Anime Quick Shop * Sailor Mercury 40oz Tumbler Cup With Handle Anime Quick Shop * Dragonite Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Tengen Uzui 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Sailor Jupiter 40oz Tumbler Cup With Handle Anime Quick Shop * Sailor Saturn Hotaru Tomoe 40oz Travel Tumbler Anime Cup Quick Shop * Giyu Tomioka 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Nami 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Nami 40oz Tumbler Cup With Handle Name Anime Accessories Quick Shop * Power 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Sukuna Ryoumen 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Pokemon Bulbasaur Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Nezuko Kamado 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Gyomei Himejima 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Artemis 40oz Tumbler Cup With Handle Anime Quick Shop * Snorlax Face Pokemon Gym Shorts Quick Shop * Douma 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Roronoa Zoro Name Coffee 40oz Tumbler Cup With Handle Anime Quick Shop * Mitsuri Kanroji 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Luna 40oz Tumbler Cup With Handle Anime Quick Shop * Inosuke Hashibira 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Himiko Toga 40oz Travel Tumbler Anime Cup Quick Shop * Suguru Geto 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Mahito 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Ruby Hoshino 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Kyojuro Rengoku 40oz Tumbler Cup Anime Cup Quick Shop * Chibiusa 40oz Tumbler Cup With Handle Anime Quick Shop * Pochita 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Akaza 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Pretty Guardian V1 Sailor Moon Baseball Jersey Quick Shop * Koshi Sugawara 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Sylveon Pokemon Zip Hoodie Jacket Quick Shop * Togepi Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Pokemon Dragonite Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Pokemon Mimikyu Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Usagi Tsukino Sailor Moon Button Up Hawaiian Shirt Quick Shop * Pokemon Charizard Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Pretty Guardian V2 Sailor Moon Baseball Jersey Quick Shop * Gengar Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Pokemon Eevee Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * The Cream of the Crop Randy Savage Pop Culture Button Up Hawaiian Shirt Quick Shop * Satoru Gojo 40oz Tumbler Cup With Handle Jujutsu Kaisen Anime Quick Shop * Roronoa Zoro Anime 40oz Tumbler Cup With Handle Manga Art Name Quick Shop * Gengar Classic Pokemon Gym Shorts Quick Shop * Dragon Ball Shenron 40oz Tumbler Cup With Handle Anime Quick Shop * Itachi Uchiha Name Coffee 40oz Tumbler Cup With Handle Anime Quick Shop * Hellsing Alucard 40oz Tumbler Cup With Handle Anime Cup Quick Shop * Pokemon Togepi Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Goku Super Saiyan 2 Anime 40oz Tumbler Cup With Handle Manga Art Name Quick Shop * Shine Sprite Super Mario Sunshine Button Up Hawaiian Shirt Quick Shop * Pokemon Snorlax 40oz Tumbler Cup With Handle Quick Shop * Usagi Tsukino Sailor Moon Gym Shorts Quick Shop * Mega Powers Macho Man and Hulk Hogan Pop Culture Gym Shorts Quick Shop * Togepi Pokemon Hoodie Quick Shop * Crest Symbols Digimon Button Up Hawaiian Shirt Quick Shop * Snorlax Pokemon Hoodie Quick Shop * Galactic Sailor Moon Gym Shorts Quick Shop * Snorlax Pokemon Button Up Hawaiian Shirt Quick Shop * Vegeta Badman Pink Dragon Ball Z Button Up Hawaiian Shirt Quick Shop * Pokemon Tyranitar Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Zelda Shield Style The Legend of Zelda Zip Hoodie Jacket Quick Shop * Usagi Tsukino Sailor Moon Streetwear Zip Hoodie Jacket Quick Shop * Capsule Corp Dragon Ball Z Hoodie Quick Shop * Gengar 40oz Tumbler Cup With Handle Pokemon Anime Cup Quick Shop * Pokemon Mewtwo Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Chimera V1 Fullmetal Alchemist Button Up Hawaiian Shirt Quick Shop * Yoruichi Shihouin 40oz Tumbler Cup With Handle Anime Quick Shop * Pokemon Squirtle Coffee 40oz Tumbler Cup With Handle Anime Accessories Quick Shop * Capsule Corp Dragon Ball Z Zip Hoodie Jacket Quick Shop * Togepi Pattern Pokemon Gym Shorts Quick Shop * Piranha Plant Super Mario Bros Button Up Hawaiian Shirt Quick Shop * Snorlax Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Jedi Skywalker Star Wars Baseball Jersey Quick Shop * Trippy The Cream of the Crop Randy Savage Pop Culture Gym Shorts Quick Shop * Bartholomew Kuma One Piece Zip Hoodie Jacket Quick Shop * Naruto Shippuden Zip Hoodie Jacket Quick Shop * Super Mario Items Pattern Button Up Hawaiian Shirt Quick Shop * Vegeta Dum Cumpster Pink Dragon Ball Z Abridged Button Up Hawaiian Shirt Quick Shop * Monkey D. Luffy Gear 5 Name Coffee 40oz Tumbler Cup With Handle Anime Quick Shop * Android 17 Dragon Ball Z T-Shirt Quick Shop * Strawhats Jolly Roger One Piece Board Shorts Swim Trunks Quick Shop * Mario Super Mario Bros Baseball Jersey Quick Shop * Vegeta Blowjob Princess Pink Dragon Ball Z Abridged Button Up Hawaiian Shirt Quick Shop * Spongebob Pattern Spongebob Squarepants Button Up Hawaiian Shirt Quick Shop * Elements of Magic the Gathering Baseball Jersey Quick Shop * Magikarp Face Pokemon Gym Shorts Quick Shop * Jigglypuff Pattern Pokemon Button Up Hawaiian Shirt Quick Shop * Android 17 MIR Dragon Ball Super Hoodie Quick Shop * Magikarp Pokemon Button Up Hawaiian Shirt Quick Shop * Doflamingo Pattern One Piece Button Up Hawaiian Shirt Quick Shop * Umbrella Corp Resident Evil Baseball Jersey Quick Shop * Trippy Ghostly Evolution Ghastly Haunter Gengar Pokemon Dream Cloak Coat Quick Shop * Chimera Fullmetal Alchemist Gym Shorts Quick Shop * Zelda Shield Style The Legend of Zelda Gym Shorts Quick Shop * Typhlosion Pokemon Streetwear Hoodie Quick Shop ${function(){ const isCart = data.data.isCart; const isCollection = data.data.isCollection; const isProduct = data.data.isProduct; const isIndex = data.data.isIndex; return ` ${isCart ? 'The items in the shopping cart do not participate in any recommendation rule. Add the participating items to your shopping cart to check the design.' : ''} ${isProduct ? 'This product did not participated in any recommendation rule. Switch to another product to check the design.' : ''} ${isCollection ? 'The items in this collection do not participate in any recommendation rule. Switch the participating items to check the design.' : ''} ${isIndex ? 'The home page do not participate in any recommendation rule.' : ''} (This prompt would not display on client-side) Recommended Products ` }()} ${function(){ const rule = data.data; const getImageHeight = function(image){ const image_size = rule.config.image_size || 0; const imageWidth = image.width || 600; const imageHeight = image.height || 800; let ratio = 0; if(image_size == 0){ ratio = (imageHeight / imageWidth).toFixed(2); }else if(image_size == 1){ ratio = 1.5; }else if(image_size == 2){ ratio = 1; }else if(image_size == 3){ ratio = 0.75; } return imageWidth * ratio; }; 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('&'); return ` ${rule.config.title} * ${product.title} ${rule.config.quick_shop_button_text} ` }()} class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; 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, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(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: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } 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-block', SpzSmartBlockComponent); ${(function(){ const product = data.product; 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('&'); return ` ${product.images.map((image) => { return `` }).join('')} ${product.title} See detail Quantity Add To Cart Buy Now `; })()} ${(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("") } ` })()} LISTEN TO OUR CUSTOMERS 9 Lonzo Rice Fits perfect Zak Hamilton Great Quality!! I was searching for a way to make my gaming setup more comfy and this was by far one of the better options I found! Dylan Lockhart Another MUST in my cart I had to get, big fan, love the design, fits well and comfortably, will be back for more! Dawnyielle Brown Very good and great material. Super warm. People love it Aaron Westemeyer I was super excited when I ordered the shirt. I received the shirt on my birthday and I was not disappointed. Gabriel McElwee This is actually the 2nd product I've purchased from these guys and they great quality shipping is great for they showed up for me usually around 2-2½ weeks nice shrink wrap packaging great picture quality no runners so far Rachael Collins Bossman said if we wore something festive we didn’t have to wear our uniform. WORTH IT!!! THANK YOU ❤️ Mike Zarle I was surprised to see how greatly detailed the shirt is! I was a bit surprised that it made from nylon material, but it’s a super comfortable, great looking shirt! 5/5 highly recommend! Meghan Mullen He loves it..I didn't realize how big I got it but over all it was definitely a wonderful gift 🎁 * ANIME FWIW IS ECO-AWARE We use advanced, eco-friendly production methods to reduce waste & protect our natural resources. * PIECE OF ART Every product is an art on it's own. Each purchase you make helps an artist to keep doing what they love. Subscribe today to hear first about our sales SUBSCRIBE Thanks for subscribing WE ACCEPT PayPal Visa Mastercard Klarna GET IN TOUCH +86 17620465705 service@animefwiw.com FOLLOW US © 2024 animefwiw SHOP TRENDING Tracking Your Order About Us Contact Us Shipping and Delivery Refund Policy Order Cancellation Policy Privacy Policy Term of Service DMCA 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 const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation); 111 GIFTS POINTS 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} `; })()}