www.snowaker.com Open in urlscan Pro
104.17.247.119  Public Scan

Submitted URL: https://snowaker.com/?preview_theme_id=&utm_source=stream&utm_medium=edm&utm_campaign=tmp_auto_138&stream_ukey=6p76ni...
Effective URL: https://www.snowaker.com/?preview_theme_id=&utm_source=stream&utm_medium=edm&utm_campaign=tmp_auto_138&stream_ukey=6p76ni...
Submission: On October 29 via api from US — Scanned from CA

Form analysis 3 forms found in the DOM

GET /search

<form action="/search" method="get" class="">
  <div tabindex="-1" class="tw-flex tw-relative header__search">
    <input autocomplete="off" name="q" type="text"
      class="tw-w-full tw-flex-1 tw-h-10 tw-py-0 tw-pl-[14px] tw-pr-13 tw-bg-header-search tw-text-current tw-text-sm tw-leading-none tw-rounded-global  tw-border-none  tw-placeholder-current header__search-input" placeholder="Search...">
    <button type="submit" class="tw-flex tw-items-center tw-px-[14px] tw-m-0 tw-bg-transparent tw-text-current tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-absolute tw-right-0 header__search-icon" tabindex="-1"><svg class=""
        width="24" height="24" xmlns="http://www.w3.org/2000/svg">
        <path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path>
      </svg></button>
    <button type="button" class="tw-hidden tw-justify-center tw-items-center tw-pr-2 tw-pl-6 tw-m-0 tw-bg-transparent tw-text-header-color tw-border-none tw-outline-none tw-cursor-pointer header__search-close "><svg class="" width="14" height="14"
        xmlns="http://www.w3.org/2000/svg">
        <path d="m3 3 8.485 8.485m0-8.485L3 11.485" stroke="currentColor" stroke-width="1.6" stroke-linecap="square"></path>
      </svg></button>
  </div>
</form>

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

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

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

Text Content

 * Worldwide delivery for $7.99(7-12days)Free shipping on orders over $99.

 * Worldwide delivery for $7.99(7-12days)Free shipping on orders over $99.

 * Worldwide delivery for $8.99(7-12days)Free shipping on orders over $99.

 * Worldwide delivery for $8.99(7-12days)Free shipping on orders over $99.


Powered by Translate
English,français,Deutsch,Italiano,Português,español,polski,Nederlands,svenska,Norsk,česky,suomi,Ελληνικά,dansk,slovenščina,Gaeilge,Lëtzebuergesch
CAD
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Australian Dollars (AUD)


Search

SNOWAKER


English,français,Deutsch,Italiano,Português,español,polski,Nederlands,svenska,Norsk,česky,suomi,Ελληνικά,dansk,slovenščina,Gaeilge,Lëtzebuergesch
CAD
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Australian Dollars (AUD)

Search Search
Account
 * Log in
 * Create an account

0 Cart
Close

 * Best Seller
 * Coat & Jacket
 * Vest
 * Sweaters
    * Sweaters
    * Sweatershirt

 * Shirts
    * Shirts
    * Cotton Linen Shirts
    * Long Sleeve Shirts
    * Casual Shirts

 * Polos
 * T-Shirts
 * Trousers & Shorts
 * Gentleman Series
 * Accessory
    * Accessory
    * Belts
    * Bracelets
    * Watch

   Log in
   
   English,français,Deutsch,Italiano,Português,español,polski,Nederlands,svenska,Norsk,česky,suomi,Ελληνικά,dansk,slovenščina,Gaeilge,Lëtzebuergesch
   CAD
    * United States Dollars (USD)
    * Euro (EUR)
    * United Kingdom Pounds (GBP)
    * Canadian Dollars (CAD)
    * Australian Dollars (AUD)

 * Best Seller
 * Coat & Jacket
 * Vest
 * Sweaters
   Sweatershirt
 * Shirts
   Cotton Linen Shirts
   Long Sleeve Shirts
   Casual Shirts
 * Polos
 * T-Shirts
 * Trousers & Shorts
 * Gentleman Series
 * Accessory
   Belts
   Bracelets
   Watch
 * More links







SNOWAKER


SNOWAKER

Save up to 50% off of the selected products. Our rock-bottom price for this
season.

Shop Now




OUR PHILOSOPHY

What you see is what you get, we are "seeing is believing".We promise to deliver
within 48 hours at the latest.If you need after-sales one-on-one customer
service, please contact email:support@snowaker.com.We would love to provide you
with better service. When contacting us, please remember to include your order
number (if applicable), this will help us to solve your problem faster and will
receive a reply within 24 hours at the latest. While still waiting for a
response from our customer service team, be sure to check your spam folder.



NEW ARRIVAL

CA$41.65
Men's Fall Long Sleeve Button Casual Polo Shirt
CA$41.65 CA$83.33 Save 50%
CA$69.43
Men's CasualSolid Color Fashion jacket
CA$69.43 CA$138.89 Save 50%
CA$83.33
Men's Elegant Suede Jacket
CA$83.33 CA$166.67 Save 50%
CA$83.33
Men's Elegant Casual Lapel Linen Blazer Jacket
CA$83.33 CA$166.67 Save 50%
CA$83.33
Men's Vintage Suede Multi-Pocket Color Block Turn-up Collar Outdoor Jacket
CA$83.33 CA$166.67 Save 50%
CA$125.00
Men's Blue Outdoor Multi-Pocket Denim Jacket
CA$125.00 CA$250.01 Save 50%
CA$69.43
Men's Multi Pocket Lapel Thin Casual Waffle Jacket
CA$69.43 CA$138.89 Save 50%
CA$69.43
Men's Vintage Single Layer Thin Multi-Pocket Outdoor Suede Jacket
CA$69.43 CA$138.89 Save 50%
CA$87.49
Men's Vintage Cotton Pocket Jacket
CA$87.49 CA$173.61 Save 50%
CA$81.94
Men's Casual Solid Color Jacket
CA$81.94 CA$162.50 Save 50%
CA$69.43
Men's Daily Fashion Brown Stripe Cotton Blazer
CA$69.43 CA$138.89 Save 50%
CA$79.16
Men's Elegant Everyday Lapel Blazer
CA$79.16 CA$158.33 Save 50%
CA$90.27
Men's Daily Fashion Stripe Cotton Blazer
CA$90.27 CA$180.56 Save 50%
CA$79.16
Men's Retro Striped Casual Ramie Blazer
CA$79.16 CA$158.33 Save 50%
CA$65.27
Men's Suit Velvet Solid Color Jacket
CA$65.27 CA$130.55 Save 50%
CA$41.65
Men's Fall Long Sleeve Button Casual Polo Shirt
CA$41.65 CA$83.33 Save 50%
CA$69.43
Men's CasualSolid Color Fashion jacket
CA$69.43 CA$138.89 Save 50%
CA$83.33
Men's Elegant Suede Jacket
CA$83.33 CA$166.67 Save 50%
CA$83.33
Men's Elegant Casual Lapel Linen Blazer Jacket
CA$83.33 CA$166.67 Save 50%
CA$83.33
Men's Vintage Suede Multi-Pocket Color Block Turn-up Collar Outdoor Jacket
CA$83.33 CA$166.67 Save 50%
CA$125.00
Men's Blue Outdoor Multi-Pocket Denim Jacket
CA$125.00 CA$250.01 Save 50%
View more




BEST SELLER

View all
 * SALE
   
   
   MEN'S COMFORTABLE BREATHABLE SUMMER MESH SHORT SLEEVE T-SHIRT
   
   (12)
   CA$48.60 CA$97.22
   Save CA$48.61
   
 * SALE
   
   
   MEN'S COTTON LINEN CASUAL LONG SLEEVE SHIRT
   
   CA$55.54 CA$97.22
   Save CA$41.67
   
 * SALE
   
   
   MEN'S FLEECE VEST WORK | DAILY | LEISURE
   
   CA$59.71 CA$119.44
   Save CA$59.73
   
 * SALE
   
   
   GENTLEMAN'S CASUAL LONG SLEEVE HENLEY SHIRT ( NEW )
   
   CA$48.60 CA$97.22
   Save CA$48.61
   
 * SALE
   
   
   MEN'S LINEN CASUAL LONG SLEEVE SHIRT
   
   CA$41.65 CA$83.33
   Save CA$41.67
   
 * SALE
   
   
   MEN'S CASHMERE ZIPPER BASIC SWEATER
   
   CA$48.60 CA$111.09
   Save CA$62.49
   


 * 2023 GENTLEMANS BUSINESS SHORT SLEEVE FITNESS T SHIRT
   
   (1158)
   CA$13.87
   
 * SALE
   
   
   GENTLEMAN'S SIMPLE BASIC STAND-UP COLLAR LONG-SLEEVED POLO SHIRT
   
   (15)
   CA$33.32 CA$66.66
   Save CA$33.33
   
 * SOLD OUT
   
   
   MEN'S CLASSIC SOLID COLOR VINTAGE CASUAL BUTTON DOWN JACKET
   
   (12)
   CA$97.22 CA$194.45
   Save CA$97.23
   
 * SALE
   
   
   MEN'S CASHMERE BUSINESS CASUAL ZIPPER SWEATER
   
   CA$55.54 CA$111.11
   Save CA$55.56
   
 * SALE
   
   
   MEN'S VINTAGE WESTERN CASUAL COTTON SHIRT ( NEW )
   
   CA$55.54 CA$111.11
   Save CA$55.56
   
 * SALE
   
   
   CASHMERE ZIPPER BASIC SWEATER
   
   CA$69.43 CA$138.89
   Save CA$69.45
   
 * SALE
   
   
   MEN'S CASHMERE ZIPPER BASIC SWEATER
   
   CA$55.54 CA$97.22
   Save CA$41.67
   
 * SALE
   
   
   MEN'S ELEGANT LAPEL KNITTED POCKET JACKET( NEW )
   
   (7)
   CA$83.33 CA$166.67
   Save CA$83.34
   
 * SALE
   
   
   MEN'S LONG SLEEVE ANTI-WRINKLE BUTTON DOWN CASUAL FALL SHIRT
   
   (34)
   CA$41.65 CA$83.33
   Save CA$41.67
   
 * SALE
   
   
   2023 MEN'S LINEN HENLEY SHIRT LONG-SLEEVED CASUAL T SHIRT
   
   (28)
   CA$41.65 CA$83.33
   Save CA$41.67
   




 * FREE SHIPPING
   
   FREE SHIPPING OVER $99

 * SUPPORT TEAM
   
   WE SUPPORT ONLINE 24/7 ON DAY

 * MONEY GUARANTEE
   
   30 DAYS MONEY BACK GUARANTEE

 * SAFE&SECURE
   
   ALL PAYMENT ARE SECURED


TROUSERS & SHORTS

View all
 * SALE
   
   
   MEN'S LINEN CASUAL BLOOMERS HAREM BELTED PANTS
   
   CA$41.65 CA$83.31
   Save CA$41.65
   
 * SALE
   
   
   GENTLEMAN BUSINESS CASUAL PANTS
   
   CA$48.60 CA$97.22
   Save CA$48.61
   
 * SALE
   
   
   2023 MEN'S CASUAL LINEN BEAM PANTS
   
   (13)
   CA$47.21 CA$99.99
   Save CA$52.78
   


 * MEN'S LINEN BEACH CASUAL LOOSE-FITTING PANTS
   
   (16)
   CA$13.87
   


 * CASUAL SHORTS MEN'S LOOSE PANTS BEACH PANTS BREATHABLE COMFY TROUSERS
   
   CA$34.53
   
 * SALE
   
   
   MEN'S LEISURE MULTI POCKET LOOSE STRAIGHT WORK SUIT PANTS
   
   CA$48.60 CA$97.22
   Save CA$48.61
   
 * SALE
   
   
   2023 NEW COTTON LINEN PANTS SUMMER NEW MEN'S LINEN PANTS CASUAL PANTS YOGA
   PANTS HOME SWEATPANTS BEACH CASUAL LOOSE PANTS
   
   (20)
   from CA$37.49 CA$83.31
   Save CA$45.82
   
 * SALE
   
   
   MEN'S SOLID COLOR LACE-UP SPORTS CASUAL PANTS SHORT
   
   (9)
   CA$41.64 CA$74.57
   Save CA$32.93
   
 * SALE
   
   
   MEN'S LOOSE FITTING CASUAL SOLID COLOR DOUBLE WAISTED SHORTS
   
   CA$41.65 CA$81.94
   Save CA$40.28
   
 * SALE
   
   
   SUMMER MEN'S LOOSE LACE UP CAPRIS PANTS
   
   CA$40.26 CA$80.55
   Save CA$40.28
   

GENTLEMAN SERIES

GENTLEMAN SERIES

Wear It And Exude Your Gentlemanly Charm.

Shop Now




FROM OUR CUSTOMERS

Really went out of their way to make me feel special as a customer, highly
recommend!

Daniel Robinson
Los Angeles, CA

Customer service responded quickly and I received a very satisfactory
after-sales service.

Edge
New Orleans, LA

Couldn't be happier with the service I received from this company.

J. Holston
Montreal, QC

Arrived fast and beautifully boxed. They even let me model on their site :)

Phillip Jackson
Toronto, ON

Really went out of their way to make me feel special as a customer, highly
recommend!

Daniel Robinson
Los Angeles, CA

Customer service responded quickly and I received a very satisfactory
after-sales service.

Edge
New Orleans, LA

Couldn't be happier with the service I received from this company.

J. Holston
Montreal, QC

Arrived fast and beautifully boxed. They even let me model on their site :)

Phillip Jackson
Toronto, ON




NEWSLETTER

Sign-up to receive news about snowaker campaigns. By subscribing, you are
agreeing to accept our Privacy Policy.

Subscribe
Thanks for subscribing
Save 10% on your first purchase
Sign up today and we'll send you a 10% discount code towards your first
purchase.
Thanks for subscribing


SNOWAKER

We are a professional clothing store, providing all kinds of clothing products
to the world. Our products and clothing are very distinctive. Here, you can find
any product you need.

WE PROMISED

✔Free shipping on orders over $99



✔Strict quality control



✔30-day return for refund



✔All payment are security

SNOWAKER INFO
 * About us
 * Privacy Policy
 * Terms and Conditions

SUPPORT & HELP
 * Return Policy
 * Contact us
 * Shipping Information
 * Payment Method

We accept
American Express Apple Pay Mastercard PayPal Visa

© 2024 snowaker


SIGN UP AND SAVE

Entice customers to sign up for your mailing list with discounts or exclusive
offers. Include an image for extra impact.
Subscribe
Thanks for subscribing
Optional button



×
Congratulations! You've earned a coupon!
Don't forget to use the discount code at checkout!
15%OFF for any order
AM215

SHOP NOW

111
GIFTS

POINTS




Item has been added
${(function(){ const products = data.products; const getDefaultVariant =
function(product){ if (product.min_price_variant.available){ return
product.min_price_variant; }else { const avail_variants =
product.variants.filter(function(variant){ return variant.available; }); if
(avail_variants.length) { return avail_variants[0]; } } }; const toQuery = obj
=> Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v =>
`${k}[]=${encodeURIComponent(v)}`).join('&') :
`${k}=${encodeURIComponent(obj[k])}` ) .join('&'); const getDefaultTrackParams =
function(product, index){ const variant = getDefaultVariant(product); const
params = { aid: 'smart_recommend.2.' + data.id, scm: product.scm || data.scm ||
'', spm: data.spmBase + '.' + index, ssp: data.ssp || '', }; const trackParams =
Object.keys(params).map(function(key){ return params[key]; }).join('__'); return
trackParams; }; const hasMore = (data.products.length -
data.target_top_product_num - data.page * data.limit) === 0; return `
${(function(){ return `
${data.config.pop_title}

${data.rebate_tips || ''}
`; })()}
${product.title}
Added




`; })()}

class SpzCustomComponent extends SPZ.BaseElement { constructor(element) {
super(element); this.templates_ = null; this.container_ = null;
this._atcLineItem = {}; this.cart_ = {}; this.top_product_ids_ = [];
this.products_ = []; this.activityId_ = null; this.rendered_ = false;
this.myInterceptor_ = null; this.i18n_ = {}; this.config_ = {}; this.page_ = 1;
this.limit_ = 10; this.loading_ = false; } static deferredMount() { return
false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER;
} buildCallback() { this.templates_ = SPZServices.templatesForDoc(this.element);
this.setAction_(); } mountCallback() { console.log('pop mounted'); this.i18n_ =
window.smartRecommendI18n &&
window.smartRecommendI18n[document.documentElement.lang || 'en-US'] || {}; const
cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const
modalEl = document.getElementById("smart_cart_pop_modal"); const spmBase =
`smart_recommend_2`; const extra = { spmBase: spmBase, i18n: this.i18n_, };
const that = this; document.addEventListener('dj.addToCart', (event) => { try {
const e = event.detail; if (e.source === 'buy_now' || window.__upsell_block ||
this.rendered_) return; that.fetchActivityData({product_id: e.product_id,
variant_id: e.variant_id}).then(data => { if (!data || !data.products ||
!data.products.length) return; that.config_ = data.config; const recommendStyle
= document.createElement('style'); recommendStyle.innerHTML = `
#plugin_recommend_atc_pop { display: none !important; } `;
document.head.appendChild(recommendStyle); if (data.config.pop_frequency ===
'once' && window.sessionStorage.getItem('smart_pop_times') > 0) return;
SPZ.whenApiDefined(cartPopRenderEl).then(function(api){
api.render(Object.assign({}, data, extra), true).then(function() {
that.rendered_ = true; if (data.products.length) { const headEl =
document.getElementById("smart_cart_pop_head_render"); if (headEl) {
SPZ.whenApiDefined(headEl).then(function(head){ head.render({ data: data }); });
} SPZ.whenApiDefined(modalEl).then(function(api){
that.impressListen('#smart_cart_pop_activity', function(){
that.trackPluginImpression_(data); }); api.open(); const intersectionObserver =
new IntersectionObserver( function (entries) { if (entries[0].intersectionRatio
> 0){ !that.loading_ && (that.products_.length - that.target_top_product_num_)
=== that.page_ * that.limit_ && that.viewMore(); } }, { threshold: [0.1] } );
intersectionObserver.observe(
document.querySelector('#smart_cart_pop_view_more_text') ); }); } }) }); }) }
catch (e) { console.error(e); } }); } unmountCallback() { } viewMore () { const
cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const that =
this; const data = {}; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){
that.fetchActivityData({ page: that.page_ + 1, limit: that.limit_
}).then(function(data) { data.products = that.products_;
data.target_top_product_num = that.target_top_product_num_; data.i18n =
that.i18n_; data.spmBase = `smart_recommend_2`; api.render(data); }) }) }
fetchActivityData(data) { const that = this; if (data.product_id) {
that._atcLineItem = data; } that.loading_ = true; return
that.getCart().then(cart => { that.cart_ = cart.cart; return
fetch(window.C_SETTINGS.routes.root + "/api/possum/recommend_activities", {
method: "POST", headers: { "Content-Type": "application/json", "store-id":
window.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.routes.root || ''}/api/bundle-sales/cart`, { method:
'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8',
'store-id': window.C_SETTINGS.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}
`; })()}


See detail
$0.00



Quantity

1


Original text

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