www.uflashion.com Open in urlscan Pro
2606:4700::6812:e82a  Public Scan

Submitted URL: http://www.uflashion.com/
Effective URL: https://www.uflashion.com/
Submission: On March 17 via api from US — Scanned from DE

Form analysis 8 forms found in the DOM

<form class="search-predictive-form" id="search-predictive-form" is="spz-form">
  <input class="search-predictive-form-input border rounded-md w-full text-base" id="search-predictive-form-input" type="text" autocomplete="off" name="q" autofocus="" placeholder="Search"
    @input-debounced="search-predictive-search-icon-render.rerender(data=event.value);search-predictive-result.rerender(data=event.value);">
  <button class="search-predictive-form-clear clear text-0" type="button" @tap="search-predictive-search-icon-render.rerender(data='');search-predictive-form.clear();search-predictive-result.rerender(data='');"><svg class="" width="24" height="24"
      fill="none" xmlns="http://www.w3.org/2000/svg">
      <rect width="24" height="24" rx="12" fill="#F6F6F6"></rect>
      <path d="M15.813 9.093a.64.64 0 0 0-.906-.905L12 11.095 9.093 8.188a.64.64 0 0 0-.905.905L11.094 12l-2.906 2.907a.64.64 0 0 0 .905.905L12 12.906l2.907 2.906a.64.64 0 0 0 .905-.905L12.906 12l2.906-2.907Z" fill="currentColor"></path>
    </svg></button>
  <spz-render class="search-predictive-search-icon-container absolute top-0 left-0 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" id="search-predictive-search-icon-render"
    layout="container" i-spzhtml-layout="container">
    <template>
      <a class="search-predictive-search-icon flex" href="/search?q=${encodeURIComponent(typeof data === 'string' ? data : '')}">

  <svg class="lg:hidden" width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7 .8a6.2 6.2 0 1 0 3.992 10.945l2.534 2.535a.534.534 0 0 0 .754-.755l-2.534-2.534A6.2 6.2 0 0 0 7 .8ZM1.868 7a5.133 5.133 0 1 1 10.267 0A5.133 5.133 0 0 1 1.867 7Z" fill="currentColor"></path></svg>

                
  <svg class="md:hidden" width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M20 0H0v20h20V0Z" fill="#fff" fill-opacity="0"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.75 1a7.75 7.75 0 1 0 4.989 13.681l3.168 3.168a.667.667 0 0 0 .942-.942l-3.168-3.168A7.75 7.75 0 0 0 8.75 1ZM2.333 8.75a6.417 6.417 0 1 1 12.834 0 6.417 6.417 0 0 1-12.834 0Z" fill="currentColor"></path></svg>

              </a>
    </template>
  </spz-render>
</form>

<form class="zb-flex zb-flex-col zb-relative zb-w-full">
  <div class="zb-overflow-y-auto zb-pb-[100px]">
    <div class="zb-flex zb-items-center zb-pb-4 zb-border-b zb-border-t-0 zb-border-l-0 zb-border-r-0 zb-border-solid zb-border-[#eee] md:zb-border-none"> <ljs-render layout="container"
        class="zb-flex-shrink-0 zb-w-[66px] zb-mr-4 rtl:zb-ml-4 rtl:zb-mr-0 zb-h-[70px] md:zb-hidden" id="smart_recommend_product_image" manual="" template="smart_recommend_product_image_template"></ljs-render>
      <div class="zb-w-full">
        <div class="zb-line-clamp-2 zb-mb-2 zb-text-sm md:zb-text-base">${product.title}</div>
        <div class="zb-flex zb-justify-between zb-items-center"> <spz-render layout="container" template="smart_recommend_price_template" id="smart_recommend_modal_price" manual="">
            <div class="zb-flex zb-items-center"> <ljs-currency class="zb-font-semibold zb-text-[22px] zb-text-[#CD201A] zb-mr-2" layout="container" value="${product.min_price_variant.price}"></ljs-currency> <ljs-currency
                class="zb-text-[#93989D] zb-text-xs zb-line-through" layout="container" value="${product.min_price_variant.compare_at_price}"
                spz-if="${product.min_price_variant.compare_at_price > product.min_price_variant.price ? true : false}"></ljs-currency> </div>
          </spz-render>
          <a class="zb-flex zb-items-center zb-cursor-pointer zb-text-[#212B36] zb-no-underline" href="${product.url}?${toQuery({ aid: 'smart_recommend.' + data.show_type + '.' + data.rule_id, ifb: product.ifb || '', cfb: product.cfb || '', scm: data.scm || '', ssp: data.ssp || '' })}"> <span class="zb-text-[13px]">See detail</span> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path d="M13.1714 12.0007L8.22168 7.05093L9.63589 5.63672L15.9999 12.0007L9.63589 18.3646L8.22168 16.9504L13.1714 12.0007Z" fill="#93989D"></path></svg> </a>
        </div>
      </div>
    </div> <ljs-variants id="smart_recommend_product_variants" layout="container" template="smart_recommend_product_variant_template" slide="smart_recommend_carousel" disabled-dj-event="" interference=""> </ljs-variants>
    <div class="zb-text-sm zb-mb-2">Quantity</div> <ljs-quantity disabled-dj-event="" layout="fixed" width="150" height="52" min="1" max="999999" value="1" input-class="!zb-text-base" icon-class="!zb-p-3"></ljs-quantity>
  </div>
  <div class="zb-absolute zb-bottom-0 zb-flex md:zb-flex-col zb-w-full zb-bg-white"> <button
      class="zb-flex zb-items-center zb-mr-2 rtl:zb-ml-2 rtl:zb-mr-0 md:zb-mb-2 zb-justify-center zb-cursor-pointer zb-w-full zb-border zb-border-solid zb-border-[#313131] zb-bg-white zb-rounded zb-h-[42px]" role="addToCart" type="button"
      @tap="smart_recommend_func.addATCHook(rule_id='${data.rule_id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${data.scm}',ssp='${data.ssp}',spmIndex='${data.productIndex}');"> <span>Add To Cart</span> </button> <button
      class="zb-flex zb-items-center zb-justify-center zb-cursor-pointer zb-w-full zb-bg-[#292929] zb-text-white zb-rounded zb-h-[42px] zb-border-none" type="button" role="buyNow"
      @tap="smart_recommend_loading.showLoading;smart_recommend_func.addATCHook(rule_id='${data.rule_id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${data.scm}',ssp='${data.ssp}',spmIndex='${data.productIndex}');"> <span>Buy Now</span> </button>
  </div>
</form>

POST

<form id="footer-newsletter-form" class="footer-newsletter-form mt-3" action-xhr="/api/customers/newsletters" method="POST" custom-validation="change-interact-and-submit"
  @submiterror="footer-newsletter-error.rerender(data=event);footer-newsletter-error.toggleClass(class='hidden', force=false);"
  @submitsuccess="footer-subscription-popup.open;footer-newsletter-subscription-success.toggleClass(class='hidden', force=false);footer-newsletter-form.toggleClass(class='hidden', force=true);footer-newsletter-error.toggleClass(class='hidden', force=true);">
  <div class="footer-newsletter-form-group flex items-center justify-between border rounded">
    <div class="footer-newsletter-form-item relative flex-1">
      <input class="footer-newsletter-form-input clear w-full text-base" type="text" id="footer-newsletter-email" name="email" required=""
        pattern="[a-zA-Z0-9!#$%&amp;'*+\\/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'*+\\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"
        @input-debounced="footer-newsletter-error.toggleClass(class='hidden', force=true);">
      <label class="footer-newsletter-form-label absolute color-footer-text-60 text-base" for="footer-newsletter-email"> Your email </label>
    </div>
    <button class="footer-newsletter-submit-btn button-primary flex-shrink-0" type="submit"> Join </button>
  </div>
  <div class="footer-newsletter-tip flex text-sm color-footer-text-80" validation-for="footer-newsletter-email" visible-when-invalid="valueMissing" hidden="">
    <svg class="flex-shrink-0" width="14" height="14" xmlns="http://www.w3.org/2000/svg">
      <rect width="14" height="14" rx="7" fill="#EB391B"></rect>
      <path fill-rule="evenodd" clip-rule="evenodd" d="M7 2.9a.6.6 0 0 1 .6.6v4.8a.6.6 0 1 1-1.2 0V3.5a.6.6 0 0 1 .6-.6Z" fill="#fff"></path>
      <path d="M7.6 10.5a.6.6 0 1 1-1.2 0 .6.6 0 0 1 1.2 0Z" fill="#fff"></path>
    </svg>Please fill in this field
  </div>
  <div class="footer-newsletter-tip flex text-sm color-footer-text-80" validation-for="footer-newsletter-email" visible-when-invalid="patternMismatch" hidden="">
    <svg class="flex-shrink-0" width="14" height="14" xmlns="http://www.w3.org/2000/svg">
      <rect width="14" height="14" rx="7" fill="#EB391B"></rect>
      <path fill-rule="evenodd" clip-rule="evenodd" d="M7 2.9a.6.6 0 0 1 .6.6v4.8a.6.6 0 1 1-1.2 0V3.5a.6.6 0 0 1 .6-.6Z" fill="#fff"></path>
      <path d="M7.6 10.5a.6.6 0 1 1-1.2 0 .6.6 0 0 1 1.2 0Z" fill="#fff"></path>
    </svg>Please enter a valid email address
  </div>
</form>

POST

<form id="footer-newsletter-form-md" class="footer-newsletter-form mt-3" action-xhr="/api/customers/newsletters" method="POST" custom-validation="change-interact-and-submit"
  @submiterror="footer-newsletter-error-md.rerender(data=event);footer-newsletter-error-md.toggleClass(class='hidden', force=false);"
  @submitsuccess="footer-subscription-popup.open;footer-newsletter-subscription-success-md.toggleClass(class='hidden', force=false);footer-newsletter-form-md.toggleClass(class='hidden', force=true);footer-newsletter-error-md.toggleClass(class='hidden', force=true);">
  <div class="footer-newsletter-form-group flex items-center justify-between border rounded">
    <div class="footer-newsletter-form-item relative flex-1">
      <input class="footer-newsletter-form-input clear w-full text-base" type="text" id="footer-newsletter-email-md" name="email" required=""
        pattern="[a-zA-Z0-9!#$%&amp;'*+\\/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'*+\\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"
        @input-debounced="footer-newsletter-error.toggleClass(class='hidden', force=true);">
      <label class="footer-newsletter-form-label absolute color-footer-text-60 text-base" for="footer-newsletter-email-md"> Your email </label>
    </div>
    <button class="footer-newsletter-submit-btn button-primary flex-shrink-0" type="submit"> Join </button>
  </div>
  <div class="footer-newsletter-tip flex text-sm color-footer-text-80" validation-for="footer-newsletter-email-md" visible-when-invalid="valueMissing" hidden="">
    <svg class="flex-shrink-0" width="14" height="14" xmlns="http://www.w3.org/2000/svg">
      <rect width="14" height="14" rx="7" fill="#EB391B"></rect>
      <path fill-rule="evenodd" clip-rule="evenodd" d="M7 2.9a.6.6 0 0 1 .6.6v4.8a.6.6 0 1 1-1.2 0V3.5a.6.6 0 0 1 .6-.6Z" fill="#fff"></path>
      <path d="M7.6 10.5a.6.6 0 1 1-1.2 0 .6.6 0 0 1 1.2 0Z" fill="#fff"></path>
    </svg>Please fill in this field
  </div>
  <div class="footer-newsletter-tip flex text-sm color-footer-text-80" validation-for="footer-newsletter-email-md" visible-when-invalid="patternMismatch" hidden="">
    <svg class="flex-shrink-0" width="14" height="14" xmlns="http://www.w3.org/2000/svg">
      <rect width="14" height="14" rx="7" fill="#EB391B"></rect>
      <path fill-rule="evenodd" clip-rule="evenodd" d="M7 2.9a.6.6 0 0 1 .6.6v4.8a.6.6 0 1 1-1.2 0V3.5a.6.6 0 0 1 .6-.6Z" fill="#fff"></path>
      <path d="M7.6 10.5a.6.6 0 1 1-1.2 0 .6.6 0 0 1 1.2 0Z" fill="#fff"></path>
    </svg>Please enter a valid email address
  </div>
</form>

POST

<form id="cart-note-form" class="hidden w-full mt-5" method="POST" action-xhr="/api/cart/note" items="cart">
  <textarea class="cart-note-textarea w-full rounded-md border" id="cart-note-textarea" name="note" rows="4" @input-debounced="cart-note-form-md.insert(name='note', value=event.value);cart-note-form.insert(name='note', value=event.value);"
    @change="cart-note-form.submit(actionXhr='/api/cart/note');cart-note-render-md.rerender(data=event);cart-note-render.rerender(data=event);cart-note.toggleClass(class='hidden', force=true);cart-note-form.toggleClass(class='hidden', force=true);"
    autofocus=""></textarea>
</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>

<form class="animated modal__form-style_template_rebate_multi layers-4" id="modal__form"
  style="image: url(https://cdn.shoplazza.com/7c5e7799526c3d7f15721d8dd93d4d78.jpg); background: url(https://cdn.shoplazza.com/7c5e7799526c3d7f15721d8dd93d4d78.jpg) no-repeat scroll center center/cover; background1: #ff704f; background2: #ff274b; backgroundImageTemplate: linear-gradient(180deg, $bg1, $bg2, $bg2); ; width: 620px;">
  <div class="modal__title">
    <p><span style="font-size: 32px; font-weight: 900; font-family: Lato, Lato-Black; color: #fefffe;">SALE OFFER</span></p>
  </div>
  <div class="modal__discount-layers layers-4" style="width: 500px;">
    <div class="modal__discount-layer layer-0">
      <div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(1); width: 106px; height: 80px;">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">20</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">2nd <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">20</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">2nd <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <defs>
          <filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
            <feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
            <feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
            <feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
          </filter>
          <path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
        </defs>
        <g fill="none" fill-rule="evenodd">
          <g transform="translate(8 6)">
            <use fill="#FFFBF2" xlink:href="#b"></use>
          </g>
          <path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
        </g>
      </svg>
    </div>
    <div class="modal__discount-layer layer-1">
      <div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(1); width: 106px; height: 80px;">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">30</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">3rd <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">30</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">3rd <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <defs>
          <filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
            <feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
            <feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
            <feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
          </filter>
          <path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
        </defs>
        <g fill="none" fill-rule="evenodd">
          <g transform="translate(8 6)">
            <use fill="#FFFBF2" xlink:href="#b"></use>
          </g>
          <path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
        </g>
      </svg>
    </div>
    <div class="modal__discount-layer layer-2">
      <div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(1); width: 106px; height: 80px;">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">40</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">4th <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">40</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">4th <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <defs>
          <filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
            <feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
            <feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
            <feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
          </filter>
          <path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
        </defs>
        <g fill="none" fill-rule="evenodd">
          <g transform="translate(8 6)">
            <use fill="#FFFBF2" xlink:href="#b"></use>
          </g>
          <path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
        </g>
      </svg>
    </div>
    <div class="modal__discount-layer layer-3">
      <div class="discount-layer__content d-flex flex-column justify-content-center align-items-center" style="transform: scale(1); width: 106px; height: 80px;">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">100</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">5th <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <div class="discount-layer__content_hidden d-flex flex-column justify-content-center align-items-center">
        <div style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;" data-mce-style="color:#ff2f4b;font-family: Lato, Lato-Regular;white-space: nowrap;">
          <div style="display: flex;justify-content: center;" data-mce-style="display: flex;justify-content: center;">
            <span style="font-size: 44px; color: #ff2f4b;" data-mce-style="display: block;font-size: 44px; color: inherit;">100</span>
            <div style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;" data-mce-style="margin-left: 5px;display: flex;flex-direction: column;justify-content: center;">
              <span style="font-size: 26px;display: block;" data-mce-style="display: block;font-size: 26px; color: #ff2f4b;">%</span>
              <span style="color:#ff2f4b;font-size: 12px;" data-mce-style="color:#ff2f4b;font-size: 12px;">OFF</span>
            </div>
          </div>
          <div style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;" data-mce-style="margin-top: 5px;color: #AE6002;font-size: 12px;opacity: 0.3;">FOR THE</div>
          <div style="margin-top: 5px;font-size: 14px; color: #AE6002;" data-mce-style="margin-top: 5px;font-size: 14px; color: #AE6002;">5th <span style="color: #AE6002;" data-mce-style="color: #AE6002;">ITEM</span></div>
        </div>
      </div>
      <svg class="modal__discount-bg" width="166" height="104" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <defs>
          <filter x="-8.7%" y="-12.5%" width="117.3%" height="129.5%" filterUnits="objectBoundingBox" id="a">
            <feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
            <feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
            <feColorMatrix values="0 0 0 0 1 0 0 0 0 0 0 0 0 0 0.0980392157 0 0 0 0.5 0" in="shadowBlurOuter1"></feColorMatrix>
          </filter>
          <path d="M150 0v8a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6a5 5 0 100 10v6H0v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6a5 5 0 000-10v-6A5 5 0 000 8V0h150z" id="b"></path>
        </defs>
        <g fill="none" fill-rule="evenodd">
          <g transform="translate(8 6)">
            <use fill="#FFFBF2" xlink:href="#b"></use>
          </g>
          <path stroke="#AE6002" opacity=".196" stroke-dasharray="2.6" d="M142.5 12v76m-120-76v76"></path>
        </g>
      </svg>
    </div>
  </div>
  <div class="modal__button" style="background-color: #fff3be; border-color: #fff3be; "><span style="color: #FF0022; font-size: 16px; font-weight: bold;font-family: Lato, Lato-Regular;"
      data-mce-style="color: #FF0022; font-size: 16px; font-weight: bold;font-family: Lato, Lato-Regular;">COLLECT ALL</span></div>
  <div class="modal__close-icon d-block d-md-none notranslate">
    <svg width="30" height="30" xmlns="http://www.w3.org/2000/svg">
      <g fill="#FFF" fill-rule="nonzero">
        <path d="M15 0c8.284 0 15 6.716 15 15 0 8.284-6.716 15-15 15-8.284 0-15-6.716-15-15C0 6.716 6.716 0 15 0zm0 2C7.82 2 2 7.82 2 15s5.82 13 13 13 13-5.82 13-13S22.18 2 15 2z"></path>
        <path
          d="M19.905 9.505a.7.7 0 01.073.903l-.073.087-4.211 4.209 4.21 4.21a.7.7 0 01-.903 1.064l-.086-.073-4.211-4.211-4.209 4.21a.7.7 0 01-1.064-.903l.074-.086 4.21-4.211-4.21-4.209a.7.7 0 01.903-1.064l.087.074 4.209 4.21 4.21-4.21a.7.7 0 01.99 0z">
        </path>
      </g>
    </svg>
  </div>
  <svg class="modal__close-icon d-md-block d-none" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
    <defs>
      <style></style>
    </defs>
    <path d="M238.36 863.697L863.696 238.36a46.545 46.545 0 00-65.815-65.815L172.544 797.882a46.545 46.545 0 1065.815 65.815zM172.543 238.36l625.338 625.338a46.545 46.545 0 0065.815-65.815L238.36 172.544a46.545 46.545 0 10-65.815 65.815z"
      fill="#ffffff"></path>
  </svg>
  <div class="modal__footer">
    <span style="font-size: 14px; color: #ffffff;font-family: Lato, Lato-Regular;" data-mce-style="font-size: 14px; color: #ffffff;font-family: Lato, Lato-Regular;">*Discounts would automatically apply when placing an order</span>
  </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

See all offers

 * Free Shipping Over $69 Free Shipping Over $69 Shop now

Free Shipping Over $69 Shop now


Free Shipping Over $69 Shop now

 * Home
 * HOT SALE
 * New Arrival
 * Farm
 * Animal
    * Dog
    * Cat
    * Cow
    * Horse
    * Farm
    * Bee
    * Fox
    * Chicken
    * Birds
    * Rabbit

 * More links
   * 🔥Cotton
   * 🔥Japanese Art
      * W's Art
      * M's Art
   
   * Men
      * M's west
      * M's Art
      * Viking
   
   * Ocean
   * Dress
   * Bottom
   * Set
   * Accessories
   * Sweater
   * Plant
   * Tribe
   * West
   * Sport


Powered by Google Übersetzer
English,한국어,日本語,Português,العربية,Русский,Español,繁體中文,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa
Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar
EUR
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Afghan Afghani (AFN)
 * Albanian Lek (ALL)
 * Algerian Dinar (DZD)
 * Angolan Kwanza (AOA)
 * Argentine Pesos (ARS)
 * Armenian Dram (AMD)
 * Aruban Florin (AWG)
 * Australian Dollars (AUD)
 * Barbadian Dollar (BBD)
 * Azerbaijani Manat (AZN)
 * Bangladesh Taka (BDT)
 * Bahamian Dollar (BSD)
 * Bahraini Dinar (BHD)
 * Belarusian Ruble (BYN)
 * Belize Dollar (BZD)
 * Bhutanese Ngultrum (BTN)
 * Bosnia and Herzegovina Convertible Mark (BAM)
 * Brazilian Real (BRL)
 * Bolivian Boliviano (BOB)
 * Botswana Pula (BWP)
 * Brunei Dollar (BND)
 * Bulgarian Lev (BGN)
 * Burmese Kyat (MMK)
 * Cambodian Riel (KHR)
 * Cape Verdean escudo (CVE)
 * Cayman Dollars (KYD)
 * Central African CFA Franc (XAF)
 * Chilean Peso (CLP)
 * Colombian Peso (COP)
 * Comorian Franc (KMF)
 * Congolese franc (CDF)
 * Costa Rican Colones (CRC)
 * Croatian Kuna (HRK)
 * Czech Koruny (CZK)
 * Danish Kroner (DKK)
 * Dominican Peso (DOP)
 * East Caribbean Dollar (XCD)
 * Egyptian Pound (EGP)
 * Ethiopian Birr (ETB)
 * CFP Franc (XPF)
 * Fijian Dollars (FJD)
 * Gambian Dalasi (GMD)
 * Ghanaian Cedi (GHS)
 * Guatemalan Quetzal (GTQ)
 * Guyanese Dollar (GYD)
 * Georgian Lari (GEL)
 * Haitian Gourde (HTG)
 * Honduran Lempira (HNL)
 * Hong Kong Dollars (HKD)
 * Hungarian Forint (HUF)
 * Icelandic Kronur (ISK)
 * Indian Rupees (INR)
 * Indonesian Rupiah (IDR)
 * Israeli New Shekel (NIS)
 * Jamaican Dollars (JMD)
 * Japanese Yen (JPY)
 * Jersey Pound (JEP)
 * Jordanian Dinar (JOD)
 * Kazakhstani Tenge (KZT)
 * Kenyan Shilling (KES)
 * Kuwaiti Dinar (KWD)
 * Kyrgyzstani Som (KGS)
 * Laotian Kip (LAK)
 * Latvian Lati (LVL)
 * Lebanese Pounds (LBP)
 * Lesotho Loti (LSL)
 * Liberian Dollar (LRD)
 * Malagasy Ariary (MGA)
 * Macedonia Denar (MKD)
 * Macanese Pataca (MOP)
 * Malawian Kwacha (MWK)
 * Maldivian Rufiyaa (MVR)
 * Mexican Pesos (MXN)
 * Malaysian Ringgits (MYR)
 * Mauritian Rupee (MUR)
 * Moldovan Leu (MDL)
 * Moroccan Dirham (MAD)
 * Mongolian Tugrik (MNT)
 * Mozambican Metical (MZN)
 * Namibian Dollar (NAD)
 * Nepalese Rupee (NPR)
 * Netherlands Antillean Guilder (ANG)
 * New Zealand Dollars (NZD)
 * Nicaraguan Córdoba (NIO)
 * Nigerian Naira (NGN)
 * Norwegian Kroner (NOK)
 * Omani Rial (OMR)
 * Pakistani Rupee (PKR)
 * Papua New Guinean Kina (PGK)
 * Paraguayan Guarani (PYG)
 * Peruvian Nuevo Sol (PEN)
 * Philippine Peso (PHP)
 * Polish Zlotych (PLN)
 * Qatari Rial (QAR)
 * Romanian Lei (RON)
 * Russian Rubles (RUB)
 * Rwandan Franc (RWF)
 * Samoan Tala (WST)
 * Saudi Riyal (SAR)
 * Sao Tome And Principe Dobra (STD)
 * Serbian dinar (RSD)
 * Seychellois Rupee (SCR)
 * Singapore Dollars (SGD)
 * Sudanese Pound (SDG)
 * Syrian Pound (SYP)
 * South African Rand (ZAR)
 * South Korean Won (KRW)
 * South Sudanese Pound (SSP)
 * Solomon Islands Dollar (SBD)
 * Sri Lankan Rupees (LKR)
 * Surinamese Dollar (SRD)
 * Swazi Lilangeni (SZL)
 * Swedish Kronor (SEK)
 * Swiss Francs (CHF)
 * Taiwan Dollars (TWD)
 * Thai baht (THB)
 * Tanzanian Shilling (TZS)
 * Trinidad and Tobago Dollars (TTD)
 * Tunisian Dinar (TND)
 * Turkish Lira (TRY)
 * Turkmenistani Manat (TMT)
 * Ugandan Shilling (UGX)
 * Ukrainian Hryvnia (UAH)
 * United Arab Emirates Dirham (AED)
 * Uruguayan Pesos (UYU)
 * Uzbekistan som (UZS)
 * Vanuatu Vatu (VUV)
 * Venezuelan Bolivares (VEF)
 * Vietnamese đồng (VND)
 * West African CFA franc (XOF)
 * Yemeni Rial (YER)
 * Zambian Kwacha (ZMW)

Sign in Create an account
${(data.data && data.data.count) > 999 ? '999+' : (data.data &&
data.data.count)}
0


${(data.data && data.data.count) > 999 ? '999+' : (data.data &&
data.data.count)}
Search

 * Home
 * HOT SALE
 * New Arrival
 * Farm
 * Animal
   Animal
    * Dog
    * Cat
    * Cow
    * Horse
    * Farm
    * Bee
    * Fox
    * Chicken
    * Birds
    * Rabbit

 * 🔥Cotton
 * 🔥Japanese Art
   🔥Japanese Art
    * W's Art
    * M's Art

 * Men
   Men
    * M's west
    * M's Art
    * Viking

 * Ocean
 * Dress
 * Bottom
 * Set
 * Accessories
 * Sweater
 * Plant
 * Tribe
 * West
 * Sport
   
   English,한국어,日本語,Português,العربية,Русский,Español,繁體中文,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa
   Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar
   EUR
    * United States Dollars (USD)
    * Euro (EUR)
    * United Kingdom Pounds (GBP)
    * Canadian Dollars (CAD)
    * Afghan Afghani (AFN)
    * Albanian Lek (ALL)
    * Algerian Dinar (DZD)
    * Angolan Kwanza (AOA)
    * Argentine Pesos (ARS)
    * Armenian Dram (AMD)
    * Aruban Florin (AWG)
    * Australian Dollars (AUD)
    * Barbadian Dollar (BBD)
    * Azerbaijani Manat (AZN)
    * Bangladesh Taka (BDT)
    * Bahamian Dollar (BSD)
    * Bahraini Dinar (BHD)
    * Belarusian Ruble (BYN)
    * Belize Dollar (BZD)
    * Bhutanese Ngultrum (BTN)
    * Bosnia and Herzegovina Convertible Mark (BAM)
    * Brazilian Real (BRL)
    * Bolivian Boliviano (BOB)
    * Botswana Pula (BWP)
    * Brunei Dollar (BND)
    * Bulgarian Lev (BGN)
    * Burmese Kyat (MMK)
    * Cambodian Riel (KHR)
    * Cape Verdean escudo (CVE)
    * Cayman Dollars (KYD)
    * Central African CFA Franc (XAF)
    * Chilean Peso (CLP)
    * Colombian Peso (COP)
    * Comorian Franc (KMF)
    * Congolese franc (CDF)
    * Costa Rican Colones (CRC)
    * Croatian Kuna (HRK)
    * Czech Koruny (CZK)
    * Danish Kroner (DKK)
    * Dominican Peso (DOP)
    * East Caribbean Dollar (XCD)
    * Egyptian Pound (EGP)
    * Ethiopian Birr (ETB)
    * CFP Franc (XPF)
    * Fijian Dollars (FJD)
    * Gambian Dalasi (GMD)
    * Ghanaian Cedi (GHS)
    * Guatemalan Quetzal (GTQ)
    * Guyanese Dollar (GYD)
    * Georgian Lari (GEL)
    * Haitian Gourde (HTG)
    * Honduran Lempira (HNL)
    * Hong Kong Dollars (HKD)
    * Hungarian Forint (HUF)
    * Icelandic Kronur (ISK)
    * Indian Rupees (INR)
    * Indonesian Rupiah (IDR)
    * Israeli New Shekel (NIS)
    * Jamaican Dollars (JMD)
    * Japanese Yen (JPY)
    * Jersey Pound (JEP)
    * Jordanian Dinar (JOD)
    * Kazakhstani Tenge (KZT)
    * Kenyan Shilling (KES)
    * Kuwaiti Dinar (KWD)
    * Kyrgyzstani Som (KGS)
    * Laotian Kip (LAK)
    * Latvian Lati (LVL)
    * Lebanese Pounds (LBP)
    * Lesotho Loti (LSL)
    * Liberian Dollar (LRD)
    * Malagasy Ariary (MGA)
    * Macedonia Denar (MKD)
    * Macanese Pataca (MOP)
    * Malawian Kwacha (MWK)
    * Maldivian Rufiyaa (MVR)
    * Mexican Pesos (MXN)
    * Malaysian Ringgits (MYR)
    * Mauritian Rupee (MUR)
    * Moldovan Leu (MDL)
    * Moroccan Dirham (MAD)
    * Mongolian Tugrik (MNT)
    * Mozambican Metical (MZN)
    * Namibian Dollar (NAD)
    * Nepalese Rupee (NPR)
    * Netherlands Antillean Guilder (ANG)
    * New Zealand Dollars (NZD)
    * Nicaraguan Córdoba (NIO)
    * Nigerian Naira (NGN)
    * Norwegian Kroner (NOK)
    * Omani Rial (OMR)
    * Pakistani Rupee (PKR)
    * Papua New Guinean Kina (PGK)
    * Paraguayan Guarani (PYG)
    * Peruvian Nuevo Sol (PEN)
    * Philippine Peso (PHP)
    * Polish Zlotych (PLN)
    * Qatari Rial (QAR)
    * Romanian Lei (RON)
    * Russian Rubles (RUB)
    * Rwandan Franc (RWF)
    * Samoan Tala (WST)
    * Saudi Riyal (SAR)
    * Sao Tome And Principe Dobra (STD)
    * Serbian dinar (RSD)
    * Seychellois Rupee (SCR)
    * Singapore Dollars (SGD)
    * Sudanese Pound (SDG)
    * Syrian Pound (SYP)
    * South African Rand (ZAR)
    * South Korean Won (KRW)
    * South Sudanese Pound (SSP)
    * Solomon Islands Dollar (SBD)
    * Sri Lankan Rupees (LKR)
    * Surinamese Dollar (SRD)
    * Swazi Lilangeni (SZL)
    * Swedish Kronor (SEK)
    * Swiss Francs (CHF)
    * Taiwan Dollars (TWD)
    * Thai baht (THB)
    * Tanzanian Shilling (TZS)
    * Trinidad and Tobago Dollars (TTD)
    * Tunisian Dinar (TND)
    * Turkish Lira (TRY)
    * Turkmenistani Manat (TMT)
    * Ugandan Shilling (UGX)
    * Ukrainian Hryvnia (UAH)
    * United Arab Emirates Dirham (AED)
    * Uruguayan Pesos (UYU)
    * Uzbekistan som (UZS)
    * Vanuatu Vatu (VUV)
    * Venezuelan Bolivares (VEF)
    * Vietnamese đồng (VND)
    * West African CFA franc (XOF)
    * Yemeni Rial (YER)
    * Zambian Kwacha (ZMW)

Log in
Top search terms

${function() { const force_image_size = "1.5"; const product_hover_on = true;
const product_show_sale_label = true; const product_save_type = "amount"; const
badge1 = "New"; const badge2 = ""; const badge3 = ""; const
product_title_mobile_hide = true; const product_title_style = "hide"; const
enable_collection_thumb_image = true; const variantNames = ["color"]; const
thumbMaxNum = 4; const suffix_id = "search-predictive-pc" || ''; const url =
data.url; const productId = data.id; const price = data.price; const
productAvailable = data.available; const productVariants = data.variants || [];
const images = data.images || []; const image = data.image || {}; const
imageWidth = image.width; let imageHeight = image.height; let image2 = null; let
imageHoverOn = false; if (force_image_size !== 'natural') { imageHeight =
imageWidth * force_image_size; } if (product_hover_on) { for (let i = 1; i <
images.length; i++) { const img = images[i]; if (img.src &&
img.src.indexOf('video=') === -1) { image2 = img; imageHoverOn = true; break; }
} } let compareAtPrice = data.compare_at_price; let offRatio = data.off_ratio;
let discountMaxUrl = url; const showFrom = data.price_min != data.price_max ?
true : false; for (let i = 0; i < productVariants.length; i++) { const variant =
productVariants[i]; if (variant.price == price && compareAtPrice <
variant.compare_at_price) { compareAtPrice = variant.compare_at_price; offRatio
= variant.off_ratio; variant.available && (discountMaxUrl = variant.url); } }
const soldOutText = "Sold out"; let soldOn = false; let saleOn = false; if
(productAvailable) { if (product_show_sale_label && price < compareAtPrice) {
saleOn = true; } } else { soldOn = true; } const diffPrice = compareAtPrice -
price; const saveLabelContent = product_save_type == 'percent' ? (offRatio +
'%') : ``; let saveText = "Save {off_ratio}"; saveText =
saveText.replace('{off_ratio}', saveLabelContent); const productTitle =
data.title; const heading = "title" === 'subtitle' ? data.brief : productTitle;
const variantValues = []; const showVariants = []; if (data.need_variant_image
&& enable_collection_thumb_image && variantNames.length > 0) { for (let i = 0; i
< (data.options || []).length; i++) { const option = data.options[i]; const
optionName = option.name.toLowerCase(); if (variantNames.includes(optionName)) {
for (let j = 0; j < productVariants.length; j++) { const variant =
productVariants[j]; const value = variant.options[i].value; if
(!variantValues.includes(value)) { variantValues.push(value);
showVariants.push(variant); } } break; } } } return `
${showVariants.map(item => { return ` `; }).join('')}
${saleOn ? saveText : soldOutText} ${badge1} ${badge2} ${badge3}


${HEADING}

From ${saveText} ${showVariants.map((item, idx) => { let showMoreHtml = ''; if
(idx == thumbMaxNum) { showMoreHtml += ` +${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml} `; }).join('') }
`; }()}
${function() { const force_image_size = "1.5"; const product_hover_on = true;
const product_show_sale_label = true; const product_save_type = "amount"; const
badge1 = "New"; const badge2 = ""; const badge3 = ""; const
product_title_mobile_hide = true; const product_title_style = "hide"; const
enable_collection_thumb_image = true; const variantNames = ["color"]; const
thumbMaxNum = 4; const suffix_id = "search-predictive-mobile" || ''; const url =
data.url; const productId = data.id; const price = data.price; const
productAvailable = data.available; const productVariants = data.variants || [];
const images = data.images || []; const image = data.image || {}; const
imageWidth = image.width; let imageHeight = image.height; let image2 = null; let
imageHoverOn = false; if (force_image_size !== 'natural') { imageHeight =
imageWidth * force_image_size; } if (product_hover_on) { for (let i = 1; i <
images.length; i++) { const img = images[i]; if (img.src &&
img.src.indexOf('video=') === -1) { image2 = img; imageHoverOn = true; break; }
} } let compareAtPrice = data.compare_at_price; let offRatio = data.off_ratio;
let discountMaxUrl = url; const showFrom = data.price_min != data.price_max ?
true : false; for (let i = 0; i < productVariants.length; i++) { const variant =
productVariants[i]; if (variant.price == price && compareAtPrice <
variant.compare_at_price) { compareAtPrice = variant.compare_at_price; offRatio
= variant.off_ratio; variant.available && (discountMaxUrl = variant.url); } }
const soldOutText = "Sold out"; let soldOn = false; let saleOn = false; if
(productAvailable) { if (product_show_sale_label && price < compareAtPrice) {
saleOn = true; } } else { soldOn = true; } const diffPrice = compareAtPrice -
price; const saveLabelContent = product_save_type == 'percent' ? (offRatio +
'%') : ``; let saveText = "Save {off_ratio}"; saveText =
saveText.replace('{off_ratio}', saveLabelContent); const productTitle =
data.title; const heading = "title" === 'subtitle' ? data.brief : productTitle;
const variantValues = []; const showVariants = []; if (data.need_variant_image
&& enable_collection_thumb_image && variantNames.length > 0) { for (let i = 0; i
< (data.options || []).length; i++) { const option = data.options[i]; const
optionName = option.name.toLowerCase(); if (variantNames.includes(optionName)) {
for (let j = 0; j < productVariants.length; j++) { const variant =
productVariants[j]; const value = variant.options[i].value; if
(!variantValues.includes(value)) { variantValues.push(value);
showVariants.push(variant); } } break; } } } return `
${showVariants.map(item => { return ` `; }).join('')}
${saleOn ? saveText : soldOutText} ${badge1} ${badge2} ${badge3}


${HEADING}

From ${saveText} ${showVariants.map((item, idx) => { let showMoreHtml = ''; if
(idx == thumbMaxNum) { showMoreHtml += ` +${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml} `; }).join('') }
`; }()}
${function() { if (data === undefined || typeof data !== 'string' || data == '')
return ''; const searchEmpty = ("Your search for \"{test}\" did not yield any
results.").replace('{test}', data); return `

View more
${searchEmpty}
`; }()}

   ${Array(data.total || 0).fill().map((val, idx) => idx).map((val, idx) => `
 * 
   `).join('')}

 * 
 * 
 * 




   ${Array(data.total || 0).fill().map((val, idx) => idx).map((val, idx) => `
 * 
   `).join('')}





FIND YOUR FAVORITE FIT

Easy to style, hard to take off. In a good way.
VIEW MORE



FARM LOVERS

Uflashion is the global online store that delivers the latest Men's tactical
style apparel for you!
New


FUNNY RUNNING SHEEPDOG WOOL FELT COZY KNIT SWEATER

From €20.17
New


GREETINGS FROM THE STRAY SHEEP GRAPHIC CASUAL COZY HOODIE

From €17.42 +1
New


EMBROIDERY WILDFLOWERS AND BEES CASUAL COZY CARDIGAN

€20.17
New


DAISY BEE EMBROIDERY ART PRINT CASUAL SWEATSHIRT

€17.42
New


BORDER COLLIE & SHEEP LANDSCAPE FELT ART COZY HOODED CARDIGAN

€31.18
New


FUZZY SHEEP FLEECE KNIT COZY SWEATER

€21.09
New


BIRDS FLORAL EMBROIDERY PATTERN COZY KNIT HOODED CARDIGAN

€31.18
New


DAISY BEE EMBROIDERY ART PRINT TUNIC

€18.34
New


VINTAGE FUZZY SHEEP FLEECE KNIT COZY SWEATER

€21.09
New


WOMEN'S FOX PRINT ROUND NECK CASUAL SWEATSHIRT

€17.42
New


FRINGED BEE CUTE HONEYBEE INSECT EMBROIDERY COMFY HOODED CARDIGAN

€31.18
New


CUTE BLACK SHEEP SWEATER

€21.09


New


FUNNY RUNNING SHEEPDOG WOOL FELT COZY KNIT SWEATER

From €20.17
New


GREETINGS FROM THE STRAY SHEEP GRAPHIC CASUAL COZY HOODIE

From €17.42 +1
New


EMBROIDERY WILDFLOWERS AND BEES CASUAL COZY CARDIGAN

€20.17
New


DAISY BEE EMBROIDERY ART PRINT CASUAL SWEATSHIRT

€17.42
New


BORDER COLLIE & SHEEP LANDSCAPE FELT ART COZY HOODED CARDIGAN

€31.18
New


FUZZY SHEEP FLEECE KNIT COZY SWEATER

€21.09
New


BIRDS FLORAL EMBROIDERY PATTERN COZY KNIT HOODED CARDIGAN

€31.18
New


DAISY BEE EMBROIDERY ART PRINT TUNIC

€18.34
New


VINTAGE FUZZY SHEEP FLEECE KNIT COZY SWEATER

€21.09
New


WOMEN'S FOX PRINT ROUND NECK CASUAL SWEATSHIRT

€17.42
New


FRINGED BEE CUTE HONEYBEE INSECT EMBROIDERY COMFY HOODED CARDIGAN

€31.18
New


CUTE BLACK SHEEP SWEATER

€21.09



BEST SELLING

 * BEST SELLING

New


MEN'S JAPANESE TRADITIONAL INK ROOSTER SAMURAI ART PRINT SWEATSHIRT

€17.42
New


UPSTREAM CARP JAPANESE ART LINEN BLEND SHIRT

€19.25
New


INK AND PINE JAPANESE ART PRINT LINEN SHIRT

€19.25
New


JAPANESE ART FROG PRINT COZY COTTON LINEN SHIRT

€19.25
New


PLUM BLOSSOM JAPANESE ART LINEN BLEND SHIRT

€19.25
New


MEN'S FLORAL OTTER WATER JAPANESE ART PRINT CASUAL SWEATSHIRT

€17.42
New


PLUM BLOSSOM SUNRISE JAPANESE ART LINEN BLEND SHORTS

€15.58
New


CHERRY BLOSSOM JAPANESE LINO ART FULL ZIP HOODIE

€21.09
${function() { const force_image_size = "1.5"; const product_hover_on = true;
const product_show_sale_label = true; const product_save_type = "amount"; const
badge1 = "New"; const badge2 = ""; const badge3 = ""; const
product_title_mobile_hide = true; const product_title_style = "hide"; const
enable_collection_thumb_image = true; const variantNames = ["color"]; const
thumbMaxNum = 4; const suffix_id = "-0" || ''; const url = data.url; const
productId = data.id; const price = data.price; const productAvailable =
data.available; const productVariants = data.variants || []; const images =
data.images || []; const image = data.image || {}; const imageWidth =
image.width; let imageHeight = image.height; let image2 = null; let imageHoverOn
= false; if (force_image_size !== 'natural') { imageHeight = imageWidth *
force_image_size; } if (product_hover_on) { for (let i = 1; i < images.length;
i++) { const img = images[i]; if (img.src && img.src.indexOf('video=') === -1) {
image2 = img; imageHoverOn = true; break; } } } let compareAtPrice =
data.compare_at_price; let offRatio = data.off_ratio; let discountMaxUrl = url;
const showFrom = data.price_min != data.price_max ? true : false; for (let i =
0; i < productVariants.length; i++) { const variant = productVariants[i]; if
(variant.price == price && compareAtPrice < variant.compare_at_price) {
compareAtPrice = variant.compare_at_price; offRatio = variant.off_ratio;
variant.available && (discountMaxUrl = variant.url); } } const soldOutText =
"Sold out"; let soldOn = false; let saleOn = false; if (productAvailable) { if
(product_show_sale_label && price < compareAtPrice) { saleOn = true; } } else {
soldOn = true; } const diffPrice = compareAtPrice - price; const
saveLabelContent = product_save_type == 'percent' ? (offRatio + '%') : ``; let
saveText = "Save {off_ratio}"; saveText = saveText.replace('{off_ratio}',
saveLabelContent); const productTitle = data.title; const heading = "title" ===
'subtitle' ? data.brief : productTitle; const variantValues = []; const
showVariants = []; if (data.need_variant_image && enable_collection_thumb_image
&& variantNames.length > 0) { for (let i = 0; i < (data.options || []).length;
i++) { const option = data.options[i]; const optionName =
option.name.toLowerCase(); if (variantNames.includes(optionName)) { for (let j =
0; j < productVariants.length; j++) { const variant = productVariants[j]; const
value = variant.options[i].value; if (!variantValues.includes(value)) {
variantValues.push(value); showVariants.push(variant); } } break; } } } return `
${showVariants.map(item => { return ` `; }).join('')}
${saleOn ? saveText : soldOutText} ${badge1} ${badge2} ${badge3}


${HEADING}

From ${saveText} ${showVariants.map((item, idx) => { let showMoreHtml = ''; if
(idx == thumbMaxNum) { showMoreHtml += ` +${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml} `; }).join('') }
`; }()}
Load more



NEW ARRIVALS

With eye-catching annual flowers and foliage you won’t find anywhere else, you
can mix and match our vibrant container
New


JAPANESE WAVES ART COZY COTTON LINEN SHIRT

€19.25
New


JAPANESE WAVES ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE FISH JAPANESE ART LINEN BLEND SHORTS

€15.58
New


VINTAGE FISH JAPANESE ART COZY COTTON LINEN SHIRT

€19.25
New


JAPANESE VINTAGE FISH ART LINEN BLEND CASUAL PANTS

€20.17
New


JAPANESE CAT ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE CAT PETTING GUIDE JAPANESE ART COZY COTTON LINEN SHIRT

€19.25
New


FISH VINTAGE JAPANESE ART COTTON AND LINEN SHIRT

€24.76
New


VINTAGE KITTEN PLAYING WITH GOLDFISH TRADITIONAL ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE WAVES OF CARP TRADITIONAL ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE FISH JAPANESE ART LINEN BLEND COMFY SHIRT

€19.25
New


VINTAGE FLORAL GOLDFISH JAPANESE ART COZY COTTON LINEN SHIRT

€19.25
New


JAPANESE WAVES ART COZY COTTON LINEN SHIRT

€19.25
New


JAPANESE WAVES ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE FISH JAPANESE ART LINEN BLEND SHORTS

€15.58
New


VINTAGE FISH JAPANESE ART COZY COTTON LINEN SHIRT

€19.25
New


JAPANESE VINTAGE FISH ART LINEN BLEND CASUAL PANTS

€20.17
New


JAPANESE CAT ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE CAT PETTING GUIDE JAPANESE ART COZY COTTON LINEN SHIRT

€19.25
New


FISH VINTAGE JAPANESE ART COTTON AND LINEN SHIRT

€24.76
New


VINTAGE KITTEN PLAYING WITH GOLDFISH TRADITIONAL ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE WAVES OF CARP TRADITIONAL ART COZY COTTON LINEN SHIRT

€19.25
New


VINTAGE FISH JAPANESE ART LINEN BLEND COMFY SHIRT

€19.25
New


VINTAGE FLORAL GOLDFISH JAPANESE ART COZY COTTON LINEN SHIRT

€19.25
FREE SHIPPING
Free Shipping for orders over $69

RETURNS
Within 14 days for an exchange.

ONLINE SUPPORT
12 hours a day, 7 days a week

FLEXIBLE PAYMENT
Pay with Multiple Credit Cards


DRESS

${function(){ const rules = data.data.rules; return `

` }()} ${function(){ const isCart = data.data.isCart; const isCollection =
data.data.isCollection; const isProduct = data.data.isProduct; const isIndex =
data.data.isIndex; return `
${isCart ? 'The items in the shopping cart do not participate in any
recommendation rule. Add the participating items to your shopping cart to check
the design.' : ''} ${isProduct ? 'This product did not participated in any
recommendation rule. Switch to another product to check the design.' : ''}
${isCollection ? 'The items in this collection do not participate in any
recommendation rule. Switch the participating items to check the design.' : ''}
${isIndex ? 'The home page do not participate in any recommendation rule.' : ''}
(This prompt would not display on client-side)
Recommended Products
` }()} ${function(){ const rule = data.data; const getImageHeight =
function(image){ const image_size = rule.config.image_size || 0; const
imageWidth = image.width || 600; const imageHeight = image.height || 800; let
ratio = 0; if(image_size == 0){ ratio = (imageHeight / imageWidth).toFixed(2);
}else if(image_size == 1){ ratio = 1.5; }else if(image_size == 2){ ratio = 1;
}else if(image_size == 3){ ratio = 0.75; } return imageWidth * ratio; }; const
toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v
=> `${k}[]=${encodeURIComponent(v)}`).join('&') :
`${k}=${encodeURIComponent(obj[k])}` ) .join('&'); return `
${rule.config.title}
 * ${product.title}
   
   ${rule.config.quick_shop_button_text}



` }()}


class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) {
super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {};
this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = '';
this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ =
''; this.order_id_ = ''; } static deferredMount() { return false; }
isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; }
buildCallback() { const template_type =
window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) {
this.show_type_ = 3; this.product_resource_id_ =
window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) {
this.show_type_ = 4; this.collection_resource_id_ =
window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){
this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; }
else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ =
window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){
this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop();
} this.templates_ = SPZServices.templatesForDoc(this.element);
this.setAction_(); } mountCallback() { console.log('smart mounted'); const that
= this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const
isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res &&
res.rules && res.rules.length) { const blockEl =
document.getElementById('smart_recommend_block');
SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res},
true).then(() => { if (isGeek && that.show_type_ === 6) {
blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; }
const recommendStyle = document.createElement('style'); recommendStyle.innerHTML
= ` .plugin__recommend_container,.app-recommend-card { display: none !important;
} `; document.head.appendChild(recommendStyle); const fetchList = [];
res.rules.forEach((rule) => {
fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll =
Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule,
index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl
= document.getElementById('smart_recommend_rule_' + rule.id);
SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule},
true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`,
function(){ that.trackRuleImpress(rule); }); const btnElList =
document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`);
btnElList.forEach((btnEl) => { if (btnEl && rule.config &&
rule.config.quick_shop_button_bg_color &&
rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor =
rule.config.quick_shop_button_bg_color; btnEl.style.color =
rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if
(window.top !== window.self) { const template_type =
window.SHOPLAZZA.meta.page.template_type; const holderEl =
document.getElementById('smart_recommend_preview_no_data_placeholder');
SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart:
template_type === 13, isCollection: template_type === 2, isProduct:
template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); }
setAction_() { this.registerAction('quickShop', (data) => { const that = this;
const product_id = data.args.product_id; const productIndex =
data.args.productIndex; const rule_id = data.args.rule_id; const ssp =
data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb =
data.args.ifb; const modalRender =
document.getElementById('smart_recommend_product_modal_render'); if (product_id)
{ this.fetchProductData(product_id).then((res) => { const product = res.products
&& res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb
= ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product:
product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm,
show_type: that.show_type_}, true).then(() => { const modalEl =
document.getElementById('smart_recommend_product_modal');
SPZ.whenApiDefined(modalEl).then((modal) => {
that.impressListen('#smart_recommend_product_modal', function(){
that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); });
modal.open(); }); const formEl =
document.getElementById('smart_recommend_product_form');
SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const
variantEl = document.getElementById('smart_recommend_product_variants');
SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product);
}); }); }) }); } }); this.registerAction('handleScroll', (data) => {
this.directTo(data.args.rule_id, data.args.direction); });
this.registerAction('handleProductChange', (data) => { const variant =
data.args.data.variant; const product = data.args.data.product; const
imageRenderEl = document.getElementById('smart_recommend_product_image');
SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant,
product: product }, true); }); }); this.registerAction('handleAtcSuccess',
(detail) => { const data = detail.args; data.data.product = data.data.product ||
{}; data.data.variant = data.data.variant || {}; const product_id =
data.data.product.id; const product_title = data.data.product.title; const
variant_id = data.data.variant.id; const price = data.data.variant.price; const
rule_id = data.rule_id; const aid =
`smart_recommend.${this.show_type_}.${rule_id}`; const ifb =
data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp;
const scm = data.scm; const spm =
`smart_recommend_${this.show_type_}.${data.spmIndex}`; const params = { id:
product_id, product_id: product_id, number: 1, name: product_title, variant_id:
variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart',
_extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm:
`..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } };
this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => {
const params = data.args; const spm =
`smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ =
window.djInterceptors && window.djInterceptors.track.use({ event:
'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` +
params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm:
`..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); }
tranckAddToCart(detail) { if (window.$) {
window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() {
const payload = { show_type: this.show_type_, }; let that = this; if
(this.show_type_ === 6) { let line_items = []; return
this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) {
line_items = res.cart.line_items.map((item) => { return { product_id:
item.product_id, variant_id: item.variant_id, quantity: item.quantity, price:
item.price } }); } payload.line_items = line_items; that.cart_items_ =
line_items; return that.fetchRulesRequest(payload); }); } else { if
(this.show_type_ === 3) { payload.line_items = [{ product_id:
this.product_resource_id_ }]; } else if (this.show_type_ === 4) {
payload.collection_id = this.collection_resource_id_; } else if (this.show_type_
=== 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ ===
8) { payload.order_id = this.order_id_; } return
this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return
fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method:
"POST", headers: { "Content-Type": "application/json" }, body:
JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); }
}); } fetchCart() { return
fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`)
.then((res) => { if (res.ok) { return res.json(); } }); }
fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields:
["title", "url", "image", "min_price_variant.price",
"min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_
=== 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; }
else if (this.show_type_ === 4) { payload.collection_id =
this.collection_resource_id_; } else if (this.show_type_ === 6) {
payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) {
payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) {
payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root +
"/api/possum/recommend_products", { method: "POST", headers: { "Content-Type":
"application/json" }, body: JSON.stringify(payload) }).then(function(res){
if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); }
fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root +
"/api/possum/products", { method: "POST", headers: { "Content-Type":
"application/json" }, body: JSON.stringify({ product_ids: [product_id], fields:
[ "images", "options", "min_price_variant", "variants"] })
}).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){
console.log(err); const loadingEl =
document.getElementById('smart_recommend_loading'); if (loadingEl) {
loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele)
return; if (window.getComputedStyle) { return
window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; }
directTo(id, direction) { const scrollElement =
document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth =
parseInt(this.getStyle(scrollElement, 'width')); const scrollLength =
(blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth -
scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left')
{ if (document.dir === 'rtl') { scrollElement.scrollTo({ left:
Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 :
scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; }
scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength,
0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') {
scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint
+ 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' });
return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint
- 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } }
trackRuleImpress(rule) { if (window.sa && window.sa.track) {
window.sa.track("plugin_common", { plugin_name: "upsell", event_type:
"impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type:
this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block });
window.sa.track("module_impressions", { aid:
`smart_recommend.${this.show_type_}.${rule.id}`, support_app_block:
window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) {
window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell",
event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id,
show_type: this.show_type_, }); } impressListen(selector, cb) { const el =
document.querySelector(selector); const onImpress = (e) => { if (e) {
e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) {
el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } }
SPZ.defineElement('spz-custom-smart-block', SpzSmartBlockComponent);
${(function(){ const product = data.product; const toQuery = obj =>
Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v =>
`${k}[]=${encodeURIComponent(v)}`).join('&') :
`${k}=${encodeURIComponent(obj[k])}` ) .join('&'); return `
${product.images.map((image) => { return `` }).join('')}

${product.title}

See detail
Quantity
Add To Cart Buy Now
`; })()}
${(function(){ const product = data.product; const avail_variants =
product.variants.filter(function(variant){ return variant.available; }); const
selected_variant = product.min_price_variant.available ?
product.min_price_variant : avail_variants.length && avail_variants[0]; return `
${option.name}
${ option.values.map(function(value, index){ const checked =
selected_variant["option"+option.position] == value ? "checked": ""; return `
${value}
` }).join("") }
` })()}
UFLASHION INFO
ABOUT US PRIVACY POLICY PAYMENT METHODS TERMS & CONDITIONS
HELP & SUPPORT
CONTACT US SHIPPING & DELIVERY RETURN & EXCHANGE POLICY
FOLLOW US

JOIN US
Join us to get more benefits
Your email
Join
Please fill in this field
Please enter a valid email address
${data.errors && data.errors[0]}
Thanks for subscribing
UFLASHION INFO
ABOUT US PRIVACY POLICY PAYMENT METHODS TERMS & CONDITIONS
HELP & SUPPORT
CONTACT US SHIPPING & DELIVERY RETURN & EXCHANGE POLICY
FOLLOW US

JOIN US
Join us to get more benefits
Your email
Join
Please fill in this field
Please enter a valid email address
${data.errors && data.errors[0]}
Thanks for subscribing
© 2024 Uflashion


10% off your first order1

Thank you for your subscription, you can enjoy a 10% discount for the first
purchase.
Enter a discount code
Copy code

${function() { const force_image_size = "1.5"; const product_hover_on = true;
const product_show_sale_label = true; const product_save_type = "amount"; const
badge1 = "New"; const badge2 = ""; const badge3 = ""; const
product_title_mobile_hide = true; const product_title_style = "hide"; const
enable_collection_thumb_image = true; const variantNames = ["color"]; const
thumbMaxNum = 4; const suffix_id = null || ''; const url = data.url; const
productId = data.id; const price = data.price; const productAvailable =
data.available; const productVariants = data.variants || []; const images =
data.images || []; const image = data.image || {}; const imageWidth =
image.width; let imageHeight = image.height; let image2 = null; let imageHoverOn
= false; if (force_image_size !== 'natural') { imageHeight = imageWidth *
force_image_size; } if (product_hover_on) { for (let i = 1; i < images.length;
i++) { const img = images[i]; if (img.src && img.src.indexOf('video=') === -1) {
image2 = img; imageHoverOn = true; break; } } } let compareAtPrice =
data.compare_at_price; let offRatio = data.off_ratio; let discountMaxUrl = url;
const showFrom = data.price_min != data.price_max ? true : false; for (let i =
0; i < productVariants.length; i++) { const variant = productVariants[i]; if
(variant.price == price && compareAtPrice < variant.compare_at_price) {
compareAtPrice = variant.compare_at_price; offRatio = variant.off_ratio;
variant.available && (discountMaxUrl = variant.url); } } const soldOutText =
"Sold out"; let soldOn = false; let saleOn = false; if (productAvailable) { if
(product_show_sale_label && price < compareAtPrice) { saleOn = true; } } else {
soldOn = true; } const diffPrice = compareAtPrice - price; const
saveLabelContent = product_save_type == 'percent' ? (offRatio + '%') : ``; let
saveText = "Save {off_ratio}"; saveText = saveText.replace('{off_ratio}',
saveLabelContent); const productTitle = data.title; const heading = "title" ===
'subtitle' ? data.brief : productTitle; const variantValues = []; const
showVariants = []; if (data.need_variant_image && enable_collection_thumb_image
&& variantNames.length > 0) { for (let i = 0; i < (data.options || []).length;
i++) { const option = data.options[i]; const optionName =
option.name.toLowerCase(); if (variantNames.includes(optionName)) { for (let j =
0; j < productVariants.length; j++) { const variant = productVariants[j]; const
value = variant.options[i].value; if (!variantValues.includes(value)) {
variantValues.push(value); showVariants.push(variant); } } break; } } } return `
${showVariants.map(item => { return ` `; }).join('')}
${saleOn ? saveText : soldOutText} ${badge1} ${badge2} ${badge3}


${HEADING}

From ${saveText} ${showVariants.map((item, idx) => { let showMoreHtml = ''; if
(idx == thumbMaxNum) { showMoreHtml += ` +${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml} `; }).join('') }
`; }()}
${function() { const defaultSelectedVariant = data.variants.find(v =>
v.available) || data.variants[0]; const defaultIndex = !!defaultSelectedVariant
? data.images.findIndex(img => img.src == (defaultSelectedVariant.image &&
defaultSelectedVariant.image.src)) : -1; const initialSlide = defaultIndex == -1
? 0 : defaultIndex; const attrs = data.images.length > 1 ? 'slide controls' :
''; return ` ${data.images.map(img => ` `).join('')} `; }()}
${data.images.map((img, index) => ` `).join('')}


${DATA.TITLE}

${data.brief}
${function() { const defaultSelectedVariant = data.variants.find(v =>
v.available) || data.variants[0]; return `
${("Save {off_ratio}").replace('{off_ratio}', ("amount") == 'percent' ?
defaultSelectedVariant.off_ratio + '%' : `` )}
-
`; }()}
Quantity
${function() { const defaultSelectedVariant = data.variants.find(v =>
v.available) || data.variants[0]; let status_lan = "Add to cart"; if
((defaultSelectedVariant && !defaultSelectedVariant.available) ||
(!defaultSelectedVariant && !data.available)) { status_lan = "Sold out"; }
return ` ${status_lan}
 - 

Buy now

`; }()}
${function() { var thumbSwitchName = ''; return
data.product.options.map((option, index) => { const optionName = option.name ||
''; const optionPosition = 'option' + (index + 1); const values = option.values
|| []; const variantThumbs = ["color"] || []; var isThumbImage = false; if
(data.product.need_variant_image && thumbSwitchName == '') { for (let i = 0; i <
variantThumbs.length; i++) { const name = variantThumbs[i].toLowerCase(); if
(name == optionName.toLowerCase()) { isThumbImage = true; thumbSwitchName =
name; } } } const thumbStyle = "image_with_text"; const thumbType = isThumbImage
? thumbStyle.replace(/_/g, '-') : 'text'; return `
${optionName.slice(0, 1).toUpperCase() + optionName.slice(1).toLowerCase()} : 
${values.map(value => { const disabled = data.name == optionName &&
data.disabledValues.includes(value) ? 'disabled' : ''; let selected = ''; if
(disabled != 'disabled' && data.selectedValues[optionName] == value) { selected
= 'selected'; } let thumbImage = null; if (isThumbImage) { const variants =
data.product.variants; for (let i = 0; i < variants.length; i++) { const variant
= variants[i]; if (variant[optionPosition] == value && thumbImage == null) {
thumbImage = variant.image; break; } } } return `
${value}

${value}
`; }).join('')}
`; }).join(''); }()}
${data.targetOption || data.defaultValue || ''}
${("Save {off_ratio}").replace('{off_ratio}', ("amount") == 'percent' ?
data.variant.off_ratio + '%' : `` )}
-
 - 

${function() { const freeAmount = 69; const totalPrice = data.total_price ||
data.cart.total_price; const amountDiff = freeAmount - totalPrice const
percentDiff = (amountDiff > 0 ? (totalPrice / freeAmount * 100) : 100) + '%';
const spendTip = "Spend {amount} more and get free shipping!"; let tipText =
"Your order is free delivery"; if (amountDiff > 0) { tipText =
spendTip.replace('{amount}', ``); } return `
${tipText}

`; }()}
${data.line_items.map(item => { const variantNames = item.options.map(option =>
option.value).join(' / '); return `
${item.product_title}
${variantNames}

Remove
`; }).join('')}


CART

Add note
Write something here to seller.
${data.note || data.value}

 * Discount
   ${data.total_discount > 0 ? '-' : ''}
 * 
 * Subtotal

Taxes and shipping calculated at checkout
Check out

Your shopping cart is empty
Continue shopping


YOUR MAY ALSO LIKE

${data.products && data.products.map(data => `
${function() { const force_image_size = "1.5"; const product_hover_on = true;
const product_show_sale_label = true; const product_save_type = "amount"; const
badge1 = "New"; const badge2 = ""; const badge3 = ""; const
product_title_mobile_hide = true; const product_title_style = "hide"; const
enable_collection_thumb_image = true; const variantNames = ["color"]; const
thumbMaxNum = 4; const suffix_id = "cart-recommendations-mobile" || ''; const
url = data.url; const productId = data.id; const price = data.price; const
productAvailable = data.available; const productVariants = data.variants || [];
const images = data.images || []; const image = data.image || {}; const
imageWidth = image.width; let imageHeight = image.height; let image2 = null; let
imageHoverOn = false; if (force_image_size !== 'natural') { imageHeight =
imageWidth * force_image_size; } if (product_hover_on) { for (let i = 1; i <
images.length; i++) { const img = images[i]; if (img.src &&
img.src.indexOf('video=') === -1) { image2 = img; imageHoverOn = true; break; }
} } let compareAtPrice = data.compare_at_price; let offRatio = data.off_ratio;
let discountMaxUrl = url; const showFrom = data.price_min != data.price_max ?
true : false; for (let i = 0; i < productVariants.length; i++) { const variant =
productVariants[i]; if (variant.price == price && compareAtPrice <
variant.compare_at_price) { compareAtPrice = variant.compare_at_price; offRatio
= variant.off_ratio; variant.available && (discountMaxUrl = variant.url); } }
const soldOutText = "Sold out"; let soldOn = false; let saleOn = false; if
(productAvailable) { if (product_show_sale_label && price < compareAtPrice) {
saleOn = true; } } else { soldOn = true; } const diffPrice = compareAtPrice -
price; const saveLabelContent = product_save_type == 'percent' ? (offRatio +
'%') : ``; let saveText = "Save {off_ratio}"; saveText =
saveText.replace('{off_ratio}', saveLabelContent); const productTitle =
data.title; const heading = "title" === 'subtitle' ? data.brief : productTitle;
const variantValues = []; const showVariants = []; if (data.need_variant_image
&& enable_collection_thumb_image && variantNames.length > 0) { for (let i = 0; i
< (data.options || []).length; i++) { const option = data.options[i]; const
optionName = option.name.toLowerCase(); if (variantNames.includes(optionName)) {
for (let j = 0; j < productVariants.length; j++) { const variant =
productVariants[j]; const value = variant.options[i].value; if
(!variantValues.includes(value)) { variantValues.push(value);
showVariants.push(variant); } } break; } } } return `
${showVariants.map(item => { return ` `; }).join('')}
${saleOn ? saveText : soldOutText} ${badge1} ${badge2} ${badge3}


${HEADING}

From ${saveText} ${showVariants.map((item, idx) => { let showMoreHtml = ''; if
(idx == thumbMaxNum) { showMoreHtml += ` +${showVariants.length - thumbMaxNum}
`; } return ` ${showMoreHtml} `; }).join('') }
`; }()}
`).join('')}

×
This website uses cookies
This website uses cookies to improve user experience. By using our website you
consent to all cookies in accordance with our Cookie Policy. Read more
Accept all
Decline all
Powered by CookieScript
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}
`; })()}
×

Don't leave without taking discount
UP TO 50% OFF
On your first order
Invalid email

Continue
NO,I'LL PAY FULL PRICE
* Ihre persönlichen Daten werden strengstens vor Offenlegung geschützt.
By signing up you agree with our Privacy Policy.

GIFTS

POINTS
20% OFF 2nd item




SALE OFFER

20
% OFF
FOR THE
2nd ITEM
20
% OFF
FOR THE
2nd ITEM
30
% OFF
FOR THE
3rd ITEM
30
% OFF
FOR THE
3rd ITEM
40
% OFF
FOR THE
4th ITEM
40
% OFF
FOR THE
4th ITEM
100
% OFF
FOR THE
5th ITEM
100
% OFF
FOR THE
5th ITEM
COLLECT ALL

*Discounts would automatically apply when placing an order
Originaltext

Diese Übersetzung bewerten
Mit deinem Feedback können wir Google Übersetzer weiter verbessern