MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet
MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet

MINI Boutique Magic 2-in-1 Folding Retractable Ring Bracelet Telescopic Rings Change Bracelets Engagement Wedding Ring Dual-use Bracelet

Price

$25.80 $15.97
Save $9.83

color

Please select a color

Quantity

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

.

Handling time>>  Priority is given to delivery after payment.
😊Returns>>If your items arrive damaged within 15 days of normal usage, we will gladly issue out a replacement or refund.
🚢Shipping>>We'll arrange the fastest shipping for you. Free Shipping On Orders Over $49.99
🏆After Sales Service>>If you are not satisfied with the goods received, please contact us within 15 days after receipt, we will give you the best help! Please don't worry!

❤As a gift for your LOVER,this Magic 2-in-1 Folding Retractable Ring will be the perfect!

  • This is an ornament that can be turned into a ring from the bracelet. He can stretch to bracelet. When folded back, he is a very beautiful ring.

Highlights

  • Small and lightweight - Wear or carry it around with you for a variety of earring options wherever you go. 

  • Wide application - Suitable for both everyday use and special occasions like parties, clubbing, weddings, and more. 
  • Perfect gift idea - Great gift to give for all ladies like mothers, grandmothers, aunts, cousins, girlfriends, and more. 

Specifications

  • Material: alloy
  • Color: color
  • Length: 0.78''-2.75''
  • Weight: 7.5g
Remember to buy some for your friends. It's the unique gift idea!

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

SHIPPING & DELIVERY

All orders are carefully packaged, prepared and shipped out as fast as possible. We offer  worldwide shipping and the typical delivery time frame is between 7-20 business days. For more exact shipping times please consult our Shipping Policy, because certain locations have much faster shipping than the typical delivery time frame. Once your order is shipped you will receive a tracking number so you know where it is all the time!

  • The customer order will be sent out after 48hrs after placing the order.

  • Tip: Buying 2 products or more at the same time will save you quite a lot on shipping fees.

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