🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
1/16
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨
1/16

🎁Face Boost Anti-Aging Serum Botox ⏰Promotion 49% OFF Limited Time✨

$32.99
$79.99
Save $47.00
🔥92.8% of Customers Buy 2 or More
Please select a 🔥92.8% of customers buy 2 or more
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!!!🔥


The Botox Face Serum is formulated to remove wrinkles on your face and body. It encourages cell rebirth which helps you to rewind the age. ❤️

.

👩‍⚕As you get older, the production of collagen, hyaluronic acid, and ceramides starts to decrease, and there is a more dramatic decline by your 30s. Your skin begins to age and experience wrinkles, dryness, uneven skin tone, and loss of firmness.

🔥4 WEEKS WITNESS SKIN RENEWAL🔥

CLEARS PERSISTENT SCARS - MELANIN DISPERSION & ERYTHEMA CONSTRICTION

 

Dosed with a high concentration of Niacinamide (Vitamin B3) and Tranexamic Acid, Niacid forces congregated melanin pigment (brown spots) to separate and break free from a single spot on the skin. Dark red or purplish marks (post-inflammatory erythema) are visible blood vessels close to the surface of the skin that dilate during inflammation. Niacin works to gently constrict dilated blood vessels while simultaneously sedating residual redness with Sodium Guaiazulene - a Crystalline from Blue Tansy of the Chamomile family.

RAISES INDENTATION DEPTH TISSUE RECONSTRUCTION & SURFACE REGULARIZING

Severe inflammation causes the breakdown of underlying skin tissues resulting in an anthropic scar (indentation). Distilled in Niacid, Italian Snail Secretion orchestrates the correct assembly of the skin’s extra-cellular matrix (ECM) by forming new tissues where there is loss - resulting in decreased depth of indentations. In addition, Niacid healthily exfoliates the skin’s surface in order to prompt the growth of new skin cells, contributing to the speed of new skin tissue formation.

RECONSTRUCTS DAMAGED BARRIER - BARRIER STRUCTURING, HYDRATION AND NITRIFYING

Medicinal herb Scutellaria Root and Galactomyces ferment delivers key bio-available nutrients while Sodium hyaluronate in custom molecular size lingers near the skin surface to draw hydration and strengthen the skin’s moisture barrier.

Before we introduce our product, let's look at our happy customers.

Naomi Doyle age 53 submitted this photo on her journey with Botox Face Serum after using it for 6 weeks. 

👍Congrats on the success!🥂

"My husband has been filing for divorce for the past 3 years because of my aging skin. On the recommendation of a dermatologist, this Serum completely changed my life in 6 weeks. My face was ruined from smoking, deep lines on top and bottom of my lips and the right side of my face looked like a dried prune, the left side was similar but not as bad. I've been using the Serum for about 6 weeks, and the wrinkles around my eyes and lips have faded a lot, and my face is rosier and feels full of collagen to the touch. My skin looks healthier and tighter. I’m 53 and I’m finally able to look at my face without hating myself. I am now in a new and happier relationship!"

Marlene Rivera

"I've spent over $1,000 and hours back and forth at a skin pigmentation clinic I've had for 2 years and only a small change. Then my friend recommended this Botox Face Serum to erase wrinkles and I thought I should give it a try because I was almost done with what I had used before. To my surprise, I noticed my skin got brighter. After I noticed the difference and used about 4 bottles my skin got brighter and brighter and my wrinkles and darkest spots are 99% gone!! I'll keep using it to get my skin back to a more youthful state!"
Susanne Lewis


“I have never used a serum so effective as this. This picture was taken just after 6 Days of using it!!!  Cannot tell the difference between my friends that are 10 years younger. It's like the Fountain of Youth lol! It's first introduced to this by the aesthetician at my dermatologist's office and I like the way this serum makes my skin come alive, and gives a visible "lift" to my skin without being greasy. I'll keep using it to get my skin back to a more youthful state!"


Dr. Diane is a board-certified dermatologist and dermatological specialist who has 30+ years of experience in the beauty industry. She is notable for her professionalism in skin health as well as her approach to creating and maintaining the most natural-looking skin utilizing state-of-the-art cosmetic treatments and dermatologic technology.

Botox Face Serum is Considered to be the most effective anti-aging product in 2023 and it's highly recommended by Dr. Diane.
Without undergoing surgery. Combatting fine lines, wrinkles, and hyperpigmentation doesn't have to be expensive and invasive. The Botox Face Serum contains concentrated active ingredients that improve any tell-tale signs of aging, leaving your skin firmer, plumper, and younger-looking.

A Miracle Anti-Aging Concoction in a Bottle!

The Botox Face Serum is like a non-invasive facelift that gives you a youthful glow and targets signs of aging and free radical damage such as forehead lines, crow's feet, nasolabial folds, and uneven texture and tone. Its potent formula fills lines and wrinkles with intensive moisture and plumpness and adds radiance and luminosity. In addition, this increases the rate of cell turnover, which causes the top layer of skin to create new cells. This process can decrease the appearance of age spots and uneven pigmentation.

BOTULINUM TOXIN-THE ANTI-AGING KEY INGREDIENT
Infused with Botulinum toxin, a substance used in botox injections, this concentrated serum effectively Downplays facial fine lines and wrinkles. Botulinum toxin in cosmetic form reduces and fades forehead creases, frown lines, and crow's feet near the eyes.

 

ACETYL HEXAPEPTIDE-8 (commonly known as Argireline)
Considered also an excellent, non-invasive alternative to Botox. Restores the skin's natural water barrier, and helps bind water to the skin, improving dry skin. It also helps to improve skin elasticity.


COLLAGEN PEPTIDE
Works by stimulating your body to produce collagen on its own. Additionally, it promotes the production of other proteins that help structure your skin, including elastin and fibrillin.

Anti-Aging Benefits of the Botox Face Serum:

  • Provides a non-invasive alternative to Botox injections
  • Firms and lifts saggy skin and increases its elasticity
  • Fades forehead creases, frown lines, crow's feet, etc.
  • Locks in moisture to your skin, improving its overall texture, tone, and health
  • Brightens hyperpigmentation and age spots
  • Boost collagen production
  • Leaves a protective film that prevents dryness and water loss and protects your skin against free radical-induced damage

The Youthfully Botox Face Serum took 10 years off my face! It amazingly transformed my skin’s texture and eliminated my deep lines and wrinkles. It’s the smoothest and plumpest it’s ever been, and the dryness and dullness I battled all winter long have completely vanished.” - Margot Smith, lifestyle content creator

LET US HEAR AN INSPIRING STORY FROM LAUREEN'S 4-WEEK JOURNEY WITH WEST&MONTH ANTI-AGING SERUM

Laureen is a 58-year-old woman with skin aging issues (face lines, age spots, and forehead wrinkles). She's already tried countless beauty products that "promise" to deliver anti-aging benefits but saw no visible improvements. Her friend has recommended trying West&Month  Anti-Aging Serum!

Day 1: From the first use of West&Month  Anti-Aging Serum, I did feel the plumping effect like the product increased my skin’s level of hydration. My face felt soft to the touch, and I saw a glowy effect.


Day 7: After seven days of use, my forehead lines and eye wrinkles were gone. This essence improved the texture of my skin as well. My skin felt well-moisturized every day. This beauty set even helped fade some pigmentation all over my face with just a week of use. Wow!

Day 14: No more wrinkles and sagging skin. I feel like the ingredients of this Botox serum even helped plump up the skin. My wrinkles now look less sunken and the fine lines were reduced. Super impressed with the quality of this West&Month  Anti-Aging Serum. This has become a staple in my skincare regime. Thanks!
 

PRODUCT SPECIFICATIONS:

  • Shelf Like: 6 Years
  • Storage: Keep in a cool and dry place away from light

PACKAGE INCLUDES:

Net Weight: 30ml (30g)

undefined


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