Ignorer et passer au contenu
-40 %
Black Friday
Acheter maintenant
Menu
Accueil
Bracelet HiShape
Contact
Suivre ma commande
Connexion
Accueil
Bracelet HiShape
Contact
Suivre ma commande
Recherche
Connexion
Panier
Votre panier est vide
Continuer les achats
Vous possédez un compte ?
Connectez-vous
pour payer plus vite.
Cart • 0 items
Cart reserved for
Chargement en cours...
tmp code
<style> #bf26-bar{background:#111;color:#fff;text-align:center;font:600 13px/1.4 Arial,Helvetica,sans-serif;padding:9px 12px;letter-spacing:.3px} #bf26-bar a{color:#d4b25c;text-decoration:underline} #bf26-bar b{color:#d4b25c} .bf26-tix{background:#111;color:#fff;border:1px solid #d4b25c;border-radius:6px;padding:10px 12px;margin:10px 0;font:14px/1.4 Arial,Helvetica,sans-serif;text-align:center} .bf26-tix b{color:#d4b25c} #bf26-slot{display:none} .bf26-mb{flex-basis:100%;width:100%;text-align:center;margin-top:5px} .bf26-mb span{display:inline-block;background:#111;color:#d4b25c;font:700 10px/1.2 Arial,Helvetica,sans-serif;padding:3px 8px;border-radius:20px;white-space:nowrap} </style> <div id="bf26-slot"></div> <script> (function(){ var p = location.pathname; if (p.indexOf('/pages/') === 0) return; var t = Date.now(); var q = location.search; if (q.indexOf('bf26=vip') > -1) t = Date.parse('2026-11-25T10:00:00Z'); if (q.indexOf('bf26=public') > -1) t = Date.parse('2026-11-27T10:00:00Z'); var VIP = Date.parse('2026-11-25T08:00:00Z'); var PUB = Date.parse('2026-11-26T17:00:00Z'); var END = Date.parse('2026-11-30T22:59:59Z'); var TICKET = 68242165891376; var live = t <= END; var SUB = '/pages/liste-vip'; function bar(){ if (t > END || document.getElementById('bf26-bar')) return; var html; if (t < VIP) html = '🎟️ Ticket d’Or offert avec chaque bracelet : des AirPods à gagner · <a href="' + SUB + '">Devenez VIP : -15 % + 2 tickets</a>'; else if (t < PUB) html = '<b>ACCÈS VIP OUVERT</b> · 1 acheté = 1 offert + -15 % avec <b>VIPBLACK15</b> · 🎧 AirPods à gagner'; else html = '<b>BLACK FRIDAY</b> · 1 acheté = 1 offert + -10 % avec <b>BLACK10</b> · 🎧 AirPods à gagner'; var slot = document.getElementById('bf26-slot'); if (!slot) return; slot.id = 'bf26-bar'; slot.innerHTML = html; if (t >= VIP) document.querySelectorAll('.shopify-section-group-header-group[id*="announcement"], [id*="custom_liquid_xUQFB4"]').forEach(function(s){ s.style.display = 'none'; }); } function isBracelet(i){ if (i.variant_id === TICKET) return false; var n = (i.product_title || '') + ' ' + (i.handle || ''); return /hishape/i.test(n) && !/socle|bague|guide|protection|ticket/i.test(n); } function productBox(){ if (!live) return; document.querySelectorAll('.moonbundle-option-details').forEach(function(d){ if (d.querySelector('.bf26-mb')) return; var tt = (d.querySelector('.moonbundle-option-title') || {}).textContent || ''; var n = /offert/i.test(tt) ? 2 : 1; var x = document.createElement('div'); x.className = 'bf26-mb'; x.innerHTML = '<span>🎟️ ' + n + ' Ticket' + (n > 1 ? 's' : '') + ' d’Or</span>'; d.appendChild(x); }); } var F = window.fetch.bind(window); function post(url, body){ return F(url, {method: 'POST', credentials: 'same-origin', headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}, body: JSON.stringify(body)}).then(function(r){ return r.json(); }); } function rerender(){ if (p.indexOf('/cart') === 0) { var k2 = 0; try { k2 = +sessionStorage.getItem('bf26r') || 0; sessionStorage.setItem('bf26r', k2 + 1); } catch(e) { k2 = 9; } if (k2 < 3) location.reload(); return Promise.resolve(); } return F('/?sections=cart-drawer,cart-icon-bubble', {credentials: 'same-origin'}).then(function(r){ return r.json(); }).then(function(s){ var cd = document.querySelector('cart-drawer'); if (cd && s['cart-drawer']) { var n = new DOMParser().parseFromString(s['cart-drawer'], 'text/html').querySelector('cart-drawer'); if (n) { cd.innerHTML = n.innerHTML; cd.classList.remove('is-empty'); } } var b = document.getElementById('cart-icon-bubble'); if (b && s['cart-icon-bubble']) { var nb = new DOMParser().parseFromString(s['cart-icon-bubble'], 'text/html').querySelector('.shopify-section'); if (nb) b.innerHTML = nb.innerHTML; } }).catch(function(){}); } var busy = false, tries = 0; function cartBox(){ if (busy) return; busy = true; F('/cart.js', {credentials: 'same-origin', cache: 'no-store'}).then(function(r){ return r.json(); }).then(function(c){ var n = 0, have = 0, keys = []; (c.items || []).forEach(function(i){ if (i.variant_id === TICKET) { have += i.quantity; keys.push(i.key); } else if (isBracelet(i)) n += i.quantity; }); if (window.bf26last !== n) { tries = 0; window.bf26last = n; } var vip = JSON.stringify(c).toUpperCase().indexOf('VIPBLACK15') > -1; var want = live ? n * (vip ? 2 : 1) : 0; if ((want !== have || keys.length > 1) && tries < 3) { tries++; var job; if (keys.length) { var u = {}; keys.forEach(function(k, j){ u[k] = j === 0 ? want : 0; }); job = post('/cart/update.js', {updates: u}); } else job = post('/cart/add.js', {items: [{id: TICKET, quantity: want}]}); return job.then(function(r){ if (r && r.status) throw r; return rerender(); }).then(function(){ busy = false; setTimeout(cartBox, 600); }); } try { sessionStorage.removeItem('bf26r'); } catch(e) {} var cbs = window.bf26cbs || []; window.bf26cbs = []; cbs.forEach(function(f){ f(); }); if (live) { var html = n ? '🎟️ Ce panier vous donne <b>' + want + ' Ticket' + (want > 1 ? 's' : '') + ' d’Or</b> pour gagner les AirPods' + (vip ? ' (bonus VIP x2)' : '') + '.' : '🎟️ Chaque bracelet ajouté = <b>1 Ticket d’Or</b> pour gagner les AirPods.'; document.querySelectorAll('cart-drawer .drawer__footer, .cart__footer, #main-cart-footer').forEach(function(s){ var b = s.querySelector('.bf26-cart'); if (!b) { b = document.createElement('div'); b.className = 'bf26-tix bf26-cart'; s.insertBefore(b, s.firstChild); } if (b.innerHTML !== html) b.innerHTML = html; }); } busy = false; }).catch(function(){ busy = false; }); } var timer; function refreshCart(){ clearTimeout(timer); timer = setTimeout(function(){ if (busy) refreshCart(); else cartBox(); }, 500); } function watch(){} var CART = /\/cart\/(add|change|update|clear)/; window.fetch = function(u){ var url = ''; try { url = String((u && u.url) || u || ''); } catch(e) {} var pr = F.apply(window, arguments); if (CART.test(url)) pr.then(function(){ refreshCart(); }, function(){}); return pr; }; var xo = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(m, url){ if (CART.test(String(url))) this.addEventListener('load', refreshCart); return xo.apply(this, arguments); }; window.addEventListener('pageshow', refreshCart); document.addEventListener('visibilitychange', function(){ if (!document.hidden) refreshCart(); }); document.addEventListener('click', function(e){ var b = e.target.closest && e.target.closest('[name="checkout"], a[href*="/checkout"], button[onclick*="checkout"], .cart__checkout-button'); if (!b || window.bf26go) return; e.preventDefault(); e.stopPropagation(); var go = function(){ if (window.bf26go) return; window.bf26go = 1; location.href = '/checkout'; }; window.bf26cbs = (window.bf26cbs || []).concat([go]); tries = 0; window.bf26last = -1; if (busy) refreshCart(); else cartBox(); setTimeout(go, 4000); }, true); setInterval(function(){ var cd = document.querySelector('cart-drawer'); if (!document.hidden && (p.indexOf('/cart') === 0 || (cd && (cd.classList.contains('active') || cd.hasAttribute('open'))))) refreshCart(); }, 3000); function init(){ bar(); productBox(); cartBox(); watch(); setInterval(productBox, 1500); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); window.addEventListener('load', function(){ productBox(); cartBox(); }); })(); </script>
Le choix d'une sélection entraîne l'actualisation de la page entière.
S'ouvre dans une nouvelle fenêtre.