🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra
🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra

🔥NEW YEAR SALE 49% OFF - Bra For Older Women Front Closure 5d Shaping Push Up Seamless No Trace Beauty Back Sports Comfy Bra

Price

$53.90 $25.96
Save $27.94

colour

Please select a colour

size

Please select a size

Quantity

Global Provision of Services
Free Shipping Over $59.99
Sustainable Manufacturing
PayPal & Credit Card Payment

🔥NEW YEAR 2023 SUPER SALE

Size Chart: 

Made with breathable material, loaded with comfort features to keep you dry and fresh.

Absolutely gorgeous lace bra adds romance and flirt without losing support and comfort!

undefined

Made with sweat-wicking mesh fabric to keep you cool and dry during medium-to-high impact activities.

Sagging-defying Seamless Bra offers the utmost support for bigger busts with zero wires or a banded frame – no pinching at all

The design of 5D seamed cups, wide side wings, strong cushioned shoulder straps, and U-shape back panel ensures maximum support against sagging while smoothing back bulges and correcting armpit fats for a flattering silhouette.

FEATURES:

  • Seamless cut for maximum comfort & centering support
  • Anti-saggy & east-west breast
  • Reduces side breast fat by centralizing & full coverage
  • No more skin marks & boob slippage
  • Bra-free sensation & Ultra-comfortable wearing

According to a study by the World Health Organization: the average life expectancy of an underwear should not exceed 6 months, and regular underwear replacement is also a necessary condition to protect women's health.

YOU ASKED, WE ANSWERED

How can I wash my Bra?

To keep your new bra in the best possible condition - we recommend using a hand wash in cold water. But if you prefer machine washing, please carefully place your new bra in a zippered lingerie laundry bag and place it in a 30°C wash on a delicate setting. Never bleach, iron, or place your bra in a dryer.

Are the straps adjustable?

The best part about the Bra is that it's an adjustment-free fit! When you get your perfect size, the strecthy straps fit superbly well along the shoulders and sides, never squeezing, only supporting you and your unique shape.

What kind of bra is it?

The Bra is one-of-a-kind! It is the best of a push-up, a bralette, and a sports bra combined. We rejected all other "normal" categories of bras - because they all had unique problems that we wanted to solve with it. There's no other bra like it.

What is the Bra made of?

Fabric: 95% nylon, 5% cotton





YOU ASKED, WE ANSWERED

How can I wash my SORA Bra?

To keep your new bra in the best possible condition - we recommend using a hand wash in cold water. But if you prefer machine washing, please carefully place your new bra in a zippered lingerie laundry bag and place it in a 30°C wash on a delicate setting. Never bleach, iron, or place your bra in a dryer.

Are the straps adjustable?

The best part about the SORA Bra is that it's an adjustment-free fit! When you get your perfect size, the strecthy straps fit superbly well along the shoulders and sides, never squeezing, only supporting you and your unique shape.

What kind of bra is The SORA Bra?

The SORA Bra is one-of-a-kind! SORA Bra is the best of a push-up, a bralette, and a sports bra combined. We rejected all other "normal" categories of bras - because they all had unique problems that we wanted to solve with SORA Bra. There's no other bra like SORA Bra.

What is SORA Bra made of?

Main fabric (microfibre): 73% Polyamide 27% Elastane

Lace: 87% Polyamide 13% Elastane

When will the SORA Bra arrive?

The demand for SORA Bra is quite incredible. As this is an exclusive edition, any order placed today will take around 10-14 days to be delivered. We recommend that you reserve your spot and order immediately before the wait time increases further.

Our Shipping information:

THIS PRODUCT IS NOT AVAILABLE IN STORES. WILL SELL OUT FAST!

Satisfaction Guaranteed With Every Order. All prices are listed in USD.

"100% QUALITY GUARANTEE"
MADE IN AMERICA WITH HONOR

OUR GUARANTEE

🌎 Worldwide Shipping ✈  

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 you bought it and felt that it is not for you, don't worry. Just shoot us a message , and we will make it right by offering you a replacement or refund. 100% Simple & Risk-Free process.

Click on "ADD TO CART" to get yours now!

Alt

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