Fabrication française Livraison rapide Fabriqué à la commande 38 000+ clients satisfaits (4,8/5) Découvrir
Fabrication française Livraison rapide Fabriqué à la commande 38 000+ clients satisfaits (4,8/5) Découvrir

Actu Foot & Produits

(() => { // é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)); })();