[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
1/13
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
[✨Official Brand Store✨] RevitaPeptide Reversal Essence
1/13

[✨Official Brand Store✨] RevitaPeptide Reversal Essence

$27.97
$37.97
Save $10.00
🔥Buy More Save More🔥
Please select a 🔥buy more save 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);

This product carries FDA approval and is safe to use with no reported side effects, making it suitable for all skin types.


As you're getting older, the production of Collagen and Hyaluronic Acid, Ceramides, starts to decrease, and there is a more dramatic decline by your 30’s. Your skin begins to age and experience wrinkles,dryness, uneven skin tone, and loss of firmness.

👩‍⚕The RevitaPeptide Reversal Serum  is formulated to remove wrinkles on your face and body. It encourages cell reborn which helps you to rewind the age. ❤️


🔥4 WEEKS WITNESS SKIN RENEWAL🔥

PALMITOYL PEPTIDE: THE POWERFUL INGREDIENT FOR SKIN UPLIFTING

Palmitoyl peptide has been found to stimulate collagen synthesis collagen synthesis in the skinis similar in structure to naturally occurring peptides found in the human body . By boosting collagen production, it can help improve skin elasticity , reduce the appearance of wrinkles, and improve overall skin texture. Additionally, palmitoyl peptide supports the skin's natural barrier function and helps improve its ability to retain moisture . This can lead to softer , smoother , more supple skin .. It is structurally similar to natural peptides present in the human body. By promoting collagen production, it can help improve skin elasticity, reduce the appearance of wrinkles, and enhance overall skin texture. Additionally, Palmitoyl peptide supports the skin's natural barrier function, helping to improve its ability to retain moisture. This can result in softersmoother, and more supple skin.

RAISES INDENTATION DEPTH - TISSUE RECONSTRUCTION SURFACE REGULARIZING

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

RECONSTRUCTS DAMAGED BARRIER - BARRIER STRUCTURING, HYDRATION AND NUTRIFYING

Glucan Extracts delivers key bio-available nutrients while Trehalose in custom molecular size lingers near skin surface to draw hydration and strengthen skin’s moisture barrier.

Let's see the happy customers who tried Posryst™ RevitaPeptide Age Reversal SerumLet’s take a look at some of the happy customers who have tried Posryst ™ RevitaPeptide Anti-Aging Serum !!


"After experiencing weight loss, I noticed sagging neck skinwrinkles, and fine lines, causing frustration and self-consciousness. Seeking a solution, I chose RevitaPeptide Reversal Serum. Within a few weeks,a huge improvement my skin's texture and appearance have . The serum has effectively smoothed fine lines , boosted skin hydration and made my skin appear plumper ." -  Kae Jamison - 47 years oldgreatly improved. The serum effectively smooths fine linesboosts skin hydration, and adds a plumpness to my skin." - Kae Jamison - 47 years old

 "I've been trying the RevitaPeptide Age Reversal Serum for a few weeks, and my skin has shown noticeable improvements. I had concerns about loose skin and wrinkles on my neck after childbirth, but this serum's tightening and moisturizing effects are impressive. My skin feels firmer and smoother, and fine lines appear reduced." - Hylda Brent - 43 years old


"I have post-surgical pigmentation, which makes me feel quite anxious about my face. I'm glad I tried this serum since it really does work like magic. My dark facial pigmentation has significantly lessened in just under two months thanks to it! This face serum is my holy grail."- Quennie Hilton - 38 years old

ACHIEVE BRIGHT & EVEN OUT SKIN TONE!


Posryst™ RevitaPeptide Reversal Serum has been clinically proven to lighten and eliminate dark spots, hyperpigmentation, and melasma: the acids gently fade and peel dark spots to expose brighter skin. The hue of this serum can range from light amber to dark brown due to the natural elements in its mix.

CLINICALLY PROVEN

Recommended by Recommended by Dr. Naomi Hosteller , a respected dermatologist with a decade of experience in skincare , the renowned Posryst ™ RevitaPeptide Reversing Serum is an excellent solution. This extraordinary serum comprehensively addresses a wide range of skin concerns, including sagging neck, sagging nasolabial folds, and drooping eyelids. It is exclusively formulated with premium palmitoyl peptides to help improve skin elasticity, reduce wrinkles , and improve overall skin texture., a respected board-certified dermatologist with a decade of experience in skincare, the renowned Posryst™ RevitaPeptide Reversal Serum stands out as an exceptional solution. This extraordinary serum offers a comprehensive remedy for various skin concerns, ranging from sagging necks and sagging nasalabial folds to dropping eyelids. Formulated exclusively with premium-grade Palmitoyl Peptide, it can help improve skin elasticity, reduce the appearance of wrinkles, and enhance overall skin texture.

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

Understanding the Causes of Skin Sagging

As we age, our skin gradually loses collagen and elastin, which are proteins responsible for maintaining skin elasticity and firmness. Additionally, the production of these proteins decreases over time. The loss of collagen and elastin leads to a loss of skin structure and support, resulting in sagging skin.

How does the Posryst™ RevitaPeptide Reversal Serum Work?

Palmitoyl Peptide : The Powerful Ingredient for Skin Uplifting

Palmitoyl peptide has been found to stimulate collagen synthesis collagen synthesis in the skinis similar in structure to naturally occurring peptides found in the human body . By boosting collagen production, it can help improve skin elasticity , reduce the appearance of wrinkles, and improve overall skin texture. Additionally, palmitoyl peptide supports the skin's natural barrier function and helps improve its ability to retain moisture . This can lead to softer , smoother , more supple skin .. It is structurally similar to natural peptides present in the human body. By promoting collagen production, it can help improve skin elasticity, reduce the appearance of wrinkles, and enhance overall skin texture. Additionally, Palmitoyl peptide supports the skin's natural barrier function, helping to improve its ability to retain moisture. This can result in softersmoother, and more supple skin.

Apart from collagen, palmitoyl peptide may also stimulate the production of elastin. Elastin is another essential protein that allows the skin to return to its original shape after being stretched. Increased elastin levels contribute to improved skin elasticity, helping to counteract sagging and maintain a more youthful appearance.

Other Key Ingredients For Transformative Skin Enhancement


• Palmitoyl peptide - It can help improve skin elasticity, reduce the appearance of wrinkles, and enhance overall skin texture. Additionally, Palmitoyl peptide supports the skin's natural barrier function, helping to improve its ability to retain moisture. This can result in softer, smoother, and more supple skin.
• Glycerin - Its unique properties allow it to act as a vehicle for other skincare ingredients, improving their penetration into the skin and enhancing the overall effectiveness of skincare products.
• Soluble Collagen - Penetrates the skin, supporting its structure for increased elasticity and firmness.
• Glucan Extracts - Soothes and moisturizes the skin, ideal for sensitive or reactive skin types.
• Trehalose - A natural water-binding agent that helps retain moisture in the skin.




WHAT MAKES Posryst™ RevitaPeptide Reversal Serum SPECIAL?


✅ Dermatologist Tested

✅ Uplift Sagging Skin

✅ Reduces The Appearance Of Fine Lines & Wrinkles

✅ Boosts The Production Of Collagen

✅ Repair & Moisturise Skin

✅ Suitable For All Skin Types

✅ Improve Skin Elasticity

LET US HEAR AN INSPIRING STORY FROM LAUREEN'S 4-WEEK JOURNEY WITH REVITAPEPTIDE REVERSAL 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 RevitaPeptide Reversal Serum!

Day 1: From the first use of RevitaPeptide Reversal 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 7After 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 the 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 RevitaPeptide Reversal Serum Face 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 RevitaPeptide Reversal Serum. This has become a staple in my skincare regime. Thanks!
 

EASY APPLICATION


  • Step 1: Wash and dry your face.
  • Step 2: Dispense 2-3 drops onto the palm of clean hand and use fingertips to massage into face and neck until fully absorbed.
  • Step 3: Follow up with your favorite moisturizer. Repeat morning and night.

Package Includes


PRODUCT SPECIFICATIONS:


Net Weight: 50ml (50g)

Shelf Like: 5 Years

Storage: Keep in a cool and dry place away from light

OUR GUARANTEE

  • We truly believe we carry some of the most innovative products in the world, and we want to make sure we back that up with a risk-free 90-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 absolutely ZERO risks 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. Please contact us if you need assistance.


For each piece of our product purchased, we donate a portion of our profit to support the Cruelty-Free International organization, which helps to promote the protection of animals and end animal cruelty around the globe. By purchasing our product, you are supporting our cause to provide a more animal-friendly beauty culture. Don't hesitate to contribute your passion for that. 

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