✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
16/25
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅
16/25

✨MagnetologyMoissanite Diamond Ring⏰Christmas Limited Time Offer 49% OFF🎅

$26.99
$53.98
Save $26.99
ColorSilver
Please select a color
Size
Please select a size
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);


💝99.2% of Reviewers Recommends This Product.
🌎 Over $58.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!!!🔥

💞 Note: 5872 pieces have been sold since we started the sale. After the remaining 158 pieces are sold, our price will go back to the original price. Take your last chance to order


FLASH SALE: ONCE WE REACH 500 UNIT SALES, WE WILL BE INCREASING THE PRICE BACK UP TO $49.97!✅Quality assurance Risk-Free 90 days money back guarantee.

🔥Rescue your body curve and health🔥

AMIRA HUSSAIN SUBMITTED THIS PHOTO OF HER JOURNEY USING THE MAGNETIC ZIRCON SHAPING RINGS. CONGRATS ON THE SUCCESS!

“I have struggled with my weight for a long time, and my sedentary lifestyle was really starting to take a toll on my confidence and daily life. I recently purchased the Magnetology Moissanite Diamond Ring and have been wearing it for several weeks now. Since wearing this ring, I have noticed a significant improvement in my energy levels and metabolism. I was skeptical at first, but the TitanION therapy technology in this ring really seems to be working. It's not a quick fix, but after several weeks of consistent wear, I have already lost 53lbs! I'm amazed at the difference this product has made in my life. I love that this product is easy to wear and doesn't interfere with my daily routine. It's comfortable and doesn't get in the way, but I know it's working hard to boost my metabolism and help me reach my weight loss goals. It is a great accessory for a safe and effective way to improve their energy levels and lose weight.”

“I’ve been fighting with my anxiety and digestive issues for so long, I found myself gaining weight and feeling discouraged about my health. I was searching for a solution to help me lose weight without having to put in a lot of effort, and that's when I stumbled upon the. Magnetology Moissanite Diamond Ring. I was a bit skeptical at first, but after wearing the ring for a few weeks, I have noticed a significant improvement in my metabolism and my digestion. I'm amazed at how much better I feel overall, and I have even gone down two pants sizes since starting to wear the ring. What I love about this is that it's so easy to use - I just wear it on my finger and let the TitanION therapy do its work. It doesn't interfere with my daily routine, and I feel healthier than ever since I started wearing it.” - Elvia Bartolini

HOW LYMPHATIC SYSTEM WORKS & WHAT CAUSES ITS BLOCKAGE?

Lymph nodes make immune cells that help the body fight infection. They also filter the lymph fluid and remove foreign material such as bacteria and cancer cells.

When bacteria are recognized in the lymph fluid, the lymph nodes make more infection-fighting white blood cells. This causes the nodes to swell. The swollen nodes are sometimes felt in the neck, under the arms, and groin. The lymph nodes, or lymph glands, are small, encapsulated bean-shaped structures composed of lymphatic tissue.

WHAT IS THREANIC THERAPY?

In the 1980s, Michael Roy D, PhD, who studied the effects of positive and negative charges on human biology, discovered the TitanION. In the study, he claims that TitanION is the primary driver of thermogenic treatment. According to him, the energy from TitanION has the potential to kill cancerous cells, alleviate arthritis pain, and improve blood circulation.

By realigning the energy pathways that are obstructing the body's normal energy flow, this therapy enables the body to repair itself. Certain maladies like anxiety, sadness, and sleeplessness, as well as more physical maladies like digestive issues, can be relieved by TitanION.

MAGNET THERAPY FOR WEIGHT LOSS & THE LYMPHATIC SYSTEM

In the battle against obesity and its associated diseases, such as cellulite and varicose veins, magnetic therapy is a potent weapon. It has been demonstrated that magnetism can enhance lymphatic and blood flow, which enhances skin texture and tone overall.

A magnetic field is used in magnetic therapy to encourage the body's own healing mechanisms. It may specifically aid in fat burning while reducing cellulite and enhancing skin suppleness. To enhance blood flow, lessen pain, boost vitality, and encourage relaxation, magnets are applied to certain body parts. The magnets can be applied to any part of the body, including the head and toes, although they work best when positioned over important energy centers like the heart and liver.

WHAT MAKES THE Magnetology Moissanite Diamond Ring YOUR GREAT CHOICE?

The majority of magnetic items either use magnets that only partially penetrate the magnetic field or use like poles that repel one another, leaving a dead zone between the magnets. Alternating North-South Polarity Orientation is used by Magnetology Moissanite Diamond Ring to maximize magnetic field flow and discharge electromagnetic charge, which helps to clear obstructions from the body and reestablish a normal energy flow.

15 MINUTES WEARING TEST

 Powerful TitanION Ion Therapy

 10X Faster release TitanION Elements by ring design

 Effective Body Detoxification

 Reduce 86% of excess Lymph Fluid in 3 Months

 Unclog Bloodstream and Lymph Nodes

 Accelerate Metabolism

 Natural solution for lymphatic drainage and weight loss

 Stylish ring Design

HERE ARE SOME OF OUR HAPPY CUSTOMERS:

TAKE A LOOK AT MICHELLE’S ULTIMATE EXPERIENCE WITH MAGNETIC ZIRCON SHAPING CROSS FULL MOISSANITE DIAMOND RING

Week 1:

What a difference a week makes! I can't believe it. I've been seeing the weight come off, and I feel so much better about myself. It's amazing to think that someone else has figured out how to make all this work for me—it's like they know exactly what my body needs.

Week 4:

I've seen some pretty crazy things in my life—but THIS is up there. I've lost an incredible 4 inches from around my waist, and I feel like I could take on the world. My thighs and arms are much smaller this time, and the skin on my tummy area has tightened up!

Week 8:

This is unreal. This week alone, I lost another 2 inches—and now it's time for me to start my next four-week plan and continue my journey toward a slimmer body and a better future!

Marilyn Santiago
Liverpool, United Kingdom


“I feel like I'm finally happy and confident with myself and my body! I had slow metabolism before I wore Magnetology Moissanite Diamond Ring, I know surgery isn't the best choice for me, so I tried this ring. I wear this everyday even workouts. My tummy is gone after 8 weeks! If you're struggling with fluid retention, puffiness, or weight loss, try this ring!”

Regina Hawkins
Perth, Australia

Package includes:

  • MagnetologyMoissanite Diamond Ring
  • Colors: Silver、Gold、Blue、Rose gold、Golden green、Purple

⚡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 }, 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);