www.easeeye.com
Open in
urlscan Pro
2606:4700::6811:f677
Public Scan
Submitted URL: http://www.easeeye.com/products/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b20...
Effective URL: https://www.easeeye.com/products/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b20...
Submission: On August 03 via api from US — Scanned from US
Effective URL: https://www.easeeye.com/products/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b20...
Submission: On August 03 via api from US — Scanned from US
Form analysis
9 forms found in the DOM<form>
<input name="variant_id" type="hidden" value="${data.variants[0].id}">
<button type="button" class="product-snippet__quick-shop-icon" role="addToCart" data-quick-shop="${data.handle}" data-track-product-id="${data.id}" data-track="click" data-track-content="add_to_cart" data-track-source="quick_shop">
<svg class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.6 1.9a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.5H1.9a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.5v5.5a.3.3 0 0 0 .3.3h.6a.3.3 0 0 0 .3-.3V8.6h5.5a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V1.9z" fill="currentColor"></path>
</svg>
</button>
</form>
GET /search
<form class="flex items-center" action="/search" method="get">
<button type="submit" class="clear text-0 text-inherit cursor-pointer">
<svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M17.925 20.057A9.955 9.955 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.968 9.968 0 0 1-2.864 7.006l4.929 4.928a.8.8 0 0 1-1.132 1.132l-5-5-.008-.01zM20.4 12a8.4 8.4 0 1 1-16.8 0 8.4 8.4 0 0 1 16.8 0z"
fill="currentColor"></path>
</svg>
</button>
<input @input-debounced="header_search_predictive_render.rerender(data=event.value, redo=true);" class="header__search_sidebar-input flex-1 text-base leading-none type-text-font-family clear" type="text" autocomplete="off" name="q"
placeholder="Search products">
<button type="reset" class="header__search-modal-close text-0 text-inherit clear cursor-pointer" @tap="header_search_sidebar.close()">
<svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
<path d="M21.502 5.732A.85.85 0 0 0 20.3 4.53l-7.32 7.32L5.734 4.6a.85.85 0 0 0-1.202 1.203l7.248 7.247L4.53 20.3A.85.85 0 0 0 5.733 21.5l7.248-7.248 7.319 7.319a.85.85 0 0 0 1.202-1.202l-7.319-7.319 7.319-7.319z" fill="currentColor"></path>
</svg>
</button>
</form>
<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 role="spz-product-form921c308e-61ad-4c95-a97b-3dfad51c8fac">
<div class="product-info-body-inner product-info-body-z-index" id="product-info-body-inner-container">
<h1 class="product-info__header_title m-0 type-heading-font-family text-base lg:text-xl leading-1.3 lg:leading-1.2 break-words product-title-color ">Car Interior Ambient Lights- (Contains 4 light bars)</h1>
<spz-render id="product-info-prices" layout="container" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container" style="height: auto;">
<template> ${function() { const variantData = data.variant || {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY
1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY
1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE
BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const saveType = "amount"; const saveText = "Save {{saved_amount}}"; const productLabelDiscountOn = true;
return ` <div class="flex items-center justify-between mt-3">
<div spz-if="${!variantData.price}" class="mr-2 text-2xl leading-1.2 font-semibold color-price flex items-center">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price" value="${data.product.price_min}" layout="container"></spz-currency>
<span class="flex" spz-if="${!variantData.price && data.product.price_min < data.product.price_max}"> - <spz-currency class="ml-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price"
value="${data.product.price_max}" layout="container"></spz-currency></span>
</div>
<div spz-else="" class="flex items-center flex-wrap">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price" value="${variantData.price}" layout="container"></spz-currency>
<spz-currency class="body-plus-2 leading-1.1 color-compare-price line-through mr-2" container-class="product-info__header_compare-at-price" layout="container" value="${variantData.compare_at_price}"
spz-if="${+variantData.price < +variantData.compare_at_price}"></spz-currency>
<div spz-if="${productLabelDiscountOn && variantData.off_ratio > 0}" class="inline-block color-save-price whitespace-nowrap"> ${saveText.replace('\{\{saved_amount\}\}', saveType == 'percentage' ? variantData.off_ratio + '%' :
`<spz-currency class="inline-block" value="${variantData.compare_at_price - variantData.price}" layout="container"></spz-currency>` )} </div>
</div>
</div> `; }()} </template>
<div class="flex items-center justify-between mt-3">
<div class="flex items-center flex-wrap" spz-else="">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_price" value="24.97" layout="container"
i-spzhtml-layout="container">
<div class="money product-info__header_price notranslate">$24.97</div>
</spz-currency><spz-currency class="body-plus-2 leading-1.1 color-compare-price line-through mr-2 i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_compare-at-price"
layout="container" value="39.99" spz-if="true" i-spzhtml-layout="container">
<div class="money product-info__header_compare-at-price notranslate">$39.99</div>
</spz-currency>
<div class="inline-block color-save-price whitespace-nowrap" spz-if="true"> Save <spz-currency class="inline-block i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" value="15.020000000000003" layout="container"
i-spzhtml-layout="container">
<div class="money notranslate">$15.02</div>
</spz-currency>
</div>
</div>
</div>
</spz-render>
<div class="flex flex-wrap item-center justify-between color-compare-price mt-3">
</div>
<div class="plugin-discount-wrap empty-hidden" role="[theme-seat-for-plugin]">
<div class="bootstrap">
<div class="plugin__wrappers d-flex flex-column">
<div class="plugin_modals position-relative plugin_modals-rebate" id="Modal862365" style="order: 8">
<style>
#Modal862365 {
--modal_background: linear-gradient(0deg, #ebc19e, #fff3e8 100%);
--modal_caret_background: #fff2e9;
--modal_title_color: #B83D07;
--modal_close_color: #FFFFFF;
--modal_close_background_color: #F03010;
--list_border_color: #dddddd;
}
@media (max-width: 767.98px) {
#Modal862365 .coupon_plugin__coupon:last-child {
padding-bottom: 0;
}
}
#Modal862365 .modal-footer {
position: relative;
margin-top: -30px;
}
#Modal862365 .modal-footer::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 150%;
background-image: url(//img.staticdj.com/oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg);
background-repeat: no-repeat;
background-size: 100%;
pointer-events: none;
}
@media (max-width: 767.98px) {
#Modal862365 .discount-present-item:last-child {
padding-bottom: 40px;
}
#Modal862365 .plugin_modals__wrapper-list>a:last-child {
padding-bottom: 14px;
}
}
</style>
<!-- 入口 -->
<div class="plugin_modals__list" data-toggle="modal" data-target="#target_Modal862365" impr="1" imprevt="1" imprsd="true">
<div class="plugin_modals__list-name">
<style>
a.product_detail_rebate_list {
display: inline-flex;
gap: 4px;
align-items: start;
color: #EB391B;
}
a.product_detail_rebate_list:hover {
color: #EB391B;
}
a.product_detail_rebate_list .money {
white-space: nowrap;
}
.plugin_modals__modal .rebate-icon {
display: none;
}
.rebate-icon {
padding-top: 4px;
}
</style>
<a class="product_detail_rebate_list" impr="1" imprevt="1" href="/promotions/rebate/04f491bd-fcb5-47e0-a692-8edd3bd4135a" imprsd="true">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="24" fill="none" class="rebate-icon">
<g clip-path="url(#a)">
<path fill="#EB391B" fill-rule="evenodd" d="M9.127 1.275a1.576 1.576 0 0 0-2.255 0l-.693.709a1.576 1.576 0 0 1-1.146.475l-.991-.012a1.576 1.576 0 0 0-1.595 1.595l.011.991a1.576 1.576 0 0 1-.475 1.146l-.708.693a1.576 1.576 0 0 0 0 2.255l.709.693c.308.3.48.716.475 1.146l-.012.992a1.576 1.576 0 0 0 1.595 1.594l.991-.011a1.577 1.577 0 0 1 1.146.475l.693.709a1.575 1.575 0 0 0 2.255 0l.693-.71a1.576 1.576 0 0 1 1.146-.475l.992.012a1.575 1.575 0 0 0 1.594-1.594l-.011-.992a1.577 1.577 0 0 1 .475-1.146l.709-.693a1.575 1.575 0 0 0 0-2.255l-.71-.693a1.576 1.576 0 0 1-.475-1.146l.012-.991a1.576 1.576 0 0 0-1.594-1.595l-.992.011a1.576 1.576 0 0 1-1.146-.475l-.693-.708ZM5.84 6.92a1.08 1.08 0 1 0 0-2.16 1.08 1.08 0 0 0 0 2.16Zm4.32 4.32a1.08 1.08 0 1 0 0-2.161 1.08 1.08 0 0 0 0 2.16Zm.56-5.96a.793.793 0 0 1 0 1.12L6.4 10.72A.792.792 0 0 1 5.28 9.6L9.6 5.28a.792.792 0 0 1 1.12 0Z" clip-rule="evenodd"></path>
</g>
<defs>
<clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"></path></clipPath>
</defs>
</svg>
<div style="flex: 1;word-break: break-word">
<li id="pdr__rule" class="pdr__rule">
<b>10%</b> OFF 2nd item
</li>
<li id="pdr__rule" class="pdr__rule">
<b>15%</b> OFF 3rd item
</li>
<li id="pdr__rule" class="pdr__rule">
<b>20%</b> OFF 4th item
</li>
</div>
</a>
</div>
<div class="plugin_modals__list-labels text-right"></div>
</div>
</div>
</div>
</div>
</div>
<spz-variants class="product-info__variants flex flex-col items-start i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" id="product-info-variants" src="script:product-json" switch-slide="[]"
slide="product-main-images;" manual="" interference="" select-soldout-suffix=" - Sold out" interact="hover" inherit-url-variant=""
@mouseout="product-info-selected-variant-Style.rerender(data=event);product-info-selected-variant-BUY-MORE-SAVE-MORE.rerender(data=event);" @stylemouseover="product-info-selected-variant-Style.rerender(data=event);"
@buy-more-save-moremouseover="product-info-selected-variant-BUY-MORE-SAVE-MORE.rerender(data=event);" i-spzhtml-layout="container">
<fieldset class="product-info__variants_content mt-6 lg:mt-8 mx-0" name="Style">
<legend class="w-full">
<span class="lg:body-plus-2 leading-1.3 product-info__variants_title">Style</span>
<spz-render class="inline-block opacity-60 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-Style" layout="container" manual="" i-spzhtml-layout="container"
style="height: 18px;">
<template> ${function(){ const optName = "Style"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return
` <span> ${optionValueText} </span> ` }()} </template>
<span> : ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL) </span></spz-render>
</legend>
<div class="flex flex-wrap mt-1 product-info-variant-container ">
<div class="relative mt-3 mr-3">
<input type="radio" option="ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)" id="product-info-variant-ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-0" class="pointer-events-auto" name="product-info-variant-Style"
value="ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)" form="product-info-body" @input-debounced="product-info-selected-variant-style.rerender(data=event);" checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="Style-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
</spz-render>
<fieldset class="product-info__variants_content mt-6 lg:mt-8 mx-0" name="BUY MORE SAVE MORE">
<legend class="w-full">
<span class="lg:body-plus-2 leading-1.3 product-info__variants_title">Buy More Save More</span>
<spz-render class="inline-block opacity-60 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-BUY-MORE-SAVE-MORE" layout="container" manual="" i-spzhtml-layout="container"
style="height: 18px;">
<template> ${function(){ const optName = "BUY MORE SAVE MORE"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue)
: ''; return ` <span> ${optionValueText} </span> ` }()} </template>
<span> : BUY 1 </span></spz-render>
</legend>
<div class="flex flex-wrap mt-1 product-info-variant-container ">
<div class="relative mt-3 mr-3">
<input type="radio" option="BUY 1" id="product-info-variant-BUY 1-0" class="pointer-events-auto" name="product-info-variant-BUY MORE SAVE MORE" value="BUY 1" form="product-info-body"
@input-debounced="product-info-selected-variant-buy-more-save-more.rerender(data=event);" checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">BUY 1</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="BUY 2 (SAVES $10) Most Recommend" id="product-info-variant-BUY 2 (SAVES $10) Most Recommend-1" class="pointer-events-auto" name="product-info-variant-BUY MORE SAVE MORE" value="BUY 2 (SAVES $10) Most Recommend"
form="product-info-body" @input-debounced="product-info-selected-variant-buy-more-save-more.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">BUY 2 (SAVES $10) Most Recommend</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="BUY 4 FREE SHIPPING" id="product-info-variant-BUY 4 FREE SHIPPING-2" class="pointer-events-auto" name="product-info-variant-BUY MORE SAVE MORE" value="BUY 4 FREE SHIPPING" form="product-info-body"
@input-debounced="product-info-selected-variant-buy-more-save-more.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">BUY 4 FREE SHIPPING</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="BUY-MORE-SAVE-MORE-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
</spz-render>
</spz-variants>
<div class="mt-5 lg:mt-6">
<div class="lg:body-plus-2 leading-1.3">Quantity</div>
<spz-quantity class="product-info-qty mt-3 i-spzhtml-layout-fixed-height i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-quantity" name="quantity" value="1" min="1" max="999999999"
icon-class="product-info-qty-btn clear flex items-center justify-center flex-shrink-0" input-class="product-info-qty-input clear flex-shrink-0 body-plus-2 text-center" height="40" layout="fixed-height" style="height:40px;"
i-spzhtml-layout="fixed-height">
<div class="i-spzhtml-fill-content i-spzhtml-replaced-content"><span role="button" aria-label="decrease" class="i-spzhtml-quantity-number-decrease product-info-qty-btn clear flex items-center justify-center flex-shrink-0" disabled=""><svg
role="decrease" class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7 7.4a.3.3 0 0 1 .3.3v.6a.3.3 0 0 1-.3.3H2.3a.3.3 0 0 1-.3-.3v-.6a.3.3 0 0 1 .3-.3h11.4z" fill="currentColor"></path>
</svg></span><input type="number" name="quantity" min="1" max="999999999" class="i-spzhtml-quantity-number-input product-info-qty-input clear flex-shrink-0 body-plus-2 text-center" aria-label="quantity"><span role="button"
aria-label="increase" class="i-spzhtml-quantity-number-increase product-info-qty-btn clear flex items-center justify-center flex-shrink-0"><svg role="increase" class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.3 14a.3.3 0 0 0 .3-.3V8.6h5.1a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V2.3a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.1H2.3a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.1v5.1a.3.3 0 0 0 .3.3h.6z" fill="currentColor"></path>
</svg></span></div>
</spz-quantity>
</div>
<div class="my-6">
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M17.14 13.65h-3.457c.327-1.022.517-2.081.568-3.164h3.751a7.954 7.954 0 0 1-.862 3.165zm-5.784 4.259a13.405 13.405 0 0 0 1.968-3.285h3.226a8.038 8.038 0 0 1-5.194 3.285zM3.45 14.624h3.227a13.407 13.407 0 0 0 1.968 3.285 8.039 8.039 0 0 1-5.195-3.285zm-1.451-4.138h3.751c.051 1.083.24 2.142.568 3.165H2.86a7.97 7.97 0 0 1-.862-3.165zM2.86 6.35h3.457a12.244 12.244 0 0 0-.568 3.164H1.998A7.97 7.97 0 0 1 2.86 6.35zm5.784-4.258a13.416 13.416 0 0 0-1.968 3.285H3.449a8.04 8.04 0 0 1 5.195-3.285zm7.906 3.285h-3.226a13.414 13.414 0 0 0-1.968-3.285 8.04 8.04 0 0 1 5.194 3.285zm-4.3 0h-4.5A12.805 12.805 0 0 1 10 2.007a12.807 12.807 0 0 1 2.25 3.37zM6.734 9.513C6.79 8.43 7 7.37 7.358 6.35h5.284c.359 1.02.568 2.08.624 3.164H6.734zm.624 4.138a11.26 11.26 0 0 1-.624-3.165h6.532a11.26 11.26 0 0 1-.624 3.165H7.358zm.392.973h4.5A12.799 12.799 0 0 1 10 17.992a12.797 12.797 0 0 1-2.25-3.368zm10.252-5.11h-3.75a12.265 12.265 0 0 0-.569-3.165h3.457c.493.96.794 2.03.862 3.164zM1 10c0 4.963 4.037 9 9 9s9-4.037 9-9-4.037-9-9-9-9 4.037-9 9z"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Worldwide delivery</div>
</div>
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M18.41 14.672a1.811 1.811 0 0 0-1.743-1.359c-.834 0-1.538.578-1.743 1.359H13.81v-4.366h5.238v4.366h-.638zm-1.743 1.552a1.04 1.04 0 0 1-.929-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .929-.582c.404 0 .757.237.928.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.928.582zm-3.81-1.552h-5.4a1.811 1.811 0 0 0-1.743-1.359c-.833 0-1.538.578-1.743 1.359H.952V4.97h11.905v9.702zm-7.143 1.552a1.04 1.04 0 0 1-.928-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .928-.582c.405 0 .757.237.929.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.929.582zM16.9 6.91l1.699 2.426h-4.79V6.91H16.9zm.486-.97H13.81V4H0v11.642h3.971c.205.78.91 1.358 1.743 1.358.834 0 1.538-.577 1.743-1.358H14.924c.205.78.91 1.358 1.743 1.358.833 0 1.538-.577 1.743-1.358H20V9.666L17.386 5.94z"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Return guarantee</div>
</div>
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="m16.185 9.248-4.237-.92 4.46-4.46c.345 1.804.26 3.646-.223 5.38m-3.019 5.18-.092.091c-2.54 2.484-5.592 1.881-7.533.216l5.592-5.591 4.749 1.03a11.784 11.784 0 0 1-2.716 4.253m-8.094-7.91.092-.093a11.775 11.775 0 0 1 4.252-2.717l1.031 4.751-5.591 5.591c-1.666-1.94-2.268-4.993.216-7.532m8.45-3.548a11.7 11.7 0 0 1 2.202.212l-4.462 4.462-.919-4.235a11.829 11.829 0 0 1 3.18-.439m3.634-.193-.072-.27-.27-.073A12.802 12.802 0 0 0 4.477 5.74l-.099.099c-2.094 2.14-2.985 5.782-.205 8.894L2 16.905l.686.686 2.17-2.171c1.383 1.235 2.869 1.752 4.283 1.752 1.769 0 3.424-.796 4.614-1.96l.1-.1a12.802 12.802 0 0 0 3.304-12.336"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Sustainably made</div>
</div>
<div class="product-info__sale-item flex items-center">
<svg class="flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
<path
d="M9.5 1c2.757 0 5 2.243 5 5v.813H18v12.34H1V6.814h3.5V6c0-2.757 2.243-5 5-5zM17 7.813H2v10.34h15V7.814zM9.5 10.5a1.25 1.25 0 0 1 .5 2.394v2.318H9v-2.318a1.25 1.25 0 0 1 .5-2.394zm0-8.5c-2.205 0-4 1.794-4 4v.813h8V6c0-2.206-1.794-4-4-4z"
fill="currentColor"></path>
</svg>
<div class="product-info__sales_points-item break-words flex-1 body-minus-1 pl-3">Secure payments</div>
</div>
</div>
<div class="mt-5 lg:mt-6">
<button class="relative button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn product-info_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">Add to cart</span>
<spz-render id="product-info-btn-price" layout="container" template="product-info-btn-price-template" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container"
style="height: auto;">
<div class="flex"><span class="product_price_before"></span><spz-currency value="24.97" layout="container" class="i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<div class="money notranslate">$24.97</div>
</spz-currency></div>
</spz-render>
<style>
.product_price_before::before {
content: ' - ';
display: block;
width: 20px;
}
</style>
<template id="product-info-btn-price-template"> ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants
&& data.product.variants[0]); const productVariant = {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY
1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY
1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE
BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price =
variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex
= wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` <div class="flex">
<span class="product_price_before"></span><spz-currency value="${wholesalePrice.price}" layout="container"></spz-currency>
</div> ` }else { const price = variantData && variantData.price; return price != undefined ? `<div class="flex"><span class="product_price_before"></span><spz-currency value="${price}" layout="container"></spz-currency></div>` :
'<span></span>'; } }()} </template>
<div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
<button class="relative button-secondary w-full rounded-btn mt-3 product-info_atc_btn product-info_buy_now_btn" role="buyNow" type="button" data-track="click" data-track-content="checkout" data-track-source="buy_now">
<span role="content">Buy now</span>
<div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
<div class="product-info__out_stock mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product was out of stock. </div>
<div class="product-info__unavailable mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product is unavailable. </div>
</div>
<spz-render layout="container" id="product-detail-featured" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const variantData = data.variant || {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY
1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY
1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE
BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; return ` <div class="mt-5 body-minus-2">
<div spz-if="${variantData && +variantData.weight > 0}" class="product-detail-featured-item"> Weight : <span>${variantData && variantData.weight}${variantData && variantData.weight_unit}</span>
</div>
<div spz-if="${!!(variantData && variantData.barcode)}" class="product-detail-featured-item"> Barcode : <span>${variantData && variantData.barcode}</span>
</div>
</div> ` }()} </template>
<div class="mt-5 body-minus-2">
</div>
</spz-render>
<div class="product-info__current-viewer flex items-center mt-6 lg:mt-8">
<svg class="flex-shrink-0" width="24" height="24" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M12.052 6.4h-.002c-4.31 0-7.95 2.395-9.107 5.675a.377.377 0 0 0 0 .25C4.1 15.605 7.739 18 12.05 18c4.337 0 7.996-2.425 9.128-5.737a.194.194 0 0 0 0-.126c-1.132-3.311-4.79-5.736-9.126-5.737zm-8.026 5.947a.372.372 0 0 1 0-.293c.782-1.831 2.517-3.366 4.782-4.13a4.218 4.218 0 1 0 6.494.004c2.26.765 3.99 2.298 4.772 4.126.04.093.04.199 0 .293-1.125 2.631-4.22 4.651-8.024 4.651-3.806 0-6.9-2.02-8.024-4.652zm7.918-4.945a1.582 1.582 0 1 1-3.052.493 10.126 10.126 0 0 1 3.052-.493z"
fill="currentColor"></path>
</svg>
<span class="current__viewer-text ml-2 break-all body-plus-2">
<spz-rng class="inline-block i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" max="80" min="10" change-range="5" interval-seconds="3" i-spzhtml-layout="container"><span>23</span></spz-rng>
people are viewing this right now</span>
</div>
<div class="product-info__social-sharing mt-8 notranslate">
<div class="text-xs leading-[1.7] ">Share the love</div>
<div class="product-info__social-sharing-wrapper flex items-center">
<a target="_blank" data-track="social_share" href="//www.facebook.com/sharer.php?u=https://www.easeeye.com/products/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584" class="text-current no-underline flex justify-center items-center dj_skin_text share-facebook ">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M17.268 6.005h-1.917c-1.503 0-1.794.714-1.794 1.764v2.313h3.588l-.468 3.621h-3.12V23H9.816v-9.294H6.687v-3.624h3.129v-2.67c0-3.099 1.893-4.788 4.659-4.788 1.326 0 2.463.099 2.796.144v3.237h-.003z" fill="currentColor"></path></svg>
</a>
<a target="_blank" data-track="social_share" href="//twitter.com/share?text=Car%20Interior%20Ambient%20Lights-%20%28Contains%204%20light%20bars%29&url=https://www.easeeye.com/products/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584" class="text-current no-underline flex justify-center items-center dj_skin_text share-twitter">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M21.072 8.24c0 7.929-5.146 13.637-12.715 13.888-3.201.25-5.394-.734-7.357-2.22 2.193.251 5.146-.483 6.596-1.986-2.192 0-3.43-1.252-4.155-2.952h1.963c-1.963-.752-3.449-2.237-3.449-4.707.477.25.973.483 1.963.483C2.203 9.762 1.23 6.541 2.45 4.554c2.193 2.47 4.881 4.707 9.32 4.94-1.238-4.94 5.146-7.445 7.835-4.206 1.237-.25 1.962-.734 2.918-1.253-.248 1.253-.973 1.987-1.963 2.47.972 0 1.715-.25 2.44-.734-.23.985-1.203 1.987-1.928 2.47z" fill="currentColor"></path></svg>
</a>
<a target="_blank" data-track="social_share" href="//pinterest.com/pin/create/button/?url=https://www.easeeye.com/products/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584&media=//img.staticdj.com/80ef0fa651ac221891c60059cc959ff6_1024x1024.jpeg&description=Car%20Interior%20Ambient%20Lights-%20%28Contains%204%20light%20bars%29" class="text-current no-underline flex justify-center items-center dj_skin_text share-pinterest">
<svg class="" width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.5 17.971a3.409 3.409 0 0 1-2.88-1.415l-.783 2.923c-.373 1.14-.9 2.226-1.565 3.23-.055.164-.513.491-.513.491a2.166 2.166 0 0 1-.308-.816 11.62 11.62 0 0 1 .043-3.53c.228-.961 1.468-6.114 1.468-6.114a4.393 4.393 0 0 1-.374-1.828c0-1.709 1.01-2.989 2.264-2.989.869-.012 1.584.669 1.597 1.523.002.07-.002.14-.01.21a24.3 24.3 0 0 1-1.037 4.098c-.246.956.343 1.927 1.316 2.169.174.043.354.061.532.052 2.225 0 3.937-2.304 3.937-5.632.082-2.68-2.062-4.918-4.79-5a4.645 4.645 0 0 0-.447.006c-2.99-.125-5.519 2.155-5.646 5.093a4.734 4.734 0 0 0 .92 3.057c.089.095.122.228.089.353-.095.386-.309 1.232-.35 1.4-.056.232-.179.279-.42.17a5.476 5.476 0 0 1-2.54-4.769c0-3.877 2.87-7.444 8.274-7.444 4.055-.2 7.509 2.867 7.714 6.851.005.088.008.175.009.262.012 4.234-2.71 7.65-6.5 7.65z" fill="currentColor"></path></svg>
</a>
</div>
</div>
</div>
<div class="plugin__buy_on_others empty-hidden"></div>
<input name="product_id" type="hidden" value="921c308e-61ad-4c95-a97b-3dfad51c8fac"><input name="variant_id" type="hidden" value="3d19f6d0-713c-43d4-9bfe-d66d8db75c28"><input name="note" type="hidden">
</form>
POST
<form id="footer__newsletter__form" class="footer__newsletter__form type-text-font-family relative flex items-center md:w-full text-base" action-xhr="/api/customers/newsletters" method="POST" custom-validation="show-first-on-submit"
@submiterror="footer__newsletter__error-ajax.rerender(data=event);footer__newsletter__error-ajax.toggleClass(class='hidden', force=false);">
<input class="footer__newsletter__input clear flex-1 block lg:w-full px-4 lg:px-3" id="footer__newsletter__input" type="text" name="email" placeholder="Enter your email" required="" pattern="([A-Za-z0-9_\-.])+@([A-Za-z0-9_\-.])+\.([A-Za-z]{2,4})"
@input-debounced="footer__newsletter__error-ajax.toggleClass(class='hidden', force=true);">
<button class="footer__newsletter__btn type-text-font-family m-0 flex items-center border-none leading-none" type="submit">
<span class="md:hidden">Subscribe</span>
<svg class="lg:hidden" width="20" height="6" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path opacity=".01" fill="currentColor" d="M0 0h20v6H0z"></path>
<path fill="currentColor" d="M0 2h14v2H0z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="m20 3-6 3V0l6 3Z" fill="currentColor"></path>
</svg>
</button>
<div class="footer__newsletter__error-tip" validation-for="footer__newsletter__input" visible-when-invalid="patternMismatch" hidden=""> Please enter a valid email address. </div>
<div class="footer__newsletter__error-tip" validation-for="footer__newsletter__input" visible-when-invalid="valueMissing" hidden=""> Please enter your email address. </div>
<spz-render id="footer__newsletter__error-ajax" class="footer__newsletter__error-tip hidden i-spzhtml-layout-container i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" layout="container" manual=""
i-spzhtml-layout="container">
<template>
<div spz-if="${data.errors && data.errors.length > 0}"> ${data.errors && data.errors[0]} </div>
</template>
</spz-render>
<div class="footer__newsletter__success-tip flex-shrink-0 body-plus-2"> Thanks for subscribing </div>
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<spz-render id="quick-shop-btn-price" layout="container" template="quick-shop-button-price-template" manual=""></spz-render>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<spz-render id="quick-shop-btn-price" layout="container" template="quick-shop-button-price-template" manual=""></spz-render>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
<form class="">
<div class="zb-flex">
<a href="${product.url}?${toQuery({ aid: 'smart_recommend.2.' + data.id, ifb: product.ifb || '', cfb: product.cfb || '', scm: product.scm || data.scm || '', ssp: data.ssp || '' })}" impr="1" imprevt="1" class="zb-w-[132px] zb-mr-4 rtl:zb-ml-4 rtl:zb-mr-0" data-prdct="${product.id}" data-ifb="${product.ifb || ''}" data-cfb="${product.cfb || ''}" data-scm="${product.scm || data.scm || ''}" data-spm="${productIndex}"> <ljs-render layout="container" id="smart_cart_pop_image_${product.id}" template="smart_cart_pop_image_template" manual=""></ljs-render> </a>
<div class="zb-flex zb-flex-col zb-flex-grow zb-justify-between">
<div>
<div class="zb-line-clamp-2 zb-text-sm zb-mb-2">${product.title}</div> <ljs-render layout="container" id="smart_cart_pop_price_${product.id}" template="smart_cart_pop_price_template" manual=""></ljs-render>
</div>
<div>
<div class="zb-relative zb-w-full zb-cursor-pointer">
<div class="zb-border zb-border-solid zb-border-[#eee] zb-px-3 zb-py-[10px] zb-flex zb-items-center zb-justify-between zb-font-semibold zb-text-sm zb-rounded-sm"
@tap="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);smart_cart_pop_variant_${product.id}_mobile.toggleClass(class=zb-hidden);smart_cart_pop_variant_${product.id}_pc.toggleClass(class=smart_cart_pop_variant_pc_show,force=true);smart_cart_pop_variant_modal_${product.id}.open"
spz-if="${!!(product.options && product.options.length && product.options.length > 0) && data.config.variant_select_visible}"> <ljs-render manual="" layout="container" id="smart_cart_pop_variant_text_${product.id}"
template="smart_cart_pop_variant_text_template"></ljs-render> <svg id="smart_pop_variant-select-${product.id}" width="12" height="8" class="zb-ml-2" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M6.00002 7.06738C6.19244 7.06775 6.38498 6.99453 6.5318 6.84772C6.54504 6.83447 6.55769 6.82086 6.56973 6.8069L11.1251 2.25152C11.418 1.95863 11.418 1.48375 11.1251 1.19086C10.8322 0.897968 10.3573 0.897968 10.0645 1.19086L6.00003 5.25529L1.9356 1.19086C1.64271 0.897968 1.16784 0.897968 0.874943 1.19086C0.58205 1.48375 0.58205 1.95863 0.874943 2.25152L5.43033 6.8069C5.44237 6.82086 5.45502 6.83447 5.46826 6.84772C5.61507 6.99453 5.8076 7.06775 6.00002 7.06738Z"
fill="#0A1533"></path>
</svg> </div> <ljs-lightbox layout="nodisplay" disable-unmount="" class="smart_cart_pop_lightbox_pc" id="smart_cart_pop_variant_modal_${product.id}" @close="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);">
<div id="smart_cart_pop_variant_${product.id}_pc" class="zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template"
onclick="event.stopPropagation()" disabled-dj-event="" interference=""> </ljs-variants></div>
</ljs-lightbox>
</div>
<div class="zb-mt-3"> <button product-id="${product.id}" id="smart_cart_pop_atc_btn_${product.id}"
class="zb-flex zb-items-center zb-justify-center zb-w-full zb-text-white zb-py-[10px] zb-h-9 zb-text-xs zb-font-normal zb-border-none zb-rounded-[4px] smart_cart_pop_atc_btn_bg" type="button" role="addToCart"
@tap="smart_cart_pop_loading_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_btn_${product.id}.toggleClass(class=zb-pointer-events-none);custom-func.addATCHook(activity_id='${data.id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${product.scm || data.scm}',ssp='${data.ssp}',spm='${data.spmBase}.${productIndex}')">
<ljs-render layout="container" id="smart_cart_pop_atc_${product.id}" template="smart_cart_pop_atc_template" mamual="" class="notranslate"> </ljs-render>
<div id="smart_cart_pop_added_${product.id}" class="zb-hidden"><span class="zb-flex zb-justify-center zb-gap-1"><svg width="14" height="15" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8 16.5006C3.58171 16.5006 0 12.9183 0 8.5C0 4.08171 3.58171 0.5 8 0.5C12.4183 0.5 16 4.08171 16 8.5C16 12.9183 12.4183 16.5006 8 16.5006ZM8 2.04344C4.21314 2.04344 1.54287 4.71371 1.54287 8.50057C1.54287 12.2874 4.21314 14.9577 8 14.9577C11.7869 14.9577 14.4571 12.2874 14.4571 8.50057C14.4571 4.71371 11.7869 2.04344 8 2.04344ZM7.26057 11.1909L7.12229 11.3286L7.09543 11.3017C7.02286 11.336 6.94286 11.3577 6.85714 11.3577C6.73543 11.3577 6.62857 11.3109 6.536 11.2463L6.52229 11.2594L6.45371 11.1909C6.45314 11.1903 6.45314 11.1903 6.45257 11.1897L4.09771 8.83486L4.90629 8.02686L6.85714 9.97771L11.1629 5.67143L11.9714 6.48L7.26171 11.1897C7.26114 11.1903 7.26114 11.1903 7.26057 11.1909Z"
fill="white"></path>
</svg>Added</span></div>
<div id="smart_cart_pop_loading_${product.id}" class="zb-hidden">
<div class="smart_cart_pop_loading"></div>
</div>
</button> </div>
</div>
</div>
</div>
<div id="smart_cart_pop_variant_${product.id}_mobile" class="zb-hidden md:zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template" onclick="event.stopPropagation()"
disabled-dj-event="" interference=""> </ljs-variants></div>
</form>
POST //translate.googleapis.com/translate_voting?client=te
<form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text"
name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form>
Text Content
${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "133.33%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = true && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return ` ${ data.available ? `${ (+data.compare_at_price > +data.price) ? `Save ` : '' }` : "Sold out" } Mixed Lot ${DATA.TITLE} ${ data.price_min != data.price_max ? `From ` : ` ` } +${data.remainInvisibleThumbCount} ` })()} Free shipping on international order of $69.99 Free shipping on international order of $69.99 Powered by Translate Bahasa Indonesia,English,한국어,日本語,Português,العربية,Русский,Español,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar,Romanian,Slovenščina,Український,Slovenská,Български,Tiếng Việt,Türkçe,Hrvatski jezik USD * 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) * Chinese Yuan Renminbi (CNY) * 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) * Saint Helena pound * Burundian franc * Bermudian dollar * Cuban peso * Djiboutian franc * Eritrean nakfa * Guinean franc * North Korean won * Sierra Leonean leone * Somali shilling * Tajikistani somoni * Tongan paʻanga * Falkland Islands pound * Log in * Create an account ${data.data && data.data.count} * HOME * EARRINGS * NECKLACE * RING * BRACELET * More links ${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 62485543, title: "HOME", url: "\/", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62485545, title: "EARRINGS", url: "\/collections\/earrings", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62485547, title: "NECKLACE", url: "\/collections\/necklace", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62485549, title: "RING", url: "\/collections\/ring", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62485551, title: "BRACELET", url: "\/collections\/bracelet", target: "", levels: 0, product0: null || {}, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return ` * ${link.title} ${link.tag.label} * ${second_link.title} ${second_link.tag.label} ${third_links.title} ${third_links.tag.label} * ${link.title} ${link.tag.label} ` })()} Bahasa Indonesia,English,한국어,日本語,Português,العربية,Русский,Español,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar,Romanian,Slovenščina,Український,Slovenská,Български,Tiếng Việt,Türkçe,Hrvatski jezik USD * 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) * Chinese Yuan Renminbi (CNY) * 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) * Saint Helena pound * Burundian franc * Bermudian dollar * Cuban peso * Djiboutian franc * Eritrean nakfa * Guinean franc * North Korean won * Sierra Leonean leone * Somali shilling * Tajikistani somoni * Tongan paʻanga * Falkland Islands pound * Log in * Create an account ${data.data && data.data.count} * HOME * EARRINGS * NECKLACE * RING * BRACELET ${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return ''; const keyword = encodeURIComponent(data); return ` View more Your search for '${data}' did not yield any results. ` })()} (function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })(); ${function(){ const rules = data.data.rules; return ` ` }()} You May Also Like * Super LED Light For Car/Motorcycle $24.86 $29.99 Quick Shop * Car Seat Gap Filler $39.98 $59.98 Quick Shop * Universal Car Window Screens (Fits all Cars) $17.98 Quick Shop * Golden Glass Ball Wall Lights $45.66 Quick Shop * Fast Shipping Worldwide - LED Swing Head Fan Light $59.99 $99.98 Quick Shop * Creative Crystal Wall Sconce for Bedroom: E14 Bedside Lamp $32.30 Quick Shop * 🔥 3D Animals LED Wall Light 🔥 Bald Eagle & Night Owl & Lion Head Quick Shop * Car Soundproof Weather Strip Quick Shop * Nordic Modern Creativity Bedroom Eclipse LED Art Wall Sconce Lamp Quick Shop * LED rechargeable light whip Quick Shop * LED Tulip Night Light Simulation Flower Table Lamp Quick Shop * LED USB Wireless Wood Stick Night Light: Warm Motion Sensor Wall Lamp for Magnetic Corridor Cabinet Wardrobe Decoration Home Light Quick Shop * 🔥49% OFF🔥 - Waterproof Solar Powered LED Outdoor String Lights Quick Shop * Magnetic Rechargeable Long Battery Life Touch Lamp Quick Shop * 🌟Creative Pull out Cute Large capacity Car Key Case 🌟🔥FLASH SALE up to 50% OFF🔥 Quick Shop * LED Solar Lamp Path Staircase Outdoor Waterproof Wall Light🔥BUY MORE SAVE MORE Quick Shop * Summer Hot Sale-48% OFF-DIY Bottle Lights Quick Shop * 💀Piston art skull keychain [pendant/flashlight/bottle opener] Quick Shop * HOT SALE UPGRADE LED FLAME LIGHT BULB Quick Shop * Cordless Table Lamp - Dimmable & Rechargeable Desk Light Quick Shop * ⭐52% Off Silky Loose V-neck Top (4 Colors) Quick Shop * Printed Button Up Maxi Dress Quick Shop * Vintage Chic Cat Animal Knuckle Rings for Women Girls Charm Gothic Punk Frog Rubbit Octopus Opening Finger Rings Fashion Jewelry Quick Shop * 2023 New Funny Small Black Cat Earring for Women Girl Fashion Cute Animal Earrings Fashion Party Jewelry Gifts Wholesale Quick Shop * 49% OFF💥2023 New Style Mask Headgear Quick Shop * Jumpsuit with Tummy ControlPanel-buy 3 free shipping Quick Shop * Canister With Attitude Quick Shop * Gestrickte Pulloverjacke mit einfarbigen Pailletten Quick Shop * (Big Sale💥)Fish-mouth Rivet Open Toe Flat Sandals Quick Shop * 🎉Heritage Round Wall Art Quick Shop * Thick Rabbit Plush Sofa Cover Quick Shop * 🔥Sale 48% OFF🔥Adjustable Chest Brace Support Multifunctional Bra Quick Shop * Precision Casting Fire-breathing Dragon Sculpture Waterscape Quick Shop * Double sided chenille sofa cover Quick Shop * 💥50% Off💥Red Truck Christmas Wreath Quick Shop * 💥PROMOTION 49%OFF💥Liquor Alcohol Whiskey wood Dispenser Quick Shop * Multifunctional Cleaning Shovel Quick Shop * (Clearance Sale 70% OFF) Mini chainsaw Quick Shop * Fashion Cotton Linen Solid Color V-neck Dress Quick Shop * Cutting Machine Base Plate Quick Shop * Shackle - Art Sculptures Quick Shop * 🔥Super SuctionMultifunctional Powerful Mute Exhaust Fan Quick Shop * 1-in-2-out dual control valve(50%OFF) Quick Shop * 🔥LIMITED TIME SPECIAL SALE 50% OFF ❤️ - Newest 5-in-1 Professional Styler Quick Shop * 🔥Cordless Portable High Pressure Spray Water Gun Quick Shop * 🎁🎁The Best Gift for Kids-Handmade Waldorf Doll👧(Buy2 Free Shipping) Quick Shop * 🎅Santa Holdings Tray Figurine Quick Shop * Buckle Closure Waist Slimming Elastic Knit Romper Quick Shop * Together We Are Family gift Quick Shop * Casual Vintage Print Crew Neck Long Sleeve Sweatshirt Quick Shop * Frankie the Stag Wall Mount Quick Shop * Knitted sweater jacket with solid color sequins Quick Shop * 🔥HOT SALE NOW 49% OFF - Four Seasons Tree Wine Glasses - Hand Painted Art Quick Shop * DIAMOND SILVER LEATHER SNEAKERS Quick Shop * Solid Color Jacket & High Waist Straight Pants Set (Buy 2 Free shipping) Quick Shop * Premium Watercolor Set Of 50 With Brush Quick Shop * ❄️2024 Winter Sale 65% OFF❄️Mini Dual-purpose Curling Iron Quick Shop * 🔥2023 NEW HOT SALE 49% OFF💥Cool skeleton figurines Quick Shop * 🔥49 % OFF🔥Shapewear for Women Tummy Control Full Bust Body Shaper Quick Shop * Solid color simple genuine leather shoulder bag Quick Shop * Fashionable new dress Quick Shop * Men's Soft Leather Slippers - Proven Plantar Fasciitis, Foot and Heel Pain Relief Quick Shop * Floaty 2 Piece Sleeved Trouser Set(Buy 2 Get Free Shipping) Quick Shop * Special Cutting Bracket Protective Cover For Angle Grinder Quick Shop * Stylish cowhide premium genuine leather mini handbag Quick Shop * Lntelligent digital display pull-out faucet Quick Shop * Long Sleeve Split Loose Casual Dress (Buy 2 Free Shipping) Quick Shop * Hinged Flower Vase Quick Shop * 🎈New living room corner double-sided luminous creative clock wall lamp Quick Shop * 🎃Early Halloween Promotion 49% OFF😈 Demon one-eyed doorbell Quick Shop * Cotton Lounge Set (Buy 2 Free Shipping) Quick Shop * Casual 2 Pieces Suit With Long Top & Matching Trouser(Buy 2 get free shipping) Quick Shop * The Air Essentials Set Quick Shop * WHITE CORSET MINI DRESS Quick Shop * Swim Romper Built-in Bra Quick Shop * Hand Carved Wooden Mug Quick Shop * Women's fashionable and sexy high-waisted long-sleeved trousers two-piece set Quick Shop * Halloween frog back pumpkin garden decoration Quick Shop * Strapless Elastic Backless Sexy Dress Quick Shop * 🔥49% OFF - Professional Ceramic Tourmaline Ionic Flat Iron Hair Straightener Quick Shop * Exquisite Colorful Heart Bracelet For Women Charm Korean Crystal Zircon Metal Chain Bracelets&Bangle Party Birthday Jewelry Gift Quick Shop * Design Nice Outfit Jacket Quick Shop * Handy Watercolor Travel Kit Quick Shop * Explore the Mystical World of Tarot Gold Foil Tarot Quick Shop * Halloween prank makeup temporary tattoo Quick Shop * Elegant simple turtleneck sweater Quick Shop * Christmas Tree Mug With Lid Spoon Quick Shop * Men's Mesh Ice Silk Short-Sleeved T-Shirt Quick Shop * BUY 1 GET 2 FREE😲- 3PCS*Button Print Bra Quick Shop * 🎃HALLOWEEN HOLOGRAM PROJECTOR🎃 Quick Shop ${function(){ const isCart = data.data.isCart; const isCollection = data.data.isCollection; const isProduct = data.data.isProduct; const isIndex = data.data.isIndex; return ` ${isCart ? 'The items in the shopping cart do not participate in any recommendation rule. Add the participating items to your shopping cart to check the design.' : ''} ${isProduct ? 'This product did not participated in any recommendation rule. Switch to another product to check the design.' : ''} ${isCollection ? 'The items in this collection do not participate in any recommendation rule. Switch the participating items to check the design.' : ''} ${isIndex ? 'The home page do not participate in any recommendation rule.' : ''} (This prompt would not display on client-side) Recommended Products ` }()} ${function(){ const rule = data.data; const getImageHeight = function(image){ const image_size = rule.config.image_size || 0; const imageWidth = image.width || 600; const imageHeight = image.height || 800; let ratio = 0; if(image_size == 0){ ratio = (imageHeight / imageWidth).toFixed(2); }else if(image_size == 1){ ratio = 1.5; }else if(image_size == 2){ ratio = 1; }else if(image_size == 3){ ratio = 0.75; } return imageWidth * ratio; }; const toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&') : `${k}=${encodeURIComponent(obj[k])}` ) .join('&'); return ` ${rule.config.title} * ${product.title} ${rule.config.quick_shop_button_text} ` }()} class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart-block', SpzSmartBlockComponent); ${(function(){ const product = data.product; const toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&') : `${k}=${encodeURIComponent(obj[k])}` ) .join('&'); return ` ${product.images.map((image) => { return `` }).join('')} ${product.title} See detail Quantity Add To Cart Buy Now `; })()} ${(function(){ const product = data.product; const avail_variants = product.variants.filter(function(variant){ return variant.available; }); const selected_variant = product.min_price_variant.available ? product.min_price_variant : avail_variants.length && avail_variants[0]; return ` ${option.name} ${ option.values.map(function(value, index){ const checked = selected_variant["option"+option.position] == value ? "checked": ""; return ` ${value} ` }).join("") } ` })()} ${data.index + 1}/5 1/5 CAR INTERIOR AMBIENT LIGHTS- (CONTAINS 4 LIGHT BARS) ${function() { const variantData = data.variant || {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY 1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY 1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const saveType = "amount"; const saveText = "Save {{saved_amount}}"; const productLabelDiscountOn = true; return ` - ${saveText.replace('\{\{saved_amount\}\}', saveType == 'percentage' ? variantData.off_ratio + '%' : `` )} `; }()} $24.97 $39.99 Save $15.02 10% OFF 2nd item 15% OFF 3rd item 20% OFF 4th item Style ${function(){ const optName = "Style"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return ` ${optionValueText} ` }()} : ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL) ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL) ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Buy More Save More ${function(){ const optName = "BUY MORE SAVE MORE"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return ` ${optionValueText} ` }()} : BUY 1 BUY 1 BUY 2 (SAVES $10) Most Recommend BUY 4 FREE SHIPPING ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Quantity Worldwide delivery Return guarantee Sustainably made Secure payments Add to cart $24.97 ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY 1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY 1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} Buy now Product was out of stock. Product is unavailable. ${function(){ const variantData = data.variant || {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY 1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY 1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; return ` Weight : ${variantData && variantData.weight}${variantData && variantData.weight_unit} Barcode : ${variantData && variantData.barcode} ` }()} 23 people are viewing this right now Share the love Description * 🔥This discount is only available online.🔥 * ✔ Free 3 Years Product Warranty. * ✔ 100% money back guarantee. FOLLOW THE MUSIC AND ENJOY THE ATMOSPHERE IN YOUR CAR!!✨✨ FOUR-IN-ONE CHARGING CABLE * we have a Four-in-one Charging Cable (FOR FREE), that can be used directly for charging. The charging cable is compatible with all USB ports and can be charged outside. allows you to charge anytime, anywhere. EASY INSTALLATION * Powerful Magic Stickers&Fixing Glue are used to fix the position of the light bar, on the carhese lights are installed with a Magic Stickers on the back for a hassle-free easy installation .It will not leave any traces when installed and removed, and the stickiness will not disappear. * They can be installed on the underside of your glove compartment or steering wheel, on the sides of your car, on the ceiling, or any other surface! MUSIC VOICE CONTROL + REMOTE CONTROL * Sound sensitive function, the color will change according to music rhythm. * The color and style of the light can be controlled by the remote control. There are Solid color, multicolor, starlight modes , 7 colors can be switched at will. ✨✨LED STARS ATMOSPHERE LIGHTS- ENJOY YOUR COLORFUL LIFE * 7colors - Red, blue, green, purple, red + green, red + blue, green + blue, Multi-color full stars neon accent lights for your car floor front & back row. * Breathing mode - the stars foot lights will gradually fade out and become dark, forming a breathing flash mode. * Closed light control - the sound sensing rhythm flashes, no sound is not bright. * REMOTE-CONTROLLED: The Car Interior LED Lights come with a remote control for the lights and a control box for the music. With these two devices, you can control the music and the lights from the comfort of your seat. There is no need to toggle with the lights themselves at all! * ATTRACTIVE: The Car Interior LED Lights come in a multitude of colors that is sure to tickle anyone's fancies. The lights come in white, red, blue, green, light blue, orange, yellow, pink, and purple. * CUSTOMIZABLE: Add a touch of your unique personality into your car with these Car Interior LED Lights! Why settle for a boring, old car when you could have a flashy and bright car all for yourself, right? SPECIFICATIONS * Material: LED, ABS * LED Type: 5050 SMD PACKAGE INCLUDES * 4 x Car Interior LED Lights * 1 x Remote Control * 1 x USB lighter Charging Cable * 1 x Music Control Box * 1 x Powerful magic stickers&Fixing glue * 1 x instructions CUSTOMER QUESTION & ANSWER Question: How to recharge? 🌹Answer: we have a free charging cable that can be used directly for charging. Our charging cable is compatible with all USB ports and can be charged outside. Question: Can you set them to a solid color ? 🌹Answer: The solid color mode can be adjusted by the remote control ,and you can adjust the breathing mode through the remote control and weaken the light . Question: How to install them? 🌹Answer: The light bar uses Powerful Magic Stickers&Fixing Glue help fix the light bar. It will not leave any traces when installed and removed, and the stickiness will not disappear. Question: How long does it take to ship? 🌹Answer:The specific delivery time depends on your region, usually, you will receive this product within 7 to 12 working days. Question: How much? 🌹Answer:Our light on sale now, only $24.97 a set. Our light bar also suitable for parties, interior decoration and ect. Accompanied by music, you can enjoy the Interior Ambient Lights for fun.Get yours now, buy more and save!!! 4 GREAT REASONS TO BUY FROM US SHIPPING * Shipping takes 7-14 days depending on location. * Some distant areas can take a bit longer. But we'll get it to you OUR GUARANTEE * 🌎We truly believe we carry some of the most innovative products in the world✈ , and we want to make sure we back that up with a risk-free ironclad 90-day guarantee. * If you don't have a positive experience for ANY reason, we will do WHATEVER it takes to make sure you are 100% satisfied with your purchase.🔥 🔥 * Buying items online can be a daunting task, so we want you to realize that there are absolutely ZERO risks in buying something and trying it out. If you don't like it, no hard feelings we'll make it right. * We have 24/7/365 Ticket and Email Support. Please contact us if you need assistance.😉 RECENTLY VIEWED Subscribe today to hear first about our sales Subscribe Please enter a valid email address. Please enter your email address. ${data.errors && data.errors[0]} Thanks for subscribing We accept * American Express * Mastercard * PayPal * Visa * JCB * Discover * Diners Club We accept * American Express * Mastercard * PayPal * Visa * JCB * Discover * Diners Club Follow us * * * Follow us * * * © 2024 Easeeye ABOUT US CONTACT US PRIVACY POLICY RETURN POLICY SHIPPING TERMS OF SERVICE FAQ INTELLECTUAL PROPERTY RIGHTS View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY 1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY 1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"3d19f6d0-713c-43d4-9bfe-d66d8db75c28","product_id":"921c308e-61ad-4c95-a97b-3dfad51c8fac","title":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)-BUY 1","weight_unit":"kg","inventory_quantity":1000,"sku":"Q--1","barcode":"","position":1,"option1":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)","option2":"BUY 1","option3":"","note":"","image":null,"wholesale_price":[{"price":24.97,"min_quantity":1}],"weight":"0","compare_at_price":"39.99","price":"24.97","retail_price":"39.99","available":true,"url":"\/products\/car-interior-ambient-lights-contains-4-light-bars-dd7e953cf72d-8c69-4b5d-a9ea-46d1f3b2096394497168-4307-4ef6-ba6d-f1ce35900584?variant=3d19f6d0-713c-43d4-9bfe-d66d8db75c28","available_quantity":999999999,"options":[{"name":"Style","value":"ONE BOX (4 LIGHT STRIPS WITH REMOTE CONTROL)"},{"name":"BUY MORE SAVE MORE","value":"BUY 1"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} 111 Item has been added ${(function(){ const products = data.products; const getDefaultVariant = function(product){ if (product.min_price_variant.available){ return product.min_price_variant; }else { const avail_variants = product.variants.filter(function(variant){ return variant.available; }); if (avail_variants.length) { return avail_variants[0]; } } }; const toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&') : `${k}=${encodeURIComponent(obj[k])}` ) .join('&'); const getDefaultTrackParams = function(product, index){ const variant = getDefaultVariant(product); const params = { aid: 'smart_recommend.2.' + data.id, scm: product.scm || data.scm || '', spm: data.spmBase + '.' + index, ssp: data.ssp || '', }; const trackParams = Object.keys(params).map(function(key){ return params[key]; }).join('__'); return trackParams; }; const hasMore = (data.products.length - data.target_top_product_num - data.page * data.limit) === 0; return ` ${(function(){ return ` ${data.config.pop_title} ${data.rebate_tips || ''} `; })()} ${product.title} Added `; })()} class SpzCustomComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this._atcLineItem = {}; this.cart_ = {}; this.top_product_ids_ = []; this.products_ = []; this.activityId_ = null; this.rendered_ = false; this.myInterceptor_ = null; this.i18n_ = {}; this.config_ = {}; this.page_ = 1; this.limit_ = 10; this.loading_ = false; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('pop mounted'); this.i18n_ = window.smartRecommendI18n && window.smartRecommendI18n[document.documentElement.lang || 'en-US'] || {}; const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const modalEl = document.getElementById("smart_cart_pop_modal"); const spmBase = `smart_recommend_2`; const extra = { spmBase: spmBase, i18n: this.i18n_, }; const that = this; document.addEventListener('dj.addToCart', (event) => { try { const e = event.detail; if (e.source === 'buy_now' || window.__upsell_block || this.rendered_) return; that.fetchActivityData({product_id: e.product_id, variant_id: e.variant_id}).then(data => { if (!data || !data.products || !data.products.length) return; that.config_ = data.config; const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` #plugin_recommend_atc_pop { display: none !important; } `; document.head.appendChild(recommendStyle); if (data.config.pop_frequency === 'once' && window.sessionStorage.getItem('smart_pop_times') > 0) return; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ api.render(Object.assign({}, data, extra), true).then(function() { that.rendered_ = true; if (data.products.length) { const headEl = document.getElementById("smart_cart_pop_head_render"); if (headEl) { SPZ.whenApiDefined(headEl).then(function(head){ head.render({ data: data }); }); } SPZ.whenApiDefined(modalEl).then(function(api){ that.impressListen('#smart_cart_pop_activity', function(){ that.trackPluginImpression_(data); }); api.open(); const intersectionObserver = new IntersectionObserver( function (entries) { if (entries[0].intersectionRatio > 0){ !that.loading_ && (that.products_.length - that.target_top_product_num_) === that.page_ * that.limit_ && that.viewMore(); } }, { threshold: [0.1] } ); intersectionObserver.observe( document.querySelector('#smart_cart_pop_view_more_text') ); }); } }) }); }) } catch (e) { console.error(e); } }); } unmountCallback() { } viewMore () { const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const that = this; const data = {}; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ that.fetchActivityData({ page: that.page_ + 1, limit: that.limit_ }).then(function(data) { data.products = that.products_; data.target_top_product_num = that.target_top_product_num_; data.i18n = that.i18n_; data.spmBase = `smart_recommend_2`; api.render(data); }) }) } fetchActivityData(data) { const that = this; if (data.product_id) { that._atcLineItem = data; } that.loading_ = true; return that.getCart().then(cart => { that.cart_ = cart.cart; return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_activities", { method: "POST", headers: { "Content-Type": "application/json", "store-id": window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ "show_type": 2, "line_item": { "product_id": that._atcLineItem.product_id, "variant_id": that._atcLineItem.variant_id, }, line_items: cart.cart.line_items, "page": data.page || 1, "limit": data.limit || 10, }) }).then(function(res){ if(res.ok){ return res.json(); } }).then(function(data){ data.cart = cart.cart; if (data.page === 1) { that.target_top_product_num_ = data.target_top_product_num || 0; } that.products_ = that.products_.concat(data.products || []); that.page_ = data.page || 1; that.limit_ = data.limit || 10; return data; }).catch(function(e){ console.log(e); }).finally(function(){ that.loading_ = false; }) }); }; setAction_() { this.registerAction('changeBannerColor', (data) => { if (!data.args.data || !data.args.data.data || !data.args.data.data.data) return false; const config = data.args.data.data.data.config; const bannerBgEl = document.querySelector('.smart_cart_pop_banner_bg'); if (bannerBgEl && config) { bannerBgEl.style.background = config.banner_bg_color; bannerBgEl.style.color = config.banner_text_color; } }); this.registerAction('handleProductChange', (data) => { const that = this; const imageEl = document.getElementById(`smart_cart_pop_image_${data.args.data.product_id}`); SPZ.whenApiDefined(imageEl).then(function(api){ api.render({ data: data.args.data, config: that.config_ }); }); const atcTextEl = document.getElementById(`smart_cart_pop_atc_${data.args.data.product_id}`); SPZ.whenApiDefined(atcTextEl).then(function(api){ api.render({ data: data.args.data, defaultText: data.args.defaultText, soldOutText: that.i18n_.sold_out }); }); if (data.args.data.variant.available) { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.remove('zb-pointer-events-none'); } else { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.add('zb-pointer-events-none'); } }); this.registerAction('handleProduct', (detail) => { const that = this; this.renderProductsForm_(detail.args.data.data); }); this.registerAction('addATCHook', (data) => { const params = data.args; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: 'smart_recommend.2.' + params.activity_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${params.spm}`, }, once: true }); }); this.registerAction('handleAtcSuccess', (detail) => { detail.args.data.product = detail.args.data.product || {}; detail.args.data.variant = detail.args.data.variant || {}; const defParams = detail.args.product.split('__'); const product_id = detail.args.data.product.id; const product_title = detail.args.data.product.title; const variant_id = detail.args.data.variant.id; const price = detail.args.data.variant.price; const aid = defParams[0]; const ifb = detail.args.data.product.ifb; const cfb = detail.args.data.product.cfb; const scm = defParams[1]; const spm = defParams[2]; const ssp = defParams[3]; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; const activity_id = `${detail.args.activity_id}`; const target_drive_way = detail.args.target_drive_way; document.getElementById(`smart_cart_pop_loading_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_added_${product_id}`).classList.remove('zb-hidden'); setTimeout(() => { document.getElementById(`smart_cart_pop_added_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_atc_${product_id}`).classList.remove('zb-hidden'); document.getElementById(`smart_cart_pop_atc_btn_${product_id}`).classList.remove('zb-pointer-events-none'); }, 1000); this.tranckAddToCart(params); if (target_drive_way === 'rebate') { const bannerEl = document.getElementById(`smart_cart_pop_banner`); this.getRecommendInfo(activity_id).then(res => { if (res && res.rebate_tips) { bannerEl.innerHTML = res.rebate_tips; } }) } }); this.registerAction('handleCartSummary', (event) => { const that = this; const checkoutButtonEle = document.getElementById("smart_cart_pop_checkout_button"); if (checkoutButtonEle) { SPZ.whenApiDefined(checkoutButtonEle).then(function(api){ api.render({ i18n: that.i18n_ }, false); }); } const tipEl = document.getElementById("smart_cart_pop_tip_info"); const cart = event && event.args && event.args.data && event.args.data.data; if (!tipEl || !cart) return; let total_price = cart.total_price; if (!total_price) { SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); } else { this.getBindDiscount_(cart.line_items).then(res => { if (res && res.discount_code){ const total = cart.line_price - cart.total_discount - res.bundle_discount_value; if (total > 0) { total_price = total; } else { total_price = 0; } } SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); }) } }); this.registerAction('open', () => { window.sessionStorage.setItem('smart_pop_times', Number(window.sessionStorage.getItem('smart_pop_times')) + 1); }); this.registerAction('close', () => { this.rendered_ = false; this.products_ = []; window.djInterceptors && window.djInterceptors.track.eject(this.myInterceptor_); }); } getCart() { return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/cart`, { method: 'GET', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, }).then(res => res.json()) } getRecommendInfo (activity_id) { return this.getCart().then(cart => { this.cart_ = cart.cart; return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/possum/recommend_info`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, body: JSON.stringify({ show_type: 2, rule_id: `${activity_id}`, line_items: cart.cart.line_items, line_item: this._atcLineItem, }) }).then(res => res.json()) }) } renderProductsForm_(data) { const products = data.products; const listPopRenderEl = document.getElementById("smart_cart_pop_render"); if (!listPopRenderEl) return; listPopRenderEl.querySelectorAll('.smart_cart_pop_atc_btn_bg').forEach(function(el){ el.style.background = data.config.add_to_cart_button_color; }); products.forEach(function(product){ const productId = product.id; const productFormEls = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]`); let variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_mobile ljs-variants`); if (window.innerWidth > 768) { variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_pc ljs-variants`); } productFormEls.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.setProduct(product); }); }); variantsEl.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.handleRender(product); }); }) }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } trackPluginImpression_(rule){ if (window.sa && window.sa.track) { window.sa.track("module_impressions", { aid: `smart_recommend.2.${rule.id}` }); } } getBindDiscount_(carts) { let bundle_sale_ids = []; try { bundle_sale_ids = sessionStorage['bundle_sale_ids'] && JSON.parse(sessionStorage['bundle_sale_ids']).filter((item, index, arr) => arr.indexOf(item, 0) === index).slice(-5); } catch (err) { console.error(err); } if (!carts.length) { Promise.resolve(); } return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/bundle-sales/cart`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', 'store-id': window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ cart: carts, action_type: 'cart', bundle_sale_ids }) }).then(res => res.json()) } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart', SpzCustomComponent); ${function(){ return ` ${data.data.rebate_tips || ''} `; }()} ${function(){ const getImageHeight = function(image){ const width = image.width || 500; const height = image.height || 500; const image_size = data.config.image_size || 0; let ratio = 0; if(image_size == 0){ ratio = (height / width).toFixed(2); }else if(image_size == 1){ ratio = 1.5; } return 132 * ratio; }; const image = data.data.variant.image || data.data.product.image; return ` `; }()} ${(function(){ const product = data.product; const avail_variants = product.variants.filter(function(variant){ return variant.available; }); const selected_variant = product.min_price_variant.available ? product.min_price_variant : avail_variants.length && avail_variants[0]; return ` ${option.name} ${ option.values.map(function(value, index){ const checked = selected_variant["option"+option.position] == value ? "checked": ""; return ` ${value} ` }).join("") } ` })()} ${(function(){ const variant = data.variant; return ` `; })()} ${(function(){ const variant = data.variant; return ` ${ variant.options.map(function(option){ return option.value; }).join("/") || 'Not exist' } `; })()} ${(function(){ const variant = data.data && data.data.variant; const defaultText = data.defaultText || 'Add To Cart'; const text = (!variant || variant.available) ? defaultText: data.soldOutText; return ` ${text} `; })()} ${(function(){ let cart = data; if(data.data) { cart = data.data; } return ` ${cart.item_count >=0 ? cart.item_count : '..'} `; })()} ${(function(){ return ` ${data.i18n.checkout} `; })()} GIFTS POINTS 10% OFF 2nd item Original text Rate this translation Your feedback will be used to help improve Google Translate