www.hooshops.com Open in urlscan Pro
104.17.246.119  Public Scan

Submitted URL: http://www.hooshops.com/products/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?utm_source=stream&utm...
Effective URL: https://www.hooshops.com/products/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?utm_source=stream&utm...
Submission: On July 10 via api from US — Scanned from CA

Form analysis 7 forms found in the DOM

<form>
  <input name="variant_id" type="hidden" value="${data.variants[0].id}">
  <button type="button" class="product-snippet__quick-shop-icon" role="addToCart" data-quick-shop="${data.handle}" data-track-product-id="${data.id}" data-track="click" data-track-content="add_to_cart" data-track-source="quick_shop">
    <svg class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
      <path d="M8.6 1.9a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.5H1.9a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.5v5.5a.3.3 0 0 0 .3.3h.6a.3.3 0 0 0 .3-.3V8.6h5.5a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V1.9z" fill="currentColor"></path>
    </svg>
  </button>
</form>

GET /search

<form class="flex items-center" action="/search" method="get">
  <button type="submit" class="clear text-0 text-inherit cursor-pointer">
    <svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
      <path fill-rule="evenodd" clip-rule="evenodd"
        d="M17.925 20.057A9.955 9.955 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.968 9.968 0 0 1-2.864 7.006l4.929 4.928a.8.8 0 0 1-1.132 1.132l-5-5-.008-.01zM20.4 12a8.4 8.4 0 1 1-16.8 0 8.4 8.4 0 0 1 16.8 0z"
        fill="currentColor"></path>
    </svg>
  </button>
  <input @input-debounced="header_search_predictive_render-sidebar.rerender(data=event.value, redo=true);" class="header__search_sidebar-input flex-1 text-base leading-none type-text-font-family clear" type="text" autocomplete="off" name="q"
    placeholder="Search products">
  <button type="reset" class="header__search-modal-close text-0 text-inherit clear cursor-pointer" @tap="header_search_sidebar.close()">
    <svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
      <path d="M21.502 5.732A.85.85 0 0 0 20.3 4.53l-7.32 7.32L5.734 4.6a.85.85 0 0 0-1.202 1.203l7.248 7.247L4.53 20.3A.85.85 0 0 0 5.733 21.5l7.248-7.248 7.319 7.319a.85.85 0 0 0 1.202-1.202l-7.319-7.319 7.319-7.319z" fill="currentColor"></path>
    </svg>
  </button>
</form>

GET

<form id="smart-search-form" class="smart-search-form" method="GET" is="spz-form" @submit="smart-search.handleSearchSubmit(value=event.q);">
  <div class="smart-search-input-content">
    <svg class="icon-search " width="18" height="18" xmlns="http://www.w3.org/2000/svg">
      <path opacity=".01" fill="currentColor" d="M0 0h18v18H0z"></path>
      <path fill-rule="evenodd" clip-rule="evenodd" d="M12.41 13.885a6.923 6.923 0 1 1 .839-.728l3.412 3.413a.554.554 0 0 1-.783.783l-3.462-3.462a.383.383 0 0 1-.006-.006Zm1.713-5.577a5.815 5.815 0 1 1-11.63 0 5.815 5.815 0 0 1 11.63 0Z"
        fill="currentColor"></path>
    </svg>
    <input class="smart-search-input" type="search" name="q" spz-if="${data.isOpenAutoThink}" @input-debounced="smart-search.handleFormInput(keyword=event.value);" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false">
    <input class="smart-search-input" type="search" name="q" spz-else="">
    <spz-carousel class="hot-keyword-carousel" spz-if="${data.isOpenFindKeyword}" layout="container" loop="" autoplay="" delay="3000" direct="vertical" @slideend="smart-search.handleFindKeyword(index=event.index);">
      <span class="hot-keyword line-clamp-1" spz-for="(item,index) in data.findKeywordList" key="index">${item}</span>
    </spz-carousel>
    <button class="smart-search-reset-btn" type="reset" @tap="smart-search-form.clear();smart-search.handleFormInput(keyword='');">
      <svg class="icon_header_input_close icon-smart-search-reset" width="12" height="12" xmlns="http://www.w3.org/2000/svg">
        <path
          d="M2.746 1.992a.2.2 0 0 0-.283 0l-.471.471a.2.2 0 0 0 0 .283L5.245 6 1.992 9.25a.2.2 0 0 0 0 .283l.471.472a.2.2 0 0 0 .283 0L6 6.753l3.252 3.253a.2.2 0 0 0 .283 0l.472-.472a.2.2 0 0 0 0-.283L6.753 6l3.253-3.253a.2.2 0 0 0 0-.283l-.472-.471a.2.2 0 0 0-.283 0L6 5.245 2.746 1.992z"
          fill="currentColor"></path>
      </svg>
    </button>
  </div>
  <button type="submit" class="smart-search-submit-btn button-primary"> Search </button>
</form>

<form role="spz-product-form913e7e62-7499-4cba-8345-71b013ef6617">
  <div class="product-info-body-inner product-info-body-z-index" id="product-info-body-inner-container">
    <div class="flex mt-2">
      <div class="text-xs leading-1.3 color-custom-label-text product-info-custom-label bg-custom-label rounded-sm">Anniversary Sale🔥</div>
    </div>
    <h1 class="product-info-title m-0 leading-1.25 type-heading-font-family break-words product-title-color "> HOO® Vintage Khaki And White Stitching Western Cowboys Riding Horses Printing Short Sleeve Shirt </h1>
    <spz-render class="mt-4 lg:mt-5 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-prices" layout="container" manual="" i-spzhtml-layout="container" style="height: auto;">
      <template> ${function() { const variantData = data.variant ||
        {"id":"8bb84595-4772-49e8-a09a-2d6b3371b7ea","product_id":"913e7e62-7499-4cba-8345-71b013ef6617","title":"XS-Multicolor","weight_unit":"g","inventory_quantity":10000,"sku":"cSMDF240612-3nH-XS","barcode":"cSMDF240612-3nH","position":1,"option1":"XS","option2":"Multicolor","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/acf45093eb1834290ce743618f3348cb.jpg","path":"acf45093eb1834290ce743618f3348cb.jpg","width":750,"height":1000,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":26.95,"min_quantity":1}],"weight":"200","compare_at_price":"0","price":"26.95","retail_price":"0","available":true,"url":"\/products\/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?variant=8bb84595-4772-49e8-a09a-2d6b3371b7ea","available_quantity":10000,"options":[{"name":"Size","value":"XS"},{"name":"Color","value":"Multicolor"}],"off_ratio":0,"flashsale_info":[],"sales":6};
        const saveType = "percentage"; const productLabelDiscountOn = true; return ` <div class="flex items-center justify-between">
          <div spz-if="${!variantData.price}" class="mr-2 text-2xl leading-1.2 font-semibold color-price flex items-center">
            <spz-currency class="mr-2" container-class="product-info__header_price" value="${data.product.price_min}" layout="container"></spz-currency>
            <span class="flex" spz-if="${!variantData.price &amp;&amp; data.product.price_min < data.product.price_max}"> - <spz-currency class="ml-2" container-class="product-info__header_price" value="${data.product.price_max}"
                layout="container"></spz-currency></span>
          </div>
          <div spz-else="" class="flex items-center flex-wrap">
            <spz-currency class="mr-2" container-class="product-info__header_price" value="${variantData.price}" layout="container"></spz-currency>
            <spz-currency class="leading-1.2 color-compare-price line-through mr-2 lg:body-plus-2" container-class="product-info__header_compare-at-price" layout="container" value="${variantData.compare_at_price}"
              spz-if="${+variantData.price < +variantData.compare_at_price}"></spz-currency>
            <div spz-if="${productLabelDiscountOn &amp;&amp; variantData.off_ratio > 0}" class="product-info-saved-label inline-block color-save-price whitespace-nowrap font-semibold"> ${saveType == 'percentage' ?
              `<span>-${variantData.off_ratio}%</span>` : `<span>-</span><spz-currency class="inline-block" value="${variantData.compare_at_price - variantData.price}" layout="container"></spz-currency>` } </div>
          </div>
        </div> `; }()} </template>
      <div class="flex items-center justify-between">
        <div class="flex items-center flex-wrap" spz-else="">
          <spz-currency class="mr-2 i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_price" value="26.95" layout="container" i-spzhtml-layout="container">
            <div class="money product-info__header_price notranslate">$26.95</div>
          </spz-currency>
        </div>
      </div>
    </spz-render>
    <div class="product-info-desc mt-4 lg:mt-5">
      <spz-accordion layout="container" animate="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
        <section class="product-info-desc-item">
          <div class="product-info-desc-item-header flex justify-between break-words i-spzhtml-accordion-header" accordion-header="">
            <div class="flex-1 mr-3 lg:body-plus-3">Size Guide</div>
            <svg class="flex-shrink-0" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none">
              <path fill="currentColor" d="M7.543 11.306a.6.6 0 0 0 .848 0l4.455-4.454a.3.3 0 0 0 0-.425l-.34-.339a.3.3 0 0 0-.424 0l-4.115 4.115-4.115-4.115a.3.3 0 0 0-.425 0l-.34.34a.3.3 0 0 0 0 .424l4.456 4.454Z"></path>
            </svg>
          </div>
          <div class="product-info-desc-item-content mce-content i-spzhtml-accordion-content">
            <p>We strongly suggest you to take measurements before placing an order.<span class="Apple-converted-space">&nbsp;</span><br>And then please use the “<strong>Size Guide</strong>” instructions and chart on every product page to help select
              the size that best fits you.<br><strong>How to measure:</strong><br>Shoulder:&nbsp;&nbsp;Stand up straight and relax your shoulders, measure from the tip of one shoulder to the other.<br>Chest: Measure 1<span>"&nbsp;</span>under you
              armholes around the fullest part of your chest including your shoulder blades.<br>Waist: Measure around your natural waistline, keeping the tape a bit loose.<br>Hip: Measure around the fullest part of the hips (about 7" down from your
              natural waistline), keeping tape taut.<br>Length: This is the length of the clothing from where your neck/shoulders/waist meet to the bottom of the clothing.<br>*The measurements chart shown on product pages are measurements for each
              garment, by size. Please use the guides and reference and compare them to your own body measurements to determine the best size.&nbsp;</p>
            <p><span>If your body measurements&nbsp;</span>close to the maximum of the&nbsp;size, please choose one size up.</p>
            <p><spz-img layout="intrinsic" auto-fit="" src="https://img.staticdj.com/21f410fd0c1044c2afcd2148f6d82817.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img></p>
            <p><spz-img layout="intrinsic" src="https://img.fantaskycdn.com/1c4f3eaf795c7dea5c73a3d46ed25e53.jpg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img></p>
            <p><spz-img layout="intrinsic" auto-fit="" src="https://img.staticdj.com/1d521343864a174271ffde90335023d7.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img></p>
            <p><spz-img layout="intrinsic" auto-fit="" src="https://img.staticdj.com/c7467cae934628ac296dff7249624f4f.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img></p>
            <p><spz-img layout="intrinsic" auto-fit="" src="https://img.staticdj.com/1f6a90b02cd964ff0257f330f0e09138.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img><spz-img layout="intrinsic"
                auto-fit="" src="https://img.staticdj.com/790f8821622a8dafb9dd55032c63937f.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img><spz-img layout="intrinsic"
                auto-fit="" src="https://img.staticdj.com/72bd8d22aba2ebc4691da7ec4626514a.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img><spz-img layout="intrinsic"
                auto-fit="" src="https://img.staticdj.com/a6b02c7c136aaa10ad25409d71d0b62c.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img><spz-img layout="intrinsic"
                auto-fit="" src="https://img.staticdj.com/b4d11f5161343eb9d9fae4562ea4a1e3.jpeg" alt="" height="600" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;600px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img><spz-img layout="intrinsic"
                auto-fit="" src="https://img.staticdj.com/d6f61a2bbc413adf5f44a8ddc2c9d168.jpeg" alt="" height="536" width="1024"
                class="i-spzhtml-layout-intrinsic i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" i-spzhtml-layout="intrinsic"><i-spzhtml-sizer class="i-spzhtml-sizer"
                  slot="i-spzhtml-svc"><img alt="" role="presentation" aria-hidden="true" class="i-spzhtml-intrinsic-sizer"
                    src="data:image/svg+xml;charset=utf-8,<svg height=&quot;536px&quot; width=&quot;1024px&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;/>"></i-spzhtml-sizer></spz-img></p>
            <div><strong>Notes:</strong></div>
            <div>a. Please choose a corresponding size according to your measurements.<span class="Apple-converted-space">&nbsp;</span></div>
            <div>b. The size chart listed is based on international sizing system.</div>
            <div>c. 1-3cm / 1-1.2&nbsp;inches is allowed in manual measurements error, the size chart is for reference only.&nbsp;If your body measurements close to the maximum of the&nbsp;size, please choose one size up.</div>
            <div>d. The precise color of the items may vary depending on the specific monitor, the settings and lighting conditions.</div>
            <div></div>
            <div>We wish you a pleasant shopping with HOO!</div>
          </div>
        </section>
      </spz-accordion>
    </div>
    <div class="plugin-discount-wrap empty-hidden" role="[theme-seat-for-plugin]">
      <div class="bootstrap">
        <div class="plugin__wrappers d-flex flex-column">
          <div class="plugin_modals position-relative plugin_modals-rebate" id="Modal388951" style="order: 8">
            <style>
              #Modal388951 {
                --modal_background: linear-gradient(0deg, #ebc19e, #fff3e8 100%);
                --modal_caret_background: #fff2e9;
                --modal_title_color: #B83D07;
                --modal_close_color: #FFFFFF;
                --modal_close_background_color: #F03010;
                --list_border_color: #dddddd;
              }

              @media (max-width: 767.98px) {
                #Modal388951 .coupon_plugin__coupon:last-child {
                  padding-bottom: 0;
                }
              }

              #Modal388951 .modal-footer {
                position: relative;
                margin-top: -30px;
              }

              #Modal388951 .modal-footer::before {
                content: '';
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                height: 150%;
                background-image: url(//img.staticdj.com/oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg);
                background-repeat: no-repeat;
                background-size: 100%;
                pointer-events: none;
              }

              @media (max-width: 767.98px) {
                #Modal388951 .discount-present-item:last-child {
                  padding-bottom: 40px;
                }

                #Modal388951 .plugin_modals__wrapper-list>a:last-child {
                  padding-bottom: 14px;
                }
              }
            </style>
            <!-- 弹窗 -->
            <div class="fade plugin_modals__modal" data-backdrop="false" role="dialog" id="target_Modal388951">
              <div class="plugin_modals__modal-mask" data-dismiss="modal" aria-label="Close"></div>
              <div class="modal-dialog m-0" role="document">
                <div class="modal-content">
                  <div class="modal-header justify-content-center p-1">
                    <h5 class="modal-title p-1">SPECIAL OFFER</h5>
                    <i type="button" class="modal_close" data-dismiss="modal" aria-label="Close"><svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="20" height="20"><defs><style></style></defs><path 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" fill="currentColor"></path><path d="M540.577 507.237l167.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" fill="currentColor"></path></svg></i>
                  </div>
                  <div class="modal-body">
                    <div class="plugin_modals__wrapper">
                      <!-- modal头部 -->
                      <img alt="product rebate" class="plugin_modals__wrapper-top w-100"
                        src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAAyCAYAAAB1ROw8AAAID0lEQVR4Xu3dsY7URhgAYBvlXoE3CBQUkajoiQQFSgG55iLyDEjkAehowiPQBInmQoqkoeB6qgiKQwLeIG26nBRnzHqP3LF3O157PLO+75pIMDvj//t/536bWbu+9eBOlfvn15tXm9zHELP+9wfv65hxY4/J5SPesTO5ej75ncZZPU/jrJ6ncVbP0zir52mcY1bJVfNnHdulmIM2ZiHw27dXvp7aIseayxhzrJ1jTfFOV9XyO29r+ZXfVAI5aivHmhf191FM3eTMx6rjy95AlwZyXhKbproRk+Qxx+RYc3n8OdbOsaZ4x6zY8+eS33lby6/8phLIUVs51ryov49S1U3KebM30CmDG3vupqpvjz3nuvlyrHl8Aot3XXoG/738DiaMniCHdY41nb/RJTF4oPwOJoyeIId1jjUv6vkbXQgFDczeQOe8wtsgD7tT3jHv1trd4DjH+oh4x5JcMY/8JsRdPbV6TkiunhPiqudWwPmbsMQKOH/XRldav5i9ga6q+vJatXIG7Pzb1I+mOpxurZ2p1luxjngT4stvQtzVU6vnhOTqOSGuem4FnL8JS6yA8zciurL6xewNdHj8xvUItZKG7L24efVh6gN6cfPK/bDGXup1IuYXbwRS3yHy21dstPHqeTTKzxOp5wSocVOq5zinXqPUcy+uyQaX1i9mb6DDc+GuTaY/0kIhiY+7E2ykGU9O084d9l49TTL5BpOKdwO0cz4iv+N69p1NPfcVO3+8eh7Xs+9s6rmvmHr+v0Bp5+952SmtX8zaQLd7bsLJ/8245T/JbDuhwf0lxZ3ods527hBFzq0bpxHFO1JZye9IkMOmUc/D/I4/rZ5Hghw2jXoe5qeey+o3zsxm2y9O+T20dWVV53yRSnfl0zaL2/pzFK6I3tV1s3v31YePQ4L4dDHR1PuFX1CId8Mky++GcGk/pp439FXPG8Kl/Zh63tBXPW8Il+FjddX8eO/gw7MMS3+xZOYG+uqbwhvGmBwddYP2L9XNo76NdHvidpv326dtlHTX+azYxRtTFd0Y+e2BlWeoeu7hrp57YOUZqp57uKvnHljlDH0e3kj4QwmHk62B7gr3cEuaxuhchTvSb8NFwWG4SnpZ19Xr0w314kq3utE+X7Ldz7PtFxDiPfkvD/K7lVuyjs9v9aye/f85+tddcQOdv/M+f7uCOwo3K6/1vVmZolizNdCLvXPVzymCKmDO9i7AurvJMWMKCCXqEGJiiRkTtVgBg2JiiRlTQChRhxATS8yYqMUKGBQTS8yYAkKJOoSYWGLGRC1WwKCYWGLGFBBK1CHExBIzJmqxAgbFxBIzpoBQog4hJpaYMVGLlTAoXCj9dO/g/ZPcx5LzS4TtY9rm+rOueW7jjhmzLT4xscSMEW+ZAjG5ixlTZnRfHlVMLDFjxFumQEzuYsaUGZ16jsldzBj5LVegiP4xSwO9+PLgdv9Tb7l15cgIECBAgAABAvMUaPvHlI8SjlXL0kCHtw8mfxFJLIBxBAgQIECAAAEC2ySQv4+cvIHu9j5v47Oft6myHCsBAgQIECBAYJYCi7vQ6d8KfR7epA109+KUx7PMpqAIECBAgAABAgSmEDhq38KZ88UqkzbQ3fOO57R5f4oisQYBAgQIECBAgMBngU+9ZNdXZnGZrIHuNnzvZYnSogQIECBAgAABAnMSaJvovVxfKJykgV5s3aifzilrYiFAgAABAgQIEMgr0PaXObZyJG+gl++YD7y2buStMasTIECAAAECBOYmsNM09f7UTXTyBroNyjOf51ar4iFAgAABAgQIlCHQ9pltvznl0SRtoMMjRt5onqdMp7UIECBAgAABAhdPoHu03ZupIv8qxULLbRua5xS65iRAgAABAgQIEDgtsGyi67rZvfvqw8eUQqPfgdY8p0yXuQkQIECAAAECBM4SWG7nSL0netQGun2USHgm36E7zwqbAAECBAgQIEAgh0Dbh7b9aMpH3NW3HtwZHFvb5XcPs/ac58GaJiBAgAABAgQIEBhJ4Pmlunk09paOwXegl3edQ5Ca55EybRoCBAgQIECAAIFRBPZS3I3e+A704rZ4/bDbrnEUQvSc51HybBICBAgQIECAAIGRBNoetf3ZqavqbVU1T+4dfHg2dO5eDXT3BcHvwqL37XMeSu/zBAgQIECAAAECUwssGunqWXhax++bbu1Y20AvmubqRnhV4u2w2K47zVOn2XoECBAgQIAAAQIjCyzvTO/XVfOyrqvXfZrp4wZ6+biPtlkOWzMuhzvM10OHfs2d5pHTZToCBAgQIECAAIHSBI5C3/su9L2H4b9/hq0ef53XVNd///Hwn1N3lY/3ipQWmeMhQIAAAQIECBAgkFhgVS984s/aNxGe/vKfLwMmzorpCRAgQIAAAQIEihVY1Quf+LPBj7ErNnQHRoAAAQIECBAgQCCBgAY6AaopCRAgQIAAAQIE5iuggZ5vbkVGgAABAgQIECCQQEADnQDVlAQIECBAgAABAvMV0EDPN7ciI0CAAAECBAgQSCCggU6AakoCBAgQIECAAIH5Cmig55tbkREgQIAAAQIECCQQ0EAnQDUlAQIECBAgQIDAfAU00PPNrcgIECBAgAABAgQSCGigE6CakgABAgQIECBAYL4CGuj55lZkBAgQIECAAAECCQQ00AlQTUmAAAECBAgQIDBfAQ30fHMrMgIECBAgQIAAgQQCGugEqKYkQIAAAQIECBCYr4AGer65FRkBAgQIECBAgEACgf8ADWHGqni73L8AAAAASUVORK5CYII=">
                      <div class="plugin_modals__wrapper-bg">
                        <div class="plugin_modals__wrapper-list">
                          <style>
                            a.product_detail_rebate_list {
                              display: inline-flex;
                              align-items: start;
                              color: #EB391B;
                            }

                            a.product_detail_rebate_list:hover {
                              color: #EB391B;
                            }

                            .plugin_modals__modal .rebate-icon {
                              display: none;
                            }

                            .rebate-icon {
                              margin-right: 4px;
                              padding-top: 4px;
                            }
                          </style>
                          <a class="product_detail_rebate_list" impr="1" imprevt="1" href="/promotions/rebate/23f2b003-82fb-46cc-acf4-1f5e1c9fba32">
  <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 id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$59.00</span></b> more and save <b><span class="money notranslate">$10.00</span></b>
      </li>
    
      <li id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$99.00</span></b> more and save <b><span class="money notranslate">$20.00</span></b>
      </li>
    
      <li id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$139.00</span></b> more and save <b><span class="money notranslate">$30.00</span></b>
      </li>
    
      <li id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$199.00</span></b> more and save <b><span class="money notranslate">$50.00</span></b>
      </li>
    
   </div>
  </a>
                        </div>
                      </div>
                      <!-- modal底部 -->
                      <img alt="product rebate" class="plugin_modals__wrapper-bottom w-100"
                        src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAAyCAYAAAB1ROw8AAAHlUlEQVR4Xu3dz2pdRRgA8HOk9Ql8hSZFt10LJYEKbcHSItSNDyCVQsGtdCu4UfoAroTSYEACXbQWXHetvekrdOcyi+PMTaLXkOSefzNzevK7ILU6Z76Z33yHfpnOPaf++7dHTeVDgAABAgQIECBAgEArgQ9atdKIAAECBAgQIECAAIGlgAJaIhAgQIAAAQIECBDoIKCA7oClKQECBAgQIECAAAEFtBwgQIAAAQIECBAg0EFAAd0BS1MCBAgQIECAAAECCmg5QIAAAQIECBAgQKCDgAK6A5amBAgQIECAAAECBBTQcoAAAQIECBAgQIBABwEFdAcsTQkQIECAAAECBAgooOUAAQIECBAgQIAAgQ4CCugOWJoSIECAAAECBAgQUEDLAQIECBAgQIAAAQIdBBTQHbA0JUCAAAECBAgQIKCAlgMECBAgQIAAAQIEOggooDtgaUqAAAECBAgQIEAgFtAHGAgQIECAAAECBAgQOFMg1sv/1syX7r1cfBib7mxvXFle0lTXqrr+qGmaj6uqvh7+yyZMAgQIECBAgAABAjMXWIRC+FVd139WTfOuqqvXcb53X+y/PTnv+sbDW+daLAvrUFQ3Vf1FaHgz/HN55nimR4AAAQIECBAgMH+BuKO8V1fN01gsn1Yon0WwtoBevfBwl7r+rGmqr+1Mzz+rzJAAAQIECBAgMEOBRV1XT8Ju8/MuRfOqQ6cC+n/F9NbG/bAr/Z1CeoZpZUoECBAgQIAAgfkJLMJu8+O7L/d/GTq13gX0ceCd7c0HYUf6h/B7RzuGrobrCRAgQIAAAQIExhRYfvEv7Dg/uvti8dNYHQ9+jF0czNEXEXfHGpR+CBAgQIAAAQIECIwgsFfXzSdjFs9xTIML6OOJhSL6TtgW/zL83mPxRlhtXRAgQIAAAQIECPQWOIh1aaxP+55zPi/yaAV0DBLPlMQqP/xreAyIDwECBAgQIECAAIHsAuFLgmHXeYSzzmeNfNQCellEh2flhUHfVkRnTxYBCRAgQIAAAQIXWSCegojF8+0Uu86rsIO/RHjeKj3b2nwT/r8XsVzkVDZ3AgQIECBAgEAegd14ZCNHqNF3oFcHHSZx1U50jmUUgwABAgQIECBwoQUWuYrnqJy0gI4BHOe40Mls8gQIECBAgACB1ALLYxupg6z2n7yAXjkT7ekcOVdWLAIECBAgQIDA/AUOcpx5PsmYvICOAQ+L6OrR/NfQDAkQIECAAAECBHIJHL4gZf9trnjHcbIU0IdF9PLtL7u5JygeAQIECBAgQIDALAV2x35BSlulbAV0HFDYYv82/OIoR9vV0Y4AAQIECBAgQOA0gXh0I9aVRT5ZC2hHOYqssaAECBAgQIAAgVkJlDq6cYyYtYCOQY+22r2pcFZpbDIECBAgQIAAgWwCi1JHN4oV0DFweDf542zEAhEgQIAAAQIECMxGYAp1ZPYd6OUu9OG7ye1CzyaVTYQAAQIECBAgkEVgcVRHZgl2VpAiBfRyF7qunhSdueAECBAgQIAAAQLvlcBU6sdL5dSa56GMjk/kuFxuDEkih5315lVdVX+EsyqvTz6bcGd740rVVNeaqvo0zP96GMFmklHk69R8V6ytr3zOd+uNEsn96/7159Eot1KRTi7a/RuRQ90Y68fyn/rGw1vFRvFsa/PXEPzzYgMYL3D8QWAvPk6l68O8Y8HVNPX34fqb79EPE+bbMnesb0uoss3kc0t/+dwSqmwz+dzSXz63hJpWs917Lxd3pjCkogX0zvbmg6apfpwCxIAx7PYpnE/GW7mRp/4Dhfn2SBbr2wMtzyXyuYezfO6BlucS+dzDWT73QCt0STi+8U3pp28cT71wAb3cfd0vtA6Dw6ZYyCn/UGG+g1Omsr7DDcfqQT4Pl5TPww3H6kE+D5eUz8MNU/cQNiw3uv5Nf6oxFS2g46TCMY434Zf37RzwQXiEylepvgW6s7Vxv6nqn4PLVM6Hm++Id6D1HRGzX1fyuZ/bqVfJ5xEx+3Uln/u5yecgMMH797zVXITjG1dHXO5BXRV7CsfKqP8aNIMCFy/ffnP4KL4kn9h3jJGk8x6dmm8PtHMusb7jenbtTT53FTu/vXwe17Nrb/K5q5h8XhWY2v27ZjUnVS8WL6DDzf/7uOmfvLfdHOdvjmLsJp/N+gDmu96ocwvr25lsrAvk81iSK/3I5wSo7bqUz+2cOrWSz524sjWeWr1YvICumuZdNv3hgQ7iFwaHd9Ouh6NY8RvVpT7mm1De+ibEPb1r+ZyQXD4nxJXPUcD9mzDFJnD/rp/dxOrF8gV0eFbyerXJtNjLeXj9KNZewdmbb0J865sQ9/Su5XNCcvmcEFc+RwH3b8IUm8D9u352E6sXyxfQ68km0yJ8cfBp7sGUiHk8xxKxS8Q033xZbX3nbW19rW8qgRK5VSLmRf3zKFXepOy3eAGdc0d3MGSJn35KxPzvDs7/twPmOzhNW3dQwrpETPncOiUGN7S+gwlbd1DCukRM92/rlBjcsOT6Dh58/g6KP8YuTjk8yi682Xr6n/D4lPCG7vyfUj7mm2etrW8eZ/mcx1k+53GWz3mc5XMe5zZRSuX8WWP7Bxil8XEJz7ZOAAAAAElFTkSuQmCC">
                    </div>
                  </div>
                  <div class="modal-footer d-md-none">
                    <a type="button" class="footer_close" style="border-radius: 100px;" data-dismiss="modal">CLOSE</a>
                  </div>
                </div>
              </div>
            </div>
            <!-- 入口 -->
            <div class="plugin_modals__list" data-toggle="modal" data-target="#target_Modal388951" impr="1" imprevt="1" imprsd="true">
              <div class="plugin_modals__list-name">
                <style>
                  a.product_detail_rebate_list {
                    display: inline-flex;
                    align-items: start;
                    color: #EB391B;
                  }

                  a.product_detail_rebate_list:hover {
                    color: #EB391B;
                  }

                  .plugin_modals__modal .rebate-icon {
                    display: none;
                  }

                  .rebate-icon {
                    margin-right: 4px;
                    padding-top: 4px;
                  }
                </style>
                <a class="product_detail_rebate_list" impr="1" imprevt="1" href="/promotions/rebate/23f2b003-82fb-46cc-acf4-1f5e1c9fba32" 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 id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$59.00</span></b> more and save <b><span class="money notranslate">$10.00</span></b>
      </li>
    
      <li id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$99.00</span></b> more and save <b><span class="money notranslate">$20.00</span></b>
      </li>
    
      <li id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$139.00</span></b> more and save <b><span class="money notranslate">$30.00</span></b>
      </li>
    
      <li id="pdr__rule" class="pdr__rule">
        Buy <b><span class="money notranslate">$199.00</span></b> more and save <b><span class="money notranslate">$50.00</span></b>
      </li>
    
   </div>
  </a>
              </div>
              <div class="plugin_modals__list-labels text-right"></div>
              <i class="plugin_modals__list-icon">
        <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="18" height="18"><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>
          </div>
          <div class="plugin_modals position-relative plugin_modals-discount_gifts" id="Modal553472" style="order: 9">
            <style>
              #Modal553472 {
                --modal_background: linear-gradient(135deg, #ff4848, #ff0d7d);
                --modal_caret_background: #ff0d7d;
                --modal_title_color: #fff;
                --modal_close_color: #D30808;
                --modal_close_background_color: #FFE6D0;
                --list_border_color: #ddd;
              }

              @media (max-width: 767.98px) {
                #Modal553472 .coupon_plugin__coupon:last-child {
                  padding-bottom: 0;
                }
              }

              #Modal553472 .modal-footer {
                position: relative;
                margin-top: -30px;
              }

              #Modal553472 .modal-footer::before {
                content: '';
                position: absolute;
                bottom: 0;
                left: 0;
                right: 0;
                height: 150%;
                background-image: url(//img.staticdj.com/oss/operation/1eb91360306015b21548cd2f1747bc0e.svg);
                background-repeat: no-repeat;
                background-size: 100%;
                pointer-events: none;
              }

              @media (max-width: 767.98px) {
                #Modal553472 .discount-present-item:last-child {
                  padding-bottom: 40px;
                }

                #Modal553472 .plugin_modals__wrapper-list>a:last-child {
                  padding-bottom: 14px;
                }
              }
            </style>
            <!-- 弹窗 -->
            <div class="fade plugin_modals__modal" data-backdrop="false" role="dialog" id="target_Modal553472">
              <div class="plugin_modals__modal-mask" data-dismiss="modal" aria-label="Close"></div>
              <div class="modal-dialog m-0" role="document">
                <div class="modal-content">
                  <div class="modal-header justify-content-center p-1">
                    <h5 class="modal-title p-1">GIFT OFFER</h5>
                    <i type="button" class="modal_close" data-dismiss="modal" aria-label="Close"><svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="20" height="20"><defs><style></style></defs><path 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" fill="currentColor"></path><path d="M540.577 507.237l167.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" fill="currentColor"></path></svg></i>
                  </div>
                  <div class="modal-body">
                    <div class="discount-present">
                      <div class="gift-offer-entry position-relative d-flex flex-row discount-present-item" data-id="ab6fddeb-1775-4208-bf84-15922900afc9">
                        <div class="activity-rules d-flex align-items-center" data-toggle="modal" data-target="#gift-offer-modal">
                          <!-- view the gift svg图标 -->
                          <img alt="plugin discount gift" class="lazyload" loading="lazy" src="//img.staticdj.com/oss/operation/287876a2c3f514fadb32ecfa592ce1f7.png">
                          <div class="activity-rules-contennt"> View the <span class="gift_offer">GIFT OFFER</span>
                          </div>
                        </div>
                      </div>
                      <div class="discount-present-item position-relative d-flex flex-row">
                        <a class="rules w-100">

  <div class="activity-rules-contennt">
    
      
      <li>Spend <span class="money notranslate">$109</span> to get <span>1</span> free gift(s)</li>
      
    
  </div>
</a>
                      </div>
                    </div>
                  </div>
                  <div class="modal-footer d-md-none">
                    <a type="button" class="footer_close" style="border-radius: 21px;" data-dismiss="modal">CLOSE</a>
                  </div>
                </div>
              </div>
            </div>
            <!-- 入口 -->
            <div class="plugin_modals__list" data-toggle="modal" data-target="#target_Modal553472" impr="1" imprevt="1" imprsd="true">
              <div class="plugin_modals__list-name"><a class="rules w-100">

    <i>
      <svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.31421 2.57895C4.31421 2.03589 4.82263 1.47368 5.61842 1.47368C6.39063 1.47368 7.26158 2.11474 7.26158 3.19274V3.68421H6.63821C6.04505 3.68421 5.418 3.6761 4.93905 3.5C4.71653 3.41747 4.57211 3.31358 4.48148 3.19568C4.39674 3.08516 4.31421 2.90316 4.31421 2.57895ZM9.35863 3.68421H8.73526V3.19274C8.73526 2.11474 9.60547 1.47368 10.3784 1.47368C11.1742 1.47368 11.6826 2.03589 11.6826 2.57895C11.6826 2.90316 11.6001 3.08442 11.5154 3.19568C11.4247 3.31358 11.2803 3.41674 11.0578 3.49926C10.5788 3.6761 9.95252 3.68421 9.35863 3.68421ZM13.1563 2.57895C13.1563 2.9901 13.0804 3.36 12.9308 3.68421H14.2616C14.5547 3.68421 14.8358 3.80066 15.0431 4.00793C15.2504 4.21521 15.3668 4.49634 15.3668 4.78947V6.63158H0.630005V4.78947C0.630005 4.49634 0.746452 4.21521 0.953729 4.00793C1.16101 3.80066 1.44213 3.68421 1.73527 3.68421H3.066C2.91128 3.3366 2.83434 2.95939 2.84053 2.57895C2.84053 1.08316 4.15432 0 5.61842 0C6.47684 0 7.38537 0.402317 7.99842 1.12663C8.61147 0.402317 9.52 0 10.3784 0C11.8433 0 13.1563 1.08316 13.1563 2.57895ZM7.26158 14V8.10526H1.36685V12.8947C1.36685 13.5063 1.86053 14 2.47211 14H7.26158ZM8.73526 14V8.10526H14.63V12.8947C14.63 13.5063 14.1363 14 13.5247 14H8.73526Z" fill="#EB391B"></path>
</svg>

    </i>
  
  <div class="activity-rules-contennt">
    
      
      <li>Spend <span class="money notranslate">$109</span> to get <span>1</span> free gift(s)</li>
      
    
  </div>
</a></div>
              <div class="plugin_modals__list-labels text-right"></div>
              <i class="plugin_modals__list-icon">
        <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="18" height="18"><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>
          </div>
        </div>
      </div>
    </div>
    <spz-variants class="product-info__variants flex flex-col items-start i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" id="product-info-variants" src="script:product-json" switch-slide="[]"
      slide="product-detail-images" manual="" interference="" select-soldout-suffix=" - Sold out" interact="hover" inherit-url-variant=""
      @mouseout="product-info-selected-variant-option1.rerender(data=event);product-info-selected-variant-option2.rerender(data=event);" @sizemouseover="product-info-selected-variant-option1.rerender(data=event);"
      @colormouseover="product-info-selected-variant-option2.rerender(data=event);" i-spzhtml-layout="container">
      <div class="variants_combination_box" impr="1" imprevt="1" imprsd="true">
        <div class="combination_title product-info__variants_title" data-role="plugin-variants"> Style </div>
        <div class="combination_list_container">
          <a class="combination_list_item " href="/products/csmdf230828-4yh">
        <img class="combination_list_item_img" src="//img.staticdj.com/2900207f85b801650c438d22310bf109.jpeg" alt="">
			</a>
          <a class="combination_list_item " href="/products/hoo®-vintage-natives-and-camels-on-the-desert-printing-shorts">
        <img class="combination_list_item_img" src="//img.staticdj.com/d093d9691e538fef715546f0bdfcbeac.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/csmdf240611-2yh-gj2m-3ax5-xq7v-57c6-hwyq-fcl7-lxyn-0lvl-sjzc-qqbg">
        <img class="combination_list_item_img" src="//img.staticdj.com/ef6954088400894a944e53b273aae6c2.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/csmdf230828-3yh">
        <img class="combination_list_item_img" src="//img.staticdj.com/01f5bb3dfdcdae4086ad763f605b6eba.jpeg" alt="">
			</a>
          <a class="combination_list_item  combination_list_item_selectd " href="/products/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm">
        <img class="combination_list_item_img" src="//img.staticdj.com/acf45093eb1834290ce743618f3348cb.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/csmdf240614-1nh-9i48-0ms0-rvvg-v1er-sw2n-pq01-xpgq-sv51-gv83-lq0e-ff02-1c6y">
        <img class="combination_list_item_img" src="//img.staticdj.com/9cf3272954cf5968145273e56e705d14.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/hoo®-csmdf240606-6yh-printing-short-sleeve-shirt-9ajg-5lte">
        <img class="combination_list_item_img" src="//img.staticdj.com/d0f3fd86e9834380bc08069f0c368f8d.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/hoo®-khaki-vintage-camel-caravan-in-the-desert-printing-shorts">
        <img class="combination_list_item_img" src="//img.staticdj.com/9b56efc26dc2afea1775bba9a9968c2b.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/pdsmdf240611-1yh-u65b-lzy7-s8vc-j32p-wnzr-85of-qrry-jk03-c5rj-n0ry">
        <img class="combination_list_item_img" src="//img.staticdj.com/e390a02b70937e0c5a5f273cc52cfd81.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/pdsmdf240618-2yh-i1qq-jn88-plqc-pvl6-zbt8-lwrf-r2j7-7f9c-c2yt-mhyq-ym7i-j6u8-765b-var7-a2zl-8ggh">
        <img class="combination_list_item_img" src="//img.staticdj.com/8962446a8def7ed5fa43ef9b17068fca.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/csmdf230902-1yh">
        <img class="combination_list_item_img" src="//img.staticdj.com/143722bf2501c71d725949a0f0e45eae.jpeg" alt="">
			</a>
          <a class="combination_list_item " href="/products/csmdf240613-4yh-p5wa-pkzt-heok-7l65-uftj-ncss-sdlr-o98s-evbq-08qu-ozmy">
        <img class="combination_list_item_img" src="//img.staticdj.com/e7ea5dc53e507575466f629502993037.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/csmdf240611-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3">
        <img class="combination_list_item_img" src="//img.staticdj.com/43feafbb5348db36558e3a7336ad4445.jpg" alt="">
			</a>
          <a class="combination_list_item " href="/products/hoo®-csmdf240612-5yh-printing-short-sleeve-shirt-2xvg-1pyi-ytfn-o4cp-gra0">
        <img class="combination_list_item_img" src="//img.staticdj.com/4f8f1ae211f0be59ca1f29a1e1d87324.jpg" alt="">
			</a>
        </div>
      </div>
      <fieldset class="product-info__variants_content mx-0 mt-4 lg:mt-5 max-w-full min-w-[0px]" name="Size">
        <legend class="w-full m-0 p-0 flex items-center product-info__variants_title">
          <span class="lg:body-plus-2 font-semibold leading-1.25 flex-shrink-0">Size:&nbsp;</span>
          <spz-render class="product-info-selected-variant-option-text inline-block color-body-70 leading-1.3125 lg:body-minus-2 flex-grow flex items-center min-w-[0px] i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout"
            id="product-info-selected-variant-option1" layout="container" manual="" i-spzhtml-layout="container" style="height: 18px;">
            <template> ${function(){ const optName = "Size"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (optionValue) : ''; return `<span
                class="inline-block truncate max-w-full" title="${optionValueText}">${optionValueText}</span>`; }()} </template>
            <span class="inline-block truncate max-w-full">XS</span></spz-render>
        </legend>
        <div class="flex flex-wrap  product-info-variant-container ">
          <div class="relative mt-3 mr-3">
            <input type="radio" option="XS" id="product-info-variant-XS-0" class="pointer-events-auto" name="product-info-variant-Size" value="XS" form="product-info-body" @input-debounced="product-info-selected-variant-option1.rerender(data=event);"
              checked="">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">XS</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="S" id="product-info-variant-S-1" class="pointer-events-auto" name="product-info-variant-Size" value="S" form="product-info-body" @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">S</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="M" id="product-info-variant-M-2" class="pointer-events-auto" name="product-info-variant-Size" value="M" form="product-info-body" @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">M</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="L" id="product-info-variant-L-3" class="pointer-events-auto" name="product-info-variant-Size" value="L" form="product-info-body" @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">L</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="XL" id="product-info-variant-XL-4" class="pointer-events-auto" name="product-info-variant-Size" value="XL" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">XL</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="2XL" id="product-info-variant-2XL-5" class="pointer-events-auto" name="product-info-variant-Size" value="2XL" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">2XL</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="3XL" id="product-info-variant-3XL-6" class="pointer-events-auto" name="product-info-variant-Size" value="3XL" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">3XL</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="4XL" id="product-info-variant-4XL-7" class="pointer-events-auto" name="product-info-variant-Size" value="4XL" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">4XL</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="4XLT" id="product-info-variant-4XLT-8" class="pointer-events-auto" name="product-info-variant-Size" value="4XLT" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">4XLT</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="5XL" id="product-info-variant-5XL-9" class="pointer-events-auto" name="product-info-variant-Size" value="5XL" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">5XL</span>
            </label>
          </div>
          <div class="relative mt-3 mr-3">
            <input type="radio" option="5XLT" id="product-info-variant-5XLT-10" class="pointer-events-auto" name="product-info-variant-Size" value="5XLT" form="product-info-body"
              @input-debounced="product-info-selected-variant-option1.rerender(data=event);">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="text">
              <span class="break-words text-center">5XLT</span>
            </label>
          </div>
        </div>
      </fieldset>
      <spz-render id="product-variant-option1-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
        <template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
      </spz-render>
      <fieldset class="product-info__variants_content mx-0 mt-4 lg:mt-5 max-w-full min-w-[0px]" name="Color">
        <legend class="w-full m-0 p-0 flex items-center product-info__variants_title">
          <span class="lg:body-plus-2 font-semibold leading-1.25 flex-shrink-0">Color:&nbsp;</span>
          <spz-render class="product-info-selected-variant-option-text inline-block color-body-70 leading-1.3125 lg:body-minus-2 flex-grow flex items-center min-w-[0px] i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout"
            id="product-info-selected-variant-option2" layout="container" manual="" i-spzhtml-layout="container" style="height: 18px;">
            <template> ${function(){ const optName = "Color"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (optionValue) : ''; return `<span
                class="inline-block truncate max-w-full" title="${optionValueText}">${optionValueText}</span>`; }()} </template>
            <span class="inline-block truncate max-w-full">Multicolor</span></spz-render>
        </legend>
        <div class="flex flex-wrap ">
          <div class="relative mt-3 mr-3">
            <input type="radio" option="Multicolor" id="product-info-variant-Multicolor-0" class="pointer-events-auto" name="product-info-variant-Color" value="Multicolor" form="product-info-body"
              @input-debounced="product-info-selected-variant-option2.rerender(data=event);" checked="">
            <label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden 
    
      rounded-btn-fixed
    
  " data-type="image">
              <spz-img src="//img.staticdj.com/acf45093eb1834290ce743618f3348cb_48x.jpg" layout="responsive" width="44" height="44" alt="" object-fit="cover" auto-fit=""
                class="i-spzhtml-layout-responsive i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="responsive" complete=""><i-spzhtml-sizer style="padding-top:100%;"></i-spzhtml-sizer><img
                  decoding="async" alt="" src="//img.staticdj.com/acf45093eb1834290ce743618f3348cb_48x.jpg" class="i-spzhtml-fill-content i-spzhtml-replaced-content" style="object-fit: cover;"></spz-img>
            </label>
          </div>
        </div>
      </fieldset>
      <spz-render id="product-variant-option2-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
        <template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
      </spz-render>
    </spz-variants>
    <div class=" mt-4  lg:mt-5">
      <div class="leading-1.25 font-semibold lg:body-plus-2">Quantity</div>
      <spz-quantity class="product-info-qty mt-2 lg:mt-3 i-spzhtml-layout-fixed-height i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-quantity" name="quantity" value="1" min="1" max="10000"
        icon-class="product-info-qty-btn clear flex items-center justify-center flex-shrink-0" input-class="product-info-qty-input clear flex-shrink-0 body-plus-2 text-center" height="40" layout="fixed-height" style="height:40px;"
        i-spzhtml-layout="fixed-height">
        <div class="i-spzhtml-fill-content i-spzhtml-replaced-content"><span role="button" class="i-spzhtml-quantity-number-decrease product-info-qty-btn clear flex items-center justify-center flex-shrink-0" disabled=""><svg role="decrease" class=""
              width="16" height="16" xmlns="http://www.w3.org/2000/svg">
              <path d="M13.7 7.4a.3.3 0 0 1 .3.3v.6a.3.3 0 0 1-.3.3H2.3a.3.3 0 0 1-.3-.3v-.6a.3.3 0 0 1 .3-.3h11.4z" fill="currentColor"></path>
            </svg></span><input type="number" name="quantity" min="1" max="10000" class="i-spzhtml-quantity-number-input product-info-qty-input clear flex-shrink-0 body-plus-2 text-center"><span role="button"
            class="i-spzhtml-quantity-number-increase product-info-qty-btn clear flex items-center justify-center flex-shrink-0"><svg role="increase" class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
              <path d="M8.3 14a.3.3 0 0 0 .3-.3V8.6h5.1a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V2.3a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.1H2.3a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.1v5.1a.3.3 0 0 0 .3.3h.6z" fill="currentColor"></path>
            </svg></span></div>
      </spz-quantity>
    </div>
    <div class="product-info__btn mt-4 lg:mt-5">
      <button class="relative button-secondary flex items-center justify-center w-full body-plus-2 leading-1.25 type-text-font-family rounded-btn product-info_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
        data-track-source="add_to_cart">
        <span role="content">Add to cart</span>
        <spz-render id="product-info-btn-price" layout="container" template="product-info-btn-price-template" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container"
          style="height: auto;">
          <div class="flex"><span class="product_price_before"></span><spz-currency value="26.95" layout="container" class="i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
              <div class="money notranslate">$26.95</div>
            </spz-currency></div>
        </spz-render>
        <style>
          .product_price_before::before {
            content: ' - ';
            display: block;
            width: 20px;
          }
        </style>
        <template id="product-info-btn-price-template"> ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product &amp;&amp; data.product.variants
          &amp;&amp; data.product.variants[0]); const productVariant =
          {"id":"8bb84595-4772-49e8-a09a-2d6b3371b7ea","product_id":"913e7e62-7499-4cba-8345-71b013ef6617","title":"XS-Multicolor","weight_unit":"g","inventory_quantity":10000,"sku":"cSMDF240612-3nH-XS","barcode":"cSMDF240612-3nH","position":1,"option1":"XS","option2":"Multicolor","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/acf45093eb1834290ce743618f3348cb.jpg","path":"acf45093eb1834290ce743618f3348cb.jpg","width":750,"height":1000,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":26.95,"min_quantity":1}],"weight":"200","compare_at_price":"0","price":"26.95","retail_price":"0","available":true,"url":"\/products\/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?variant=8bb84595-4772-49e8-a09a-2d6b3371b7ea","available_quantity":10000,"options":[{"name":"Size","value":"XS"},{"name":"Color","value":"Multicolor"}],"off_ratio":0,"flashsale_info":[],"sales":6};
          const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled &amp;&amp; wholesale_price.length &gt; 0) { let wholesaleIndex =
          wholesale_price.findIndex(item =&gt; { return item.min_quantity &gt; qty; }); if(wholesaleIndex &lt; 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex &gt; 0){ wholesaleIndex = wholesaleIndex - 1; } const
          wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` <div class="flex">
            <span class="product_price_before"></span><spz-currency value="${wholesalePrice.price}" layout="container"></spz-currency>
          </div> ` }else { const price = variantData &amp;&amp; variantData.price; return price != undefined ? `<div class="flex"><span class="product_price_before"></span><spz-currency value="${price}" layout="container"></spz-currency></div>` :
          '<span></span>'; } }()} </template>
        <div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
          <div class="loading-bounce"></div>
        </div>
      </button>
      <button class="relative button-primary w-full body-plus-2 leading-1.25 type-text-font-family rounded-btn mt-2 lg:mt-3 product-info_atc_btn" role="buyNow" type="button" data-track="click" data-track-content="checkout"
        data-track-source="buy_now">
        <span role="content">Buy now</span>
        <div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
          <div class="loading-bounce"></div>
        </div>
      </button>
      <spz-paypal class="mt-3 rounded-btn i-spzhtml-layout-fixed-height i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="paypal-express-button-container" variant="#product-info-variants"
        quantity="#product-info-quantity" product-id="913e7e62-7499-4cba-8345-71b013ef6617" variant-id="8bb84595-4772-49e8-a09a-2d6b3371b7ea" product-form="#product-info-body" role="paypal" layout="fixed-height" height="52"
        paypal-js="https://www.paypal.com/sdk/js?client-id=AUwoRlv3iZ3jt3o3hhcft_tZ5g6tvefEpjCf9YNGeH7q8p_WraleitkKfLnWIs8HLpzalgRA5AMT0BYO&amp;currency=USD&amp;disable-funding=card%2Cbancontact%2Cblik%2Ceps%2Cgiropay%2Cideal%2Cmercadopago%2Cmybank%2Cp24%2Csepa%2Csofort%2Cvenmo&amp;enable-funding=paylater"
        style="height:52px;" i-spzhtml-layout="fixed-height">
        <div id="zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk" class="paypal-buttons paypal-buttons-context-iframe paypal-buttons-label-unknown paypal-buttons-layout-horizontal" data-paypal-smart-button-version="5.0.448"
          style="height: 52px; transition: all 0.2s ease-in-out 0s;">
          <style nonce="">
            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk {
              position: relative;
              display: inline-block;
              width: 100%;
              min-height: 25px;
              min-width: 150px;
              font-size: 0;
            }

            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk>iframe {
              position: absolute;
              top: 0;
              left: 0;
              width: 100%;
              height: 100%;
            }

            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk>iframe.component-frame {
              z-index: 100;
            }

            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk>iframe.prerender-frame {
              transition: opacity .2s linear;
              z-index: 200;
            }

            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk>iframe.visible {
              opacity: 1;
            }

            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk>iframe.invisible {
              opacity: 0;
              pointer-events: none;
            }

            #zoid-paypal-buttons-uid_b6159ac50a_mji6mzc6mzk>.smart-menu {
              position: absolute;
              z-index: 300;
              top: 0;
              left: 0;
              width: 100%;
            }
          </style><iframe allowtransparency="true"
            name="__zoid__paypal_buttons__eyJzZW5kZXIiOnsiZG9tYWluIjoiaHR0cHM6Ly93d3cuaG9vc2hvcHMuY29tIn0sIm1ldGFEYXRhIjp7IndpbmRvd1JlZiI6eyJ0eXBlIjoicGFyZW50IiwiZGlzdGFuY2UiOjB9fSwicmVmZXJlbmNlIjp7InR5cGUiOiJyYXciLCJ2YWwiOiJ7XCJ1aWRcIjpcInpvaWQtcGF5cGFsLWJ1dHRvbnMtdWlkX2I2MTU5YWM1MGFfbWppNm16YzZtemtcIixcImNvbnRleHRcIjpcImlmcmFtZVwiLFwidGFnXCI6XCJwYXlwYWwtYnV0dG9uc1wiLFwiY2hpbGREb21haW5NYXRjaFwiOntcIl9fdHlwZV9fXCI6XCJyZWdleFwiLFwiX192YWxfX1wiOlwiXFxcXC5wYXlwYWxcXFxcLihjb218Y24pKDpcXFxcZCspPyRcIn0sXCJ2ZXJzaW9uXCI6XCIxMF8zXzNcIixcInByb3BzXCI6e1wiZW52XCI6XCJwcm9kdWN0aW9uXCIsXCJjb21taXRcIjp0cnVlLFwic3R5bGVcIjp7XCJsYWJlbFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJsYXlvdXRcIjpcImhvcml6b250YWxcIixcImNvbG9yXCI6XCJnb2xkXCIsXCJzaGFwZVwiOlwicmVjdFwiLFwidGFnbGluZVwiOmZhbHNlLFwiaGVpZ2h0XCI6NTIsXCJwZXJpb2RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwibWVudVBsYWNlbWVudFwiOlwiYmVsb3dcIixcImRpc2FibGVNYXhXaWR0aFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJkaXNhYmxlTWF4SGVpZ2h0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImJvcmRlclJhZGl1c1wiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn19LFwiZnVuZGluZ1wiOntcImRpc2FsbG93ZWRcIjpbXCJjcmVkaXRcIl19LFwib25BcHByb3ZlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZGNlMTQ5OWQ3Zl9tamk2bXpjNm16a1wiLFwibmFtZVwiOlwiYm91bmQgdmFsdWVcIn19LFwiY3JlYXRlT3JkZXJcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF83ZTVhNDhkZTA3X21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJib3VuZCB2YWx1ZVwifX0sXCJjc3BOb25jZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhbGxvd0JpbGxpbmdQYXltZW50c1wiOnRydWUsXCJhbW91bnRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYXBpU3RhZ2VIb3N0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwcGxlUGF5XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwcGxlUGF5U3VwcG9ydFwiOmZhbHNlLFwiYnJhbmRlZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJidXR0b25Mb2NhdGlvblwiOlwid3d3Lmhvb3Nob3BzLmNvbVwiLFwiYnV0dG9uU2Vzc2lvbklEXCI6XCJ1aWRfMzc5NTFmMTExMl9tamk2bXpjNm16a1wiLFwiYnV0dG9uU2l6ZVwiOlwibGFyZ2VcIixcImJ1eWVyQ291bnRyeVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjbGllbnRBY2Nlc3NUb2tlblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjdXN0b21lcklkXCI6XCJcIixcImNsaWVudElEXCI6XCJBVXdvUmx2M2laM2p0M28zaGhjZnRfdFo1ZzZ0dmVmRXBqQ2Y5WU5HZUg3cThwX1dyYWxlaXRrS2ZMbldJczhITHB6YWxnUkE1QU1UMEJZT1wiLFwiY2xpZW50TWV0YWRhdGFJRFwiOlwidWlkXzAxYjMyZTIxZjNfbWppNm16YzZtemtcIixcImNvbXBvbmVudHNcIjpbXCJidXR0b25zXCJdLFwiY3JlYXRlQmlsbGluZ0FncmVlbWVudFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjcmVhdGVTdWJzY3JpcHRpb25cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY3JlYXRlVmF1bHRTZXR1cFRva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImNzcFwiOntcIm5vbmNlXCI6XCJcIn0sXCJjdXJyZW5jeVwiOlwiVVNEXCIsXCJkZWJ1Z1wiOmZhbHNlLFwiZGlzYWJsZUNhcmRcIjpbXSxcImRpc2FibGVGdW5kaW5nXCI6W1wiY2FyZFwiLFwiYmFuY29udGFjdFwiLFwiYmxpa1wiLFwiZXBzXCIsXCJnaXJvcGF5XCIsXCJpZGVhbFwiLFwibWVyY2Fkb3BhZ29cIixcIm15YmFua1wiLFwicDI0XCIsXCJzZXBhXCIsXCJzb2ZvcnRcIixcInZlbm1vXCJdLFwiZGlzYWJsZVNldENvb2tpZVwiOnRydWUsXCJkaXNwbGF5T25seVwiOltdLFwiZW5hYmxlRnVuZGluZ1wiOltcInBheWxhdGVyXCJdLFwiZW5hYmxlVGhyZWVEb21haW5TZWN1cmVcIjpmYWxzZSxcImVuYWJsZVZhdWx0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImV4cGVyaW1lbnRcIjp7XCJlbmFibGVWZW5tb1wiOmZhbHNlLFwidmVubW9WYXVsdFdpdGhvdXRQdXJjaGFzZVwiOmZhbHNlfSxcImV4cGVyaW1lbnRhdGlvblwiOnt9LFwiZmxvd1wiOlwicHVyY2hhc2VcIixcImZ1bmRpbmdFbGlnaWJpbGl0eVwiOntcInBheXBhbFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOmZhbHNlfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOmZhbHNlLFwicHJvZHVjdHNcIjp7XCJwYXlJbjNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmFyaWFudFwiOm51bGx9LFwicGF5SW40XCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfX19LFwiY2FyZFwiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJicmFuZGVkXCI6dHJ1ZSxcImluc3RhbGxtZW50c1wiOmZhbHNlLFwidmVuZG9yc1wiOntcInZpc2FcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcIm1hc3RlcmNhcmRcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImFtZXhcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImRpc2NvdmVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiaGlwZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6ZmFsc2V9LFwiZWxvXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiamNiXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJtYWVzdHJvXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJkaW5lcnNcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImN1cFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9fSxcImd1ZXN0RW5hYmxlZFwiOmZhbHNlfSxcInZlbm1vXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOmZhbHNlfSxcIml0YXVcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImNyZWRpdFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYXBwbGVwYXlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNlcGFcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImlkZWFsXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJiYW5jb250YWN0XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJnaXJvcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJlcHNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNvZm9ydFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibXliYW5rXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJwMjRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIndlY2hhdHBheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicGF5dVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYmxpa1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwidHJ1c3RseVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwib3h4b1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYm9sZXRvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJib2xldG9iYW5jYXJpb1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibWVyY2Fkb3BhZ29cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm11bHRpYmFuY29cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNhdGlzcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJwYWlkeVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9fSxcImZ1bmRpbmdTb3VyY2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZ2V0UGFnZVVybFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzAxMDlmOThmZDVfbWppNm16YzZtemtcIixcIm5hbWVcIjpcImdldFBhZ2VVcmxcIn19LFwiZ2V0UG9wdXBCcmlkZ2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81MDYyMmI5M2NlX21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJnZXRQb3B1cEJyaWRnZVwifX0sXCJnZXRQcmVyZW5kZXJEZXRhaWxzXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfODRiMGIxZGIxYV9tamk2bXpjNm16a1wiLFwibmFtZVwiOlwiZ2V0UHJlcmVuZGVyRGV0YWlsc1wifX0sXCJnZXRRdWVyaWVkRWxpZ2libGVGdW5kaW5nXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNWE1MjBhMThiY19tamk2bXpjNm16a1wiLFwibmFtZVwiOlwiZ2V0UXVlcmllZEVsaWdpYmxlRnVuZGluZ1wifX0sXCJob3N0ZWRCdXR0b25JZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJpbnRlbnRcIjpcImNhcHR1cmVcIixcImpzU2RrTGlicmFyeVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJsb2NhbGVcIjp7XCJjb3VudHJ5XCI6XCJVU1wiLFwibGFuZ1wiOlwiZW5cIn0sXCJtZXJjaGFudElEXCI6W10sXCJtZXJjaGFudFJlcXVlc3RlZFBvcHVwc0Rpc2FibGVkXCI6ZmFsc2UsXCJtZXNzYWdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm5vbmNlXCI6XCJcIixcIm9uQ2FuY2VsXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25Db21wbGV0ZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvbkluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9hOGFhYzgzMmMyX21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJvbkluaXRcIn19LFwib25NZXNzYWdlQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9iNjNjNzNlNWQ3X21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJvbk1lc3NhZ2VDbGlja1wifX0sXCJvbk1lc3NhZ2VIb3ZlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzU3MmI4OWY4N2FfbWppNm16YzZtemtcIixcIm5hbWVcIjpcIm9uTWVzc2FnZUhvdmVyXCJ9fSxcIm9uTWVzc2FnZVJlYWR5XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfMWYwMTFkYWRhMV9tamk2bXpjNm16a1wiLFwibmFtZVwiOlwib25NZXNzYWdlUmVhZHlcIn19LFwib25TaGlwcGluZ0FkZHJlc3NDaGFuZ2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25TaGlwcGluZ0NoYW5nZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvblNoaXBwaW5nT3B0aW9uc0NoYW5nZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJoYXNTaGlwcGluZ0NhbGxiYWNrXCI6ZmFsc2UsXCJwYWdlVHlwZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXJ0bmVyQXR0cmlidXRpb25JRFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXltZW50TWV0aG9kTm9uY2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwicGF5bWVudE1ldGhvZFRva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBheW1lbnRSZXF1ZXN0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBsYXRmb3JtXCI6XCJkZXNrdG9wXCIsXCJyZWZlcnJlckRvbWFpblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJyZW1lbWJlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzlhODkwODU2NGFfbWppNm16YzZtemtcIixcIm5hbWVcIjpcInJlbWVtYmVyXCJ9fSxcInJlbWVtYmVyZWRcIjpbXSxcInJlbmRlcmVkQnV0dG9uc1wiOltcInBheXBhbFwiXSxcInNlc3Npb25JRFwiOlwidWlkXzAxYjMyZTIxZjNfbWppNm16YzZtemtcIixcInNka0NvcnJlbGF0aW9uSURcIjpcIjAwOTdiMjkyNmIyOTJcIixcInNlc3Npb25TdGF0ZVwiOntcImdldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2YzYTNlYjk1ZDhfbWppNm16YzZtemtcIixcIm5hbWVcIjpcImdldFwifX0sXCJzZXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81MTc1ZmEyODdmX21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJzZXRcIn19fSxcImdldFNob3BwZXJJbnNpZ2h0c1VzZWRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF82MTBlODdlZjdkX21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJDclwifX0sXCJzdGFnZUhvc3RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwic3RvcmFnZUlEXCI6XCJ1aWRfNTE2NWMzNjI3OV9tamk2bXpjNm16a1wiLFwic3RvcmFnZVN0YXRlXCI6e1wiZ2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNGUzYTk4ZDJlNV9tamk2bXpjNm16a1wiLFwibmFtZVwiOlwiZ2V0XCJ9fSxcInNldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzllMzhkOGU4MTFfbWppNm16YzZtemtcIixcIm5hbWVcIjpcInNldFwifX19LFwic3VwcG9ydGVkTmF0aXZlQnJvd3NlclwiOmZhbHNlLFwic3VwcG9ydHNQb3B1cHNcIjp0cnVlLFwidGVzdFwiOntcImFjdGlvblwiOlwiY2hlY2tvdXRcIn0sXCJ1c2VyRXhwZXJpZW5jZUZsb3dcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidXNlcklEVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidmF1bHRcIjpmYWxzZSxcIndhbGxldFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn19LFwiZXhwb3J0c1wiOntcImluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8xMjc4NTk2NmMwX21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJpbml0XCJ9fSxcImNsb3NlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZTQyYjViYmMwMV9tamk2bXpjNm16a1wiLFwibmFtZVwiOlwiY2xvc2U6Om1lbW9pemVkXCJ9fSxcImNoZWNrQ2xvc2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81NDVhMTFjYjI4X21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJjaGVja0Nsb3NlXCJ9fSxcInJlc2l6ZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzFmNDg0YTBhN2JfbWppNm16YzZtemtcIixcIm5hbWVcIjpcIl9uXCJ9fSxcIm9uRXJyb3JcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9iNmNjZjZiYjk1X21qaTZtemM2bXprXCIsXCJuYW1lXCI6XCJxblwifX0sXCJzaG93XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfMTlhNjI2OTFkOV9tamk2bXpjNm16a1wiLFwibmFtZVwiOlwiZ25cIn19LFwiaGlkZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzUxNTk1YmY1ODZfbWppNm16YzZtemtcIixcIm5hbWVcIjpcInZuXCJ9fSxcImV4cG9ydFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzQzYTdiODQ0YWNfbWppNm16YzZtemtcIixcIm5hbWVcIjpcIlduXCJ9fX19In19__"
            title="PayPal" allowpaymentrequest="allowpaymentrequest" scrolling="no" id="jsx-iframe-a5cae26fb0" 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_f4a6b85aa7_mji6mzc6mzk__" style="display: none;"></iframe>
        </div>
      </spz-paypal>
      <div class="product-info__out_stock mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product was out of stock. </div>
      <div class="product-info__unavailable mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product is unavailable. </div>
    </div>
    <div class="product-info-shipping-container mt-4 lg:mt-5">
      <div class="flex items-center">
        <svg class="flex-shrink-0" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none">
          <path fill="currentColor" d="M12 14.7a.6.6 0 0 1-.6-.6V4.9a1 1 0 0 0-1-1H1c-.5 0-.6-.268-.6-.6 0-.332.1-.6.6-.6h9.4c1.212 0 2.2.988 2.2 2.2v9.2a.6.6 0 0 1-.6.6Zm-8.832.6H1.4c-.6 0-.6-.268-.6-.6 0-.332 0-.6.6-.6h1.768a.6.6 0 1 1 0 1.2Z">
          </path>
          <path fill="currentColor" d="M13.244 15.3H7.6a.6.6 0 1 1 0-1.2h5.644a.6.6 0 1 1 0 1.2Zm5.356 0h-.656a.6.6 0 1 1 0-1.2h.456v-3.244L16.648 7.7H12.2a.6.6 0 1 1 0-1.2h4.564c.364 0 .696.196.876.516l1.96 3.532v3.756a1 1 0 0 1-1 .996Z"></path>
          <path fill="currentColor"
            d="M18.6 10.9h-2.8a1 1 0 0 1-1-1V7.5a.6.6 0 1 1 1.2 0v2.2h2.6a.6.6 0 1 1 0 1.2ZM5.2 17.3a2.402 2.402 0 0 1-2.4-2.4c0-1.324 1.076-2.4 2.4-2.4 1.324 0 2.4 1.076 2.4 2.4 0 1.324-1.076 2.4-2.4 2.4Zm0-3.6c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2Zm10.4 3.6a2.402 2.402 0 0 1-2.4-2.4c0-1.324 1.076-2.4 2.4-2.4 1.324 0 2.4 1.076 2.4 2.4 0 1.324-1.076 2.4-2.4 2.4Zm0-3.6c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2Z">
          </path>
          <path fill="rgba(195, 14, 35, 1)" d="M7 6.9H2.2a.6.6 0 1 1 0-1.2H7a.6.6 0 1 1 0 1.2Zm1.2 2.8H3.8a.6.6 0 1 1 0-1.2h4.4a.6.6 0 1 1 0 1.2Z"></path>
        </svg>
        <span class="ml-2 leading-1.2">Shipping</span>
      </div>
      <spz-render class="mt-2 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-delivery-time-render" layout="container" i-spzhtml-layout="container" data-empty="" finish="">
        <template> ${function() { const minDays = parseInt('18'); const maxDays = parseInt('28'); const customText = "Estimated Delivery\uff1a{min_date} - {max_date}"; const minDate = new Date(Date.now() + (minDays * 86400000)); const maxDate = new
          Date(Date.now() + (maxDays * 86400000)); const formatDate = (minDate.getFullYear() == maxDate.getFullYear() &amp;&amp; minDate.getFullYear() == new Date().getFullYear()) ? new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit' }) :
          new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit', year: 'numeric' }); const tipText = customText.replace(/\{min_date\}/g, '<b>' + formatDate.format(minDate) + '</b>') .replace(/\{max_date\}/g,
          '<b>' + formatDate.format(maxDate) + '</b>'); return ` <div class="break-all body-minus-2 leading-1.2">${tipText}</div> `; }()} </template>
        <div class="break-all body-minus-2 leading-1.2">Estimated Delivery:<b>Jul 28</b> - <b>Aug 07</b></div>
      </spz-render>
      <style>
        .product-info-free__shipping-progress-bar {
          background: linear-gradient(to right, rgba(184, 170, 135, 1), rgba(184, 170, 135, 1));
          transition: width 1.2s ease;
        }
      </style>
      <spz-event target-id="product-info-free-shipping-render" target-api="render" event-name="dj.addToCart" layout="logic" class="i-spzhtml-layout-logic i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="logic"></spz-event>
      <spz-render class="mt-2 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-free-shipping-render" src="/api/cart" items="cart" layout="container" i-spzhtml-layout="container" finish="">
        <template>
          <div> ${function() { const postageFreeAmount = 89; const custom_text = "Buy {amount} more to enjoy FREE Shipping"; const totalPrice = +data.total_price; const diffPrice = postageFreeAmount - totalPrice; const percentDiff = (diffPrice &gt; 0
            ? (totalPrice / postageFreeAmount * 100) : 100) + '%'; let tipText = "Your order is free delivery"; if (diffPrice &gt; 0) { tipText = custom_text.replace('{amount}', `<spz-currency class="inline-block" value="${diffPrice}"
              layout="container"></spz-currency>`); } return ` <div class="product-info-free__shipping relative rounded-sm overflow-hidden">
              <div class="product-info-free__shipping-progress-bar absolute top-0 left-0 h-full w-0" style="width: ${percentDiff};"></div>
              <div class="px-2 py-1 relative z-10 body-minus-2 leading-1.2 font-medium">${tipText}</div>
            </div> `; }()} </div>
        </template>
        <div>
          <div class="product-info-free__shipping relative rounded-sm overflow-hidden">
            <div class="product-info-free__shipping-progress-bar absolute top-0 left-0 h-full w-0" style="width: 0%;"></div>
            <div class="px-2 py-1 relative z-10 body-minus-2 leading-1.2 font-medium">Buy <spz-currency class="inline-block i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" value="89" layout="container"
                i-spzhtml-layout="container">
                <div class="money notranslate">$89.00</div>
              </spz-currency> more to enjoy FREE Shipping</div>
          </div>
        </div>
      </spz-render>
    </div>
  </div>
  <div class="plugin__buy_on_others empty-hidden"></div>
  <input name="product_id" type="hidden" value="913e7e62-7499-4cba-8345-71b013ef6617"><input name="variant_id" type="hidden" value="8bb84595-4772-49e8-a09a-2d6b3371b7ea"><input name="note" type="hidden">
</form>

<form>
  <div class="quick-shop-content rounded-global-small">
    <div class="quick-shop-inner-content">
      <spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options &amp;&amp; product_options.length > 0}"
        @mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
      <button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2  type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
        data-track-source="add_to_cart">
        <span role="content">${statusLan}</span>
        <spz-render id="quick-shop-btn-price" layout="container" template="quick-shop-button-price-template" manual=""></spz-render>
        <div class="loading items-center justify-center absolute inset-0" role="loading" show="">
          <div class="loading-bounce"></div>
        </div>
      </button>
    </div>
  </div>
</form>

<form class="">
  <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 &amp;&amp; product.options.length &amp;&amp; product.options.length > 0) &amp;&amp; data.config.variant_select_visible}"> <ljs-render manual="" layout="container" id="smart_cart_pop_variant_text_${product.id}"
              template="smart_cart_pop_variant_text_template"></ljs-render> <svg id="smart_pop_variant-select-${product.id}" width="12" height="8" class="zb-ml-2" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
              <path
                d="M6.00002 7.06738C6.19244 7.06775 6.38498 6.99453 6.5318 6.84772C6.54504 6.83447 6.55769 6.82086 6.56973 6.8069L11.1251 2.25152C11.418 1.95863 11.418 1.48375 11.1251 1.19086C10.8322 0.897968 10.3573 0.897968 10.0645 1.19086L6.00003 5.25529L1.9356 1.19086C1.64271 0.897968 1.16784 0.897968 0.874943 1.19086C0.58205 1.48375 0.58205 1.95863 0.874943 2.25152L5.43033 6.8069C5.44237 6.82086 5.45502 6.83447 5.46826 6.84772C5.61507 6.99453 5.8076 7.06775 6.00002 7.06738Z"
                fill="#0A1533"></path>
            </svg> </div> <ljs-lightbox layout="nodisplay" disable-unmount="" class="smart_cart_pop_lightbox_pc" id="smart_cart_pop_variant_modal_${product.id}" @close="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);">
            <div id="smart_cart_pop_variant_${product.id}_pc" class="zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
                class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template"
                onclick="event.stopPropagation()" disabled-dj-event="" interference=""> </ljs-variants></div>
          </ljs-lightbox>
        </div>
        <div class="zb-mt-3"> <button product-id="${product.id}" id="smart_cart_pop_atc_btn_${product.id}"
            class="zb-flex zb-items-center zb-justify-center zb-w-full zb-text-white zb-py-[10px] zb-h-9 zb-text-xs zb-font-normal zb-border-none zb-rounded-[4px] smart_cart_pop_atc_btn_bg" type="button" role="addToCart"
            @tap="smart_cart_pop_loading_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_btn_${product.id}.toggleClass(class=zb-pointer-events-none);custom-func.addATCHook(activity_id='${data.id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${product.scm || data.scm}',ssp='${data.ssp}',spm='${data.spmBase}.${productIndex}')">
            <ljs-render layout="container" id="smart_cart_pop_atc_${product.id}" template="smart_cart_pop_atc_template" mamual="" class="notranslate"> </ljs-render>
            <div id="smart_cart_pop_added_${product.id}" class="zb-hidden"><span class="zb-flex zb-justify-center zb-gap-1"><svg width="14" height="15" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
                  <path
                    d="M8 16.5006C3.58171 16.5006 0 12.9183 0 8.5C0 4.08171 3.58171 0.5 8 0.5C12.4183 0.5 16 4.08171 16 8.5C16 12.9183 12.4183 16.5006 8 16.5006ZM8 2.04344C4.21314 2.04344 1.54287 4.71371 1.54287 8.50057C1.54287 12.2874 4.21314 14.9577 8 14.9577C11.7869 14.9577 14.4571 12.2874 14.4571 8.50057C14.4571 4.71371 11.7869 2.04344 8 2.04344ZM7.26057 11.1909L7.12229 11.3286L7.09543 11.3017C7.02286 11.336 6.94286 11.3577 6.85714 11.3577C6.73543 11.3577 6.62857 11.3109 6.536 11.2463L6.52229 11.2594L6.45371 11.1909C6.45314 11.1903 6.45314 11.1903 6.45257 11.1897L4.09771 8.83486L4.90629 8.02686L6.85714 9.97771L11.1629 5.67143L11.9714 6.48L7.26171 11.1897C7.26114 11.1903 7.26114 11.1903 7.26057 11.1909Z"
                    fill="white"></path>
                </svg>Added</span></div>
            <div id="smart_cart_pop_loading_${product.id}" class="zb-hidden">
              <div class="smart_cart_pop_loading"></div>
            </div>
          </button> </div>
      </div>
    </div>
  </div>
  <div id="smart_cart_pop_variant_${product.id}_mobile" class="zb-hidden md:zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
      class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template" onclick="event.stopPropagation()"
      disabled-dj-event="" interference=""> </ljs-variants></div>
</form>

POST //translate.googleapis.com/translate_voting?client=te

<form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text"
    name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form>

Text Content

${(function(){ const get_random_six_digits = () => { return
Math.random().toString().slice(-6) }; const wholesale_enabled = false; const
setting_product_image_display = "natural"; const product_image = data.image;
const secondary_image = data.secondImage; const image_width =
product_image.width; let image_height = product_image.height;
if(setting_product_image_display == '100%'){ image_height = image_width }else
if(setting_product_image_display == '133.33%'){ image_height = image_width *
1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const
has_save_label = true && ((+data.compare_at_price) > (+data.price)); const
is_single_variant = data.variants.length == 1; const min_price_variant_href =
(data.min_price_variant && data.min_price_variant.available) ?
data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max =
data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE =
3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const
image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id
= 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id =
'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' +
get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return `

${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ${
data.off_ratio }% ` : '' }` : "Sold out" }
Mixed Lot


${DATA.TITLE}

${ data.price_min != data.price_max ? `from ` : ` ` } ` })()}

Free Gift on Orders Over US$109

$10 off on orders over $59, $20 off on orders over $99

$30 off on orders over $139, $50 off on orders over $199



Free Gift on Orders Over US$109

$10 off on orders over $59, $20 off on orders over $99




$10 off on orders over $59, $20 off on orders over $99

$30 off on orders over $139, $50 off on orders over $199

Free Gift on Orders Over US$99

Free shipping for orders over $89.00

const marketSlot = document.querySelector(".plugin_c_market"); if(marketSlot) {
marketSlot.remove(); } const SITE = (window.C_SETTINGS ||
window[atob('U0hPUExBWlpB')])?.routes?.root || ''; const MARKET_THEME_SETTINGS =
`${SITE}/api/markets/theme_setting`; const MARKET_COUNTRIES =
`${SITE}/api/markets/countries`; const IP_MATCHING_MARKET =
`${SITE}/api/front/station`; const MARKET_LANGUAGES =
`${SITE}/api/markets/:id/active_languages`; const URL_REDIRECT =
'_market_redirected'; const COOKIE_TIPS_NAME = 'market_no_tips'; const
COOKIE_TIPS_EXPIRES = 1000 * 60 * 60 * 24 * 14; const MARKET_COUNTRY_COOKIE =
'_shoplazza_market_country'; const MARKET_MODAL_LOADED =
'__market_modal_loaded__'; const PROPERTY_SELECTED = 'selected'; const
MARKET_PC_HEADER_TRIGGER = 'market-pc-header-trigger'; const
MARKET_PC_HEADER_COUNTRY_SELECT_TITLE = 'market-pc-header-country-select-title';
const MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE =
'market-pc-header-language-select-title'; const
MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE =
'market-pc-header-language-select-sub-title'; const
MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE =
'market-pc-header-country-select-sub-title'; const MARKET_FLAG = 'market-flag';
const MARKET_SELECT_VALUE = 'market-select-value'; const MARKET_CURRENCY =
'market-currency'; const MARKET_CURRENCY_SYMBOL = 'market-currency-symbol';
const MARKET_SELECT_ITEM = 'market-select-item'; const MARKET_SELECT_ITEM_ID =
'market-select-item-id'; const MARKET_SELECT_LIST = 'market-select-list'; const
MARKET_LANGUAGE_SELECT = 'market-language-select'; const MARKET_COUNTRY_SELECT =
'market-country-select'; const MARKET_MODAL = 'market-modal'; const
MARKET_GATEWAY_REDIRECT_MODAL = 'market-gateway-redirect-modal'; const
MARKET_RESELECT_MODAL = 'market-reselect-modal'; const MARKET_MODAL_FLAG =
'market-modal-flag'; const MARKET_MODAL_COUNTRY_CODE =
'market-modal-country-code'; const MARKET_MODAL_CURRENCY_SYMBOL =
'market-modal-currency-symbol'; const MARKET_MODAL_CLOSE = 'market-modal-close';
const MARKET_MODAL_CONFIRM = 'market-modal-confirm'; const MARKET_MODAL_RESELECT
= 'market-modal-reselect'; const MARKET_MODAL_RESELECT_COUNTRY_SELECT =
'market-modal-reselect-country-select'; const DATA_SECTION_TYPE =
'data-section-type'; const SECTION_TYPE_HEADER = 'header'; const
SECTION_TYPE_FOOTER = 'footer'; class SpzCustomMarket extends SPZ.BaseElement {
constructor(element) { super(element); this.global = null;
this.useCountrySelect_ = false; this.useLanguageSelect_ = false; this.useModal_
= false; this.isSingleSelectMode_ = false; this.blockSectionPosition_ = '';
this.isEditMode = false; this.ipMatchingMarket = null; this.marketCountryList =
[]; this.marketLanguages = []; this.toast = null; } static deferredMount() {
return false; } isLayoutSupported(layout) { return layout ==
SPZCore.Layout.LOGIC; } buildCallback() { console.debug('Geolocation');
this.xhr_ = SPZServices.xhrFor(this.win); const platform =
SPZServices.platformFor(this.win); this.isIOS_ = platform.isIos(); this.action_
= SPZServices.actionServiceForDoc(this.element); this.global =
this.win.C_SETTINGS || this.win[atob('U0hPUExBWlpB')]; this.isEditMode = new
URLSearchParams(this.win.location.search).get('preview_theme_id') && new
URLSearchParams(this.win.location.search).get('oseid'); this.init_(); }
showToast_(content) { if (!this.toast) { this.toast =
self.document.createElement('ljs-toast'); this.toast.setAttribute('layout',
'nodisplay'); this.toast.setAttribute('hidden', '');
this.toast.setAttribute('duration', '2000');
this.element.appendChild(this.toast); }
SPZ.whenApiDefined(this.toast).then((apis) => { apis.showToast(content); }); }
triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win,
`${TAG}.${name}`, data); this.action_.trigger(this.element, name, event); }
findBlockSectionPosition() { let current = this.element; while (current) { const
dataSectionType = current.getAttribute(DATA_SECTION_TYPE); if ( dataSectionType
=== SECTION_TYPE_HEADER || dataSectionType === SECTION_TYPE_FOOTER ) { return
dataSectionType; } current = current.parentElement; } return ''; } async
initSettings_() { await this.getMarketThemeSettings_(); if
(this.useCountrySelect_) { this.element.setAttribute('use-country-select',
true); } if (this.useLanguageSelect_) {
this.element.setAttribute('use-language-select', true); } if (this.useModal_) {
this.element.setAttribute('use-modal', true); } if ( (this.useCountrySelect_ &&
!this.useLanguageSelect_) || (!this.useCountrySelect_ &&
this.useLanguageSelect_) ) { this.isSingleSelectMode_ = true; }
this.blockSectionPosition_ = this.findBlockSectionPosition(); this.isPCLayout_ =
this.win.matchMedia('(min-width: 960px)').matches; }
renderMarketSelectTemplateNode_(clonedTemplate, data) {
this.renderTemplateImg_(clonedTemplate, MARKET_FLAG, { src: data?.flag, width:
'24', height: '24', }); this.renderTemplateElement_( clonedTemplate,
MARKET_SELECT_VALUE, data.value ); this.renderTemplateElement_( clonedTemplate,
MARKET_CURRENCY, data?.currency ); this.renderTemplateElement_( clonedTemplate,
MARKET_CURRENCY_SYMBOL, data?.currencySymbol ); }
bindDropdownOpenClickEvent_(triggerElement, dropdown) { if (!triggerElement)
return; const triggerOpen = () => { SPZ.whenApiDefined(dropdown).then((apis) =>
{ if (!dropdown.hasAttribute('open')) { apis.open(triggerElement); } }); }; if
(this.isIOS_) { triggerElement.addEventListener('touchstart', triggerOpen); }
else { triggerElement.addEventListener('click', triggerOpen); } }
createDropdown_() { const dropdown =
self.document.createElement('ljs-dropdown'); dropdown.setAttribute('layout',
'nodisplay'); if (this.blockSectionPosition_ === 'header') {
dropdown.setAttribute('overlay-style', 'top: 4px;');
dropdown.setAttribute('placement', 'bottomRight'); } else if
(this.blockSectionPosition_ === 'footer') {
dropdown.setAttribute('overlay-style', 'top: -4px;');
dropdown.setAttribute('placement', 'top'); } return dropdown; }
createDropdownIcon_() { const svgElement =
document.createElementNS("http://www.w3.org/2000/svg", "svg");
svgElement.setAttribute("class", "market-rotate-180");
svgElement.setAttribute("width", "16"); svgElement.setAttribute("height", "16");
const path1 = document.createElementNS("http://www.w3.org/2000/svg", "path");
path1.setAttribute("d", "M7.47 5.172a.75.75 0 0 1 1.06 0l4.596 4.596a.75.75 0 1
1-1.06 1.06L7.468 6.232a.75.75 0 0 1 0-1.06Z"); path1.setAttribute("fill",
"currentColor"); const path2 =
document.createElementNS("http://www.w3.org/2000/svg", "path");
path2.setAttribute("d", "M8.533 5.172a.75.75 0 0 1 0 1.06l-4.596 4.596a.75.75 0
1 1-1.061-1.06l4.596-4.596a.75.75 0 0 1 1.06 0Z"); path2.setAttribute("fill",
"currentColor"); svgElement.appendChild(path1); svgElement.appendChild(path2);
return svgElement; } renderDropdownListWithClickEvent_({ triggerElement,
dataList, subTitleRole, listElementWithTemplate, defaultValue, itemHandler,
shouldUpdateSelectedItem = false, }) { const dropdown = this.createDropdown_();
const itemTemplate = SPZCore.Dom.scopedQuerySelector( listElementWithTemplate,
'template' ); const clonedItemTemplate = itemTemplate.cloneNode(true); const
fragment = self.document.createDocumentFragment(); dataList.forEach((data) => {
const tempParentNode = self.document.createElement('div'); const clonedTemplate
= self.document.importNode( clonedItemTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
tempParentNode.firstElementChild.classList.add( 'market-select-item' );
this.renderMarketSelectTemplateNode_(tempParentNode, data); const
selectItemElement = SPZCore.Dom.scopedQuerySelector( tempParentNode,
`[role="${MARKET_SELECT_ITEM}"]` ); if (!selectItemElement) { return; } if
(defaultValue === data.value) { if (shouldUpdateSelectedItem) { const
clonedSelectItemElement = selectItemElement.cloneNode(true);
triggerElement.replaceChild( clonedSelectItemElement,
triggerElement.firstElementChild ); }
selectItemElement.setAttribute(PROPERTY_SELECTED, ''); }
selectItemElement.setAttribute(MARKET_SELECT_ITEM_ID, data.value);
fragment.appendChild(tempParentNode.firstElementChild); }); let value =
defaultValue; listElementWithTemplate.addEventListener( 'click', (e) => { if
(this.isEditMode) { this.showToast_('编辑器下不支持切换国家');
SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); }); return; } let
targetElement = e.target; while (targetElement) { if ( !targetElement ||
targetElement.getAttribute(MARKET_SELECT_ITEM_ID) ) { break; } targetElement =
targetElement.parentNode; } if ( !targetElement ||
!targetElement.hasAttribute(MARKET_SELECT_ITEM_ID) ) { return; } const
selectValue = targetElement.getAttribute(MARKET_SELECT_ITEM_ID); if (value ===
selectValue) { SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); });
return; } const selectedData = dataList.find((c) => c.value === selectValue); if
(shouldUpdateSelectedItem) { const tempParentNode =
self.document.createElement('div'); const clonedTemplate =
self.document.importNode( clonedItemTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
this.renderMarketSelectTemplateNode_(tempParentNode, selectedData);
tempParentNode.firstElementChild.classList.add( 'market-select-item' );
triggerElement.replaceChild( tempParentNode.firstElementChild,
triggerElement.firstElementChild ); } value = selectValue;
itemHandler?.(selectedData); SPZ.whenApiDefined(dropdown).then((apis) => {
apis.close(); }); }, false ); listElementWithTemplate.removeChild(itemTemplate);
listElementWithTemplate.appendChild(fragment);
listElementWithTemplate.classList.add('market-select-list');
dropdown.appendChild(listElementWithTemplate); if (subTitleRole) {
this.renderSelectTitle_(dropdown, subTitleRole); } return dropdown; }
createSelect_({ parent, defaultValue, dataList, listElementWithTemplate,
itemHandler, titleRole, }) { const triggerElement =
self.document.createElement('div');
triggerElement.classList.add('market-select'); const displayElement =
self.document.createElement('div'); triggerElement.appendChild(displayElement);
triggerElement.appendChild(this.createDropdownIcon_()); const dropdown =
this.renderDropdownListWithClickEvent_({ triggerElement, dataList,
listElementWithTemplate, defaultValue, itemHandler, shouldUpdateSelectedItem:
true, }); this.bindDropdownOpenClickEvent_(triggerElement, dropdown); const
dropdownContainer = self.document.createElement('div');
dropdownContainer.appendChild(triggerElement);
dropdownContainer.appendChild(dropdown);
dropdownContainer.classList.add('market-select-container');
this.renderSelectTitle_(dropdownContainer, titleRole);
parent.appendChild(dropdownContainer); } getListElementWithTemplate_(role) {
const template = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${role}"]` ); if (template) { const clonedTemplate =
template.cloneNode(true); const tempParent = self.document.createElement("div");
tempParent.appendChild(clonedTemplate.content); const listElementWithTemplate =
SPZCore.Dom.scopedQuerySelector( tempParent, `[role="${MARKET_SELECT_LIST}"]` );
return listElementWithTemplate; } return null; } renderSelectTitle_(parent,
role) { if (!parent || !role) { return; } const template =
SPZCore.Dom.scopedQuerySelector( this.element, `[role="${role}"]` ); const
content = self.document.importNode(template.content, true);
parent.insertBefore(content, parent.firstElementChild);
parent.firstElementChild.classList.add( role.includes('sub') ?
'market-pc-header-select-sub-title' : 'market-pc-header-select-title' ); }
initSelect_(rootNode, options) { const parent = rootNode || this.element; if
(this.useCountrySelect_) { this.createSelect_({ parent, titleRole:
options?.shouldRenderSelectTitle ? MARKET_PC_HEADER_COUNTRY_SELECT_TITLE :
undefined, defaultValue: this.getDefaultCountryValue_(), dataList:
this.marketCountryList.map(this.mapCountryRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
this.handleCountrySelectChange_.bind(this), }); } if (this.useLanguageSelect_) {
this.createSelect_({ parent, titleRole: options?.shouldRenderSelectTitle ?
MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE : undefined, defaultValue:
this.getDefaultLanguageValue_(), dataList:
this.marketLanguages.map(this.mapLanguageRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_LANGUAGE_SELECT ), itemHandler:
this.handleLanguageSelectChange_.bind(this), }); } }
initPcHeaderTriggerElement() { const headerTriggerElementTemplate =
SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${MARKET_PC_HEADER_TRIGGER}"]` ); const headerTriggerElement =
self.document.importNode( headerTriggerElementTemplate.content, true ); const
parentDivElement = self.document.createElement('div');
parentDivElement.setAttribute('role', MARKET_PC_HEADER_TRIGGER);
parentDivElement.appendChild(headerTriggerElement);
this.element.removeChild(headerTriggerElementTemplate); return parentDivElement;
} initPanelWithSelect_() { const triggerElement =
this.initPcHeaderTriggerElement(); const dropdown = this.createDropdown_();
const panelElement = self.document.createElement('div');
panelElement.classList.add('market-panel'); this.initSelect_(panelElement,
{shouldRenderSelectTitle: true}); dropdown.appendChild(panelElement);
this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
this.element.appendChild(triggerElement); this.element.insertBefore(dropdown,
triggerElement); } initSingleSelectDropdown_() { const triggerElement =
this.initPcHeaderTriggerElement(); let dropdown; if (this.useCountrySelect_) {
dropdown = this.renderDropdownListWithClickEvent_({ triggerElement,
subTitleRole: MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE, dataList:
this.marketCountryList.map(this.mapCountryRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), defaultValue:
this.getDefaultCountryValue_(), itemHandler:
this.handleCountrySelectChange_.bind(this), }); } else if
(this.useLanguageSelect_) { dropdown = this.renderDropdownListWithClickEvent_({
triggerElement, subTitleRole: MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE,
dataList: this.marketLanguages.map(this.mapLanguageRenderData_),
listElementWithTemplate: this.getListElementWithTemplate_(
MARKET_LANGUAGE_SELECT ), defaultValue: this.getDefaultLanguageValue_(),
itemHandler: this.handleLanguageSelectChange_.bind(this), }); } if (dropdown) {
this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
this.element.appendChild(triggerElement); this.element.appendChild(dropdown); }
} initEntry_() { if (this.blockSectionPosition_ === SECTION_TYPE_HEADER) { if
(this.isSingleSelectMode_) { this.initSingleSelectDropdown_(); } else if
(this.useCountrySelect_ && this.useLanguageSelect_) {
this.initPanelWithSelect_(); } } this.initSelect_(this.element); } async
initData_() { const promises = []; if (this.useCountrySelect_ || this.useModal_)
{ promises.push(this.getCountryList_(), this.getIpMatchingMarket_()); } if
(this.useLanguageSelect_) {
promises.push(this.getMarketLanguages_(this.global.market.market_id)); } return
Promise.all(promises).then((results) => { const ipMatchingMarket =
results.find((result) => result.hasOwnProperty('matching_station') ); const
marketCountryList = results.find((result) => result.hasOwnProperty('data') ); if
(ipMatchingMarket && marketCountryList) { this.ipMatchingMarket =
ipMatchingMarket?.matching_station?.find?.( (item) => item.type ===
'multiple_market' ) || { img: marketCountryList.length ?
marketCountryList?.[0]?.detail && marketCountryList[0].detail?.flag : '', }; }
}); } initModal_() { if ( this.isEditMode || !this.ipMatchingMarket?.market_id
|| !this.useModal_ || this.hasCookie_(COOKIE_TIPS_NAME) ||
this.win[MARKET_MODAL_LOADED] ) { return; } this.win[MARKET_MODAL_LOADED] =
true; const redirectParam = new URLSearchParams(this.win.location.search).get(
URL_REDIRECT ); if (redirectParam) {
this.initModalEntry_(MARKET_GATEWAY_REDIRECT_MODAL); } else if (
this.ipMatchingMarket.market_id !== this.global?.market?.market_id ) {
this.initModalEntry_(MARKET_MODAL); } } async init_() { await
this.initSettings_(); await this.initData_(); this.initEntry_();
this.initModal_(); } getDefaultCountryValue_() { return
this.getCookie_(MARKET_COUNTRY_COOKIE) ||
this.marketCountryList[0]?.country_code; } mapCountryRenderData_(country) {
return { flag: country?.detail?.flag || '', value: country?.country_code,
currency: country?.currency, currencySymbol: country?.symbol?.val || '', url:
country?.url, }; } handleCountrySelectChange_(selectedData) {
this.setCookie_(MARKET_COUNTRY_COOKIE, selectedData.value);
this.handleChangeURL_(selectedData.url); } getDefaultLanguageValue_() { return
this.marketLanguages?.find?.( (lang) => lang.code ===
this.global?.market?.market_lang )?.name; } mapLanguageRenderData_(language) {
return { value: language.name, url: language.url, }; }
handleLanguageSelectChange_(selectedData) {
this.handleChangeURL_(selectedData.url); } renderTemplateElement_(parent, role,
value) { const elements = SPZCore.Dom.scopedQuerySelectorAll( parent,
`[role="${role}"]` ); elements.forEach((element) => { if (element && value) {
element.innerHTML = value; } }); } renderTemplateImg_(parent, role, options) {
const flagElement = SPZCore.Dom.scopedQuerySelector( parent, `[role="${role}"]`
); if (flagElement && options?.src && options?.height && options?.width) { const
spzImg = self.document.createElement('ljs-img'); spzImg.setAttribute('src',
options.src); spzImg.setAttribute('layout', 'responsive');
spzImg.setAttribute('width', options.width); spzImg.setAttribute('height',
options.height); spzImg.setAttribute( 'style', `width: ${options.width}px;
height: ${options.height}px;` ); flagElement.appendChild(spzImg); } }
handleChangeURL_(url) { if (!!url) { let {origin, pathname, search} =
this.win.location; pathname = pathname.replace(SITE, url != '/' ? url : '');
this.win.location.href = `${origin}${pathname}${search}`; } else {
this.win.location.reload(true); } } initModalEntry_(role) { const
marketModalTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${role}"]` ); if (marketModalTemplate) { const tempParentNode =
self.document.createElement('div'); const clonedTemplate =
self.document.importNode( marketModalTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
this.renderTemplateImg_(tempParentNode, MARKET_MODAL_FLAG, { src:
this.ipMatchingMarket?.img, width: '80', height: '80', });
this.renderTemplateElement_( tempParentNode, MARKET_MODAL_COUNTRY_CODE,
this.ipMatchingMarket?.name ); this.renderTemplateElement_( tempParentNode,
MARKET_MODAL_CURRENCY_SYMBOL, this.ipMatchingMarket?.currency_with_symbol );
const lightbox = self.document.createElement('ljs-lightbox');
lightbox.setAttribute('layout', 'nodisplay');
lightbox.appendChild(tempParentNode.firstElementChild);
self.document.body.appendChild(lightbox);
SPZ.whenApiDefined(lightbox).then((apis) => {
SPZCore.Dom.scopedQuerySelectorAll( lightbox, `[role="${MARKET_MODAL_CLOSE}"]`
).forEach((ele) => { ele.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); apis.close(); }); });
const marketModalConfirmElement = SPZCore.Dom.scopedQuerySelector( lightbox,
`[role="${MARKET_MODAL_CONFIRM}"]` ); if (marketModalConfirmElement &&
this.ipMatchingMarket?.url) {
marketModalConfirmElement.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES);
this.setCookie_(MARKET_COUNTRY_COOKIE, this.ipMatchingMarket?.name);
this.handleChangeURL_(this.ipMatchingMarket?.url); }); } const
marketModalReselectElement = SPZCore.Dom.scopedQuerySelector( lightbox,
`[role="${MARKET_MODAL_RESELECT}"]` ); if (marketModalReselectElement) {
marketModalReselectElement.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); const
marketReselectTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${MARKET_RESELECT_MODAL}"]` ); if (marketReselectTemplate &&
lightbox.firstElementChild) { const clonedTemplate = self.document.importNode(
marketReselectTemplate.content, true ); const selectParent =
SPZCore.Dom.scopedQuerySelector( clonedTemplate,
`[role="${MARKET_MODAL_RESELECT_COUNTRY_SELECT}"]` ); if (selectParent) {
this.createSelect_({ parent: selectParent, defaultValue:
this.getDefaultCountryValue_(), dataList: this.marketCountryList.map(
this.mapCountryRenderData_ ), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
this.handleCountrySelectChange_.bind(this), }); }
lightbox.replaceChild(clonedTemplate, lightbox.firstElementChild);
SPZCore.Dom.scopedQuerySelectorAll( lightbox, `[role="${MARKET_MODAL_CLOSE}"]`
).forEach((ele) => { ele.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); apis.close(); }); });
} }); } apis.open(); }); } } async getMarketThemeSettings_() { return
this.xhr_.fetchJson(MARKET_THEME_SETTINGS).then((res) => {
this.useCountrySelect_ = !!res.country_selector_enabled; this.useLanguageSelect_
= !!res.language_selector_enabled && this.global?.market?.market_id;
this.useModal_ = !!res.redirect_pop_enabled; return res; }); } async
getCountryList_() { return this.xhr_.fetchJson(MARKET_COUNTRIES).then((res) => {
this.marketCountryList = res.data.length ? res.data : []; return res; }); }
async getIpMatchingMarket_() { return this.xhr_.fetchJson(IP_MATCHING_MARKET, {
method: 'POST', body: { stations: [], }, }); } async
getMarketLanguages_(marketId) { return this.xhr_
.fetchJson(MARKET_LANGUAGES.replace(/:id/gim, marketId)) .then((res) => {
this.marketLanguages = res?.languages?.length ? res.languages : []; return res;
}); } hasCookie_(name) { const m = self.document.cookie .split(';')
.filter((pair) => pair.trim().startsWith(name + '=')); return !!(m && m[0]); }
getCookie_(name) { const m = self.document.cookie .split(';') .filter((pair) =>
pair.trim().startsWith(name + '=')); return m && m[0] ? m[0].split('=')[1] :
null; } setCookie_(name, value, expires) { const expiresDate = new
Date(Date.now() + expires).toGMTString(); self.document.cookie =
`${name}=${encodeURIComponent( value )};expires=${expiresDate};path=/`; } }
SPZ.defineElement('spz-custom-market', SpzCustomMarket);
Region/Country
Region/Country

(


)
Language
Language

Switch to based on your location
 * Purchase with
 * Get shipping options for

Cancel
Switch
Set to based on your location
 * Purchase with
 * Get shipping options for

Continue Shopping
Modify Country/Region
Modify Country/Region

Continue Shopping
Cancel

Region/Country
US
(
USD
$
)
AD
(
EUR
€
)
AT
(
EUR
€
)
BE
(
EUR
€
)
CY
(
EUR
€
)
DE
(
EUR
€
)
EE
(
EUR
€
)
ES
(
EUR
€
)
FI
(
EUR
€
)
FR
(
EUR
€
)
GR
(
EUR
€
)
IE
(
EUR
€
)
IT
(
EUR
€
)
LT
(
EUR
€
)
LU
(
EUR
€
)
LV
(
EUR
€
)
MC
(
EUR
€
)
ME
(
EUR
€
)
MT
(
EUR
€
)
NL
(
EUR
€
)
PT
(
EUR
€
)
SI
(
EUR
€
)
SK
(
EUR
€
)
SM
(
EUR
€
)
VA
(
EUR
€
)
XK
(
EUR
€
)
JP
(
JPY
¥
)
GB
(
GBP
£
)
TH
(
THB
฿
)
NZ
(
NZD
NZ$
)
AU
(
AUD
A$
)
CA
(
CAD
CA$
)
CH
(
CHF
CHF
)
DK
(
DKK
kr
)
SG
(
SGD
S$
)
US
(
USD
$
)
US
(
USD
$
)
AD
(
EUR
€
)
AT
(
EUR
€
)
BE
(
EUR
€
)
CY
(
EUR
€
)
DE
(
EUR
€
)
EE
(
EUR
€
)
ES
(
EUR
€
)
FI
(
EUR
€
)
FR
(
EUR
€
)
GR
(
EUR
€
)
IE
(
EUR
€
)
IT
(
EUR
€
)
LT
(
EUR
€
)
LU
(
EUR
€
)
LV
(
EUR
€
)
MC
(
EUR
€
)
ME
(
EUR
€
)
MT
(
EUR
€
)
NL
(
EUR
€
)
PT
(
EUR
€
)
SI
(
EUR
€
)
SK
(
EUR
€
)
SM
(
EUR
€
)
VA
(
EUR
€
)
XK
(
EUR
€
)
JP
(
JPY
¥
)
GB
(
GBP
£
)
TH
(
THB
฿
)
NZ
(
NZD
NZ$
)
AU
(
AUD
A$
)
CA
(
CAD
CA$
)
CH
(
CHF
CHF
)
DK
(
DKK
kr
)
SG
(
SGD
S$
)

Powered by Translate
English,Français,Deutsch,Italiano,Español,Português,dansk,日本語,ไทย

 * Log in
 * Create an account

${data.data && data.data.count}

 * SHOP ALL
    * Tops Short Sleeve Shirts Long Sleeve Shirts Hoodies & Sweatshirts Polo
      Shirts👕 V-Neck Suit Vest/Tuxedo Waistcoat And Tie 100% Cotton Tees Long
      Sleeved T-Shirt Shirt with Breast Pocket
    * Bottoms Men's Short Sets Shorts
    * Accessories Hats Scarf🧣 Sunglasses Belts & Suspenders Shoes
    * Chic Matching Set
    * Dresses 👗

 * HOT SALE
 * HOLIDAY SHIRTS🎉
   * Patriots' Day Shirts
   * Cute Costume Shirts 🤠
   * LGBT Pride Month 🌈
   * Columbus Day ☠️
   * Hippie Festival Shirts 🐙
   * Halloween's Day Shirts 🎃
   * Thanksgiving Day Tops 🦃
   * Christmas Day Shirts 🎅
   * New Year Shirts 🎉
   * Mardi Gras Shirts 🤡
   * Valentine's Day Shirts 💕
   * St. Patrick's Day Shirts ☘
   * Easter Day Shirts 🐇
   * Cinco De Mayo 💃
   * Happy Father's Day🎁
 * NEW ARRIVALS
    * SHOP BY CATRGORY New in Short Sleeve Shirts New in Hawaiian Shirts New in
      Polos New in Shorts

 * Short Sleeve Shirts
    * Shop By Category Short Sleeve Shirts Shirt with Breast Pocket Tees Polos
      Tuxedo Waistcoat And Tie
    * Shop By Features Funny Holiday 70's Style 🎵 50‘s Style🔥 Ukiyo-e 🌊 Cat
      😸 Car 🏁🏎 Music 🎸 Flag Resort🏖️ Beauties Print Costume Shirts🦸‍♂ Mid
      Century Style Oriental Culture Inspired 🏮 Hawaiian Shirts 🏄

 * LONG SLEEVE TOPS
   * Long Sleeve Shirts
   * Hoodies & Sweatshirts
   * Long Sleeve Polos
   * Long Sleeve T-Shirts
 * BOTTOMS & SETS
   * Summer Chic Set
   * Fashion Short Sets
   * Shorts
 * ⚡CLEARANCE
 * More links
   ${(function(){ const formatLinks = (links) => { return links.map(link => {
   link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr =
   link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ?
   `href="${link.url}"` : ''; if(link.children && link.children.length){
   link.children = formatLinks(link.children); } return link; }) }; const tags =
   "{}"; let linkList = [ { id: 63889891, title: "SHOP ALL", url:
   "\/collections\/all-new", target: "", levels: 2, product0: { id: (null) },
   children: [ { title: "Tops", url: "\/collections\/tops-new", target: "",
   levels: 1, children: [ { title: "Short Sleeve Shirts", url:
   "\/collections\/short-sleeve-shirts-new", target: "", levels: 0, }, { title:
   "Long Sleeve Shirts", url: "\/collections\/long-sleeve-shirts", target: "",
   levels: 0, }, { title: "Hoodies & Sweatshirts", url:
   "\/collections\/hoodies-sweatshirts", target: "", levels: 0, }, { title:
   "Polo Shirts\ud83d\udc55", url: "\/collections\/polo-shirts", target: "",
   levels: 0, }, { title: "V-Neck Suit Vest\/Tuxedo Waistcoat And Tie", url:
   "\/collections\/v-neck-suit-vest-tuxedo-waistcoat-and-tie", target: "",
   levels: 0, }, { title: "100% Cotton Tees", url:
   "\/collections\/new-in-100-cotton-tees", target: "", levels: 0, }, { title:
   "Long Sleeved T-Shirt", url: "\/collections\/long-sleeved-t-shirt", target:
   "", levels: 0, }, { title: "Shirt with Breast Pocket", url:
   "\/collections\/shirt-with-breast-pocket", target: "", levels: 0, }, ] }, {
   title: "Bottoms", url: "\/collections\/bottoms", target: "", levels: 1,
   children: [ { title: "Men's Short Sets", url: "\/collections\/short-sets",
   target: "", levels: 0, }, { title: "Shorts", url:
   "\/collections\/shorts-new", target: "", levels: 0, }, ] }, { title:
   "Accessories", url: "\/collections\/accessories", target: "", levels: 1,
   children: [ { title: "Hats", url: "\/collections\/hats", target: "", levels:
   0, }, { title: "Scarf\ud83e\udde3", url: "\/collections\/scarf", target: "",
   levels: 0, }, { title: "Sunglasses", url: "\/collections\/sunglasses",
   target: "", levels: 0, }, { title: "Belts & Suspenders", url:
   "\/collections\/belts-suspenders", target: "", levels: 0, }, { title:
   "Shoes", url: "\/collections\/shoes", target: "", levels: 0, }, ] }, { title:
   "Chic Matching Set", url: "\/collections\/two-piece-set", target: "", levels:
   0, children: [ ] }, { title: "Dresses \ud83d\udc57", url:
   "\/collections\/womens-dresses", target: "", levels: 0, children: [ ] }, ] },
   { id: 63889933, title: "HOT SALE", url: "\/collections\/hot-sale-new",
   target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id:
   63889935, title: "HOLIDAY SHIRTS\ud83c\udf89", url:
   "\/collections\/holidays", target: "", levels: 1, product0: { id: (null) },
   children: [ { title: "Patriots' Day Shirts", url: "\/collections\/nation",
   target: "", levels: 0, children: [ ] }, { title: "Cute Costume Shirts
   \ud83e\udd20", url: "\/collections\/cartoon-costume-shirts-new", target: "",
   levels: 0, children: [ ] }, { title: "LGBT Pride Month \ud83c\udf08", url:
   "\/collections\/rainbow-series-new", target: "", levels: 0, children: [ ] },
   { title: "Columbus Day \u2620\ufe0f", url: "\/collections\/columbus-day",
   target: "", levels: 0, children: [ ] }, { title: "Hippie Festival Shirts
   \ud83d\udc19", url: "\/collections\/hippie-festival", target: "", levels: 0,
   children: [ ] }, { title: "Halloween's Day Shirts \ud83c\udf83", url:
   "\/collections\/halloween-day-shirts", target: "", levels: 0, children: [ ]
   }, { title: "Thanksgiving Day Tops \ud83e\udd83", url:
   "\/collections\/thanksgiving-tops", target: "", levels: 0, children: [ ] }, {
   title: "Christmas Day Shirts \ud83c\udf85", url: "\/collections\/christmas",
   target: "", levels: 0, children: [ ] }, { title: "New Year Shirts
   \ud83c\udf89", url: "\/collections\/new-year-shirts", target: "", levels: 0,
   children: [ ] }, { title: "Mardi Gras Shirts \ud83e\udd21", url:
   "\/collections\/mardi-gras-shirts-1", target: "", levels: 0, children: [ ] },
   { title: "Valentine's Day Shirts \ud83d\udc95", url:
   "\/collections\/valentines-day-shirts", target: "", levels: 0, children: [ ]
   }, { title: "St. Patrick's Day Shirts \u2618", url:
   "\/collections\/st-patricks-day", target: "", levels: 0, children: [ ] }, {
   title: "Easter Day Shirts \ud83d\udc07", url: "\/collections\/easter-series",
   target: "", levels: 0, children: [ ] }, { title: "Cinco De Mayo
   \ud83d\udc83", url: "\/collections\/cinco-de-mayo", target: "", levels: 0,
   children: [ ] }, { title: "Happy Father's Day\ud83c\udf81", url:
   "\/collections\/happy-fathers-day", target: "", levels: 0, children: [ ] }, ]
   }, { id: 63889967, title: "NEW ARRIVALS", url: "\/collections\/new-arrivals",
   target: "", levels: 2, product0: { id: (null) }, children: [ { title: "SHOP
   BY CATRGORY", url: "", target: "", levels: 1, children: [ { title: "New in
   Short Sleeve Shirts", url: "\/collections\/new-in-short-sleeve-shirts",
   target: "", levels: 0, }, { title: "New in Hawaiian Shirts", url:
   "\/collections\/new-in-hawaiian-shirts", target: "", levels: 0, }, { title:
   "New in Polos", url: "\/collections\/new-in-polos", target: "", levels: 0, },
   { title: "New in Shorts", url: "\/collections\/new-in-shorts", target: "",
   levels: 0, }, ] }, ] }, { id: 63889991, title: "Short Sleeve Shirts", url:
   "\/collections\/short-sleeve-shirts-new", target: "", levels: 2, product0: {
   id: (null) }, children: [ { title: "Shop By Category", url: "", target: "",
   levels: 1, children: [ { title: "Short Sleeve Shirts", url:
   "\/collections\/short-sleeve-shirts-new", target: "_blank", levels: 0, }, {
   title: "Shirt with Breast Pocket", url:
   "\/collections\/shirts-with-breast-pocket-new", target: "", levels: 0, }, {
   title: "Tees", url: "\/collections\/tees", target: "", levels: 0, }, { title:
   "Polos", url: "\/collections\/polos-new", target: "", levels: 0, }, { title:
   "Tuxedo Waistcoat And Tie", url:
   "\/collections\/v-neck-suit-vest-tuxedo-waistcoat-and-tie", target: "",
   levels: 0, }, ] }, { title: "Shop By Features", url: "", target: "", levels:
   1, children: [ { title: "Funny Holiday ", url: "\/collections\/holidays",
   target: "", levels: 0, }, { title: "70's Style \ud83c\udfb5", url:
   "\/collections\/70s-style-shirts-new", target: "", levels: 0, }, { title:
   "50\u2018s Style\ud83d\udd25", url: "\/collections\/retro-style-shirts-new",
   target: "", levels: 0, }, { title: "Ukiyo-e \ud83c\udf0a", url:
   "\/collections\/art-style-ukiyo-e-printed-new", target: "", levels: 0, }, {
   title: "Cat \ud83d\ude38", url: "\/collections\/cat-series", target: "",
   levels: 0, }, { title: "Car \ud83c\udfc1\ud83c\udfce", url:
   "\/collections\/cars", target: "", levels: 0, }, { title: "Music
   \ud83c\udfb8", url: "\/collections\/musical-style", target: "", levels: 0, },
   { title: "Flag ", url: "\/collections\/nation", target: "", levels: 0, }, {
   title: "Resort\ud83c\udfd6\ufe0f", url: "\/collections\/resort-shirts-new",
   target: "", levels: 0, }, { title: "Beauties Print", url:
   "\/collections\/beauties-print", target: "", levels: 0, }, { title: "Costume
   Shirts\ud83e\uddb8\u200d\u2642", url:
   "\/collections\/cartoon-costume-shirts-new", target: "", levels: 0, }, {
   title: "Mid Century Style", url: "\/collections\/mid-century-style", target:
   "", levels: 0, }, { title: "Oriental Culture Inspired \ud83c\udfee", url:
   "\/collections\/mysterious-oriental", target: "", levels: 0, }, { title:
   "Hawaiian Shirts \ud83c\udfc4", url: "\/collections\/hawaiian-style", target:
   "", levels: 0, }, ] }, ] }, { id: 63890063, title: "LONG SLEEVE TOPS", url:
   "\/collections\/long-sleeve", target: "", levels: 1, product0: { id: (null)
   }, children: [ { title: "Long Sleeve Shirts", url:
   "\/collections\/long-sleeve-shirts", target: "", levels: 0, children: [ ] },
   { title: "Hoodies & Sweatshirts", url: "\/collections\/hoodies-sweatshirts",
   target: "", levels: 0, children: [ ] }, { title: "Long Sleeve Polos", url:
   "\/collections\/long-sleeve-polos", target: "", levels: 0, children: [ ] }, {
   title: "Long Sleeve T-Shirts", url: "\/collections\/long-sleeved-t-shirt",
   target: "", levels: 0, children: [ ] }, ] }, { id: 63890073, title: "BOTTOMS
   & SETS", url: "\/collections\/bottoms", target: "", levels: 1, product0: {
   id: (null) }, children: [ { title: "Summer Chic Set", url:
   "\/collections\/two-piece-set-new", target: "", levels: 0, children: [ ] }, {
   title: "Fashion Short Sets", url: "\/collections\/short-sets", target: "",
   levels: 0, children: [ ] }, { title: "Shorts", url:
   "\/collections\/shorts-new", target: "", levels: 0, children: [ ] }, ] }, {
   id: 63890081, title: "\u26a1CLEARANCE", url:
   "\/collections\/on-sale-items-1", target: "", levels: 0, product0: { id:
   (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList);
   const hasChild = linkList.some(link => !!(link.children &&
   link.children.length || link.product0.id)); return `
    * ${link.title} ${link.tag.label}
   
    * ${second_link.title} ${second_link.tag.label} ${third_links.title}
      ${third_links.tag.label}
   
   
    * ${link.title} ${link.tag.label}
   
   ` })()}

 * SHOP ALL
    * Tops Short Sleeve Shirts Long Sleeve Shirts Hoodies & Sweatshirts Polo
      Shirts👕 V-Neck Suit Vest/Tuxedo Waistcoat And Tie 100% Cotton Tees Long
      Sleeved T-Shirt Shirt with Breast Pocket
    * Bottoms Men's Short Sets Shorts
    * Accessories Hats Scarf🧣 Sunglasses Belts & Suspenders Shoes
    * Chic Matching Set
    * Dresses 👗

 * HOT SALE
 * HOLIDAY SHIRTS🎉
   * Patriots' Day Shirts
   * Cute Costume Shirts 🤠
   * LGBT Pride Month 🌈
   * Columbus Day ☠️
   * Hippie Festival Shirts 🐙
   * Halloween's Day Shirts 🎃
   * Thanksgiving Day Tops 🦃
   * Christmas Day Shirts 🎅
   * New Year Shirts 🎉
   * Mardi Gras Shirts 🤡
   * Valentine's Day Shirts 💕
   * St. Patrick's Day Shirts ☘
   * Easter Day Shirts 🐇
   * Cinco De Mayo 💃
   * Happy Father's Day🎁
 * NEW ARRIVALS
    * SHOP BY CATRGORY New in Short Sleeve Shirts New in Hawaiian Shirts New in
      Polos New in Shorts

 * Short Sleeve Shirts
    * Shop By Category Short Sleeve Shirts Shirt with Breast Pocket Tees Polos
      Tuxedo Waistcoat And Tie
    * Shop By Features Funny Holiday 70's Style 🎵 50‘s Style🔥 Ukiyo-e 🌊 Cat
      😸 Car 🏁🏎 Music 🎸 Flag Resort🏖️ Beauties Print Costume Shirts🦸‍♂ Mid
      Century Style Oriental Culture Inspired 🏮 Hawaiian Shirts 🏄

 * LONG SLEEVE TOPS
   * Long Sleeve Shirts
   * Hoodies & Sweatshirts
   * Long Sleeve Polos
   * Long Sleeve T-Shirts
 * BOTTOMS & SETS
   * Summer Chic Set
   * Fashion Short Sets
   * Shorts
 * ⚡CLEARANCE
 * More links
   ${(function(){ const formatLinks = (links) => { return links.map(link => {
   link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr =
   link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ?
   `href="${link.url}"` : ''; if(link.children && link.children.length){
   link.children = formatLinks(link.children); } return link; }) }; const tags =
   "{}"; let linkList = [ { id: 63889891, title: "SHOP ALL", url:
   "\/collections\/all-new", target: "", levels: 2, product0: { id: (null) },
   children: [ { title: "Tops", url: "\/collections\/tops-new", target: "",
   levels: 1, children: [ { title: "Short Sleeve Shirts", url:
   "\/collections\/short-sleeve-shirts-new", target: "", levels: 0, }, { title:
   "Long Sleeve Shirts", url: "\/collections\/long-sleeve-shirts", target: "",
   levels: 0, }, { title: "Hoodies & Sweatshirts", url:
   "\/collections\/hoodies-sweatshirts", target: "", levels: 0, }, { title:
   "Polo Shirts\ud83d\udc55", url: "\/collections\/polo-shirts", target: "",
   levels: 0, }, { title: "V-Neck Suit Vest\/Tuxedo Waistcoat And Tie", url:
   "\/collections\/v-neck-suit-vest-tuxedo-waistcoat-and-tie", target: "",
   levels: 0, }, { title: "100% Cotton Tees", url:
   "\/collections\/new-in-100-cotton-tees", target: "", levels: 0, }, { title:
   "Long Sleeved T-Shirt", url: "\/collections\/long-sleeved-t-shirt", target:
   "", levels: 0, }, { title: "Shirt with Breast Pocket", url:
   "\/collections\/shirt-with-breast-pocket", target: "", levels: 0, }, ] }, {
   title: "Bottoms", url: "\/collections\/bottoms", target: "", levels: 1,
   children: [ { title: "Men's Short Sets", url: "\/collections\/short-sets",
   target: "", levels: 0, }, { title: "Shorts", url:
   "\/collections\/shorts-new", target: "", levels: 0, }, ] }, { title:
   "Accessories", url: "\/collections\/accessories", target: "", levels: 1,
   children: [ { title: "Hats", url: "\/collections\/hats", target: "", levels:
   0, }, { title: "Scarf\ud83e\udde3", url: "\/collections\/scarf", target: "",
   levels: 0, }, { title: "Sunglasses", url: "\/collections\/sunglasses",
   target: "", levels: 0, }, { title: "Belts & Suspenders", url:
   "\/collections\/belts-suspenders", target: "", levels: 0, }, { title:
   "Shoes", url: "\/collections\/shoes", target: "", levels: 0, }, ] }, { title:
   "Chic Matching Set", url: "\/collections\/two-piece-set", target: "", levels:
   0, children: [ ] }, { title: "Dresses \ud83d\udc57", url:
   "\/collections\/womens-dresses", target: "", levels: 0, children: [ ] }, ] },
   { id: 63889933, title: "HOT SALE", url: "\/collections\/hot-sale-new",
   target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id:
   63889935, title: "HOLIDAY SHIRTS\ud83c\udf89", url:
   "\/collections\/holidays", target: "", levels: 1, product0: { id: (null) },
   children: [ { title: "Patriots' Day Shirts", url: "\/collections\/nation",
   target: "", levels: 0, children: [ ] }, { title: "Cute Costume Shirts
   \ud83e\udd20", url: "\/collections\/cartoon-costume-shirts-new", target: "",
   levels: 0, children: [ ] }, { title: "LGBT Pride Month \ud83c\udf08", url:
   "\/collections\/rainbow-series-new", target: "", levels: 0, children: [ ] },
   { title: "Columbus Day \u2620\ufe0f", url: "\/collections\/columbus-day",
   target: "", levels: 0, children: [ ] }, { title: "Hippie Festival Shirts
   \ud83d\udc19", url: "\/collections\/hippie-festival", target: "", levels: 0,
   children: [ ] }, { title: "Halloween's Day Shirts \ud83c\udf83", url:
   "\/collections\/halloween-day-shirts", target: "", levels: 0, children: [ ]
   }, { title: "Thanksgiving Day Tops \ud83e\udd83", url:
   "\/collections\/thanksgiving-tops", target: "", levels: 0, children: [ ] }, {
   title: "Christmas Day Shirts \ud83c\udf85", url: "\/collections\/christmas",
   target: "", levels: 0, children: [ ] }, { title: "New Year Shirts
   \ud83c\udf89", url: "\/collections\/new-year-shirts", target: "", levels: 0,
   children: [ ] }, { title: "Mardi Gras Shirts \ud83e\udd21", url:
   "\/collections\/mardi-gras-shirts-1", target: "", levels: 0, children: [ ] },
   { title: "Valentine's Day Shirts \ud83d\udc95", url:
   "\/collections\/valentines-day-shirts", target: "", levels: 0, children: [ ]
   }, { title: "St. Patrick's Day Shirts \u2618", url:
   "\/collections\/st-patricks-day", target: "", levels: 0, children: [ ] }, {
   title: "Easter Day Shirts \ud83d\udc07", url: "\/collections\/easter-series",
   target: "", levels: 0, children: [ ] }, { title: "Cinco De Mayo
   \ud83d\udc83", url: "\/collections\/cinco-de-mayo", target: "", levels: 0,
   children: [ ] }, { title: "Happy Father's Day\ud83c\udf81", url:
   "\/collections\/happy-fathers-day", target: "", levels: 0, children: [ ] }, ]
   }, { id: 63889967, title: "NEW ARRIVALS", url: "\/collections\/new-arrivals",
   target: "", levels: 2, product0: { id: (null) }, children: [ { title: "SHOP
   BY CATRGORY", url: "", target: "", levels: 1, children: [ { title: "New in
   Short Sleeve Shirts", url: "\/collections\/new-in-short-sleeve-shirts",
   target: "", levels: 0, }, { title: "New in Hawaiian Shirts", url:
   "\/collections\/new-in-hawaiian-shirts", target: "", levels: 0, }, { title:
   "New in Polos", url: "\/collections\/new-in-polos", target: "", levels: 0, },
   { title: "New in Shorts", url: "\/collections\/new-in-shorts", target: "",
   levels: 0, }, ] }, ] }, { id: 63889991, title: "Short Sleeve Shirts", url:
   "\/collections\/short-sleeve-shirts-new", target: "", levels: 2, product0: {
   id: (null) }, children: [ { title: "Shop By Category", url: "", target: "",
   levels: 1, children: [ { title: "Short Sleeve Shirts", url:
   "\/collections\/short-sleeve-shirts-new", target: "_blank", levels: 0, }, {
   title: "Shirt with Breast Pocket", url:
   "\/collections\/shirts-with-breast-pocket-new", target: "", levels: 0, }, {
   title: "Tees", url: "\/collections\/tees", target: "", levels: 0, }, { title:
   "Polos", url: "\/collections\/polos-new", target: "", levels: 0, }, { title:
   "Tuxedo Waistcoat And Tie", url:
   "\/collections\/v-neck-suit-vest-tuxedo-waistcoat-and-tie", target: "",
   levels: 0, }, ] }, { title: "Shop By Features", url: "", target: "", levels:
   1, children: [ { title: "Funny Holiday ", url: "\/collections\/holidays",
   target: "", levels: 0, }, { title: "70's Style \ud83c\udfb5", url:
   "\/collections\/70s-style-shirts-new", target: "", levels: 0, }, { title:
   "50\u2018s Style\ud83d\udd25", url: "\/collections\/retro-style-shirts-new",
   target: "", levels: 0, }, { title: "Ukiyo-e \ud83c\udf0a", url:
   "\/collections\/art-style-ukiyo-e-printed-new", target: "", levels: 0, }, {
   title: "Cat \ud83d\ude38", url: "\/collections\/cat-series", target: "",
   levels: 0, }, { title: "Car \ud83c\udfc1\ud83c\udfce", url:
   "\/collections\/cars", target: "", levels: 0, }, { title: "Music
   \ud83c\udfb8", url: "\/collections\/musical-style", target: "", levels: 0, },
   { title: "Flag ", url: "\/collections\/nation", target: "", levels: 0, }, {
   title: "Resort\ud83c\udfd6\ufe0f", url: "\/collections\/resort-shirts-new",
   target: "", levels: 0, }, { title: "Beauties Print", url:
   "\/collections\/beauties-print", target: "", levels: 0, }, { title: "Costume
   Shirts\ud83e\uddb8\u200d\u2642", url:
   "\/collections\/cartoon-costume-shirts-new", target: "", levels: 0, }, {
   title: "Mid Century Style", url: "\/collections\/mid-century-style", target:
   "", levels: 0, }, { title: "Oriental Culture Inspired \ud83c\udfee", url:
   "\/collections\/mysterious-oriental", target: "", levels: 0, }, { title:
   "Hawaiian Shirts \ud83c\udfc4", url: "\/collections\/hawaiian-style", target:
   "", levels: 0, }, ] }, ] }, { id: 63890063, title: "LONG SLEEVE TOPS", url:
   "\/collections\/long-sleeve", target: "", levels: 1, product0: { id: (null)
   }, children: [ { title: "Long Sleeve Shirts", url:
   "\/collections\/long-sleeve-shirts", target: "", levels: 0, children: [ ] },
   { title: "Hoodies & Sweatshirts", url: "\/collections\/hoodies-sweatshirts",
   target: "", levels: 0, children: [ ] }, { title: "Long Sleeve Polos", url:
   "\/collections\/long-sleeve-polos", target: "", levels: 0, children: [ ] }, {
   title: "Long Sleeve T-Shirts", url: "\/collections\/long-sleeved-t-shirt",
   target: "", levels: 0, children: [ ] }, ] }, { id: 63890073, title: "BOTTOMS
   & SETS", url: "\/collections\/bottoms", target: "", levels: 1, product0: {
   id: (null) }, children: [ { title: "Summer Chic Set", url:
   "\/collections\/two-piece-set-new", target: "", levels: 0, children: [ ] }, {
   title: "Fashion Short Sets", url: "\/collections\/short-sets", target: "",
   levels: 0, children: [ ] }, { title: "Shorts", url:
   "\/collections\/shorts-new", target: "", levels: 0, children: [ ] }, ] }, {
   id: 63890081, title: "\u26a1CLEARANCE", url:
   "\/collections\/on-sale-items-1", target: "", levels: 0, product0: { id:
   (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList);
   const hasChild = linkList.some(link => !!(link.children &&
   link.children.length || link.product0.id)); return `
    * ${link.title} ${link.tag.label}
   
    * ${second_link.title} ${second_link.tag.label} ${third_links.title}
      ${third_links.tag.label}
   
   
    * ${link.title} ${link.tag.label}
   
   ` })()}


const marketSlot = document.querySelector(".plugin_c_market"); if(marketSlot) {
marketSlot.remove(); } const SITE = (window.C_SETTINGS ||
window[atob('U0hPUExBWlpB')])?.routes?.root || ''; const MARKET_THEME_SETTINGS =
`${SITE}/api/markets/theme_setting`; const MARKET_COUNTRIES =
`${SITE}/api/markets/countries`; const IP_MATCHING_MARKET =
`${SITE}/api/front/station`; const MARKET_LANGUAGES =
`${SITE}/api/markets/:id/active_languages`; const URL_REDIRECT =
'_market_redirected'; const COOKIE_TIPS_NAME = 'market_no_tips'; const
COOKIE_TIPS_EXPIRES = 1000 * 60 * 60 * 24 * 14; const MARKET_COUNTRY_COOKIE =
'_shoplazza_market_country'; const MARKET_MODAL_LOADED =
'__market_modal_loaded__'; const PROPERTY_SELECTED = 'selected'; const
MARKET_PC_HEADER_TRIGGER = 'market-pc-header-trigger'; const
MARKET_PC_HEADER_COUNTRY_SELECT_TITLE = 'market-pc-header-country-select-title';
const MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE =
'market-pc-header-language-select-title'; const
MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE =
'market-pc-header-language-select-sub-title'; const
MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE =
'market-pc-header-country-select-sub-title'; const MARKET_FLAG = 'market-flag';
const MARKET_SELECT_VALUE = 'market-select-value'; const MARKET_CURRENCY =
'market-currency'; const MARKET_CURRENCY_SYMBOL = 'market-currency-symbol';
const MARKET_SELECT_ITEM = 'market-select-item'; const MARKET_SELECT_ITEM_ID =
'market-select-item-id'; const MARKET_SELECT_LIST = 'market-select-list'; const
MARKET_LANGUAGE_SELECT = 'market-language-select'; const MARKET_COUNTRY_SELECT =
'market-country-select'; const MARKET_MODAL = 'market-modal'; const
MARKET_GATEWAY_REDIRECT_MODAL = 'market-gateway-redirect-modal'; const
MARKET_RESELECT_MODAL = 'market-reselect-modal'; const MARKET_MODAL_FLAG =
'market-modal-flag'; const MARKET_MODAL_COUNTRY_CODE =
'market-modal-country-code'; const MARKET_MODAL_CURRENCY_SYMBOL =
'market-modal-currency-symbol'; const MARKET_MODAL_CLOSE = 'market-modal-close';
const MARKET_MODAL_CONFIRM = 'market-modal-confirm'; const MARKET_MODAL_RESELECT
= 'market-modal-reselect'; const MARKET_MODAL_RESELECT_COUNTRY_SELECT =
'market-modal-reselect-country-select'; const DATA_SECTION_TYPE =
'data-section-type'; const SECTION_TYPE_HEADER = 'header'; const
SECTION_TYPE_FOOTER = 'footer'; class SpzCustomMarket extends SPZ.BaseElement {
constructor(element) { super(element); this.global = null;
this.useCountrySelect_ = false; this.useLanguageSelect_ = false; this.useModal_
= false; this.isSingleSelectMode_ = false; this.blockSectionPosition_ = '';
this.isEditMode = false; this.ipMatchingMarket = null; this.marketCountryList =
[]; this.marketLanguages = []; this.toast = null; } static deferredMount() {
return false; } isLayoutSupported(layout) { return layout ==
SPZCore.Layout.LOGIC; } buildCallback() { console.debug('Geolocation');
this.xhr_ = SPZServices.xhrFor(this.win); const platform =
SPZServices.platformFor(this.win); this.isIOS_ = platform.isIos(); this.action_
= SPZServices.actionServiceForDoc(this.element); this.global =
this.win.C_SETTINGS || this.win[atob('U0hPUExBWlpB')]; this.isEditMode = new
URLSearchParams(this.win.location.search).get('preview_theme_id') && new
URLSearchParams(this.win.location.search).get('oseid'); this.init_(); }
showToast_(content) { if (!this.toast) { this.toast =
self.document.createElement('ljs-toast'); this.toast.setAttribute('layout',
'nodisplay'); this.toast.setAttribute('hidden', '');
this.toast.setAttribute('duration', '2000');
this.element.appendChild(this.toast); }
SPZ.whenApiDefined(this.toast).then((apis) => { apis.showToast(content); }); }
triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win,
`${TAG}.${name}`, data); this.action_.trigger(this.element, name, event); }
findBlockSectionPosition() { let current = this.element; while (current) { const
dataSectionType = current.getAttribute(DATA_SECTION_TYPE); if ( dataSectionType
=== SECTION_TYPE_HEADER || dataSectionType === SECTION_TYPE_FOOTER ) { return
dataSectionType; } current = current.parentElement; } return ''; } async
initSettings_() { await this.getMarketThemeSettings_(); if
(this.useCountrySelect_) { this.element.setAttribute('use-country-select',
true); } if (this.useLanguageSelect_) {
this.element.setAttribute('use-language-select', true); } if (this.useModal_) {
this.element.setAttribute('use-modal', true); } if ( (this.useCountrySelect_ &&
!this.useLanguageSelect_) || (!this.useCountrySelect_ &&
this.useLanguageSelect_) ) { this.isSingleSelectMode_ = true; }
this.blockSectionPosition_ = this.findBlockSectionPosition(); this.isPCLayout_ =
this.win.matchMedia('(min-width: 960px)').matches; }
renderMarketSelectTemplateNode_(clonedTemplate, data) {
this.renderTemplateImg_(clonedTemplate, MARKET_FLAG, { src: data?.flag, width:
'24', height: '24', }); this.renderTemplateElement_( clonedTemplate,
MARKET_SELECT_VALUE, data.value ); this.renderTemplateElement_( clonedTemplate,
MARKET_CURRENCY, data?.currency ); this.renderTemplateElement_( clonedTemplate,
MARKET_CURRENCY_SYMBOL, data?.currencySymbol ); }
bindDropdownOpenClickEvent_(triggerElement, dropdown) { if (!triggerElement)
return; const triggerOpen = () => { SPZ.whenApiDefined(dropdown).then((apis) =>
{ if (!dropdown.hasAttribute('open')) { apis.open(triggerElement); } }); }; if
(this.isIOS_) { triggerElement.addEventListener('touchstart', triggerOpen); }
else { triggerElement.addEventListener('click', triggerOpen); } }
createDropdown_() { const dropdown =
self.document.createElement('ljs-dropdown'); dropdown.setAttribute('layout',
'nodisplay'); if (this.blockSectionPosition_ === 'header') {
dropdown.setAttribute('overlay-style', 'top: 4px;');
dropdown.setAttribute('placement', 'bottomRight'); } else if
(this.blockSectionPosition_ === 'footer') {
dropdown.setAttribute('overlay-style', 'top: -4px;');
dropdown.setAttribute('placement', 'top'); } return dropdown; }
createDropdownIcon_() { const svgElement =
document.createElementNS("http://www.w3.org/2000/svg", "svg");
svgElement.setAttribute("class", "market-rotate-180");
svgElement.setAttribute("width", "16"); svgElement.setAttribute("height", "16");
const path1 = document.createElementNS("http://www.w3.org/2000/svg", "path");
path1.setAttribute("d", "M7.47 5.172a.75.75 0 0 1 1.06 0l4.596 4.596a.75.75 0 1
1-1.06 1.06L7.468 6.232a.75.75 0 0 1 0-1.06Z"); path1.setAttribute("fill",
"currentColor"); const path2 =
document.createElementNS("http://www.w3.org/2000/svg", "path");
path2.setAttribute("d", "M8.533 5.172a.75.75 0 0 1 0 1.06l-4.596 4.596a.75.75 0
1 1-1.061-1.06l4.596-4.596a.75.75 0 0 1 1.06 0Z"); path2.setAttribute("fill",
"currentColor"); svgElement.appendChild(path1); svgElement.appendChild(path2);
return svgElement; } renderDropdownListWithClickEvent_({ triggerElement,
dataList, subTitleRole, listElementWithTemplate, defaultValue, itemHandler,
shouldUpdateSelectedItem = false, }) { const dropdown = this.createDropdown_();
const itemTemplate = SPZCore.Dom.scopedQuerySelector( listElementWithTemplate,
'template' ); const clonedItemTemplate = itemTemplate.cloneNode(true); const
fragment = self.document.createDocumentFragment(); dataList.forEach((data) => {
const tempParentNode = self.document.createElement('div'); const clonedTemplate
= self.document.importNode( clonedItemTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
tempParentNode.firstElementChild.classList.add( 'market-select-item' );
this.renderMarketSelectTemplateNode_(tempParentNode, data); const
selectItemElement = SPZCore.Dom.scopedQuerySelector( tempParentNode,
`[role="${MARKET_SELECT_ITEM}"]` ); if (!selectItemElement) { return; } if
(defaultValue === data.value) { if (shouldUpdateSelectedItem) { const
clonedSelectItemElement = selectItemElement.cloneNode(true);
triggerElement.replaceChild( clonedSelectItemElement,
triggerElement.firstElementChild ); }
selectItemElement.setAttribute(PROPERTY_SELECTED, ''); }
selectItemElement.setAttribute(MARKET_SELECT_ITEM_ID, data.value);
fragment.appendChild(tempParentNode.firstElementChild); }); let value =
defaultValue; listElementWithTemplate.addEventListener( 'click', (e) => { if
(this.isEditMode) { this.showToast_('编辑器下不支持切换国家');
SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); }); return; } let
targetElement = e.target; while (targetElement) { if ( !targetElement ||
targetElement.getAttribute(MARKET_SELECT_ITEM_ID) ) { break; } targetElement =
targetElement.parentNode; } if ( !targetElement ||
!targetElement.hasAttribute(MARKET_SELECT_ITEM_ID) ) { return; } const
selectValue = targetElement.getAttribute(MARKET_SELECT_ITEM_ID); if (value ===
selectValue) { SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); });
return; } const selectedData = dataList.find((c) => c.value === selectValue); if
(shouldUpdateSelectedItem) { const tempParentNode =
self.document.createElement('div'); const clonedTemplate =
self.document.importNode( clonedItemTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
this.renderMarketSelectTemplateNode_(tempParentNode, selectedData);
tempParentNode.firstElementChild.classList.add( 'market-select-item' );
triggerElement.replaceChild( tempParentNode.firstElementChild,
triggerElement.firstElementChild ); } value = selectValue;
itemHandler?.(selectedData); SPZ.whenApiDefined(dropdown).then((apis) => {
apis.close(); }); }, false ); listElementWithTemplate.removeChild(itemTemplate);
listElementWithTemplate.appendChild(fragment);
listElementWithTemplate.classList.add('market-select-list');
dropdown.appendChild(listElementWithTemplate); if (subTitleRole) {
this.renderSelectTitle_(dropdown, subTitleRole); } return dropdown; }
createSelect_({ parent, defaultValue, dataList, listElementWithTemplate,
itemHandler, titleRole, }) { const triggerElement =
self.document.createElement('div');
triggerElement.classList.add('market-select'); const displayElement =
self.document.createElement('div'); triggerElement.appendChild(displayElement);
triggerElement.appendChild(this.createDropdownIcon_()); const dropdown =
this.renderDropdownListWithClickEvent_({ triggerElement, dataList,
listElementWithTemplate, defaultValue, itemHandler, shouldUpdateSelectedItem:
true, }); this.bindDropdownOpenClickEvent_(triggerElement, dropdown); const
dropdownContainer = self.document.createElement('div');
dropdownContainer.appendChild(triggerElement);
dropdownContainer.appendChild(dropdown);
dropdownContainer.classList.add('market-select-container');
this.renderSelectTitle_(dropdownContainer, titleRole);
parent.appendChild(dropdownContainer); } getListElementWithTemplate_(role) {
const template = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${role}"]` ); if (template) { const clonedTemplate =
template.cloneNode(true); const tempParent = self.document.createElement("div");
tempParent.appendChild(clonedTemplate.content); const listElementWithTemplate =
SPZCore.Dom.scopedQuerySelector( tempParent, `[role="${MARKET_SELECT_LIST}"]` );
return listElementWithTemplate; } return null; } renderSelectTitle_(parent,
role) { if (!parent || !role) { return; } const template =
SPZCore.Dom.scopedQuerySelector( this.element, `[role="${role}"]` ); const
content = self.document.importNode(template.content, true);
parent.insertBefore(content, parent.firstElementChild);
parent.firstElementChild.classList.add( role.includes('sub') ?
'market-pc-header-select-sub-title' : 'market-pc-header-select-title' ); }
initSelect_(rootNode, options) { const parent = rootNode || this.element; if
(this.useCountrySelect_) { this.createSelect_({ parent, titleRole:
options?.shouldRenderSelectTitle ? MARKET_PC_HEADER_COUNTRY_SELECT_TITLE :
undefined, defaultValue: this.getDefaultCountryValue_(), dataList:
this.marketCountryList.map(this.mapCountryRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
this.handleCountrySelectChange_.bind(this), }); } if (this.useLanguageSelect_) {
this.createSelect_({ parent, titleRole: options?.shouldRenderSelectTitle ?
MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE : undefined, defaultValue:
this.getDefaultLanguageValue_(), dataList:
this.marketLanguages.map(this.mapLanguageRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_LANGUAGE_SELECT ), itemHandler:
this.handleLanguageSelectChange_.bind(this), }); } }
initPcHeaderTriggerElement() { const headerTriggerElementTemplate =
SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${MARKET_PC_HEADER_TRIGGER}"]` ); const headerTriggerElement =
self.document.importNode( headerTriggerElementTemplate.content, true ); const
parentDivElement = self.document.createElement('div');
parentDivElement.setAttribute('role', MARKET_PC_HEADER_TRIGGER);
parentDivElement.appendChild(headerTriggerElement);
this.element.removeChild(headerTriggerElementTemplate); return parentDivElement;
} initPanelWithSelect_() { const triggerElement =
this.initPcHeaderTriggerElement(); const dropdown = this.createDropdown_();
const panelElement = self.document.createElement('div');
panelElement.classList.add('market-panel'); this.initSelect_(panelElement,
{shouldRenderSelectTitle: true}); dropdown.appendChild(panelElement);
this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
this.element.appendChild(triggerElement); this.element.insertBefore(dropdown,
triggerElement); } initSingleSelectDropdown_() { const triggerElement =
this.initPcHeaderTriggerElement(); let dropdown; if (this.useCountrySelect_) {
dropdown = this.renderDropdownListWithClickEvent_({ triggerElement,
subTitleRole: MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE, dataList:
this.marketCountryList.map(this.mapCountryRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), defaultValue:
this.getDefaultCountryValue_(), itemHandler:
this.handleCountrySelectChange_.bind(this), }); } else if
(this.useLanguageSelect_) { dropdown = this.renderDropdownListWithClickEvent_({
triggerElement, subTitleRole: MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE,
dataList: this.marketLanguages.map(this.mapLanguageRenderData_),
listElementWithTemplate: this.getListElementWithTemplate_(
MARKET_LANGUAGE_SELECT ), defaultValue: this.getDefaultLanguageValue_(),
itemHandler: this.handleLanguageSelectChange_.bind(this), }); } if (dropdown) {
this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
this.element.appendChild(triggerElement); this.element.appendChild(dropdown); }
} initEntry_() { if (this.blockSectionPosition_ === SECTION_TYPE_HEADER) { if
(this.isSingleSelectMode_) { this.initSingleSelectDropdown_(); } else if
(this.useCountrySelect_ && this.useLanguageSelect_) {
this.initPanelWithSelect_(); } } this.initSelect_(this.element); } async
initData_() { const promises = []; if (this.useCountrySelect_ || this.useModal_)
{ promises.push(this.getCountryList_(), this.getIpMatchingMarket_()); } if
(this.useLanguageSelect_) {
promises.push(this.getMarketLanguages_(this.global.market.market_id)); } return
Promise.all(promises).then((results) => { const ipMatchingMarket =
results.find((result) => result.hasOwnProperty('matching_station') ); const
marketCountryList = results.find((result) => result.hasOwnProperty('data') ); if
(ipMatchingMarket && marketCountryList) { this.ipMatchingMarket =
ipMatchingMarket?.matching_station?.find?.( (item) => item.type ===
'multiple_market' ) || { img: marketCountryList.length ?
marketCountryList?.[0]?.detail && marketCountryList[0].detail?.flag : '', }; }
}); } initModal_() { if ( this.isEditMode || !this.ipMatchingMarket?.market_id
|| !this.useModal_ || this.hasCookie_(COOKIE_TIPS_NAME) ||
this.win[MARKET_MODAL_LOADED] ) { return; } this.win[MARKET_MODAL_LOADED] =
true; const redirectParam = new URLSearchParams(this.win.location.search).get(
URL_REDIRECT ); if (redirectParam) {
this.initModalEntry_(MARKET_GATEWAY_REDIRECT_MODAL); } else if (
this.ipMatchingMarket.market_id !== this.global?.market?.market_id ) {
this.initModalEntry_(MARKET_MODAL); } } async init_() { await
this.initSettings_(); await this.initData_(); this.initEntry_();
this.initModal_(); } getDefaultCountryValue_() { return
this.getCookie_(MARKET_COUNTRY_COOKIE) ||
this.marketCountryList[0]?.country_code; } mapCountryRenderData_(country) {
return { flag: country?.detail?.flag || '', value: country?.country_code,
currency: country?.currency, currencySymbol: country?.symbol?.val || '', url:
country?.url, }; } handleCountrySelectChange_(selectedData) {
this.setCookie_(MARKET_COUNTRY_COOKIE, selectedData.value);
this.handleChangeURL_(selectedData.url); } getDefaultLanguageValue_() { return
this.marketLanguages?.find?.( (lang) => lang.code ===
this.global?.market?.market_lang )?.name; } mapLanguageRenderData_(language) {
return { value: language.name, url: language.url, }; }
handleLanguageSelectChange_(selectedData) {
this.handleChangeURL_(selectedData.url); } renderTemplateElement_(parent, role,
value) { const elements = SPZCore.Dom.scopedQuerySelectorAll( parent,
`[role="${role}"]` ); elements.forEach((element) => { if (element && value) {
element.innerHTML = value; } }); } renderTemplateImg_(parent, role, options) {
const flagElement = SPZCore.Dom.scopedQuerySelector( parent, `[role="${role}"]`
); if (flagElement && options?.src && options?.height && options?.width) { const
spzImg = self.document.createElement('ljs-img'); spzImg.setAttribute('src',
options.src); spzImg.setAttribute('layout', 'responsive');
spzImg.setAttribute('width', options.width); spzImg.setAttribute('height',
options.height); spzImg.setAttribute( 'style', `width: ${options.width}px;
height: ${options.height}px;` ); flagElement.appendChild(spzImg); } }
handleChangeURL_(url) { if (!!url) { let {origin, pathname, search} =
this.win.location; pathname = pathname.replace(SITE, url != '/' ? url : '');
this.win.location.href = `${origin}${pathname}${search}`; } else {
this.win.location.reload(true); } } initModalEntry_(role) { const
marketModalTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${role}"]` ); if (marketModalTemplate) { const tempParentNode =
self.document.createElement('div'); const clonedTemplate =
self.document.importNode( marketModalTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
this.renderTemplateImg_(tempParentNode, MARKET_MODAL_FLAG, { src:
this.ipMatchingMarket?.img, width: '80', height: '80', });
this.renderTemplateElement_( tempParentNode, MARKET_MODAL_COUNTRY_CODE,
this.ipMatchingMarket?.name ); this.renderTemplateElement_( tempParentNode,
MARKET_MODAL_CURRENCY_SYMBOL, this.ipMatchingMarket?.currency_with_symbol );
const lightbox = self.document.createElement('ljs-lightbox');
lightbox.setAttribute('layout', 'nodisplay');
lightbox.appendChild(tempParentNode.firstElementChild);
self.document.body.appendChild(lightbox);
SPZ.whenApiDefined(lightbox).then((apis) => {
SPZCore.Dom.scopedQuerySelectorAll( lightbox, `[role="${MARKET_MODAL_CLOSE}"]`
).forEach((ele) => { ele.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); apis.close(); }); });
const marketModalConfirmElement = SPZCore.Dom.scopedQuerySelector( lightbox,
`[role="${MARKET_MODAL_CONFIRM}"]` ); if (marketModalConfirmElement &&
this.ipMatchingMarket?.url) {
marketModalConfirmElement.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES);
this.setCookie_(MARKET_COUNTRY_COOKIE, this.ipMatchingMarket?.name);
this.handleChangeURL_(this.ipMatchingMarket?.url); }); } const
marketModalReselectElement = SPZCore.Dom.scopedQuerySelector( lightbox,
`[role="${MARKET_MODAL_RESELECT}"]` ); if (marketModalReselectElement) {
marketModalReselectElement.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); const
marketReselectTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${MARKET_RESELECT_MODAL}"]` ); if (marketReselectTemplate &&
lightbox.firstElementChild) { const clonedTemplate = self.document.importNode(
marketReselectTemplate.content, true ); const selectParent =
SPZCore.Dom.scopedQuerySelector( clonedTemplate,
`[role="${MARKET_MODAL_RESELECT_COUNTRY_SELECT}"]` ); if (selectParent) {
this.createSelect_({ parent: selectParent, defaultValue:
this.getDefaultCountryValue_(), dataList: this.marketCountryList.map(
this.mapCountryRenderData_ ), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
this.handleCountrySelectChange_.bind(this), }); }
lightbox.replaceChild(clonedTemplate, lightbox.firstElementChild);
SPZCore.Dom.scopedQuerySelectorAll( lightbox, `[role="${MARKET_MODAL_CLOSE}"]`
).forEach((ele) => { ele.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); apis.close(); }); });
} }); } apis.open(); }); } } async getMarketThemeSettings_() { return
this.xhr_.fetchJson(MARKET_THEME_SETTINGS).then((res) => {
this.useCountrySelect_ = !!res.country_selector_enabled; this.useLanguageSelect_
= !!res.language_selector_enabled && this.global?.market?.market_id;
this.useModal_ = !!res.redirect_pop_enabled; return res; }); } async
getCountryList_() { return this.xhr_.fetchJson(MARKET_COUNTRIES).then((res) => {
this.marketCountryList = res.data.length ? res.data : []; return res; }); }
async getIpMatchingMarket_() { return this.xhr_.fetchJson(IP_MATCHING_MARKET, {
method: 'POST', body: { stations: [], }, }); } async
getMarketLanguages_(marketId) { return this.xhr_
.fetchJson(MARKET_LANGUAGES.replace(/:id/gim, marketId)) .then((res) => {
this.marketLanguages = res?.languages?.length ? res.languages : []; return res;
}); } hasCookie_(name) { const m = self.document.cookie .split(';')
.filter((pair) => pair.trim().startsWith(name + '=')); return !!(m && m[0]); }
getCookie_(name) { const m = self.document.cookie .split(';') .filter((pair) =>
pair.trim().startsWith(name + '=')); return m && m[0] ? m[0].split('=')[1] :
null; } setCookie_(name, value, expires) { const expiresDate = new
Date(Date.now() + expires).toGMTString(); self.document.cookie =
`${name}=${encodeURIComponent( value )};expires=${expiresDate};path=/`; } }
SPZ.defineElement('spz-custom-market', SpzCustomMarket);
Region/Country
Region/Country

(


)
Language
Language

Switch to based on your location
 * Purchase with
 * Get shipping options for

Cancel
Switch
Set to based on your location
 * Purchase with
 * Get shipping options for

Continue Shopping
Modify Country/Region
Modify Country/Region

Continue Shopping
Cancel

Region/Country
US
(
USD
$
)
AD
(
EUR
€
)
AT
(
EUR
€
)
BE
(
EUR
€
)
CY
(
EUR
€
)
DE
(
EUR
€
)
EE
(
EUR
€
)
ES
(
EUR
€
)
FI
(
EUR
€
)
FR
(
EUR
€
)
GR
(
EUR
€
)
IE
(
EUR
€
)
IT
(
EUR
€
)
LT
(
EUR
€
)
LU
(
EUR
€
)
LV
(
EUR
€
)
MC
(
EUR
€
)
ME
(
EUR
€
)
MT
(
EUR
€
)
NL
(
EUR
€
)
PT
(
EUR
€
)
SI
(
EUR
€
)
SK
(
EUR
€
)
SM
(
EUR
€
)
VA
(
EUR
€
)
XK
(
EUR
€
)
JP
(
JPY
¥
)
GB
(
GBP
£
)
TH
(
THB
฿
)
NZ
(
NZD
NZ$
)
AU
(
AUD
A$
)
CA
(
CAD
CA$
)
CH
(
CHF
CHF
)
DK
(
DKK
kr
)
SG
(
SGD
S$
)
US
(
USD
$
)
US
(
USD
$
)
AD
(
EUR
€
)
AT
(
EUR
€
)
BE
(
EUR
€
)
CY
(
EUR
€
)
DE
(
EUR
€
)
EE
(
EUR
€
)
ES
(
EUR
€
)
FI
(
EUR
€
)
FR
(
EUR
€
)
GR
(
EUR
€
)
IE
(
EUR
€
)
IT
(
EUR
€
)
LT
(
EUR
€
)
LU
(
EUR
€
)
LV
(
EUR
€
)
MC
(
EUR
€
)
ME
(
EUR
€
)
MT
(
EUR
€
)
NL
(
EUR
€
)
PT
(
EUR
€
)
SI
(
EUR
€
)
SK
(
EUR
€
)
SM
(
EUR
€
)
VA
(
EUR
€
)
XK
(
EUR
€
)
JP
(
JPY
¥
)
GB
(
GBP
£
)
TH
(
THB
฿
)
NZ
(
NZD
NZ$
)
AU
(
AUD
A$
)
CA
(
CAD
CA$
)
CH
(
CHF
CHF
)
DK
(
DKK
kr
)
SG
(
SGD
S$
)

English,Français,Deutsch,Italiano,Español,Português,dansk,日本語,ไทย

const marketSlot = document.querySelector(".plugin_c_market"); if(marketSlot) {
marketSlot.remove(); } const SITE = (window.C_SETTINGS ||
window[atob('U0hPUExBWlpB')])?.routes?.root || ''; const MARKET_THEME_SETTINGS =
`${SITE}/api/markets/theme_setting`; const MARKET_COUNTRIES =
`${SITE}/api/markets/countries`; const IP_MATCHING_MARKET =
`${SITE}/api/front/station`; const MARKET_LANGUAGES =
`${SITE}/api/markets/:id/active_languages`; const URL_REDIRECT =
'_market_redirected'; const COOKIE_TIPS_NAME = 'market_no_tips'; const
COOKIE_TIPS_EXPIRES = 1000 * 60 * 60 * 24 * 14; const MARKET_COUNTRY_COOKIE =
'_shoplazza_market_country'; const MARKET_MODAL_LOADED =
'__market_modal_loaded__'; const PROPERTY_SELECTED = 'selected'; const
MARKET_PC_HEADER_TRIGGER = 'market-pc-header-trigger'; const
MARKET_PC_HEADER_COUNTRY_SELECT_TITLE = 'market-pc-header-country-select-title';
const MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE =
'market-pc-header-language-select-title'; const
MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE =
'market-pc-header-language-select-sub-title'; const
MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE =
'market-pc-header-country-select-sub-title'; const MARKET_FLAG = 'market-flag';
const MARKET_SELECT_VALUE = 'market-select-value'; const MARKET_CURRENCY =
'market-currency'; const MARKET_CURRENCY_SYMBOL = 'market-currency-symbol';
const MARKET_SELECT_ITEM = 'market-select-item'; const MARKET_SELECT_ITEM_ID =
'market-select-item-id'; const MARKET_SELECT_LIST = 'market-select-list'; const
MARKET_LANGUAGE_SELECT = 'market-language-select'; const MARKET_COUNTRY_SELECT =
'market-country-select'; const MARKET_MODAL = 'market-modal'; const
MARKET_GATEWAY_REDIRECT_MODAL = 'market-gateway-redirect-modal'; const
MARKET_RESELECT_MODAL = 'market-reselect-modal'; const MARKET_MODAL_FLAG =
'market-modal-flag'; const MARKET_MODAL_COUNTRY_CODE =
'market-modal-country-code'; const MARKET_MODAL_CURRENCY_SYMBOL =
'market-modal-currency-symbol'; const MARKET_MODAL_CLOSE = 'market-modal-close';
const MARKET_MODAL_CONFIRM = 'market-modal-confirm'; const MARKET_MODAL_RESELECT
= 'market-modal-reselect'; const MARKET_MODAL_RESELECT_COUNTRY_SELECT =
'market-modal-reselect-country-select'; const DATA_SECTION_TYPE =
'data-section-type'; const SECTION_TYPE_HEADER = 'header'; const
SECTION_TYPE_FOOTER = 'footer'; class SpzCustomMarket extends SPZ.BaseElement {
constructor(element) { super(element); this.global = null;
this.useCountrySelect_ = false; this.useLanguageSelect_ = false; this.useModal_
= false; this.isSingleSelectMode_ = false; this.blockSectionPosition_ = '';
this.isEditMode = false; this.ipMatchingMarket = null; this.marketCountryList =
[]; this.marketLanguages = []; this.toast = null; } static deferredMount() {
return false; } isLayoutSupported(layout) { return layout ==
SPZCore.Layout.LOGIC; } buildCallback() { console.debug('Geolocation');
this.xhr_ = SPZServices.xhrFor(this.win); const platform =
SPZServices.platformFor(this.win); this.isIOS_ = platform.isIos(); this.action_
= SPZServices.actionServiceForDoc(this.element); this.global =
this.win.C_SETTINGS || this.win[atob('U0hPUExBWlpB')]; this.isEditMode = new
URLSearchParams(this.win.location.search).get('preview_theme_id') && new
URLSearchParams(this.win.location.search).get('oseid'); this.init_(); }
showToast_(content) { if (!this.toast) { this.toast =
self.document.createElement('ljs-toast'); this.toast.setAttribute('layout',
'nodisplay'); this.toast.setAttribute('hidden', '');
this.toast.setAttribute('duration', '2000');
this.element.appendChild(this.toast); }
SPZ.whenApiDefined(this.toast).then((apis) => { apis.showToast(content); }); }
triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win,
`${TAG}.${name}`, data); this.action_.trigger(this.element, name, event); }
findBlockSectionPosition() { let current = this.element; while (current) { const
dataSectionType = current.getAttribute(DATA_SECTION_TYPE); if ( dataSectionType
=== SECTION_TYPE_HEADER || dataSectionType === SECTION_TYPE_FOOTER ) { return
dataSectionType; } current = current.parentElement; } return ''; } async
initSettings_() { await this.getMarketThemeSettings_(); if
(this.useCountrySelect_) { this.element.setAttribute('use-country-select',
true); } if (this.useLanguageSelect_) {
this.element.setAttribute('use-language-select', true); } if (this.useModal_) {
this.element.setAttribute('use-modal', true); } if ( (this.useCountrySelect_ &&
!this.useLanguageSelect_) || (!this.useCountrySelect_ &&
this.useLanguageSelect_) ) { this.isSingleSelectMode_ = true; }
this.blockSectionPosition_ = this.findBlockSectionPosition(); this.isPCLayout_ =
this.win.matchMedia('(min-width: 960px)').matches; }
renderMarketSelectTemplateNode_(clonedTemplate, data) {
this.renderTemplateImg_(clonedTemplate, MARKET_FLAG, { src: data?.flag, width:
'24', height: '24', }); this.renderTemplateElement_( clonedTemplate,
MARKET_SELECT_VALUE, data.value ); this.renderTemplateElement_( clonedTemplate,
MARKET_CURRENCY, data?.currency ); this.renderTemplateElement_( clonedTemplate,
MARKET_CURRENCY_SYMBOL, data?.currencySymbol ); }
bindDropdownOpenClickEvent_(triggerElement, dropdown) { if (!triggerElement)
return; const triggerOpen = () => { SPZ.whenApiDefined(dropdown).then((apis) =>
{ if (!dropdown.hasAttribute('open')) { apis.open(triggerElement); } }); }; if
(this.isIOS_) { triggerElement.addEventListener('touchstart', triggerOpen); }
else { triggerElement.addEventListener('click', triggerOpen); } }
createDropdown_() { const dropdown =
self.document.createElement('ljs-dropdown'); dropdown.setAttribute('layout',
'nodisplay'); if (this.blockSectionPosition_ === 'header') {
dropdown.setAttribute('overlay-style', 'top: 4px;');
dropdown.setAttribute('placement', 'bottomRight'); } else if
(this.blockSectionPosition_ === 'footer') {
dropdown.setAttribute('overlay-style', 'top: -4px;');
dropdown.setAttribute('placement', 'top'); } return dropdown; }
createDropdownIcon_() { const svgElement =
document.createElementNS("http://www.w3.org/2000/svg", "svg");
svgElement.setAttribute("class", "market-rotate-180");
svgElement.setAttribute("width", "16"); svgElement.setAttribute("height", "16");
const path1 = document.createElementNS("http://www.w3.org/2000/svg", "path");
path1.setAttribute("d", "M7.47 5.172a.75.75 0 0 1 1.06 0l4.596 4.596a.75.75 0 1
1-1.06 1.06L7.468 6.232a.75.75 0 0 1 0-1.06Z"); path1.setAttribute("fill",
"currentColor"); const path2 =
document.createElementNS("http://www.w3.org/2000/svg", "path");
path2.setAttribute("d", "M8.533 5.172a.75.75 0 0 1 0 1.06l-4.596 4.596a.75.75 0
1 1-1.061-1.06l4.596-4.596a.75.75 0 0 1 1.06 0Z"); path2.setAttribute("fill",
"currentColor"); svgElement.appendChild(path1); svgElement.appendChild(path2);
return svgElement; } renderDropdownListWithClickEvent_({ triggerElement,
dataList, subTitleRole, listElementWithTemplate, defaultValue, itemHandler,
shouldUpdateSelectedItem = false, }) { const dropdown = this.createDropdown_();
const itemTemplate = SPZCore.Dom.scopedQuerySelector( listElementWithTemplate,
'template' ); const clonedItemTemplate = itemTemplate.cloneNode(true); const
fragment = self.document.createDocumentFragment(); dataList.forEach((data) => {
const tempParentNode = self.document.createElement('div'); const clonedTemplate
= self.document.importNode( clonedItemTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
tempParentNode.firstElementChild.classList.add( 'market-select-item' );
this.renderMarketSelectTemplateNode_(tempParentNode, data); const
selectItemElement = SPZCore.Dom.scopedQuerySelector( tempParentNode,
`[role="${MARKET_SELECT_ITEM}"]` ); if (!selectItemElement) { return; } if
(defaultValue === data.value) { if (shouldUpdateSelectedItem) { const
clonedSelectItemElement = selectItemElement.cloneNode(true);
triggerElement.replaceChild( clonedSelectItemElement,
triggerElement.firstElementChild ); }
selectItemElement.setAttribute(PROPERTY_SELECTED, ''); }
selectItemElement.setAttribute(MARKET_SELECT_ITEM_ID, data.value);
fragment.appendChild(tempParentNode.firstElementChild); }); let value =
defaultValue; listElementWithTemplate.addEventListener( 'click', (e) => { if
(this.isEditMode) { this.showToast_('编辑器下不支持切换国家');
SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); }); return; } let
targetElement = e.target; while (targetElement) { if ( !targetElement ||
targetElement.getAttribute(MARKET_SELECT_ITEM_ID) ) { break; } targetElement =
targetElement.parentNode; } if ( !targetElement ||
!targetElement.hasAttribute(MARKET_SELECT_ITEM_ID) ) { return; } const
selectValue = targetElement.getAttribute(MARKET_SELECT_ITEM_ID); if (value ===
selectValue) { SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); });
return; } const selectedData = dataList.find((c) => c.value === selectValue); if
(shouldUpdateSelectedItem) { const tempParentNode =
self.document.createElement('div'); const clonedTemplate =
self.document.importNode( clonedItemTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
this.renderMarketSelectTemplateNode_(tempParentNode, selectedData);
tempParentNode.firstElementChild.classList.add( 'market-select-item' );
triggerElement.replaceChild( tempParentNode.firstElementChild,
triggerElement.firstElementChild ); } value = selectValue;
itemHandler?.(selectedData); SPZ.whenApiDefined(dropdown).then((apis) => {
apis.close(); }); }, false ); listElementWithTemplate.removeChild(itemTemplate);
listElementWithTemplate.appendChild(fragment);
listElementWithTemplate.classList.add('market-select-list');
dropdown.appendChild(listElementWithTemplate); if (subTitleRole) {
this.renderSelectTitle_(dropdown, subTitleRole); } return dropdown; }
createSelect_({ parent, defaultValue, dataList, listElementWithTemplate,
itemHandler, titleRole, }) { const triggerElement =
self.document.createElement('div');
triggerElement.classList.add('market-select'); const displayElement =
self.document.createElement('div'); triggerElement.appendChild(displayElement);
triggerElement.appendChild(this.createDropdownIcon_()); const dropdown =
this.renderDropdownListWithClickEvent_({ triggerElement, dataList,
listElementWithTemplate, defaultValue, itemHandler, shouldUpdateSelectedItem:
true, }); this.bindDropdownOpenClickEvent_(triggerElement, dropdown); const
dropdownContainer = self.document.createElement('div');
dropdownContainer.appendChild(triggerElement);
dropdownContainer.appendChild(dropdown);
dropdownContainer.classList.add('market-select-container');
this.renderSelectTitle_(dropdownContainer, titleRole);
parent.appendChild(dropdownContainer); } getListElementWithTemplate_(role) {
const template = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${role}"]` ); if (template) { const clonedTemplate =
template.cloneNode(true); const tempParent = self.document.createElement("div");
tempParent.appendChild(clonedTemplate.content); const listElementWithTemplate =
SPZCore.Dom.scopedQuerySelector( tempParent, `[role="${MARKET_SELECT_LIST}"]` );
return listElementWithTemplate; } return null; } renderSelectTitle_(parent,
role) { if (!parent || !role) { return; } const template =
SPZCore.Dom.scopedQuerySelector( this.element, `[role="${role}"]` ); const
content = self.document.importNode(template.content, true);
parent.insertBefore(content, parent.firstElementChild);
parent.firstElementChild.classList.add( role.includes('sub') ?
'market-pc-header-select-sub-title' : 'market-pc-header-select-title' ); }
initSelect_(rootNode, options) { const parent = rootNode || this.element; if
(this.useCountrySelect_) { this.createSelect_({ parent, titleRole:
options?.shouldRenderSelectTitle ? MARKET_PC_HEADER_COUNTRY_SELECT_TITLE :
undefined, defaultValue: this.getDefaultCountryValue_(), dataList:
this.marketCountryList.map(this.mapCountryRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
this.handleCountrySelectChange_.bind(this), }); } if (this.useLanguageSelect_) {
this.createSelect_({ parent, titleRole: options?.shouldRenderSelectTitle ?
MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE : undefined, defaultValue:
this.getDefaultLanguageValue_(), dataList:
this.marketLanguages.map(this.mapLanguageRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_LANGUAGE_SELECT ), itemHandler:
this.handleLanguageSelectChange_.bind(this), }); } }
initPcHeaderTriggerElement() { const headerTriggerElementTemplate =
SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${MARKET_PC_HEADER_TRIGGER}"]` ); const headerTriggerElement =
self.document.importNode( headerTriggerElementTemplate.content, true ); const
parentDivElement = self.document.createElement('div');
parentDivElement.setAttribute('role', MARKET_PC_HEADER_TRIGGER);
parentDivElement.appendChild(headerTriggerElement);
this.element.removeChild(headerTriggerElementTemplate); return parentDivElement;
} initPanelWithSelect_() { const triggerElement =
this.initPcHeaderTriggerElement(); const dropdown = this.createDropdown_();
const panelElement = self.document.createElement('div');
panelElement.classList.add('market-panel'); this.initSelect_(panelElement,
{shouldRenderSelectTitle: true}); dropdown.appendChild(panelElement);
this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
this.element.appendChild(triggerElement); this.element.insertBefore(dropdown,
triggerElement); } initSingleSelectDropdown_() { const triggerElement =
this.initPcHeaderTriggerElement(); let dropdown; if (this.useCountrySelect_) {
dropdown = this.renderDropdownListWithClickEvent_({ triggerElement,
subTitleRole: MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE, dataList:
this.marketCountryList.map(this.mapCountryRenderData_), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), defaultValue:
this.getDefaultCountryValue_(), itemHandler:
this.handleCountrySelectChange_.bind(this), }); } else if
(this.useLanguageSelect_) { dropdown = this.renderDropdownListWithClickEvent_({
triggerElement, subTitleRole: MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE,
dataList: this.marketLanguages.map(this.mapLanguageRenderData_),
listElementWithTemplate: this.getListElementWithTemplate_(
MARKET_LANGUAGE_SELECT ), defaultValue: this.getDefaultLanguageValue_(),
itemHandler: this.handleLanguageSelectChange_.bind(this), }); } if (dropdown) {
this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
this.element.appendChild(triggerElement); this.element.appendChild(dropdown); }
} initEntry_() { if (this.blockSectionPosition_ === SECTION_TYPE_HEADER) { if
(this.isSingleSelectMode_) { this.initSingleSelectDropdown_(); } else if
(this.useCountrySelect_ && this.useLanguageSelect_) {
this.initPanelWithSelect_(); } } this.initSelect_(this.element); } async
initData_() { const promises = []; if (this.useCountrySelect_ || this.useModal_)
{ promises.push(this.getCountryList_(), this.getIpMatchingMarket_()); } if
(this.useLanguageSelect_) {
promises.push(this.getMarketLanguages_(this.global.market.market_id)); } return
Promise.all(promises).then((results) => { const ipMatchingMarket =
results.find((result) => result.hasOwnProperty('matching_station') ); const
marketCountryList = results.find((result) => result.hasOwnProperty('data') ); if
(ipMatchingMarket && marketCountryList) { this.ipMatchingMarket =
ipMatchingMarket?.matching_station?.find?.( (item) => item.type ===
'multiple_market' ) || { img: marketCountryList.length ?
marketCountryList?.[0]?.detail && marketCountryList[0].detail?.flag : '', }; }
}); } initModal_() { if ( this.isEditMode || !this.ipMatchingMarket?.market_id
|| !this.useModal_ || this.hasCookie_(COOKIE_TIPS_NAME) ||
this.win[MARKET_MODAL_LOADED] ) { return; } this.win[MARKET_MODAL_LOADED] =
true; const redirectParam = new URLSearchParams(this.win.location.search).get(
URL_REDIRECT ); if (redirectParam) {
this.initModalEntry_(MARKET_GATEWAY_REDIRECT_MODAL); } else if (
this.ipMatchingMarket.market_id !== this.global?.market?.market_id ) {
this.initModalEntry_(MARKET_MODAL); } } async init_() { await
this.initSettings_(); await this.initData_(); this.initEntry_();
this.initModal_(); } getDefaultCountryValue_() { return
this.getCookie_(MARKET_COUNTRY_COOKIE) ||
this.marketCountryList[0]?.country_code; } mapCountryRenderData_(country) {
return { flag: country?.detail?.flag || '', value: country?.country_code,
currency: country?.currency, currencySymbol: country?.symbol?.val || '', url:
country?.url, }; } handleCountrySelectChange_(selectedData) {
this.setCookie_(MARKET_COUNTRY_COOKIE, selectedData.value);
this.handleChangeURL_(selectedData.url); } getDefaultLanguageValue_() { return
this.marketLanguages?.find?.( (lang) => lang.code ===
this.global?.market?.market_lang )?.name; } mapLanguageRenderData_(language) {
return { value: language.name, url: language.url, }; }
handleLanguageSelectChange_(selectedData) {
this.handleChangeURL_(selectedData.url); } renderTemplateElement_(parent, role,
value) { const elements = SPZCore.Dom.scopedQuerySelectorAll( parent,
`[role="${role}"]` ); elements.forEach((element) => { if (element && value) {
element.innerHTML = value; } }); } renderTemplateImg_(parent, role, options) {
const flagElement = SPZCore.Dom.scopedQuerySelector( parent, `[role="${role}"]`
); if (flagElement && options?.src && options?.height && options?.width) { const
spzImg = self.document.createElement('ljs-img'); spzImg.setAttribute('src',
options.src); spzImg.setAttribute('layout', 'responsive');
spzImg.setAttribute('width', options.width); spzImg.setAttribute('height',
options.height); spzImg.setAttribute( 'style', `width: ${options.width}px;
height: ${options.height}px;` ); flagElement.appendChild(spzImg); } }
handleChangeURL_(url) { if (!!url) { let {origin, pathname, search} =
this.win.location; pathname = pathname.replace(SITE, url != '/' ? url : '');
this.win.location.href = `${origin}${pathname}${search}`; } else {
this.win.location.reload(true); } } initModalEntry_(role) { const
marketModalTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${role}"]` ); if (marketModalTemplate) { const tempParentNode =
self.document.createElement('div'); const clonedTemplate =
self.document.importNode( marketModalTemplate.content, true );
tempParentNode.appendChild(clonedTemplate);
this.renderTemplateImg_(tempParentNode, MARKET_MODAL_FLAG, { src:
this.ipMatchingMarket?.img, width: '80', height: '80', });
this.renderTemplateElement_( tempParentNode, MARKET_MODAL_COUNTRY_CODE,
this.ipMatchingMarket?.name ); this.renderTemplateElement_( tempParentNode,
MARKET_MODAL_CURRENCY_SYMBOL, this.ipMatchingMarket?.currency_with_symbol );
const lightbox = self.document.createElement('ljs-lightbox');
lightbox.setAttribute('layout', 'nodisplay');
lightbox.appendChild(tempParentNode.firstElementChild);
self.document.body.appendChild(lightbox);
SPZ.whenApiDefined(lightbox).then((apis) => {
SPZCore.Dom.scopedQuerySelectorAll( lightbox, `[role="${MARKET_MODAL_CLOSE}"]`
).forEach((ele) => { ele.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); apis.close(); }); });
const marketModalConfirmElement = SPZCore.Dom.scopedQuerySelector( lightbox,
`[role="${MARKET_MODAL_CONFIRM}"]` ); if (marketModalConfirmElement &&
this.ipMatchingMarket?.url) {
marketModalConfirmElement.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES);
this.setCookie_(MARKET_COUNTRY_COOKIE, this.ipMatchingMarket?.name);
this.handleChangeURL_(this.ipMatchingMarket?.url); }); } const
marketModalReselectElement = SPZCore.Dom.scopedQuerySelector( lightbox,
`[role="${MARKET_MODAL_RESELECT}"]` ); if (marketModalReselectElement) {
marketModalReselectElement.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); const
marketReselectTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
`[role="${MARKET_RESELECT_MODAL}"]` ); if (marketReselectTemplate &&
lightbox.firstElementChild) { const clonedTemplate = self.document.importNode(
marketReselectTemplate.content, true ); const selectParent =
SPZCore.Dom.scopedQuerySelector( clonedTemplate,
`[role="${MARKET_MODAL_RESELECT_COUNTRY_SELECT}"]` ); if (selectParent) {
this.createSelect_({ parent: selectParent, defaultValue:
this.getDefaultCountryValue_(), dataList: this.marketCountryList.map(
this.mapCountryRenderData_ ), listElementWithTemplate:
this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
this.handleCountrySelectChange_.bind(this), }); }
lightbox.replaceChild(clonedTemplate, lightbox.firstElementChild);
SPZCore.Dom.scopedQuerySelectorAll( lightbox, `[role="${MARKET_MODAL_CLOSE}"]`
).forEach((ele) => { ele.addEventListener('click', () => {
this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); apis.close(); }); });
} }); } apis.open(); }); } } async getMarketThemeSettings_() { return
this.xhr_.fetchJson(MARKET_THEME_SETTINGS).then((res) => {
this.useCountrySelect_ = !!res.country_selector_enabled; this.useLanguageSelect_
= !!res.language_selector_enabled && this.global?.market?.market_id;
this.useModal_ = !!res.redirect_pop_enabled; return res; }); } async
getCountryList_() { return this.xhr_.fetchJson(MARKET_COUNTRIES).then((res) => {
this.marketCountryList = res.data.length ? res.data : []; return res; }); }
async getIpMatchingMarket_() { return this.xhr_.fetchJson(IP_MATCHING_MARKET, {
method: 'POST', body: { stations: [], }, }); } async
getMarketLanguages_(marketId) { return this.xhr_
.fetchJson(MARKET_LANGUAGES.replace(/:id/gim, marketId)) .then((res) => {
this.marketLanguages = res?.languages?.length ? res.languages : []; return res;
}); } hasCookie_(name) { const m = self.document.cookie .split(';')
.filter((pair) => pair.trim().startsWith(name + '=')); return !!(m && m[0]); }
getCookie_(name) { const m = self.document.cookie .split(';') .filter((pair) =>
pair.trim().startsWith(name + '=')); return m && m[0] ? m[0].split('=')[1] :
null; } setCookie_(name, value, expires) { const expiresDate = new
Date(Date.now() + expires).toGMTString(); self.document.cookie =
`${name}=${encodeURIComponent( value )};expires=${expiresDate};path=/`; } }
SPZ.defineElement('spz-custom-market', SpzCustomMarket);
Region/Country
Region/Country

(


)
Language
Language

Switch to based on your location
 * Purchase with
 * Get shipping options for

Cancel
Switch
Set to based on your location
 * Purchase with
 * Get shipping options for

Continue Shopping
Modify Country/Region
Modify Country/Region

Continue Shopping
Cancel

Region/Country
US
(
USD
$
)
AD
(
EUR
€
)
AT
(
EUR
€
)
BE
(
EUR
€
)
CY
(
EUR
€
)
DE
(
EUR
€
)
EE
(
EUR
€
)
ES
(
EUR
€
)
FI
(
EUR
€
)
FR
(
EUR
€
)
GR
(
EUR
€
)
IE
(
EUR
€
)
IT
(
EUR
€
)
LT
(
EUR
€
)
LU
(
EUR
€
)
LV
(
EUR
€
)
MC
(
EUR
€
)
ME
(
EUR
€
)
MT
(
EUR
€
)
NL
(
EUR
€
)
PT
(
EUR
€
)
SI
(
EUR
€
)
SK
(
EUR
€
)
SM
(
EUR
€
)
VA
(
EUR
€
)
XK
(
EUR
€
)
JP
(
JPY
¥
)
GB
(
GBP
£
)
TH
(
THB
฿
)
NZ
(
NZD
NZ$
)
AU
(
AUD
A$
)
CA
(
CAD
CA$
)
CH
(
CHF
CHF
)
DK
(
DKK
kr
)
SG
(
SGD
S$
)
US
(
USD
$
)
US
(
USD
$
)
AD
(
EUR
€
)
AT
(
EUR
€
)
BE
(
EUR
€
)
CY
(
EUR
€
)
DE
(
EUR
€
)
EE
(
EUR
€
)
ES
(
EUR
€
)
FI
(
EUR
€
)
FR
(
EUR
€
)
GR
(
EUR
€
)
IE
(
EUR
€
)
IT
(
EUR
€
)
LT
(
EUR
€
)
LU
(
EUR
€
)
LV
(
EUR
€
)
MC
(
EUR
€
)
ME
(
EUR
€
)
MT
(
EUR
€
)
NL
(
EUR
€
)
PT
(
EUR
€
)
SI
(
EUR
€
)
SK
(
EUR
€
)
SM
(
EUR
€
)
VA
(
EUR
€
)
XK
(
EUR
€
)
JP
(
JPY
¥
)
GB
(
GBP
£
)
TH
(
THB
฿
)
NZ
(
NZD
NZ$
)
AU
(
AUD
A$
)
CA
(
CAD
CA$
)
CH
(
CHF
CHF
)
DK
(
DKK
kr
)
SG
(
SGD
S$
)

English,Français,Deutsch,Italiano,Español,Português,dansk,日本語,ไทย

 * Log in
 * Create an account

${data.data && data.data.count}


${(function(){ if (data === undefined || typeof data !== 'string' || data == '')
return ''; const keyword = encodeURIComponent(data); return `
View more
Your search for '${data}' did not yield any results.

` })()}
${item}
Search
Recently searched
 * ${item}

Hot searches
 * 
   ${item.word}


Results
${item.highlightHtml}

 * SHOP ALL
   * SHOP ALL
   * Tops
     * Tops
     * Short Sleeve Shirts
     * Long Sleeve Shirts
     * Hoodies & Sweatshirts
     * Polo Shirts👕
     * V-Neck Suit Vest/Tuxedo Waistcoat And Tie
     * 100% Cotton Tees
     * Long Sleeved T-Shirt
     * Shirt with Breast Pocket
   * Bottoms
     * Bottoms
     * Men's Short Sets
     * Shorts
   * Accessories
     * Accessories
     * Hats
     * Scarf🧣
     * Sunglasses
     * Belts & Suspenders
     * Shoes
   * Chic Matching Set
   * Dresses 👗
 * HOT SALE
 * HOLIDAY SHIRTS🎉
   * HOLIDAY SHIRTS🎉
   * Patriots' Day Shirts
   * Cute Costume Shirts 🤠
   * LGBT Pride Month 🌈
   * Columbus Day ☠️
   * Hippie Festival Shirts 🐙
   * Halloween's Day Shirts 🎃
   * Thanksgiving Day Tops 🦃
   * Christmas Day Shirts 🎅
   * New Year Shirts 🎉
   * Mardi Gras Shirts 🤡
   * Valentine's Day Shirts 💕
   * St. Patrick's Day Shirts ☘
   * Easter Day Shirts 🐇
   * Cinco De Mayo 💃
   * Happy Father's Day🎁
 * NEW ARRIVALS
   * NEW ARRIVALS
   * SHOP BY CATRGORY
     * SHOP BY CATRGORY
     * New in Short Sleeve Shirts
     * New in Hawaiian Shirts
     * New in Polos
     * New in Shorts
 * Short Sleeve Shirts
   * Short Sleeve Shirts
   * Shop By Category
     * Shop By Category
     * Short Sleeve Shirts
     * Shirt with Breast Pocket
     * Tees
     * Polos
     * Tuxedo Waistcoat And Tie
   * Shop By Features
     * Shop By Features
     * Funny Holiday
     * 70's Style 🎵
     * 50‘s Style🔥
     * Ukiyo-e 🌊
     * Cat 😸
     * Car 🏁🏎
     * Music 🎸
     * Flag
     * Resort🏖️
     * Beauties Print
     * Costume Shirts🦸‍♂
     * Mid Century Style
     * Oriental Culture Inspired 🏮
     * Hawaiian Shirts 🏄
 * LONG SLEEVE TOPS
   * LONG SLEEVE TOPS
   * Long Sleeve Shirts
   * Hoodies & Sweatshirts
   * Long Sleeve Polos
   * Long Sleeve T-Shirts
 * BOTTOMS & SETS
   * BOTTOMS & SETS
   * Summer Chic Set
   * Fashion Short Sets
   * Shorts
 * ⚡CLEARANCE
   const marketSlot = document.querySelector(".plugin_c_market"); if(marketSlot)
   { marketSlot.remove(); } const SITE = (window.C_SETTINGS ||
   window[atob('U0hPUExBWlpB')])?.routes?.root || ''; const
   MARKET_THEME_SETTINGS = `${SITE}/api/markets/theme_setting`; const
   MARKET_COUNTRIES = `${SITE}/api/markets/countries`; const IP_MATCHING_MARKET
   = `${SITE}/api/front/station`; const MARKET_LANGUAGES =
   `${SITE}/api/markets/:id/active_languages`; const URL_REDIRECT =
   '_market_redirected'; const COOKIE_TIPS_NAME = 'market_no_tips'; const
   COOKIE_TIPS_EXPIRES = 1000 * 60 * 60 * 24 * 14; const MARKET_COUNTRY_COOKIE =
   '_shoplazza_market_country'; const MARKET_MODAL_LOADED =
   '__market_modal_loaded__'; const PROPERTY_SELECTED = 'selected'; const
   MARKET_PC_HEADER_TRIGGER = 'market-pc-header-trigger'; const
   MARKET_PC_HEADER_COUNTRY_SELECT_TITLE =
   'market-pc-header-country-select-title'; const
   MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE =
   'market-pc-header-language-select-title'; const
   MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE =
   'market-pc-header-language-select-sub-title'; const
   MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE =
   'market-pc-header-country-select-sub-title'; const MARKET_FLAG =
   'market-flag'; const MARKET_SELECT_VALUE = 'market-select-value'; const
   MARKET_CURRENCY = 'market-currency'; const MARKET_CURRENCY_SYMBOL =
   'market-currency-symbol'; const MARKET_SELECT_ITEM = 'market-select-item';
   const MARKET_SELECT_ITEM_ID = 'market-select-item-id'; const
   MARKET_SELECT_LIST = 'market-select-list'; const MARKET_LANGUAGE_SELECT =
   'market-language-select'; const MARKET_COUNTRY_SELECT =
   'market-country-select'; const MARKET_MODAL = 'market-modal'; const
   MARKET_GATEWAY_REDIRECT_MODAL = 'market-gateway-redirect-modal'; const
   MARKET_RESELECT_MODAL = 'market-reselect-modal'; const MARKET_MODAL_FLAG =
   'market-modal-flag'; const MARKET_MODAL_COUNTRY_CODE =
   'market-modal-country-code'; const MARKET_MODAL_CURRENCY_SYMBOL =
   'market-modal-currency-symbol'; const MARKET_MODAL_CLOSE =
   'market-modal-close'; const MARKET_MODAL_CONFIRM = 'market-modal-confirm';
   const MARKET_MODAL_RESELECT = 'market-modal-reselect'; const
   MARKET_MODAL_RESELECT_COUNTRY_SELECT =
   'market-modal-reselect-country-select'; const DATA_SECTION_TYPE =
   'data-section-type'; const SECTION_TYPE_HEADER = 'header'; const
   SECTION_TYPE_FOOTER = 'footer'; class SpzCustomMarket extends SPZ.BaseElement
   { constructor(element) { super(element); this.global = null;
   this.useCountrySelect_ = false; this.useLanguageSelect_ = false;
   this.useModal_ = false; this.isSingleSelectMode_ = false;
   this.blockSectionPosition_ = ''; this.isEditMode = false;
   this.ipMatchingMarket = null; this.marketCountryList = [];
   this.marketLanguages = []; this.toast = null; } static deferredMount() {
   return false; } isLayoutSupported(layout) { return layout ==
   SPZCore.Layout.LOGIC; } buildCallback() { console.debug('Geolocation');
   this.xhr_ = SPZServices.xhrFor(this.win); const platform =
   SPZServices.platformFor(this.win); this.isIOS_ = platform.isIos();
   this.action_ = SPZServices.actionServiceForDoc(this.element); this.global =
   this.win.C_SETTINGS || this.win[atob('U0hPUExBWlpB')]; this.isEditMode = new
   URLSearchParams(this.win.location.search).get('preview_theme_id') && new
   URLSearchParams(this.win.location.search).get('oseid'); this.init_(); }
   showToast_(content) { if (!this.toast) { this.toast =
   self.document.createElement('ljs-toast'); this.toast.setAttribute('layout',
   'nodisplay'); this.toast.setAttribute('hidden', '');
   this.toast.setAttribute('duration', '2000');
   this.element.appendChild(this.toast); }
   SPZ.whenApiDefined(this.toast).then((apis) => { apis.showToast(content); });
   } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win,
   `${TAG}.${name}`, data); this.action_.trigger(this.element, name, event); }
   findBlockSectionPosition() { let current = this.element; while (current) {
   const dataSectionType = current.getAttribute(DATA_SECTION_TYPE); if (
   dataSectionType === SECTION_TYPE_HEADER || dataSectionType ===
   SECTION_TYPE_FOOTER ) { return dataSectionType; } current =
   current.parentElement; } return ''; } async initSettings_() { await
   this.getMarketThemeSettings_(); if (this.useCountrySelect_) {
   this.element.setAttribute('use-country-select', true); } if
   (this.useLanguageSelect_) { this.element.setAttribute('use-language-select',
   true); } if (this.useModal_) { this.element.setAttribute('use-modal', true);
   } if ( (this.useCountrySelect_ && !this.useLanguageSelect_) ||
   (!this.useCountrySelect_ && this.useLanguageSelect_) ) {
   this.isSingleSelectMode_ = true; } this.blockSectionPosition_ =
   this.findBlockSectionPosition(); this.isPCLayout_ =
   this.win.matchMedia('(min-width: 960px)').matches; }
   renderMarketSelectTemplateNode_(clonedTemplate, data) {
   this.renderTemplateImg_(clonedTemplate, MARKET_FLAG, { src: data?.flag,
   width: '24', height: '24', }); this.renderTemplateElement_( clonedTemplate,
   MARKET_SELECT_VALUE, data.value ); this.renderTemplateElement_(
   clonedTemplate, MARKET_CURRENCY, data?.currency );
   this.renderTemplateElement_( clonedTemplate, MARKET_CURRENCY_SYMBOL,
   data?.currencySymbol ); } bindDropdownOpenClickEvent_(triggerElement,
   dropdown) { if (!triggerElement) return; const triggerOpen = () => {
   SPZ.whenApiDefined(dropdown).then((apis) => { if
   (!dropdown.hasAttribute('open')) { apis.open(triggerElement); } }); }; if
   (this.isIOS_) { triggerElement.addEventListener('touchstart', triggerOpen); }
   else { triggerElement.addEventListener('click', triggerOpen); } }
   createDropdown_() { const dropdown =
   self.document.createElement('ljs-dropdown'); dropdown.setAttribute('layout',
   'nodisplay'); if (this.blockSectionPosition_ === 'header') {
   dropdown.setAttribute('overlay-style', 'top: 4px;');
   dropdown.setAttribute('placement', 'bottomRight'); } else if
   (this.blockSectionPosition_ === 'footer') {
   dropdown.setAttribute('overlay-style', 'top: -4px;');
   dropdown.setAttribute('placement', 'top'); } return dropdown; }
   createDropdownIcon_() { const svgElement =
   document.createElementNS("http://www.w3.org/2000/svg", "svg");
   svgElement.setAttribute("class", "market-rotate-180");
   svgElement.setAttribute("width", "16"); svgElement.setAttribute("height",
   "16"); const path1 = document.createElementNS("http://www.w3.org/2000/svg",
   "path"); path1.setAttribute("d", "M7.47 5.172a.75.75 0 0 1 1.06 0l4.596
   4.596a.75.75 0 1 1-1.06 1.06L7.468 6.232a.75.75 0 0 1 0-1.06Z");
   path1.setAttribute("fill", "currentColor"); const path2 =
   document.createElementNS("http://www.w3.org/2000/svg", "path");
   path2.setAttribute("d", "M8.533 5.172a.75.75 0 0 1 0 1.06l-4.596 4.596a.75.75
   0 1 1-1.061-1.06l4.596-4.596a.75.75 0 0 1 1.06 0Z");
   path2.setAttribute("fill", "currentColor"); svgElement.appendChild(path1);
   svgElement.appendChild(path2); return svgElement; }
   renderDropdownListWithClickEvent_({ triggerElement, dataList, subTitleRole,
   listElementWithTemplate, defaultValue, itemHandler, shouldUpdateSelectedItem
   = false, }) { const dropdown = this.createDropdown_(); const itemTemplate =
   SPZCore.Dom.scopedQuerySelector( listElementWithTemplate, 'template' ); const
   clonedItemTemplate = itemTemplate.cloneNode(true); const fragment =
   self.document.createDocumentFragment(); dataList.forEach((data) => { const
   tempParentNode = self.document.createElement('div'); const clonedTemplate =
   self.document.importNode( clonedItemTemplate.content, true );
   tempParentNode.appendChild(clonedTemplate);
   tempParentNode.firstElementChild.classList.add( 'market-select-item' );
   this.renderMarketSelectTemplateNode_(tempParentNode, data); const
   selectItemElement = SPZCore.Dom.scopedQuerySelector( tempParentNode,
   `[role="${MARKET_SELECT_ITEM}"]` ); if (!selectItemElement) { return; } if
   (defaultValue === data.value) { if (shouldUpdateSelectedItem) { const
   clonedSelectItemElement = selectItemElement.cloneNode(true);
   triggerElement.replaceChild( clonedSelectItemElement,
   triggerElement.firstElementChild ); }
   selectItemElement.setAttribute(PROPERTY_SELECTED, ''); }
   selectItemElement.setAttribute(MARKET_SELECT_ITEM_ID, data.value);
   fragment.appendChild(tempParentNode.firstElementChild); }); let value =
   defaultValue; listElementWithTemplate.addEventListener( 'click', (e) => { if
   (this.isEditMode) { this.showToast_('编辑器下不支持切换国家');
   SPZ.whenApiDefined(dropdown).then((apis) => { apis.close(); }); return; } let
   targetElement = e.target; while (targetElement) { if ( !targetElement ||
   targetElement.getAttribute(MARKET_SELECT_ITEM_ID) ) { break; } targetElement
   = targetElement.parentNode; } if ( !targetElement ||
   !targetElement.hasAttribute(MARKET_SELECT_ITEM_ID) ) { return; } const
   selectValue = targetElement.getAttribute(MARKET_SELECT_ITEM_ID); if (value
   === selectValue) { SPZ.whenApiDefined(dropdown).then((apis) => {
   apis.close(); }); return; } const selectedData = dataList.find((c) => c.value
   === selectValue); if (shouldUpdateSelectedItem) { const tempParentNode =
   self.document.createElement('div'); const clonedTemplate =
   self.document.importNode( clonedItemTemplate.content, true );
   tempParentNode.appendChild(clonedTemplate);
   this.renderMarketSelectTemplateNode_(tempParentNode, selectedData);
   tempParentNode.firstElementChild.classList.add( 'market-select-item' );
   triggerElement.replaceChild( tempParentNode.firstElementChild,
   triggerElement.firstElementChild ); } value = selectValue;
   itemHandler?.(selectedData); SPZ.whenApiDefined(dropdown).then((apis) => {
   apis.close(); }); }, false );
   listElementWithTemplate.removeChild(itemTemplate);
   listElementWithTemplate.appendChild(fragment);
   listElementWithTemplate.classList.add('market-select-list');
   dropdown.appendChild(listElementWithTemplate); if (subTitleRole) {
   this.renderSelectTitle_(dropdown, subTitleRole); } return dropdown; }
   createSelect_({ parent, defaultValue, dataList, listElementWithTemplate,
   itemHandler, titleRole, }) { const triggerElement =
   self.document.createElement('div');
   triggerElement.classList.add('market-select'); const displayElement =
   self.document.createElement('div');
   triggerElement.appendChild(displayElement);
   triggerElement.appendChild(this.createDropdownIcon_()); const dropdown =
   this.renderDropdownListWithClickEvent_({ triggerElement, dataList,
   listElementWithTemplate, defaultValue, itemHandler, shouldUpdateSelectedItem:
   true, }); this.bindDropdownOpenClickEvent_(triggerElement, dropdown); const
   dropdownContainer = self.document.createElement('div');
   dropdownContainer.appendChild(triggerElement);
   dropdownContainer.appendChild(dropdown);
   dropdownContainer.classList.add('market-select-container');
   this.renderSelectTitle_(dropdownContainer, titleRole);
   parent.appendChild(dropdownContainer); } getListElementWithTemplate_(role) {
   const template = SPZCore.Dom.scopedQuerySelector( this.element,
   `[role="${role}"]` ); if (template) { const clonedTemplate =
   template.cloneNode(true); const tempParent =
   self.document.createElement("div");
   tempParent.appendChild(clonedTemplate.content); const listElementWithTemplate
   = SPZCore.Dom.scopedQuerySelector( tempParent,
   `[role="${MARKET_SELECT_LIST}"]` ); return listElementWithTemplate; } return
   null; } renderSelectTitle_(parent, role) { if (!parent || !role) { return; }
   const template = SPZCore.Dom.scopedQuerySelector( this.element,
   `[role="${role}"]` ); const content =
   self.document.importNode(template.content, true);
   parent.insertBefore(content, parent.firstElementChild);
   parent.firstElementChild.classList.add( role.includes('sub') ?
   'market-pc-header-select-sub-title' : 'market-pc-header-select-title' ); }
   initSelect_(rootNode, options) { const parent = rootNode || this.element; if
   (this.useCountrySelect_) { this.createSelect_({ parent, titleRole:
   options?.shouldRenderSelectTitle ? MARKET_PC_HEADER_COUNTRY_SELECT_TITLE :
   undefined, defaultValue: this.getDefaultCountryValue_(), dataList:
   this.marketCountryList.map(this.mapCountryRenderData_),
   listElementWithTemplate: this.getListElementWithTemplate_(
   MARKET_COUNTRY_SELECT ), itemHandler:
   this.handleCountrySelectChange_.bind(this), }); } if
   (this.useLanguageSelect_) { this.createSelect_({ parent, titleRole:
   options?.shouldRenderSelectTitle ? MARKET_PC_HEADER_LANGUAGE_SELECT_TITLE :
   undefined, defaultValue: this.getDefaultLanguageValue_(), dataList:
   this.marketLanguages.map(this.mapLanguageRenderData_),
   listElementWithTemplate: this.getListElementWithTemplate_(
   MARKET_LANGUAGE_SELECT ), itemHandler:
   this.handleLanguageSelectChange_.bind(this), }); } }
   initPcHeaderTriggerElement() { const headerTriggerElementTemplate =
   SPZCore.Dom.scopedQuerySelector( this.element,
   `[role="${MARKET_PC_HEADER_TRIGGER}"]` ); const headerTriggerElement =
   self.document.importNode( headerTriggerElementTemplate.content, true ); const
   parentDivElement = self.document.createElement('div');
   parentDivElement.setAttribute('role', MARKET_PC_HEADER_TRIGGER);
   parentDivElement.appendChild(headerTriggerElement);
   this.element.removeChild(headerTriggerElementTemplate); return
   parentDivElement; } initPanelWithSelect_() { const triggerElement =
   this.initPcHeaderTriggerElement(); const dropdown = this.createDropdown_();
   const panelElement = self.document.createElement('div');
   panelElement.classList.add('market-panel'); this.initSelect_(panelElement,
   {shouldRenderSelectTitle: true}); dropdown.appendChild(panelElement);
   this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
   this.element.appendChild(triggerElement); this.element.insertBefore(dropdown,
   triggerElement); } initSingleSelectDropdown_() { const triggerElement =
   this.initPcHeaderTriggerElement(); let dropdown; if (this.useCountrySelect_)
   { dropdown = this.renderDropdownListWithClickEvent_({ triggerElement,
   subTitleRole: MARKET_PC_HEADER_COUNTRY_SELECT_SUB_TITLE, dataList:
   this.marketCountryList.map(this.mapCountryRenderData_),
   listElementWithTemplate: this.getListElementWithTemplate_(
   MARKET_COUNTRY_SELECT ), defaultValue: this.getDefaultCountryValue_(),
   itemHandler: this.handleCountrySelectChange_.bind(this), }); } else if
   (this.useLanguageSelect_) { dropdown =
   this.renderDropdownListWithClickEvent_({ triggerElement, subTitleRole:
   MARKET_PC_HEADER_LANGUAGE_SELECT_SUB_TITLE, dataList:
   this.marketLanguages.map(this.mapLanguageRenderData_),
   listElementWithTemplate: this.getListElementWithTemplate_(
   MARKET_LANGUAGE_SELECT ), defaultValue: this.getDefaultLanguageValue_(),
   itemHandler: this.handleLanguageSelectChange_.bind(this), }); } if (dropdown)
   { this.bindDropdownOpenClickEvent_(triggerElement, dropdown);
   this.element.appendChild(triggerElement); this.element.appendChild(dropdown);
   } } initEntry_() { if (this.blockSectionPosition_ === SECTION_TYPE_HEADER) {
   if (this.isSingleSelectMode_) { this.initSingleSelectDropdown_(); } else if
   (this.useCountrySelect_ && this.useLanguageSelect_) {
   this.initPanelWithSelect_(); } } this.initSelect_(this.element); } async
   initData_() { const promises = []; if (this.useCountrySelect_ ||
   this.useModal_) { promises.push(this.getCountryList_(),
   this.getIpMatchingMarket_()); } if (this.useLanguageSelect_) {
   promises.push(this.getMarketLanguages_(this.global.market.market_id)); }
   return Promise.all(promises).then((results) => { const ipMatchingMarket =
   results.find((result) => result.hasOwnProperty('matching_station') ); const
   marketCountryList = results.find((result) => result.hasOwnProperty('data') );
   if (ipMatchingMarket && marketCountryList) { this.ipMatchingMarket =
   ipMatchingMarket?.matching_station?.find?.( (item) => item.type ===
   'multiple_market' ) || { img: marketCountryList.length ?
   marketCountryList?.[0]?.detail && marketCountryList[0].detail?.flag : '', };
   } }); } initModal_() { if ( this.isEditMode ||
   !this.ipMatchingMarket?.market_id || !this.useModal_ ||
   this.hasCookie_(COOKIE_TIPS_NAME) || this.win[MARKET_MODAL_LOADED] ) {
   return; } this.win[MARKET_MODAL_LOADED] = true; const redirectParam = new
   URLSearchParams(this.win.location.search).get( URL_REDIRECT ); if
   (redirectParam) { this.initModalEntry_(MARKET_GATEWAY_REDIRECT_MODAL); } else
   if ( this.ipMatchingMarket.market_id !== this.global?.market?.market_id ) {
   this.initModalEntry_(MARKET_MODAL); } } async init_() { await
   this.initSettings_(); await this.initData_(); this.initEntry_();
   this.initModal_(); } getDefaultCountryValue_() { return
   this.getCookie_(MARKET_COUNTRY_COOKIE) ||
   this.marketCountryList[0]?.country_code; } mapCountryRenderData_(country) {
   return { flag: country?.detail?.flag || '', value: country?.country_code,
   currency: country?.currency, currencySymbol: country?.symbol?.val || '', url:
   country?.url, }; } handleCountrySelectChange_(selectedData) {
   this.setCookie_(MARKET_COUNTRY_COOKIE, selectedData.value);
   this.handleChangeURL_(selectedData.url); } getDefaultLanguageValue_() {
   return this.marketLanguages?.find?.( (lang) => lang.code ===
   this.global?.market?.market_lang )?.name; } mapLanguageRenderData_(language)
   { return { value: language.name, url: language.url, }; }
   handleLanguageSelectChange_(selectedData) {
   this.handleChangeURL_(selectedData.url); } renderTemplateElement_(parent,
   role, value) { const elements = SPZCore.Dom.scopedQuerySelectorAll( parent,
   `[role="${role}"]` ); elements.forEach((element) => { if (element && value) {
   element.innerHTML = value; } }); } renderTemplateImg_(parent, role, options)
   { const flagElement = SPZCore.Dom.scopedQuerySelector( parent,
   `[role="${role}"]` ); if (flagElement && options?.src && options?.height &&
   options?.width) { const spzImg = self.document.createElement('ljs-img');
   spzImg.setAttribute('src', options.src); spzImg.setAttribute('layout',
   'responsive'); spzImg.setAttribute('width', options.width);
   spzImg.setAttribute('height', options.height); spzImg.setAttribute( 'style',
   `width: ${options.width}px; height: ${options.height}px;` );
   flagElement.appendChild(spzImg); } } handleChangeURL_(url) { if (!!url) { let
   {origin, pathname, search} = this.win.location; pathname =
   pathname.replace(SITE, url != '/' ? url : ''); this.win.location.href =
   `${origin}${pathname}${search}`; } else { this.win.location.reload(true); } }
   initModalEntry_(role) { const marketModalTemplate =
   SPZCore.Dom.scopedQuerySelector( this.element, `[role="${role}"]` ); if
   (marketModalTemplate) { const tempParentNode =
   self.document.createElement('div'); const clonedTemplate =
   self.document.importNode( marketModalTemplate.content, true );
   tempParentNode.appendChild(clonedTemplate);
   this.renderTemplateImg_(tempParentNode, MARKET_MODAL_FLAG, { src:
   this.ipMatchingMarket?.img, width: '80', height: '80', });
   this.renderTemplateElement_( tempParentNode, MARKET_MODAL_COUNTRY_CODE,
   this.ipMatchingMarket?.name ); this.renderTemplateElement_( tempParentNode,
   MARKET_MODAL_CURRENCY_SYMBOL, this.ipMatchingMarket?.currency_with_symbol );
   const lightbox = self.document.createElement('ljs-lightbox');
   lightbox.setAttribute('layout', 'nodisplay');
   lightbox.appendChild(tempParentNode.firstElementChild);
   self.document.body.appendChild(lightbox);
   SPZ.whenApiDefined(lightbox).then((apis) => {
   SPZCore.Dom.scopedQuerySelectorAll( lightbox,
   `[role="${MARKET_MODAL_CLOSE}"]` ).forEach((ele) => {
   ele.addEventListener('click', () => { this.setCookie_(COOKIE_TIPS_NAME, 1,
   COOKIE_TIPS_EXPIRES); apis.close(); }); }); const marketModalConfirmElement =
   SPZCore.Dom.scopedQuerySelector( lightbox, `[role="${MARKET_MODAL_CONFIRM}"]`
   ); if (marketModalConfirmElement && this.ipMatchingMarket?.url) {
   marketModalConfirmElement.addEventListener('click', () => {
   this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES);
   this.setCookie_(MARKET_COUNTRY_COOKIE, this.ipMatchingMarket?.name);
   this.handleChangeURL_(this.ipMatchingMarket?.url); }); } const
   marketModalReselectElement = SPZCore.Dom.scopedQuerySelector( lightbox,
   `[role="${MARKET_MODAL_RESELECT}"]` ); if (marketModalReselectElement) {
   marketModalReselectElement.addEventListener('click', () => {
   this.setCookie_(COOKIE_TIPS_NAME, 1, COOKIE_TIPS_EXPIRES); const
   marketReselectTemplate = SPZCore.Dom.scopedQuerySelector( this.element,
   `[role="${MARKET_RESELECT_MODAL}"]` ); if (marketReselectTemplate &&
   lightbox.firstElementChild) { const clonedTemplate =
   self.document.importNode( marketReselectTemplate.content, true ); const
   selectParent = SPZCore.Dom.scopedQuerySelector( clonedTemplate,
   `[role="${MARKET_MODAL_RESELECT_COUNTRY_SELECT}"]` ); if (selectParent) {
   this.createSelect_({ parent: selectParent, defaultValue:
   this.getDefaultCountryValue_(), dataList: this.marketCountryList.map(
   this.mapCountryRenderData_ ), listElementWithTemplate:
   this.getListElementWithTemplate_( MARKET_COUNTRY_SELECT ), itemHandler:
   this.handleCountrySelectChange_.bind(this), }); }
   lightbox.replaceChild(clonedTemplate, lightbox.firstElementChild);
   SPZCore.Dom.scopedQuerySelectorAll( lightbox,
   `[role="${MARKET_MODAL_CLOSE}"]` ).forEach((ele) => {
   ele.addEventListener('click', () => { this.setCookie_(COOKIE_TIPS_NAME, 1,
   COOKIE_TIPS_EXPIRES); apis.close(); }); }); } }); } apis.open(); }); } }
   async getMarketThemeSettings_() { return
   this.xhr_.fetchJson(MARKET_THEME_SETTINGS).then((res) => {
   this.useCountrySelect_ = !!res.country_selector_enabled;
   this.useLanguageSelect_ = !!res.language_selector_enabled &&
   this.global?.market?.market_id; this.useModal_ = !!res.redirect_pop_enabled;
   return res; }); } async getCountryList_() { return
   this.xhr_.fetchJson(MARKET_COUNTRIES).then((res) => { this.marketCountryList
   = res.data.length ? res.data : []; return res; }); } async
   getIpMatchingMarket_() { return this.xhr_.fetchJson(IP_MATCHING_MARKET, {
   method: 'POST', body: { stations: [], }, }); } async
   getMarketLanguages_(marketId) { return this.xhr_
   .fetchJson(MARKET_LANGUAGES.replace(/:id/gim, marketId)) .then((res) => {
   this.marketLanguages = res?.languages?.length ? res.languages : []; return
   res; }); } hasCookie_(name) { const m = self.document.cookie .split(';')
   .filter((pair) => pair.trim().startsWith(name + '=')); return !!(m && m[0]);
   } getCookie_(name) { const m = self.document.cookie .split(';')
   .filter((pair) => pair.trim().startsWith(name + '=')); return m && m[0] ?
   m[0].split('=')[1] : null; } setCookie_(name, value, expires) { const
   expiresDate = new Date(Date.now() + expires).toGMTString();
   self.document.cookie = `${name}=${encodeURIComponent( value
   )};expires=${expiresDate};path=/`; } } SPZ.defineElement('spz-custom-market',
   SpzCustomMarket);
   Region/Country
   Region/Country
   
   (
   
   
   )
   Language
   Language
   
   Switch to based on your location
    * Purchase with
    * Get shipping options for
   
   Cancel
   Switch
   Set to based on your location
    * Purchase with
    * Get shipping options for
   
   Continue Shopping
   Modify Country/Region
   Modify Country/Region
   
   Continue Shopping
   Cancel
   
   Region/Country
   US
   (
   USD
   $
   )
   AD
   (
   EUR
   €
   )
   AT
   (
   EUR
   €
   )
   BE
   (
   EUR
   €
   )
   CY
   (
   EUR
   €
   )
   DE
   (
   EUR
   €
   )
   EE
   (
   EUR
   €
   )
   ES
   (
   EUR
   €
   )
   FI
   (
   EUR
   €
   )
   FR
   (
   EUR
   €
   )
   GR
   (
   EUR
   €
   )
   IE
   (
   EUR
   €
   )
   IT
   (
   EUR
   €
   )
   LT
   (
   EUR
   €
   )
   LU
   (
   EUR
   €
   )
   LV
   (
   EUR
   €
   )
   MC
   (
   EUR
   €
   )
   ME
   (
   EUR
   €
   )
   MT
   (
   EUR
   €
   )
   NL
   (
   EUR
   €
   )
   PT
   (
   EUR
   €
   )
   SI
   (
   EUR
   €
   )
   SK
   (
   EUR
   €
   )
   SM
   (
   EUR
   €
   )
   VA
   (
   EUR
   €
   )
   XK
   (
   EUR
   €
   )
   JP
   (
   JPY
   ¥
   )
   GB
   (
   GBP
   £
   )
   TH
   (
   THB
   ฿
   )
   NZ
   (
   NZD
   NZ$
   )
   AU
   (
   AUD
   A$
   )
   CA
   (
   CAD
   CA$
   )
   CH
   (
   CHF
   CHF
   )
   DK
   (
   DKK
   kr
   )
   SG
   (
   SGD
   S$
   )
   US
   (
   USD
   $
   )
   US
   (
   USD
   $
   )
   AD
   (
   EUR
   €
   )
   AT
   (
   EUR
   €
   )
   BE
   (
   EUR
   €
   )
   CY
   (
   EUR
   €
   )
   DE
   (
   EUR
   €
   )
   EE
   (
   EUR
   €
   )
   ES
   (
   EUR
   €
   )
   FI
   (
   EUR
   €
   )
   FR
   (
   EUR
   €
   )
   GR
   (
   EUR
   €
   )
   IE
   (
   EUR
   €
   )
   IT
   (
   EUR
   €
   )
   LT
   (
   EUR
   €
   )
   LU
   (
   EUR
   €
   )
   LV
   (
   EUR
   €
   )
   MC
   (
   EUR
   €
   )
   ME
   (
   EUR
   €
   )
   MT
   (
   EUR
   €
   )
   NL
   (
   EUR
   €
   )
   PT
   (
   EUR
   €
   )
   SI
   (
   EUR
   €
   )
   SK
   (
   EUR
   €
   )
   SM
   (
   EUR
   €
   )
   VA
   (
   EUR
   €
   )
   XK
   (
   EUR
   €
   )
   JP
   (
   JPY
   ¥
   )
   GB
   (
   GBP
   £
   )
   TH
   (
   THB
   ฿
   )
   NZ
   (
   NZD
   NZ$
   )
   AU
   (
   AUD
   A$
   )
   CA
   (
   CAD
   CA$
   )
   CH
   (
   CHF
   CHF
   )
   DK
   (
   DKK
   kr
   )
   SG
   (
   SGD
   S$
   )
   
   English,Français,Deutsch,Italiano,Español,Português,dansk,日本語,ไทย
   

Log in Create an account
(function(){ let w = window.innerWidth; function setHeaderCssVar() { const
headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){
return }; document.body.style.setProperty('--window-height',
`${window.innerHeight}px`); document.body.style.setProperty('--header-height',
`${headerEle.clientHeight}px`); const mdScorllHideEle =
headerEle.querySelector('.header__mobile .header__scroll_hide'); if
(mdScorllHideEle) {
document.body.style.setProperty('--header-scroll-hide-height-md',
`${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle =
headerEle.querySelector('.header__desktop .header__scroll_hide'); if
(pcScorllHideEle) {
document.body.style.setProperty('--header-scroll-hide-height-pc',
`${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w ==
window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); };
function init(){ setHeaderCssVar(); window.removeEventListener('resize',
window._theme_header_listener) window._theme_header_listener = handlResize;
window.addEventListener('resize', window._theme_header_listener); } init();
})();

Home  /  HOO® Vintage Khaki And White Stitching Western Cowboys Riding Horses
Printing Short Sleeve Shirt
1/4
${data.index + 1}/${data.total}
 * 
 * 
 * 
 * 

   ${Array(data.total).fill(0).map((num, index) => `
 * 
   `).join('')}


Anniversary Sale🔥


HOO® VINTAGE KHAKI AND WHITE STITCHING WESTERN COWBOYS RIDING HORSES PRINTING
SHORT SLEEVE SHIRT

${function() { const variantData = data.variant ||
{"id":"8bb84595-4772-49e8-a09a-2d6b3371b7ea","product_id":"913e7e62-7499-4cba-8345-71b013ef6617","title":"XS-Multicolor","weight_unit":"g","inventory_quantity":10000,"sku":"cSMDF240612-3nH-XS","barcode":"cSMDF240612-3nH","position":1,"option1":"XS","option2":"Multicolor","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/acf45093eb1834290ce743618f3348cb.jpg","path":"acf45093eb1834290ce743618f3348cb.jpg","width":750,"height":1000,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":26.95,"min_quantity":1}],"weight":"200","compare_at_price":"0","price":"26.95","retail_price":"0","available":true,"url":"\/products\/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?variant=8bb84595-4772-49e8-a09a-2d6b3371b7ea","available_quantity":10000,"options":[{"name":"Size","value":"XS"},{"name":"Color","value":"Multicolor"}],"off_ratio":0,"flashsale_info":[],"sales":6};
const saveType = "percentage"; const productLabelDiscountOn = true; return `
-
${saveType == 'percentage' ? `-${variantData.off_ratio}%` : `-` }
`; }()}
$26.95
Size Guide

We strongly suggest you to take measurements before placing an order. 
And then please use the “Size Guide” instructions and chart on every product
page to help select the size that best fits you.
How to measure:
Shoulder:  Stand up straight and relax your shoulders, measure from the tip of
one shoulder to the other.
Chest: Measure 1" under you armholes around the fullest part of your chest
including your shoulder blades.
Waist: Measure around your natural waistline, keeping the tape a bit loose.
Hip: Measure around the fullest part of the hips (about 7" down from your
natural waistline), keeping tape taut.
Length: This is the length of the clothing from where your neck/shoulders/waist
meet to the bottom of the clothing.
*The measurements chart shown on product pages are measurements for each
garment, by size. Please use the guides and reference and compare them to your
own body measurements to determine the best size. 

If your body measurements close to the maximum of the size, please choose one
size up.











Notes:
a. Please choose a corresponding size according to your measurements. 
b. The size chart listed is based on international sizing system.
c. 1-3cm / 1-1.2 inches is allowed in manual measurements error, the size chart
is for reference only. If your body measurements close to the maximum of
the size, please choose one size up.
d. The precise color of the items may vary depending on the specific monitor,
the settings and lighting conditions.

We wish you a pleasant shopping with HOO!

SPECIAL OFFER

Buy $59.00 more and save $10.00 Buy $99.00 more and save $20.00 Buy $139.00 more
and save $30.00 Buy $199.00 more and save $50.00
CLOSE
Buy $59.00 more and save $10.00 Buy $99.00 more and save $20.00 Buy $139.00 more
and save $30.00 Buy $199.00 more and save $50.00


GIFT OFFER

View the GIFT OFFER
Spend $109 to get 1 free gift(s)
CLOSE
Spend $109 to get 1 free gift(s)

Style

Size:  ${function(){ const optName = "Size"; const optionValue =
data.originData.selectData ? data.originData.selectData[optName].value :
data.originData.value; const optionValueText = optionValue ? (optionValue) : '';
return `${optionValueText}`; }()} XS
XS
S
M
L
XL
2XL
3XL
4XL
4XLT
5XL
5XLT
${function(){ const tipText = "Please select a {{ name
}}".replace(/\{\{\s+name\s+\}\}/g, data); return `
${tipText}
` }()} Color:  ${function(){ const optName = "Color"; const optionValue =
data.originData.selectData ? data.originData.selectData[optName].value :
data.originData.value; const optionValueText = optionValue ? (optionValue) : '';
return `${optionValueText}`; }()} Multicolor

${function(){ const tipText = "Please select a {{ name
}}".replace(/\{\{\s+name\s+\}\}/g, data); return `
${tipText}
` }()}
Quantity

Add to cart
$26.95
${function(){ const wholesale_enabled = false; const qty = data.quantity || 1;
const currentSelectVariant = data.variant; const defaultVariant = (data.product
&& data.product.variants && data.product.variants[0]); const productVariant =
{"id":"8bb84595-4772-49e8-a09a-2d6b3371b7ea","product_id":"913e7e62-7499-4cba-8345-71b013ef6617","title":"XS-Multicolor","weight_unit":"g","inventory_quantity":10000,"sku":"cSMDF240612-3nH-XS","barcode":"cSMDF240612-3nH","position":1,"option1":"XS","option2":"Multicolor","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/acf45093eb1834290ce743618f3348cb.jpg","path":"acf45093eb1834290ce743618f3348cb.jpg","width":750,"height":1000,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":26.95,"min_quantity":1}],"weight":"200","compare_at_price":"0","price":"26.95","retail_price":"0","available":true,"url":"\/products\/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?variant=8bb84595-4772-49e8-a09a-2d6b3371b7ea","available_quantity":10000,"options":[{"name":"Size","value":"XS"},{"name":"Color","value":"Multicolor"}],"off_ratio":0,"flashsale_info":[],"sales":6};
const variantData = currentSelectVariant || defaultVariant || productVariant;
const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled
&& wholesale_price.length > 0) { let wholesaleIndex =
wholesale_price.findIndex(item => { return item.min_quantity > qty; });
if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else
if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const
wholesalePrice = wholesale_price[wholesaleIndex] || ''; return `

` }else { const price = variantData && variantData.price; return price !=
undefined ? `

` : ''; } }()}

Buy now


Product was out of stock.
Product is unavailable.
Shipping
${function() { const minDays = parseInt('18'); const maxDays = parseInt('28');
const customText = "Estimated Delivery\uff1a{min_date} - {max_date}"; const
minDate = new Date(Date.now() + (minDays * 86400000)); const maxDate = new
Date(Date.now() + (maxDays * 86400000)); const formatDate =
(minDate.getFullYear() == maxDate.getFullYear() && minDate.getFullYear() == new
Date().getFullYear()) ? new Intl.DateTimeFormat('en', { month: 'short', day:
'2-digit' }) : new Intl.DateTimeFormat('en', { month: 'short', day: '2-digit',
year: 'numeric' }); const tipText = customText.replace(/\{min_date\}/g, '' +
formatDate.format(minDate) + '') .replace(/\{max_date\}/g, '' +
formatDate.format(maxDate) + ''); return `
${tipText}
`; }()}
Estimated Delivery:Jul 28 - Aug 07
${function() { const postageFreeAmount = 89; const custom_text = "Buy {amount}
more to enjoy FREE Shipping"; const totalPrice = +data.total_price; const
diffPrice = postageFreeAmount - totalPrice; const percentDiff = (diffPrice > 0 ?
(totalPrice / postageFreeAmount * 100) : 100) + '%'; let tipText = "Your order
is free delivery"; if (diffPrice > 0) { tipText =
custom_text.replace('{amount}', ``); } return `
${tipText}
`; }()}
Buy
$89.00
more to enjoy FREE Shipping




DESCRIPTION

SPU:     cSMDF240612-3nH
Pattern Type:     Printed
Sleeve Type:     Short Sleeve
Elasticity:     Slightly stretchy
Thickness:     Lightweight
Weight:     200g
Material:     100%Polyester
Neckline:     Turndown Collar
Occasion:     Daily
Style:     Casual
Theme:     Summer
Size:     XS,S,M,L,XL,2XL,3XL,4XL,4XLT,5XL,5XLT
Machine wash cold without fabric softener, tumble dry low or line dry, remove
promptly, press with cool iron, as needed.
Size Chart:




WORLDWIDE SHIPPING

Total Delivery Time = Processing Time + Shipping Time



1.Processing Time:

The amount of time it takes for us to prepare your order for shipment. Our
normal processing time for orders is 7-9 business days. This involves the
securing of stocks, in some cases, and the checking of product quality. Orders
can be cancelled or modified within 8 hours after being placed.

2.Shipping Time:

The amount of time it takes to receive your order after your order has shipped.
Shipping times can vary depending on your location and shipping methods.

Standard Shipping: 12-20 business days 

Express Shipping: 7-12 bussiness days 

*For items which have stock in warehouse, items will be shipped in 24 hours.

*For some remote areas, it may take up to 20 business days to deliver the
parcel.

Delay Note Due to Holidays:
Due to the Chinese New Year holiday, order processing and shipping times may be
10-15 days longer than usual.
We'll work extra hard right after the holiday to get orders out to you! We
sincerely apologize for any inconvenience this may cause and appreciate your
understanding.


SHIPPING FEE

Free shipping on orders US$89+ 

*The actual shipping cost differs depend on the shipping country and the weight
of the item.


NOTE FOR TAXES:

For most of the countries,
our customers do not need to pay for importing fees, duties or VAT
(Valued Additional Tax). However, for some limited countries (especially for some European countries such as Germany,
Italy, UK,
etc.) may need to pay duties or VAT according to your countries’ levying rules.

For more  👉Shipping Policy


HASSLE-FREE RETURNS

We're bummed if you're not 100% satisfied with the items you received, and we
gladly accept returns within 7 days of receipt for regular items in new
condition.



Step 1: Email us for the authorization
Step 2: Process the exchange/return
Step 3: Get your refund / exchange in 3-10 working days

Contact us: service@hooshops.com

For more  👉Exchange / Return / Refund Policy

NOTE: Gifts, blind boxes or clearance items are not available for exchange or
return.


Customer Reviews

Here are what our customers say.

Write a Review
Write a Review
Reviews With Photos

Newest
Newest

Most liked
Highest ratings
Lowest ratings

No reviews yet, why don't you leave the first review?
Write a Review
Customer Reviews
Reviews With Photos


Newest

Most liked
Highest ratings
Lowest ratings

×





${function(){ const limit = typeof data === 'number' ? data : 0; return `
Pictures/Videos (${limit || 0}/5)
` }()}
${(function(){ const closeIcon = ' '; if (item.type === 'image') { return `
${closeIcon}
` } return `
${closeIcon}
` })()}
Submit Comments Anonymously
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) {
super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() {
this.action = SPZServices.actionServiceForDoc(this.element);
this.registerAction('upload', (data) => {
this.handleFileUpload_(data.event?.detail?.data || []); });
this.registerAction('delete', (data) => {
this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview',
(data) => { this.handleFilePreview_(data?.args?.data); });
this.registerAction('limit', (data) => { this.handleFileLimit_(); });
this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); }
isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; }
setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; }
handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url
=== i.url)) return; this.fileList_.push(i); }) this.uploadCount_++;
sessionStorage.setItem('fileList', JSON.stringify(this.fileList_));
this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files:
this.fileList_}); if(this.fileList_.length >= 5){
document.querySelector('#review_upload').style.display = 'none'; }
if(this.fileList_.length > 0){
document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop =
'8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1);
this.uploadCount_--; sessionStorage.setItem('fileList',
JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count:
this.uploadCount_, files: this.fileList_});
document.querySelector('#review_upload').style.display = 'block';
if(this.fileList_?.length === 0){
document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop =
'132px'; } } handleFilePreview_(index) { const finalPreviewData =
this.fileList_[index]; const filePreviewModal =
document.getElementById('filePreviewModal'); const fullScreenVideo =
document.getElementById('fullScreenVideo'); const fullScreenImage =
document.getElementById('fullScreenImage'); const previewModalClose =
document.getElementById('previewModalClose'); const previewLoading =
document.getElementById('previewLoading'); filePreviewModal.style.display =
'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type ===
'video'){ const media = this.mediaParse_(this.fileList_[index]?.url);
fullScreenVideo.addEventListener('canplaythrough', function() {
previewLoading.style.display = 'none'; }); fullScreenImage.src = '';
fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block';
fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload =
function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = '';
fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block';
fullScreenImage.src = finalPreviewData.url; }
previewModalClose.addEventListener('click', function() {
filePreviewModal.style.display = 'none'; }); } handleFileLimit_() {
alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files
more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() {
alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not
exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0;
sessionStorage.setItem('fileList', JSON.stringify(this.fileList_));
this.triggerEvent_("handleClear", { count: this.uploadCount_, files:
this.fileList_}); document.querySelector('#review_upload').style.display =
'block'; } mediaParse_(url) { var result = {}; try {
url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try {
result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; }
}); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; }
triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name,
data); this.action.trigger(this.element, name, event); } }
SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not
support to.

YOU MAY ALSO LIKE

Save 10% Save 10%


HOO® STUNNING FIGHTER AND PIRATE SHIP PRINTING SHORT SLEEVE SHIRT

from $26.95 $30.00
Save 17% Save 17%


HOO® RED BROWN SKY FIGHTER AND FLYING TIGER PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® EYE-CATCHING WILD JUNGLE ANIMALS LIONS AND TIGERS PRINTING CUBAN COLLAR
HAWAIIAN SHORT SLEEVE SHIRT

from $27.95


HOO® FUNNY ANIMALS BALD PIG PRINTING SHORT SLEEVE SHIRT

from $26.95
Save 17% Save 17%


HOO® NAVY LIGHTNING FIGHTER FLEET AND BALD EAGLE PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® TECHNOLOGY FIGHTER AND EAGLE PATTERN PRINTING SHORT SLEEVE SHIRT

(1)
from $26.95
Save 17% Save 17%


HOO® HAWAII FUNNY ANIMAL UNHAPPY DONKEY ART PAINTING PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® GAME ELEMENTS CARTOON COLORFUL JELLYFISH AND YELLOW MOUTH MONSTER MAZE
PRINTING SHORT SLEEVE SHIRT

from $25.95


HOO® HOO® BLUE SKY FIGHTER AND LIGHTNING HORSE PRINTING SHORT SLEEVE SHIRT

from $26.95


HOO® PINK WHITE STRIPES CONTRASTING COLOR AND FLAMINGO PRINTING FUNNY SUMMER
HAWAIIAN SHORT SLEEVE SHIRT

(10)
from $25.95


HOO® FIGHTER ART POSTER FIGHTER SWARM AND PLAINS PRINTING BREAST POCKET SHORT
SLEEVE SHIRT

from $26.95


HOO® COLORFUL INK SPLASH OSTRICH ART PRINTING SHORT SLEEVE SHIRT

from $26.95


HOO® NAVY CLOUDY SKY FIGHTER AND ROARING BLACK PANTHER PRINTING SHORT SLEEVE
SHIRT

from $26.95


HOO® BLUE UKIYO-E ROMANTIC HAND-PAINTED FLOWERS AND BRANCHES PRINTING BREAST
POCKET SHORT SLEEVE SHIRT

from $26.95


HOO® BLUE AND GREEN COLOR MATCHING HIPPIE BUS FLOWER PATTERN CARTOON COSTUMES
BREAST POCKET SHORT SLEEVE SHIRT

from $26.95


HOO® EYE-CATCHING WILD UNIVERSE GALAXIES AND WILD ANIMALS PRINTING CUBAN COLLAR
HAWAIIAN SHORT SLEEVE SHIRT

from $27.95
Save 17% Save 17%


HOO® GREY FIGHTER AND FIERCE WOLF PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® CARTOON BLUE ANGRY SHEEP PORTRAIT PRINTING SHORT SLEEVE SHIRT

from $26.95
Save 14% Save 14%


HOO® RETRO CYAN POSTER SPACE WARS SCIENCE FICTION SPACESHIPS AND SNOWFIELDS
PRINTING SHORT SLEEVE SHIRT

from $25.95 $30.00


HOO® RETRO COLOR BLOCK DESIGN I'M NOT OLD I'M CLASSIC FUNNY CAR PRINTING BREAST
POCKET SHORT SLEEVE SHIRT

(1)
from $25.95
Save 10% Save 10%


HOO® STUNNING FIGHTER AND PIRATE SHIP PRINTING SHORT SLEEVE SHIRT

from $26.95 $30.00
Save 17% Save 17%


HOO® RED BROWN SKY FIGHTER AND FLYING TIGER PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® EYE-CATCHING WILD JUNGLE ANIMALS LIONS AND TIGERS PRINTING CUBAN COLLAR
HAWAIIAN SHORT SLEEVE SHIRT

from $27.95


HOO® FUNNY ANIMALS BALD PIG PRINTING SHORT SLEEVE SHIRT

from $26.95
Save 17% Save 17%


HOO® NAVY LIGHTNING FIGHTER FLEET AND BALD EAGLE PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® TECHNOLOGY FIGHTER AND EAGLE PATTERN PRINTING SHORT SLEEVE SHIRT

(1)
from $26.95
Save 17% Save 17%


HOO® HAWAII FUNNY ANIMAL UNHAPPY DONKEY ART PAINTING PRINTING SHORT SLEEVE SHIRT

from $24.95 $30.00


HOO® GAME ELEMENTS CARTOON COLORFUL JELLYFISH AND YELLOW MOUTH MONSTER MAZE
PRINTING SHORT SLEEVE SHIRT

from $25.95


HOO® HOO® BLUE SKY FIGHTER AND LIGHTNING HORSE PRINTING SHORT SLEEVE SHIRT

from $26.95


HOO® PINK WHITE STRIPES CONTRASTING COLOR AND FLAMINGO PRINTING FUNNY SUMMER
HAWAIIAN SHORT SLEEVE SHIRT

(10)
from $25.95
View more




RECENTLY VIEWED





INFORMATION

 * Our Story
 * Privacy Policy
 * Terms of Service
 * Affiliate Program
 * Influencer Program
 * Uniforms, Mass Customization and B2B Service
 * Intellectual Property Rights

INFORMATION

 * Our Story
 * Privacy Policy
 * Terms of Service
 * Affiliate Program
 * Influencer Program
 * Uniforms, Mass Customization and B2B Service
 * Intellectual Property Rights

CUSTOMER SERVICES

 * Size Guide
 * Payment Methods
 * Shipping Policy
 * Exchange / Return / Refund Policy
 * Order Tracking
 * Do Not Sell My Personal Information
 * FAQs

CUSTOMER SERVICES

 * Size Guide
 * Payment Methods
 * Shipping Policy
 * Exchange / Return / Refund Policy
 * Order Tracking
 * Do Not Sell My Personal Information
 * FAQs

GET IN TOUCH

Contact Us Leave FB Message

GET IN TOUCH

Contact Us Leave FB Message

Follow us

 * 
 * 
 * 
 * 
 * 

Follow us

 * 
 * 
 * 
 * 
 * 

WE ACCEPT

 * PayPal
 * American Express
 * Diners Club
 * Discover
 * Mastercard
 * Visa
 * JCB
 * Maestro

WE ACCEPT

 * PayPal
 * American Express
 * Diners Club
 * Discover
 * Mastercard
 * Visa
 * JCB
 * Maestro

© 2024 HOO® Size Guide Payment Methods Shipping Policy Exchange / Return /
Refund Policy Order Tracking Do Not Sell My Personal Information FAQs

CART



Your shopping bag is empty
Continue shopping
 * ${item.product_title}
    * ${item.options.map(option => option.value).join('/')}
    * ${propertie.name}/${propertie.isImage ? `View image` : propertie.value}
   
   Free gift
   Mixed Lot
   *${item.quantity}
   ${item.item_text}
   
   ${discount_item.title}
   (-)

${(function(){ var total_price = data.total_price; var postageFreeAmount = 89;
var freeAmount = postageFreeAmount - total_price; var isFreeShipping =
freeAmount <= 0; var rate = Math.min(total_price / postageFreeAmount * 100,
100).toFixed(2); const textArray = ("Spend {{ amount }} more and get free
shipping!").split(/\{\{\s*amount\s*\}\}/); const textArrayHtml =
textArray.map((text, index) => { if (index == 0) { return `${text}`; } return
`${text}`; }).join(''); return `
${textArrayHtml}
You've got free shipping

${rate}%
` })()}
Total:

${function() { const textArray = ("Save
{{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 &&
textArray.length < 2) { textArray.push(''); } return textArray.map((text, index)
=> { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()}
${function() { const textArray = ("Save
{{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 &&
textArray.length < 2) { textArray.push(''); } return textArray.map((text, index)
=> { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()}
 * ${discount_application.title}: -

${data.invalid_msg}
Check out

Taxes and shipping calculated at checkout

${(function(){ var total_price = data.total_price; var postageFreeAmount = 89;
var freeAmount = postageFreeAmount - total_price; var isFreeShipping =
freeAmount <= 0; var rate = Math.min(total_price / postageFreeAmount * 100,
100).toFixed(2); const textArray = ("Spend {{ amount }} more and get free
shipping!").split(/\{\{\s*amount\s*\}\}/); const textArrayHtml =
textArray.map((text, index) => { if (index == 0) { return `${text}`; } return
`${text}`; }).join(''); return `
${textArrayHtml}
You've got free shipping

${rate}%
` })()}
${data.invalid_msg}
Total: 

${function() { const textArray = ("Save
{{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 &&
textArray.length < 2) { textArray.push(''); } return textArray.map((text, index)
=> { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()}
${function() { const textArray = ("Save
{{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 &&
textArray.length < 2) { textArray.push(''); } return textArray.map((text, index)
=> { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()}
${function() { const textArray = ("Save
{{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 &&
textArray.length < 2) { textArray.push(''); } return textArray.map((text, index)
=> { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()}
 * ${discount_application.title}: -

Check out

${data.invalid_msg}
Check out

Taxes and shipping calculated at checkout
 * Subtotal:
 * ${discount_application.title}: -

Total:

Check out

Taxes and shipping calculated at checkout
const summaryStickyRender =
document.querySelector('#cart-drawer-summary-sticky-render'); if
(summaryStickyRender) {
document.body.style.setProperty('--cart-drawer-summary-sticky-height',
summaryStickyRender.clientHeight + 'px'); }

View Cart
${function(){ const productData = data.product; let product_change_event = '',
mouse_over_event = ' '; mouse_out_event = ''; const product_options =
productData.options.filter(Boolean) || []; for (let opt of product_options) {
const nameEscape = opt.name.replace(/\/|\\|\s|\'|\"|`|\<|\>/g, '')
product_change_event = product_change_event +
`quick-shop-selected-variant-${opt.id}.rerender(data=event.selectedValues.${opt.name});`;
mouse_out_event = mouse_out_event +
`quick-shop-selected-variant-${opt.id}.rerender(data=event.selectData.${opt.name});`;
mouse_over_event = mouse_over_event +
`@${nameEscape}Mouseover="quick-shop-selected-variant-${opt.id}.rerender(data=event);"`;
} const selectedVariant = productData.variants.find(v => v.available) ||
productData.variants[0]; const statusLan = ((selectedVariant &&
!selectedVariant.available) || (!selectedVariant && !productData.available)) ?
"Sold out" : "Add to cart"; return `
${statusLan}

` }()}

${function(){ const currentSelectVariant = data.variant; const defaultVariant =
(data.product && data.product.variants && data.product.variants[0]); const
variantData = currentSelectVariant || defaultVariant || data; const retail_price
= variantData.retail_price || 0; return `
Retail
` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity
|| 1; const currentSelectVariant = data.variant; const defaultVariant =
(data.product && data.product.variants && data.product.variants[0]); const
productVariant =
{"id":"8bb84595-4772-49e8-a09a-2d6b3371b7ea","product_id":"913e7e62-7499-4cba-8345-71b013ef6617","title":"XS-Multicolor","weight_unit":"g","inventory_quantity":10000,"sku":"cSMDF240612-3nH-XS","barcode":"cSMDF240612-3nH","position":1,"option1":"XS","option2":"Multicolor","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/acf45093eb1834290ce743618f3348cb.jpg","path":"acf45093eb1834290ce743618f3348cb.jpg","width":750,"height":1000,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":26.95,"min_quantity":1}],"weight":"200","compare_at_price":"0","price":"26.95","retail_price":"0","available":true,"url":"\/products\/csmdf240612-3nh-gcg4-1ex9-ezef-3ltd-fmsj-jq8z-zjx3-281e-c0v3-ivrm?variant=8bb84595-4772-49e8-a09a-2d6b3371b7ea","available_quantity":10000,"options":[{"name":"Size","value":"XS"},{"name":"Color","value":"Multicolor"}],"off_ratio":0,"flashsale_info":[],"sales":6};
const variantData = currentSelectVariant || defaultVariant || productVariant;
const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled
&& wholesale_price.length > 0) { let wholesaleIndex =
wholesale_price.findIndex(item => { return item.min_quantity > qty; });
if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else
if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const
wholesalePrice = wholesale_price[wholesaleIndex] || ''; return `

` }else { const price = variantData && variantData.price; return price !=
undefined ? `

` : ''; } }()}
${function() { let variantImageShowed = false; const currentProduct =
data.product; return (currentProduct.options || []).map((option, index) => {
const optionName = option.name || ''; const optionId = option.id || ''; const
position = `option${index + 1}`; let isThumbImage = false; if
(currentProduct.need_variant_image && !variantImageShowed) { const variantNames
= ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) {
const name = variantNames[i].toLowerCase(); if (name ===
optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } }
} const variantType = "button"; const thumbStyle = "image"; return `
${optionName}: 
${option.values.map((value, idx) => { const selected =
data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage =
null; if (isThumbImage) { const variants = currentProduct.variants; for (let i =
0, len = variants.length; i < len; i++) { const variant = variants[i]; if
(variant[position] == value && thumbImage == null) { thumbImage = variant.image;
break; } } } return `
${value}
` }).join('')}
${optionName}
${option.values.map(value => { const selected = data.selectedValues[optionName]
== value ? 'selected' : ''; return `${value}` }).join('')}
` }).join(''); }()}
${data.originData && data.originData.value || data.value}

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

111
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}
`; })()}
GIFTS

POINTS



$0.00



1




Original text

Rate this translation
Your feedback will be used to help improve Google Translate