✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
19/35
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off
19/35

✨2025 High Waisted Tummy Control Color Block Bikini Sets⏰Last Day 50% Off

$29.99
$59.98
Save $29.99
ColorGreen
Please select a color
Size
Please select a size
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);

Note: Please choose the size according to the size chart. If you are obese or overweight style, it is recommended to choose 1-2 size larger.

🏖️💖Why you will love these Bikini Sets?

✨Sculpt Your Silhouette With Confidence

Tummy control swimsuits for women feature full lining for excellent support and coverage. The high-quality, soft, breathable, and stretchy material holds up well during intense water activities,accommodating various body shapes.

动图1.gif__PID:c67da6a9-e26a-487b-a9ad-bea8be22c31b

✨Lift & Support

the adjustable wide straps and push-up bra provide comfort and extra support for a flattering and feminine look. The color block, contrast trim and v neck design make you stand out on the beach or by the pool.

动图2.gif__PID:08bf2caa-4fd5-436f-90d5-b0a1ac75754c

✨Moderate Coverage Bottom

The high waisted bikini offers tummy control, ruched, drawstring, and wide waistband, creating a slimming effect and highlighting your waistline. With moderate coverage, you can feel confident and comfortable.

✨Summer Beach To Swim, For You Always!

This bikini set is the ideal swimwear for beach vacations, pool parties, and water sports activities. It is designed to make you feel confident and stylish whether you're lounging, swimming, or enjoying a resort getaway.

⛱️Essential for vacation! Wear it and enjoy your own life!💃

Material: Polyester

Note: Due to the different monitor and light effects, the actual color of the item may be slightly different from the color shown on the pictures.


⚡Click On "ADD TO CART" To Get Yours Now!

✨OUR GUARANTEE✨


✅We truly believe we make some of the most innovative products in the world, and we want to make sure we back that up with a risk-free ironclad 45-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 is an absolute ZERO risk 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.

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

🔥 The price is limited! 🔥 Grab yours as the limited promotion available!

✈ 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 🔥 

  • We truly offer stunning, trendy high-quality products in the world.
  • We will do WHATEVER it takes with outstanding customer service support to assist everyone.
  • If you are not satisfied with receiving the goods, you can apply for a refund.
  • You can pay with PayPal, which will protect your money.

✅Payments Via PayPal®, Credit and Debit cards.

If you want to checkout with a Credit and Debit Card, just enter your * Card No, * Expiration Date, and * CVV.
f34603c6042c7802af86fc595826003b48c8f721fa4f1ffa117ffea06bd06849.png
153a0932404b13aa72f600fa0f9237172d5147ac6302b2183812028339748e9c.png
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 }); }); }); 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);