💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
1/20
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁
1/20

💖Last Day 50% OFF-2023 Crystal Stone Holder Necklace - Free (Crystal) Gift Included🎁

$24.99
$49.99
Save $25.00
Color of Stone
Please select a color of stone
Color of Chain
Please select a color of chain
Quantity
💎Each of the Crystal Stone represents a physical, emotional or mental state, helping to enrich one's spirit and well-being.
 
💜Amethyst: Power, Protection, Wisdom.
💛Citrine: Joy, Success, Self-confidence
🤎Tiger Eye: Power, Courage, Protection
🧡Rose Quartz: Kindness, Unconditional Love
💚Emerald: Loyalty, Serenity, Harmony
💙Sapphire: Clarity, Truth, Confidence
❤️Carnelian: Confidence, Love, Vitality
🤍Moonstone: Balance, New Beginnings
🖤Black Onyx: Strength, Energy, Protection
 
undefined

🧙‍♀️Healing Crystal Necklace: This sleek mesh holder keeps your precious gems secure and accessible, allowing you to embrace their energy wherever you wander. Change your crystals every day depending on your mood.

undefined

🧙‍♀️Exquisite Craftsmanship: Sturdy stainless cage, tightly fixed, not easy to break and fall off, and can be worn for a long time to promote beauty, health and good luck

undefined

🧙‍♂️Perfect Gift: Our crystals and healing stones necklace is an ideal gift choice during Christmas Day, Anniversary Day, Valentine's Day, Mother's Day, Father's Day and Birthday to your loved one.

undefined

🧙‍♂️Place Your Own Crystal Stone: Have lots of crystastones? This Empty Crystal Stone Holder is Interchangeable so you can push the knot above the crystastone and place different ones similar to their size.

undefined

undefined

DETAILS

  • Handmade item
  • Nickel-free and Hypoallergenic
  • Material: Titanium Steel
  • Length of Chain: 23.62''+1.96''/60+5cm
  • Weight: Chain (10.8g), Crystal Stone (15~25g)

undefined

Notes

  • Please allow slight measurement deviation due to manual measurement.
  • Due to the different monitor and light effects, the actual color of the item might be slightly different from the color shown in the pictures.

⚡️The stock sells fast, click on "ADD TO CART" to get yours now!

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