🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
7/18
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰
7/18

🍑Windproof Dual-Flame Vintage Watch Lighter⏰Promotion 49% OFF Limited Time⏰

$29.99
$59.99
Save $30.00
ColorGold
Please select a color
Style
Please select a style
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);


💝99.2% of Reviewers Recommends This Product.
🌎 Over $59.99 for free delivery worldwide
🛒 Tracking number for every order
💯 Payments Via PayPal® and Credit Card
⭐ Returns>>100% Money Back Guarantee

Our goods are authentic, with genuine patents, counterfeit must be investigated! Customers please identify our products

It will sell out fast, Enjoy a discount now!!⚡Please make sure to buy enough quantity before we increase the price!!!🔥


Take classy to the next level and fire up your needs in just a press using this vintage dual-flame watch lighter!

A luxurious, vintage animal head-shaped lighter that produces a safe and controlled majestic dual-flame performance. Featuring an impressively fierce, windproof blue torch fire that you can ignite with just an easy-press from the switch. It promises to burn brightly and prevents it from dying out easily even under a blustery day or chilling environments. Moreover, this gorgeous lighter automatically switches to create a nice and soft mesmerizing red flame once the switch is released. The perfect fiery helper for lighting up candles, butane gas, fireworks, campfires, grills, fireplaces, gas stoves, emergency use, and so on.     

This elegant dual-flame lighter supports a smooth-polished finish with a light, ergonomically designed non-slip body. Allowing it to nestle comfortably and grip nicely on the hand while delivering a luxe-like feel for that easier, maximum maneuverability. Available in chic black and fancy gold aesthetics that come in crocodile head, dolphin, eagle, horse, dragon, and a pistol shape selection. Each style comes with a built-in, finely-tuned quartz clock that works to deliver accurate time of the day. The vintage dual-flame lighter adopts a convenient refillable butane tank and a smart adjustable flame that can increase or decrease power. Lastly, it is highly portable enough to be used at-home or during outdoors for hiking, camping, picnics, girl/boy scout, BBQ night, and more. 

Light up in sleek style with this vintage dual-flame windproof lighter!

FEATURES:

  • Dual-Flame Vintage Lighter
    A stunning animal head-shaped lighter that comes with a remarkable dual-flame feature that can effortlessly ignite a plethora of flammable items in no time. Allowing you to produce that powerful and controlled windproof blue torch flame that guarantees to burn bright and defy wind with just a simple press. It prevents the fire from quickly dying out before you light up your needs even under windy or chilling conditions. Additionally, the lighter automatically switches to a soft, mesmerizing fiery red flame as you release the switch. Its scorching performance works well for many occasions, including lighting a candles, butane gas, fireworks, campfires, grills, fireplaces, and more possibilities. No more struggling when igniting anymore and producing flimsy flickers that go out in only a blow!   

  • Unique Animal Style
    Does not only release a mesmerizing flame, but it is also designed with a touch of fiery vintage style. It comes in a variety of exquisite animal head-shaped selections that is sure to make everyone amaze. Available in chic black and fancy gold color in crocodile selection, dolphin, eagle, horse, dragon, and even a pistol shape style! Each lighter design supplies a smooth-polished finish and non-slip, ergonomic lightweight body that nestles comfortably and feels luxuriously in the hands. Furthermore, all lighter also has a smart quartz clock feature that tells and reminds you of the precise time of the day. Making it a thoughtful present for collectors, dads, grandfathers, friends, parents, boyfriends, and so on. 

  • Refillable Butane Tank
    Offers a handy refillable quality which enables it to be filled again and again once it gets emptied. Simply hold your universal butane gas and then align the nozzle at the bottom of the lighter to fill up the tank. After that, gently shake the lighter up and down, wait for a few minutes for it to get hot and ready, and you can now freely press and ignite! You’ll never run out of fiery light anymore and can save yourself from the hassle of constantly buying new ones like with the regular disposable lighters.    

  • Easily Adjustable Flame   
    Promotes an innovative adjustable flame valve at the bottom. It enables you to easily twist and adjust according to the strength of your needed fire for a more personalized effect or even for safety reasons. All you have to do is to use a screwdriver to slightly twist the valve towards the carve plus and minus sign to successfully increase or decrease the flame. No worries as you can adjust and change anytime without causing problems on the lighter’s dual-flame performance. 
  • Premium Quality
    Made of high-quality, non-toxic zinc alloy materials and advanced technology that boasts powerful dual-flame style capabilities. It supports an excellent durability that can resist accidental drops and bumps. This vintage dual-flame windproof ensures to accompany you for several years without weakening flame performance, discoloration, and damages. All lighter styles are also portable enough to be easily carried around and neatly stashed inside bags, pouches or pockets without taking up space. No worries as its sophisticated animal shape cover prevents it from switching and causing any fire hazards. The perfect lighter for at-home use or when you're out for hiking, camping, picnics, girl scout/boy scout, outdoor activities, emergency use, and so on.  

SPECIFICATIONS:

  • Case material: 
  • Size: 7.5x3.6cm
  • Color: Gold / Black
  • Style: Gun / Dragon / Eagle / Horse / Crocodile / Dolphin
  • Fuel is not included due to airmail regulations. 

PACKAGE INCLUDES:

  • 1 x Dual-mode Vintage Watch Lighter

⚡️Stock sells fast - get yours today!

HOW TO PAY

✅Payments Via PayPal®Debit and CreditCard.Add to cart first, and Check out, then select Shipping method and Payment method.

If you checkout with a Debit / Credit Card, just enter your * Card Number* Expiration Date, and * Secure Code.

💐WHY US

We work directly with manufacturers all over the world to ensure the best quality of our products. We have a Quality Control department which helps us to keep our promise!
  • 🔥Price is always competitive.
  • 😊Awesome Customer Service.
  • 🏆Amazing products along with High Quality.
  • 🍭Read reviews from our lovely customers.

🌎Worldwide Shipping✈  

Please note that shipping is insured. However, you may receive your items earlier. Tracking Numbers will ALWAYS be sent so you can track it every step of the way! Cool things are worth waiting for! 😉

🔒100% Risk-Free Purchase🔥 

If the product you received is damaged, don't worry. Just hit the Contact Us button and send us a message, and we will make it right by offering you a replacement or refund. It 100% Simple & Risk-Free process.

Our Warehouse

Please consider any holidays that might impact delivery times. Please consider the transportation methods and unexpected situations that may affect the delivery time.

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);