Utilisez les flèches gauche/droite pour naviguer dans le diaporama ou glissez vers la gauche/droite sur un appareil mobile
Le choix d'une sélection entraîne l'actualisation d'une page entière.
Appuyez sur la touche espace puis sur les touches fléchées pour faire une sélection.
 
 
Au moins un article de votre panier constitue un achat récurrent ou différé. En continuant, j’accepte la politique de résiliation et vous autorise à facturer mon moyen de paiement aux prix, fréquences et dates listées sur cette page jusqu’à ce que ma commande soit traitée ou que je l’annule, si autorisé.
(() => {
// évite les doubles initialisations
if (window.__NAO_AJAX_BOUND) return;
window.__NAO_AJAX_BOUND = true;
// ouvre le drawer de façon robuste
function openDrawer(){
try { document.dispatchEvent(new CustomEvent('cart:refresh')); } catch(e){}
try { document.dispatchEvent(new CustomEvent('cart:open')); } catch(e){}
try { if (window.NAO_CART && typeof NAO_CART.open === 'function') NAO_CART.open(); } catch(e){}
try { if (window.CartDrawer && typeof CartDrawer.open === 'function') CartDrawer.open(); } catch(e){}
const d = document.getElementById('CartDrawer');
if (d) { d.classList.remove('hidden'); d.setAttribute('aria-hidden','false'); }
}
function bindAjaxAddToCart(root=document){
// on capte à la fois les forms natifs et ceux avec data-product-form
const forms = Array.from(root.querySelectorAll('form[action^="/cart/add"], form[data-product-form]'));
forms.forEach(form=>{
if (form.__naoAjaxBound) return;
form.__naoAjaxBound = true;
form.addEventListener('submit', (ev)=>{
// laisser le bouton checkout dynamique fonctionner si cliqué
const submitter = ev.submitter || document.activeElement;
if (submitter && submitter.name === 'checkout') return;
ev.preventDefault();
const btn = form.querySelector('[data-add-to-cart], [type="submit"]');
if (btn){ btn.disabled = true; btn.setAttribute('aria-busy','true'); }
const fd = new FormData(form);
// s’assure d’avoir un variant id correct
if (!fd.get('id')) {
const idInput = form.querySelector('select[name="id"], input[name="id"]');
if (idInput) fd.set('id', idInput.value);
}
if (!fd.get('quantity')) fd.set('quantity','1');
fetch('/cart/add.js', {
method: 'POST',
headers: { 'Accept': 'application/json' },
body: fd
})
.then(r => r.ok ? r.json()
: r.json().then(j => Promise.reject({status:r.status, body:j})))
.then(() => openDrawer())
.catch(err => {
console.error('Add to cart error:', err);
alert("Impossible d'ajouter au panier. Vérifie la variante/les options.");
})
.finally(() => {
if (btn){ btn.disabled = false; btn.removeAttribute('aria-busy'); }
});
});
});
}
document.addEventListener('DOMContentLoaded', () => bindAjaxAddToCart(document));
document.addEventListener('shopify:section:load', (e) => bindAjaxAddToCart(e.target));
})();