Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
6/58
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
Kuromshop ( 9PCS )Carbon Car Door Sills Stickers
6/58

Kuromshop ( 9PCS )Carbon Car Door Sills Stickers

$14.86
$0.00
Save $-14.86
Size
Please select a size
Style
Please select a style
Quantity
Weight: 0kg
  • Returns >> Fast refund,  Money-Back Guarantee.
  • 99.3% of Reviewers Recommends This Product.
  • 9 PCS (65.99% CHOICE)Enjoy 20% automatic discount 

To celebrate the third anniversary of our company, we decided to offer a limited time discount of 20%!!!

🔥 Attention: Order Buy more than $30 Get 20% Automatic Discount !!!

Perfect fit! Genius product.easy upgrade.

Features:

  • High-quality material: 4D carbon fiber black sticker. The door sill guard is made of vinyl film with carbon fiber texture design, waterproof and high temperature resistance. After several tests on high temperature and rainy days, we found that it did not melt and crack. High quality is our pursuit, and we believe in you.

  • Function: The door sill anti-scratch protector is designed to prevent scratches. It covers the existing scratches when loading and unloading the front and rear doors. It has good slip resistance and flexibility. Improve the appearance of the vehicle and make your car look cool!

  • Easy to install: First, wipe clean the target surface without getting any dust or oil, then remove the protective film of the strong tape, and paste it in the correct position, finally peel and paste, and then press firmly with a plastic scraper.

  • Wide application: The door sill protector is suitable for all cars. If you think it is too long, you can cut it freely. It can also be used with heat guns or household hair dryers for shaping, flexible and elastic.


The package contains:

  • (4pcs)Carbon car door sills stickers * 1 set
    -Front door Size:23.6 X 2.7 Inch (2 pcs)
    -Rear door Size:15.7 X 2.7 Inch (2 pcs)
  • (5pcs)Carbon car door sills+Car trunk  stickers * 1 set
    -Front door Size:23.6 X 2.7 Inch (2 pcs)
    -Rear door Size:15.7 X 2.7 Inch (2 pcs)
    -Car trunk Size:40 X 2.7 Inch (1 pcs)
  • (9pcs)Carbon car door sills*2+Car trunk  stickers * 1 set
    -Front door Size:23.6 X 2.7 Inch (4 pcs)
    -Rear door Size:15.7 X 2.7 Inch (4 cs)
    -Car trunk Size:40 X 2.7 Inch (1 pcs)
  • Applicable Car: Universal(Can be cut)

How to Install it?

  1. Clean up and dry up the application area.
  2. Measure the application area.
  3. Peel and stick,then press firmly by plastic scraper tool.
  4. Keep your car away from washing or waxing for 3 days.
  • So you need stickers to protect your car.
  • Note:We advise you heat with cigarette lighter or hot air blower the sticker before you paste in cold weather.

How to replace or remove?

  1. Use the scraper to remove, and wipe the glue mark with alcohol.
  2. Or use your hair dryer to help remove.

Fitment:
  • Fits for BMW  ALL MODEL Series 
  • Fits for AUDI  ALL MODEL Series 
  • Fits for BENZ  ALL MODEL Series 
  • Fits for TRSLA  ALL MODEL Series 
  • Fits for LEXUS  ALL MODEL Series 
  • Fits for NISSAN ALL MODEL Series 
  • Fits for HONDA ALL MODEL Series 
  • Fits for HYUNDAI  ALL MODEL Series 
  • Fits for KIA  ALL MODEL Series 
  • Fits for TOTOTA  ALL MODEL Series 
  • Fits for VOLVO  ALL MODEL Series 
  • Fits for FORD  ALL MODEL Series 
  • Fits for MAZDA  ALL MODEL Series 
  • Fits for BUICK  ALL MODEL Series 
  • Fits for CHEVROLET  ALL MODEL Series 
  • Fits for CADILLACS  ALL MODEL Series 
  • Fits for INFINTI  ALL MODEL Series 
  • Fits for JEEP  ALL MODEL Series 
  • Fits for SUBARU  ALL MODEL Series 

 Worldwide Shipping ✈ 

  • Standard shipping typically takes 3-20 business days. You may receive them earlier.
  • Tracking Numbers will be sent so that you can track it. Cool gadgets are worth waiting for!

🔒 100% Risk-Free Purchase 🔥 

  • We aim to provide the best experience to our customers through our online store. To back that up, we offer a RISK-FREE 30 day guarantee. 
  • If you ever feel unsatisfied with our products, please contact us, we will make it right by offering you a replacement or refund.
const isSpecialHeroTheme = window.SHOPLAZZA?.theme?.merchant_theme_name == 'Hero' && window.SHOPLAZZA?.theme?.merchant_theme_c_version == '2.2.19'; const specialHeroThemeClassName = 'hero_2_2_19_smart_recommend_block'; 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.C_SETTINGS.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.C_SETTINGS.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.C_SETTINGS.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.C_SETTINGS.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() { const that = this; const themeName = window.C_SETTINGS.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'); this.initBlockClass(blockEl); this.initItemClass(blockEl); 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; if (rule.products && rule.products.length) { const modalRender = document.getElementById('smart_recommend_js_root'); const $dest = document.getElementById('cart'); const isLifeStyle = /Life.*Style/.test(window.C_SETTINGS.theme.merchant_theme_name); if (modalRender && isLifeStyle && $dest.clientWidth > 767) { modalRender.classList.add('zb-mt-[-180px]') } } 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; } }); if (isSpecialHeroTheme) { ruleEl.querySelectorAll(`.smart_recommend_title`).forEach(dom=>{ dom.classList.add('type-title-font-family'); }); document.querySelectorAll(`.${specialHeroThemeClassName} #smart_recommend_rule_ul_${rule.id} .zb-recommend-price-line-through .money`).forEach(dom=>{ dom.classList.add('type-body-font-family'); }); }; }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.C_SETTINGS.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); }); } } }); } initBlockClass(blockEl) { if (!blockEl) return; if (blockEl.parentElement && blockEl.parentElement.offsetWidth === document.body.clientWidth) { blockEl.classList.add('smart_recommend_block_fullscreen'); }; if (isSpecialHeroTheme) { blockEl.classList.add(specialHeroThemeClassName); }; } initItemClass(blockEl) { if (blockEl) { const containerWidth = blockEl.offsetWidth; let itemWidth = ''; if (containerWidth > 780) { itemWidth = '16%'; } else if (containerWidth > 600) { itemWidth = '20%'; } else { itemWidth = '24%'; } const itemStyleEl = document.createElement('style'); itemStyleEl.innerHTML = `.zb-recommend-li-item{ width: ${itemWidth}; }`; document.body.appendChild(itemStyleEl); } } 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 (modalRender) { document.body.appendChild(modalRender); } 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 }); }); }); 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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.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.C_SETTINGS.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.C_SETTINGS.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);