Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
1/9
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
Last Day 50% Off⏰EMS Regenerating Foot Massager
1/9

Last Day 50% Off⏰EMS Regenerating Foot Massager

$32.99
$59.99
Save 45%
Quantity
Please select a quantity
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);

HURRY! ONLY 593 LEFT IN STOCK.
98% of customer buy 2-4 items to use daily and gifts for their loved ones...
不明确的
SOLD OUT FAST. GET 50% OFF NOW!!


A complete pain relief solution — that targets key points on the soles of your feet with
ELECTRICAL MUSCLE STIMULATION.
 
You Are Just One Foot Away From Being FREE of Chronic Foot Pain, Neuropathy, or Swollen Legs...
If you’re reading this, chances are you are suffering from numbing, stabbing pain. The result? The pain dictates your everyday life. Long-term, this can lead to more serious issues like surgery, reliance on painkillers, irreversible chronic foot pain, and even immobility. Using the power of Electrical Muscle Stimulation (EMS), the Nooro EMS Foot Massager reverses foot pain in the affected area of your body and restores the health of your feet in just 15 minutes a day.
 
Breakthrough Discovery
You’ve probably tried several other foot pain products that promise the world and fail to deliver. And, I’m here to tell you it is not your fault that you’re still in pain. Those other foot pain devices usually only mask the pain and don’t target the root cause of foot pain. This leaves the real problem untreated and makes things much worse. After two years of testing, sampling, and designing prototypes, and after spending $67,430.00, we stumbled upon the breakthrough combination of:
✅Scientifically backed electrical stimulation that promotes blood circulation
✅ Laboratory-proven frequencies that instantly alleviate swelling
✅Relieves your Foot Pain Pathways
Targeting all three elements of foot pain was the secret sauce that resulted in instant relief from chronic foot and leg pain.
 
No More Swollen Calves and Ankles
This breakthrough EMS technology causes muscles in the affected area of your body to reset and remain in a relaxed state.
Then the electrical impulses relieve stressed and strained nerves allowing them to heal and recover.
This technology:
✅Instantly eliminates the pain
✅Heal damaged tissues by increasing blood flow to the area.
✅Increases strength, flexibility, and mobility
✅Reduces swelling and inflammation
The result is instant relief from chronic pain, swelling, and discomfort, and a device 83% more effective than the leading competitor.
Pain pathways fully recover with consistent use, providing lasting relief for chronic foot pain.
 
Effective Against ALL Types of Foot and Leg Pain!
The Nooro EMS Foot Massager provides a unique combination of focused massage and vibration that can help alleviate and prevent any type of foot and leg pain.
✅Doctor designed & recommended
✅Increase blood flow in the affected area, which activates the body's self-healing mechanism
✅Instantly eliminates foot pain
✅Restores the health of your feet
✅Instant feeling of relief and bliss
 
Nerve Damage Reversing
When muscles are stressed by constant pain, they develop inflammation causing nerve damage and impacting their ability to heal.
When you use the Nooro EMS Foot Massager, it solves the root of the pain. It stimulates the nerves and muscles for the purpose of strengthening and rehabilitating them.
This aids in recovery and can reverse significant damage to the muscles and nerves. This results in long-term relief from pain and muscular soreness.
 
The Perfect Therapy Every Time
The Nooro EMS Foot Massager has 8 modes and 19 intensity levels.
The EMS technology guarantees penetration deep into the tissue of your feet giving you an instant feeling of bliss and relief as soon as you place your painful feet on the pad.
 
Professionally Designed & Recommended
Podiatrists and massage therapists aren’t always within arms reach and can be very expensive.
The Nooro EMS Foot Massager has been designed by a leading podiatrist as an effective way to get pain relief when you need it most.
For less than 1/5 of the cost of one therapist treatment, you can get results that last a lifetime.
 
Take it from consumers who achieved total relief with the Bio-EMS Acupoint Massager Mat!
“ I always suffered from belly fat and bloating. When I saw it I didn’t have high expectations as everyone is different and what works for someone might not work for another. But one couple of days I started using the Bio-EMS Acupoint Massager Mat. I noticed that my belly size went down and not only that but I felt that I was not bloated anymore and overall felt better. I guess it helped with my digestion too. I use Bio-EMS Acupoint Massager Mat once a day for 15 minutes, Use one for each area. It works great. It feels as if it is detoxifying my body. I feel better now."---Barry 
 
"I suffer from severe arthritis and varicose veins that make me sore every day and I can't even sleep. My primary doctor recommended the EMS Bioelectric Therapy Acupoint Massaging Body Shaping Mat. It's so easy to useTurn on the switch and put my feet on it. I use it every day cause it massages my feet very comfortably. My feet feel hot, my meridians are open, my body is warm, there is no pain, and I feel very relaxed. After using it for 2 weeks, I've seen noticeable changes, my varicose veins are gone, and some of the accumulated cellulite and swollen lymph nodes are gone. Fantastic! My body is healthier and lighter than ever." - Azita Crowley
 
What is EMS technology?
According to research, the soles of the human feet bring together all the organs of the body and also distribute many acupuncture points. They are connected to the heart, the intestines, the lymphatic system, and the skin tissue.
 
On the other hand, with the help of bioelectric technology, the Bio-EMS Acupoint Massager Mat not only works to relieve daily stress but also improves physical health. The treatment works by sending electronic pulses to the muscle needing treatment, which causes the muscle to exercise passively. By using the foot mat, the muscle can be tightened, and strengthened, while reducing the visibility of cellulite. Giving the legs a slim and toned shape.
 
What makes the Bio-EMS Acupoint Massager Mat your great choice?
  • Instant Relaxation - Provides a pleasant relaxation after a hard day at work
  • Better Blood Circulation - Sends small pulses through the feet and lower legs to stimulate the muscles for improved blood circulation eliminating swollen legs and feet.
  • Non-invasive Pain Relief - Relieves tension, pain, and long-term exhaustion through feet by targeting the natural acupressure points.
  • Overall Health Benefit - Improves metabolism, stimulates sweat secretion, reduces fatigue
  • Portable and Handy - This is compact and handy and can be carried anywhere to provide instant relief.
  • Safe to Use - It uses a soft and comfortable foot pad material with ion circuit printing that is skin-friendly and does not cause harm to the user.
  • Comfort for Everyone - Suitable for people who work on their feet all day, office workers, athletes, the elderly, or anyone who experiences some sort of foot pain.
Let's check out Charizza's progress with the Bio-EMS Acupoint Massager Mat! What is EMS technology?
I was quite of a lazy poke as a person and it's due to now having enough energy to last a day so I mostly always reserve myself by doing less. This made me gain pounds and just be okay with the lifestyle I had. My body also always felt sore and aching and I was not happy about it. I found these products and decided to give it a go.
When I started using the Bio-EMS Acupoint Massager Mat, I was instantly addicted. It is a kind of therapy that also acts as a meditative process. It gives me time to appreciate my body as it keeps on detoxifying as well. I became more alive and active. 
3 Weeks passed and due to the change of lifestyle, I became more active as a person. That helped me cut off weight as well. But most of all, there were fewer pains to be felt.
With constant and continuous progress, there were significant changes to my body. I feel healthier. I lose 36 pounds. My doctor says that my blood flow was active and normal compared to when I was still not using these patches.
Due to these Acupoint Massager Mat, I became more loving with myself. I have more energy to do more things and I became happier thanks to the fulfillment I've been feeling. I highly recommend it to everyone who is suffering from obesity, this will surely heal us all!– Elena Robinson, 46, Mesa, Arizona
"I've only used the Detoxification and Slimming Acupoint Massager Mat a few times but I have to say I'm quite impressed as I think the quality and appearance of my skin has already improved! I feel my legs and thighs are lighter and more toned.  The best part is it diminished the appearance of my cellulite!--- Anne Miller, 39, Phoenix, Arizona
 
How to Use:
  1. Install the device on the foot pad.
  2. Place both feet on the foot pad.
  3. Set up massage modes and intensity.

SPECIFICATIONS

  • Dimensions: 29cm x 30cm
  • Material: Polypropylene
  • Color: Black
  • Powered by AAA batteries(Not including)

PACKAGE INCLUDED

  • Bio-EMS Acupoint Massager Mat

CERTIFICATION


⚡️Stock sells fast - get yours today!

WHY CHOOSE US

🌎Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

💰 Money-Back Guarantee: If you bought it and felt that it was not for you, don't worry. Just shoot us a message at contact 📪, and we will make it right by offering you a replacement or refund. 100% Simple & Risk-Free process.

✉️ 24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

🔒 Safe & Secure Checkouts: We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

OUR GUARANTEE

🏺We take pride in our products as we believe they are amazing. However, we understand that buying things online can be daunting, especially for the first time, so we offer a 100% satisfaction 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.

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('appzebu 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);