Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Green Aventurine| Luck| Prosperity| Wealth
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of aquamarine
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of red agate
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Tiger Eye| Willpower| Grounding| Courage
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of unakite
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Malachite| Transformation| Change| Reflection
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of turquoise
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Lapis Lazuli| Awareness| Inner Wisdom| Trust
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of Amethyst
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of amazonite
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Cirtine| Health| Fortune| Cleaning
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of clear quartz
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of White Turquoise
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Fluorite| Positive| Energetic| Cleaning
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of Tourmaline
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of Ruby Zoisite
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Green Aventurine| Luck| Prosperity| Wealth
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of aquamarine
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of red agate
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Tiger Eye| Willpower| Grounding| Courage
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of unakite
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Malachite| Transformation| Change| Reflection
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of turquoise
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Lapis Lazuli| Awareness| Inner Wisdom| Trust
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of Amethyst
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of amazonite
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Cirtine| Health| Fortune| Cleaning
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of clear quartz
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of White Turquoise
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the Functions of Fluorite| Positive| Energetic| Cleaning
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of Tourmaline
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
the benefits of Ruby Zoisite
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet
Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet

Olivenorma "Nature's Healing Wishes" Irregular Gemstone Braided Bracelet

Embrace natural healing power with Olivenorma "Nature's Healing Wishes" gemstone braided bracelet, featuring amethyst, rose quartz, and aquamarine for emotional balance and spiritual growth.
Price
$41.95
$25.59
Save  $16.36
The current produc does not participate any Rebate. Switch the participating product to check the design.
(This prompt will not be displayed on the client-side.)
if(window.self === window.top) { (window.disabled_exts ||=[]).push('product_detail_rebate'); } class SpzRebateComponent extends SPZ.BaseElement { constructor(element) { super(element); } xhr_ = SPZServices.xhrFor(this.win); viewport_ = this.getViewport(); action_ = null; lang = document.documentElement.lang || 'en-US'; landPage = "\/promotions\/rebate\/"; pageType = 1; cart = []; initData = null; rebateInfo = null; renderData = null; footerImage = `${this.win.SHOPLAZZA["image_domain"]}oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg`; isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.initData = this.getProduct(); this.action_ = SPZServices.actionServiceForDoc(this.element); this.registerAction("triggerGetRenderData", () => { const event = SPZUtils.Event.create(this.win, "triggerGetRenderData", this.renderData); this.action_.trigger(this.element, "getRenderData", event); }); this.registerAction("bindPropagation", () => { document.querySelector(".product_detail_rebate_list").addEventListener("click", e => { e.stopPropagation(); this.win.sa && this.win.sa.track("plugin_rebate_promotion_click", { plugin_timestamp: Date.now(), plugin_location: "info", product_id: this.initData.product.id, discount_id: this.rebateInfo.discount_list.map((item) => item.discount_id)[0], }); }); }); } async mountCallback() { document.addEventListener("dj.variantChange", e => { const data = e.detail; if (document.querySelector("#product-select-modal.show")) return; if (this.initData && this.initData.product && data.product && this.initData.product.id === data.product.id) { this.initData = data; this.initRebate(this.initData, true); } else { this.initData = data; this.getRebateInfo(); } }); document.addEventListener("dj.addToCart", e => { const v = e.detail; this.rebateInfo && this.win.sa && this.win.sa.track("plugin_rebate_atc", { variant_discount_id: this.getVariantDiscountId(v.variant_id).map(item => item.discount_id), discount_ids: this.rebateInfo.discount_list.map(item => item.discount_id), variant_id: v.variant_id, product_id: v.product_id, price: v.item_price, number: v.number, }); }); await this.getRebateInfo(); if (document.querySelector(".plugin-container__bottom-fixed")) { this.showDiscountPopupsInfoBar(); } else { this.win.addEventListener("extloaded", () => { this.showDiscountPopupsInfoBar(); }); } } getProduct = (() => { document.addEventListener("dj.variantChange", e => { if (!e.detail || !e.detail.product) return; const productJson = document.querySelector("#product-json"); if (productJson && productJson.textContent && JSON.parse(productJson.textContent)) { productJson.textContent = JSON.stringify(e.detail); } if (this.win.jQuery && this.win.jQuery.fn && this.win.jQuery(document).data("djproduct")) { this.win.jQuery(document).data("djproduct", e.detail); } }); return () => { let productData = null; if (this.win.jQuery && this.win.jQuery.fn) { try { let product = this.win.jQuery(document).data("djproduct"); if (product) { productData = JSON.parse(JSON.stringify(product)); } else { productData = null; } } catch (error) { productData = null; } } if (!productData) { const productJson = document.querySelector("#product-json"); productData = (productJson && productJson.textContent && JSON.parse(productJson.textContent)) || null; } return productData; }; })(); initRebate = this.win.SPZCore.Types.debounce( this.win, (async (data, variantChange) => { let discount_list = Object.assign([], this.rebateInfo.discount_list); /* 按子商品的多少对优惠信息进行排序 */ discount_list && discount_list.sort((a, b) => { return b.variant_ids.length - a.variant_ids.length; }); /* 选中子商品时 筛选子商品的优惠信息 */ if (data.selected && data.selected.id) { discount_list = this.getVariantDiscountId(data.selected.id); } /* 无满减信息 */ if (!(discount_list && discount_list.length)) { return; } const isSection = !!document.querySelector( `div[data-section-type^="shoplazza://apps/publicapp/blocks/rebate"] #rebate_custom_component` ); if ( (this.rebateInfo.rebate_type == "sku" && data && data.selected && data.selected.id) || this.rebateInfo.rebate_type == "spu" ) { let nowLandpage = this.landPage; if (discount_list[0]) { nowLandpage = this.landPage + discount_list[0].discount_id || ""; } const info = { rebate: discount_list[0], maxShowCount: this.win.innerWidth > 768 ? 3 : 1, landPage: nowLandpage, modalFooterImg: `url(${`${this.win.SHOPLAZZA["image_domain"]}oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg`})`, }; this.renderData = info; if(isSection) { SPZ.whenApiDefined( document.getElementById("app_rebate_section") ).then(apis => { apis.render(info, true); }); } else { // 重新渲染 抖动问题处理 this.templates_ = SPZServices.templatesForDoc(); const newTplDom = await this.templates_.renderTemplate(document.querySelector('#appRebateBlockTpl'), info) const parentDiv = document.querySelector('#app_rebate_block'); const oldDom = parentDiv.querySelector('.app_rebate_list'); if(oldDom){ parentDiv.replaceChild(newTplDom, oldDom); } else { parentDiv.appendChild(newTplDom); } } } this.insertSlideTag(this.rebateInfo.tag, variantChange); var pluginCurrencyEvent = new CustomEvent("plugin_currency_update"); document.dispatchEvent(pluginCurrencyEvent); }).bind(this), 10 ); getRebateInfo = async () => { if (this.initData && this.initData.product && this.initData.product.id) { var variant_ids = this.initData.product.variants.map(variant => variant.id); const res = await this.xhr_.fetchJson( "\/api\/discount-rebate\/product-discount", { method: "POST", body: { product_id: this.initData.product.id, product_type: this.initData.product.product_type, variant_ids: variant_ids, }, } ); if (!SPZCore.Types.isEmptyObject(res.rebate_info)) { res.rebate_info.tag = res.tag; res.rebate_info.rebate_type = res.rebate_type; this.rebateInfo = res.rebate_info; this.initRebate(this.initData); } else { if (this.win.top !== this.win.self) { const noActivity = document.getElementById("no-rebate-activity"); noActivity && (noActivity["style"].display = "block"); } } } }; getVariantDiscountId = (variant_id) => { if (!variant_id || !this.rebateInfo) return []; var rebateId = this.rebateInfo.variant_discount_map[variant_id]; return this.rebateInfo.discount_list.filter(item => item.discount_id == rebateId) || []; }; insertSlideTag = (tag, variantChange) => { setTimeout(() => { if (tag) { var tag_container; var modal = document.getElementById("product-select-modal"); if (modal && modal.classList.contains("show")) { if (!variantChange && modal.querySelector(".slider-discount-tag")) return; if ( variantChange && modal.querySelector(".slider-discount-tag:not(.rebate-tag)") ) return; tag_container = modal; } else { var product_detail_card = document.querySelector( '.page_container > [data-section-type="product_detail"], .page_container > [data-section-type="product-template"]' ); if(!product_detail_card) return; if (!variantChange && product_detail_card.querySelector(".slider-discount-tag")) return; if (variantChange && product_detail_card.querySelector(".slider-discount-tag:not(.rebate-tag)")) return; tag_container = product_detail_card; } if (tag_container.matches("#product-select-modal") && this.pageType === 13 && document.documentElement.clientWidth < 768) return; const tagDom = `<div class="slider-discount-tag dj_skin_product_title rebate-tag">${tag}</div>` if (document.querySelector(".sep-loaded-slider")) { var loadedSlider = tag_container.querySelector(".sep-loaded-slider"); loadedSlider.querySelectorAll(".slider-discount-tag").forEach(function(element) { element.remove(); }); loadedSlider.insertAdjacentHTML("beforeend", tagDom); } else { if (tag_container.querySelector(".support-slick")) { var supportSlick = tag_container.querySelectorAll(".support-slick, .sep-slider"); supportSlick.forEach((element) => { element.querySelectorAll(".slider-discount-tag").forEach((element) => { element.remove(); }); element.insertAdjacentHTML("beforeend",tagDom); }); } else { var sepSlider = tag_container.querySelector(".sep-slider"); sepSlider.querySelectorAll(".slider-discount-tag").forEach(function(element) { element.remove(); }); sepSlider.insertAdjacentHTML("beforeend",tagDom); } } if (document.documentElement.clientWidth < 768) { const sliderDiscountTagHeight = tag_container.querySelector(".slider-discount-tag").offsetHeight || 0; document.querySelector(".product-image__swiper_bullets").style.bottom = `${sliderDiscountTagHeight + 15}px`; } } }, 1000); }; fetchInfoBar = () => { let discount_ids = []; if (this.pageType === 1) { discount_ids = this.rebateInfo && this.rebateInfo.discount_list.map(item => item.discount_id); } else if (this.pageType === 38) { discount_ids = [this.win.rebateObj.rebateCollection_id] || []; } const productObj = this.getProduct(); return this.xhr_.fetchJson("\/api\/discount-rebate\/global-text", { method: "POST", body: { product_type: productObj && productObj.product && productObj.product.product_type, line_items: (this.cart.line_items || []).map(item => ({ variant_id: item.variant_id, product_id: item.product_id, quantity: item.quantity, price: item.price, selected: !item.unchecked, })), discount_ids: discount_ids, }, }); }; renderBottomBanner = res => { if (!res.tips) return; if (document.querySelector(".discount__info-bar")) return; var bar_style = `background:linear-gradient(90deg,${res.config.background_color_start},${res.config.background_color_end}); color:${res.config.color};`; let data = { tips: res.tips, landPage: this.landPage + res.id, bar_style }; const html = SPZCore.Dom.htmlFor(this.element); const banner = html([ `<a impr="1" imprevt="1" id="rebate_bottom_bar" href=${data.landPage} class="discount__info-bar text-truncate" data-activity-type="rebate" style="${data.bar_style}">${data.tips}</a>`, ]); document.querySelector(".plugin-container__bottom-fixed").appendChild(banner); const pluginCurrencyEvent = new CustomEvent("plugin_currency_update"); document.dispatchEvent(pluginCurrencyEvent); if (res.id) { var trackParams = { page: this.pageType, discount_id: res.id, product_id: this.getProduct()?.product.id, }; banner.addEventListener("click", () => { this.win.sa && this.win.sa.track("plugin_rebate_promotion_click", { plugin_timestamp: Date.now(), plugin_location: "bottom_bar", product_id: trackParams.product_id, discount_id: trackParams.discount_id, }); }); this.win.sa && this.win.sa.track("plugin_rebate_banner_pv", trackParams); } }; showDiscountPopupsInfoBar = () => { if ([13, 14, 19, 30, 31].includes(this.pageType)) return; if (document.querySelector(".plugin-container__bottom-fixed .discount__info-bar")) return; this.fetchInfoBar().then(this.renderBottomBanner); document.addEventListener("dj.cartChange", () => { this.fetchInfoBar().then(this.renderBottomBanner); }); }; } SPZ.defineElement("spz-custom-rebate", SpzRebateComponent);
material
Please select a material
Choose Packaging
Quantity