Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace
Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace

Last Day Promotion 70% Sale🌹 Heart Shaped Four Leaf Clover Necklace

Price

$49.90 $19.95
Save $29.95

color

Please select a color

pack

Please select a pack

Quantity

Global Provision of Services
Free Shipping Over $59.99
Sustainable Manufacturing
PayPal & Credit Card Payment

It's a perfect gift for your girl in NEW YEAR🎊 and ANY other OCCASIONS! (Birthday, anniversary...)
Especially for the next coming Valentine's Day!!!

To Love & Friendship! Make Her Day More Special Here!

Rose Box:

Six Eternal Roses Jewelry Box:

Features:

🍀"Four leaf"clovers, each leaf means something different: the four leaves represent faith, love, hope and luck.

  • 💕 One necklace with two way of wearing:This necklace has two design in one necklace,open with 4 heart,but closing is a four-leaf clover,perfect pendant necklace for lady who has difficulty choosing.
  • 💕Perfect Size:Total size:18 inches. White gold/silver color,classic design suitable for women of all ages,look elegant and expensive and give you appearance of royalty.

  • 🎁Beautiful Rose Jewelry Box:This design is Sleek and Modern yet Classic and Elegant Style. fit for any occasion as daily wear the Pendant at home and office. Carefully packed in beautiful jewelry box. Absolutely a great gift to express your love for your mother, girlfriend, fiancee, wife, valentine, family or just a friend,etc. Great gifts on Mother 's Day , Wedding , Anniversary day ,Valentine's Day or Christmas Day.

Only rose gift box👇👇

  • 💝Loving Memory: Maybe one day we are all old, but I still remember the first time you catch my eyes.

满意的礼物

Specifications:

Item Type: Jewelry Packaging & Display

Jewelry Packaging & Display Type: Gift Boxes

Item Weight: 200g(box)

Material Necklace: Titanium steel

Material Box:Rubber embryo bag filling leather paper

Package list:

1*Four Leaf Heart Shape Necklace

1*Gift Box(Depending on your choice)

Notice:

Please allow 0.5-1cm error due to manual measurement.
Please bear in mind that the photo may vary slightly from the actual item in terms of color due to the lighting during photo shooting or the monitor's display.

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