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

URL: https://www.chicmanistudio.com/
Submission: On January 17 via api from US — Scanned from US

Form analysis 4 forms found in the DOM

GET /search

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

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

<form class="arco-form arco-form-vertical arco-form-size-large cartx-a-form">
  <div class="cartx-a-headline">You're one spin away from winning a discount!💨</div>
  <div class="cartx-a-second-headline">Enter your email to spin the wheel.</div>
  <div class="cartx-form-wrapper">
    <div class="arco-row-align-start arco-row-justify-start arco-form-item arco-form-layout-vertical cartx-form">
      <div class="arco-form-item-wrapper">
        <div class="arco-form-item-control-wrapper">
          <div class="arco-form-item-control" id="email">
            <div class="arco-form-item-control-children"><input id="email_input" placeholder="Email Address*" class="arco-input arco-input-size-large cartx-input" value=""></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="arco-row-align-start arco-row-justify-start arco-form-item arco-form-layout-vertical">
    <div class="arco-form-item-wrapper">
      <div class="arco-form-item-control-wrapper">
        <div class="arco-form-item-control" id="acceptsMarketing">
          <div class="arco-form-item-control-children"><label id="acceptsMarketing_input" class="arco-checkbox arco-checkbox-checked cartx-a-gdpr" style="margin-left: 0px; padding-left: 0px; padding-bottom: 0px;"><input type="checkbox" value="true"
                checked=""><span class="arco-icon-hover arco-checkbox-icon-hover arco-icon-hover-disabled arco-checkbox-mask-wrapper">
                <div class="arco-checkbox-mask"><svg class="arco-checkbox-mask-icon" aria-hidden="true" focusable="false" viewBox="0 0 1024 1024" width="200" height="200" fill="currentColor">
                    <path
                      d="M877.44815445 206.10060629a64.72691371 64.72691371 0 0 0-95.14856334 4.01306852L380.73381888 685.46812814 235.22771741 533.48933518a64.72691371 64.72691371 0 0 0-92.43003222-1.03563036l-45.82665557 45.82665443a64.72691371 64.72691371 0 0 0-0.90617629 90.61767965l239.61903446 250.10479331a64.72691371 64.72691371 0 0 0 71.19960405 15.14609778 64.33855261 64.33855261 0 0 0 35.08198741-21.23042702l36.24707186-42.71976334 40.5190474-40.77795556-3.36579926-3.49525333 411.40426297-486.74638962a64.72691371 64.72691371 0 0 0-3.88361443-87.64024149l-45.3088404-45.43829334z"
                      p-id="840"></path>
                  </svg></div>
              </span><span class="arco-checkbox-text"><span class="cartx-a-gdpr-checkbox-container" style="margin-bottom: 0px; font-size: 11px;">Yes, I would like to get news and offers from you. </span></span></label></div>
        </div>
      </div>
    </div>
  </div>
  <div class="arco-row-align-start arco-row-justify-start arco-form-item arco-form-layout-vertical">
    <div class="arco-form-item-wrapper">
      <div class="arco-form-item-control-wrapper">
        <div class="arco-form-item-control">
          <div class="arco-form-item-control-children"><button class="arco-btn arco-btn-primary arco-btn-size-large arco-btn-shape-square cartx-a-submit" type="submit" style="margin: 0px; font-size: 19px; word-break: break-all;"><span>Spin
                it</span></button></div>
        </div>
      </div>
    </div>
  </div>
</form>

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

Text Content

 * FREE SHIPPING ON ALL ORDERS OVER $39.9

 * FREE SHIPPING ON ALL ORDERS OVER $39.9

USD
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Australian Dollars (AUD)

USD
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Australian Dollars (AUD)


 * Log in
 * Create an account

0
 * Home
 * Poly Nail Gel
   New in
   
   SALE
   
   
   
   NILE BLUE GLITTER POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * Starter Kit
 * About Us
 * Contact Us
 * Track Your Order
 * More links



 * Home
 * Poly Nail Gel
    * Poly Nail Gel
    * New in

 * Starter Kit
 * About Us
 * Contact Us
 * Track Your Order
   Log in
   
   USD
    * United States Dollars (USD)
    * Euro (EUR)
    * United Kingdom Pounds (GBP)
    * Canadian Dollars (CAD)
    * Australian Dollars (AUD)




STARTER KIT

VIEW ALL
 * SALE
   
   
   
   10 OPTIONAL COLORS POLY NAIL GEL STARTER KIT
   
   $59.99 $299.95
   Save 80%
 * SALE
   
   
   
   6 OPTIONAL COLORS POLY NAIL GEL STARTER KIT
   
   $39.99 $199.95
   Save 80%
 * SALE
   
   
   
   5 OPTIONAL COLORS POLY NAIL GEL STARTER KIT
   
   $45.99 $229.95
   Save 80%
 * SALE
   
   
   
   10 OPTIONAL COLORS POLY NAIL GEL STARTER KIT
   
   $69.98 $349.90
   Save 80%

POLY NAIL GEL

VIEW ALL
 * SALE
   
   
   
   NILE BLUE GLITTER POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   CLEAR GLITTER POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   TEMPERATURE COLOR CHANGING SHINING PINK GLITTER POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   PUCE RED POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   BLUE PLATINUM GLITTER POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   CLEAR POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   MILKY PINK POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   WHITE POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   PINKISH YELLOW POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%
 * SALE
   
   
   
   TEMPERATURE COLOR CHANGING STRONG RED GLITTER POLY NAIL GEL
   
   $6.99 $34.95
   Save 80%






${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("") }
` })()}
Be the first one to know about new arrivals, tips and more.
SUBSCRIBE
Thanks for subscribing

QUICK LINKS
 * Home
 * Poly Nail Gel
 * Starter Kit
 * About Us
 * Contact Us
 * Track Your Order

POLICIES
 * Shipping
 * Payment Method
 * Returns & Refund Policy
 * Privacy Policy
 * Terms Of Service

CONTACT US
Email us

support@houselny.com

Address:ROOM 20 UNIT B3, 07/FL TUEN MUN INDUSTRIAL CENTRE, NO. 2 SAN PING
CIRCUIT, TUEN MUN,999077

Company Name: SHINECOURSE LIMITED

FOLLOW US

WE ACCEPT
Mastercard PayPal Visa

© 2024 Houselny  All rights reserved. 



SIGN UP AND SAVE

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



9ad01bac-4be1-4397-a281-e6f8fcf2bdf9
Rewards
copied

编组 2
WIN 25% OFF💸
So close!
WIN 5% OFF💸
WIN 200$ GIFT CARD
WIN 10% OFF💸
Free gift🎁
WIN 15% OFF💸
WIN 300$ GIFT CARD
WIN 20% OFF💸
Free gift🎁



You're one spin away from winning a discount!💨
Enter your email to spin the wheel.


Yes, I would like to get news and offers from you.
Spin it
✕  Close


111
GIFTS

POINTS



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

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




`; })()}

class SpzCustomComponent extends SPZ.BaseElement { constructor(element) {
super(element); this.templates_ = null; this.container_ = null;
this._atcLineItem = {}; this.cart_ = {}; this.top_product_ids_ = [];
this.products_ = []; this.activityId_ = null; this.rendered_ = false;
this.myInterceptor_ = null; this.i18n_ = {}; this.config_ = {}; this.page_ = 1;
this.limit_ = 10; this.loading_ = false; } static deferredMount() { return
false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER;
} buildCallback() { this.templates_ = SPZServices.templatesForDoc(this.element);
this.setAction_(); } mountCallback() { console.log('pop mounted'); this.i18n_ =
window.smartRecommendI18n &&
window.smartRecommendI18n[document.documentElement.lang || 'en-US'] || {}; const
cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const
modalEl = document.getElementById("smart_cart_pop_modal"); const spmBase =
`smart_recommend_2`; const extra = { spmBase: spmBase, i18n: this.i18n_, };
const that = this; document.addEventListener('dj.addToCart', (event) => { try {
const e = event.detail; if (e.source === 'buy_now' || window.__upsell_block ||
this.rendered_) return; that.fetchActivityData({product_id: e.product_id,
variant_id: e.variant_id}).then(data => { if (!data || !data.products ||
!data.products.length) return; that.config_ = data.config; const recommendStyle
= document.createElement('style'); recommendStyle.innerHTML = `
#plugin_recommend_atc_pop { display: none !important; } `;
document.head.appendChild(recommendStyle); if (data.config.pop_frequency ===
'once' && window.sessionStorage.getItem('smart_pop_times') > 0) return;
SPZ.whenApiDefined(cartPopRenderEl).then(function(api){
api.render(Object.assign({}, data, extra), true).then(function() {
that.rendered_ = true; if (data.products.length) { const headEl =
document.getElementById("smart_cart_pop_head_render"); if (headEl) {
SPZ.whenApiDefined(headEl).then(function(head){ head.render({ data: data }); });
} SPZ.whenApiDefined(modalEl).then(function(api){
that.impressListen('#smart_cart_pop_activity', function(){
that.trackPluginImpression_(data); }); api.open(); const intersectionObserver =
new IntersectionObserver( function (entries) { if (entries[0].intersectionRatio
> 0){ !that.loading_ && (that.products_.length - that.target_top_product_num_)
=== that.page_ * that.limit_ && that.viewMore(); } }, { threshold: [0.1] } );
intersectionObserver.observe(
document.querySelector('#smart_cart_pop_view_more_text') ); }); } }) }); }) }
catch (e) { console.error(e); } }); } unmountCallback() { } viewMore () { const
cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const that =
this; const data = {}; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){
that.fetchActivityData({ page: that.page_ + 1, limit: that.limit_
}).then(function(data) { data.products = that.products_;
data.target_top_product_num = that.target_top_product_num_; data.i18n =
that.i18n_; data.spmBase = `smart_recommend_2`; api.render(data); }) }) }
fetchActivityData(data) { const that = this; if (data.product_id) {
that._atcLineItem = data; } that.loading_ = true; return
that.getCart().then(cart => { that.cart_ = cart.cart; return
fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_activities", {
method: "POST", headers: { "Content-Type": "application/json", "store-id":
window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ "show_type": 2,
"line_item": { "product_id": that._atcLineItem.product_id, "variant_id":
that._atcLineItem.variant_id, }, line_items: cart.cart.line_items, "page":
data.page || 1, "limit": data.limit || 10, }) }).then(function(res){ if(res.ok){
return res.json(); } }).then(function(data){ data.cart = cart.cart; if
(data.page === 1) { that.target_top_product_num_ = data.target_top_product_num
|| 0; } that.products_ = that.products_.concat(data.products || []); that.page_
= data.page || 1; that.limit_ = data.limit || 10; return data;
}).catch(function(e){ console.log(e); }).finally(function(){ that.loading_ =
false; }) }); }; setAction_() { this.registerAction('changeBannerColor', (data)
=> { if (!data.args.data || !data.args.data.data || !data.args.data.data.data)
return false; const config = data.args.data.data.data.config; const bannerBgEl =
document.querySelector('.smart_cart_pop_banner_bg'); if (bannerBgEl && config) {
bannerBgEl.style.background = config.banner_bg_color; bannerBgEl.style.color =
config.banner_text_color; } }); this.registerAction('handleProductChange',
(data) => { const that = this; const imageEl =
document.getElementById(`smart_cart_pop_image_${data.args.data.product_id}`);
SPZ.whenApiDefined(imageEl).then(function(api){ api.render({ data:
data.args.data, config: that.config_ }); }); const atcTextEl =
document.getElementById(`smart_cart_pop_atc_${data.args.data.product_id}`);
SPZ.whenApiDefined(atcTextEl).then(function(api){ api.render({ data:
data.args.data, defaultText: data.args.defaultText, soldOutText:
that.i18n_.sold_out }); }); if (data.args.data.variant.available) {
document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.remove('zb-pointer-events-none');
} else {
document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.add('zb-pointer-events-none');
} }); this.registerAction('handleProduct', (detail) => { const that = this;
this.renderProductsForm_(detail.args.data.data); });
this.registerAction('addATCHook', (data) => { const params = data.args;
this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({
event: 'dj.addToCart', params: { aid: 'smart_recommend.2.' + params.activity_id,
ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm:
`..${window.SHOPLAZZA.meta.page.template_name}.${params.spm}`, }, once: true });
}); this.registerAction('handleAtcSuccess', (detail) => {
detail.args.data.product = detail.args.data.product || {};
detail.args.data.variant = detail.args.data.variant || {}; const defParams =
detail.args.product.split('__'); const product_id = detail.args.data.product.id;
const product_title = detail.args.data.product.title; const variant_id =
detail.args.data.variant.id; const price = detail.args.data.variant.price; const
aid = defParams[0]; const ifb = detail.args.data.product.ifb; const cfb =
detail.args.data.product.cfb; const scm = defParams[1]; const spm =
defParams[2]; const ssp = defParams[3]; const params = { id: product_id,
product_id: product_id, number: 1, name: product_title, variant_id: variant_id,
childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid:
aid, ifb: ifb, cfb: cfb, scm: scm, spm:
`..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; const
activity_id = `${detail.args.activity_id}`; const target_drive_way =
detail.args.target_drive_way;
document.getElementById(`smart_cart_pop_loading_${product_id}`).classList.add('zb-hidden');
document.getElementById(`smart_cart_pop_added_${product_id}`).classList.remove('zb-hidden');
setTimeout(() => {
document.getElementById(`smart_cart_pop_added_${product_id}`).classList.add('zb-hidden');
document.getElementById(`smart_cart_pop_atc_${product_id}`).classList.remove('zb-hidden');
document.getElementById(`smart_cart_pop_atc_btn_${product_id}`).classList.remove('zb-pointer-events-none');
}, 1000); this.tranckAddToCart(params); if (target_drive_way === 'rebate') {
const bannerEl = document.getElementById(`smart_cart_pop_banner`);
this.getRecommendInfo(activity_id).then(res => { if (res && res.rebate_tips) {
bannerEl.innerHTML = res.rebate_tips; } }) } });
this.registerAction('handleCartSummary', (event) => { this.onBuyNowClick();
const tipEl = document.getElementById("smart_cart_pop_tip_info"); const cart =
event && event.args && event.args.data && event.args.data.data; if (!tipEl ||
!cart) return; const that = this; let total_price = cart.total_price; if
(!total_price) { SPZ.whenApiDefined(tipEl).then(function(api){ api.render({
total_price: total_price, i18n: that.i18n_ }, false); }); } else {
this.getBindDiscount_(cart.line_items).then(res => { if (res &&
res.discount_code){ const total = cart.line_price - cart.total_discount -
res.bundle_discount_value; if (total > 0) { total_price = total; } else {
total_price = 0; } } SPZ.whenApiDefined(tipEl).then(function(api){ api.render({
total_price: total_price, i18n: that.i18n_ }, false); }); }) } });
this.registerAction('open', () => {
window.sessionStorage.setItem('smart_pop_times',
Number(window.sessionStorage.getItem('smart_pop_times')) + 1); });
this.registerAction('close', () => { this.rendered_ = false; this.products_ =
[]; window.djInterceptors &&
window.djInterceptors.track.eject(this.myInterceptor_); }); } getCart() { return
fetch(`${window.SHOPLAZZA.routes.root || ''}/api/cart`, { method: 'GET',
headers: { 'Content-Type': 'application/json; charset=UTF-8', }, }).then(res =>
res.json()) } getRecommendInfo (activity_id) { return this.getCart().then(cart
=> { this.cart_ = cart.cart; return fetch(`${window.SHOPLAZZA.routes.root ||
''}/api/possum/recommend_info`, { method: 'POST', headers: { 'Content-Type':
'application/json; charset=UTF-8', }, body: JSON.stringify({ show_type: 2,
rule_id: `${activity_id}`, line_items: cart.cart.line_items, line_item:
this._atcLineItem, }) }).then(res => res.json()) }) } renderProductsForm_(data)
{ const products = data.products; const listPopRenderEl =
document.getElementById("smart_cart_pop_render"); if (!listPopRenderEl) return;
listPopRenderEl.querySelectorAll('.smart_cart_pop_atc_btn_bg').forEach(function(el){
el.style.background = data.config.add_to_cart_button_color; });
products.forEach(function(product){ const productId = product.id; const
productFormEls =
listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]`);
let variantsEl =
listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]
#smart_cart_pop_variant_${productId}_mobile ljs-variants`); if
(window.innerWidth > 768) { variantsEl =
listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]
#smart_cart_pop_variant_${productId}_pc ljs-variants`); }
productFormEls.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){
api.setProduct(product); }); }); variantsEl.forEach(function(el){
SPZ.whenApiDefined(el).then(function(api){ api.handleRender(product); }); }) });
} tranckAddToCart(detail) { if (window.$) {
window.$(document.body).trigger('dj.addToCart', detail); } }
trackPluginImpression_(rule){ if (window.sa && window.sa.track) {
window.sa.track("plugin_common", { plugin_name: "upsell", event_type:
"impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: 2 });
window.sa.track("module_impressions", { aid: `smart_recommend.2.${rule.id}` });
} } onBuyNowClick() { const checkoutEl =
document.getElementById("smart_cart_pop_checkout"); if (!checkoutEl) return;
checkoutEl.addEventListener('click', function(e) { const trackData = {
plugin_name: "upsell", event_type: "checkout_submit", rule_id:
`${this.activityId_}`, show_type: 2 }; window.sa &&
window.sa.track("plugin_common", trackData); }); } getBindDiscount_(carts) { let
bundle_sale_ids = []; try { bundle_sale_ids = sessionStorage['bundle_sale_ids']
&& JSON.parse(sessionStorage['bundle_sale_ids']).filter((item, index, arr) =>
arr.indexOf(item, 0) === index).slice(-5); } catch (err) { console.error(err); }
if (!carts.length) { Promise.resolve(); } return
fetch(`${window.SHOPLAZZA.routes.root || ''}/api/bundle-sales/cart`, { method:
'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8',
'store-id': window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ cart:
carts, action_type: 'cart', bundle_sale_ids }) }).then(res => res.json()) }
impressListen(selector, cb) { const el = document.querySelector(selector); const
onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el &&
!el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else
if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart',
SpzCustomComponent); ${function(){ return `
${data.data.rebate_tips || ''}
`; }()} ${function(){ const getImageHeight = function(image){ const width =
image.width || 500; const height = image.height || 500; const image_size =
data.config.image_size || 0; let ratio = 0; if(image_size == 0){ ratio = (height
/ width).toFixed(2); }else if(image_size == 1){ ratio = 1.5; } return 132 *
ratio; }; const image = data.data.variant.image || data.data.product.image;
return ` `; }()}
${(function(){ const product = data.product; const avail_variants =
product.variants.filter(function(variant){ return variant.available; }); const
selected_variant = product.min_price_variant.available ?
product.min_price_variant : avail_variants.length && avail_variants[0]; return `
${option.name}
${ option.values.map(function(value, index){ const checked =
selected_variant["option"+option.position] == value ? "checked": ""; return `
${value}
` }).join("") }
` })()}
${(function(){ const variant = data.variant; return `

`; })()} ${(function(){ const variant = data.variant; return `
${ variant.options.map(function(option){ return option.value; }).join("/") ||
'Not exist' }
`; })()} ${(function(){ const variant = data.data && data.data.variant; const
defaultText = data.defaultText || 'Add To Cart'; const text = (!variant ||
variant.available) ? defaultText: data.soldOutText; return `
${text}
`; })()} ${(function(){ let cart = data; if(data.data) { cart = data.data; }
return `
${cart.item_count >=0 ? cart.item_count : '..'}
Checkout
`; })()}


See detail
$0.00



Quantity

1