Offre spéciale : livraison gratuite, paiement à la livraison, plus rapide et vous pouvez commander dès maintenant !

Offre spéciale : livraison gratuite et paiement à réception

Dépêchez-vous et commandez dès maintenant !

slider-image slider-image
slider-image slider-image

Remises incroyables

Des produits de qualité

(function () { const WILAYAS = [ { code: "01", nom: "Adrar", domicile: 1500, stopDesk: 1000 }, { code: "02", nom: "Chlef", domicile: 800, stopDesk: 500 }, { code: "03", nom: "Laghouat", domicile: 1000, stopDesk: 600 }, { code: "04", nom: "Oum El Bouaghi", domicile: 800, stopDesk: 500 }, { code: "05", nom: "Batna", domicile: 800, stopDesk: 500 }, { code: "06", nom: "Bejaia", domicile: 800, stopDesk: 500 }, { code: "07", nom: "Biskra", domicile: 1000, stopDesk: 600 }, { code: "08", nom: "Bechar", domicile: 1200, stopDesk: 800 }, { code: "09", nom: "Blida", domicile: 600, stopDesk: 400 }, { code: "10", nom: "Bouira", domicile: 700, stopDesk: 450 }, { code: "11", nom: "Tamanrasset", domicile: 2000, stopDesk: 1500 }, { code: "12", nom: "Tebessa", domicile: 900, stopDesk: 600 }, { code: "13", nom: "Tlemcen", domicile: 800, stopDesk: 500 }, { code: "14", nom: "Tiaret", domicile: 900, stopDesk: 600 }, { code: "15", nom: "Tizi Ouzou", domicile: 700, stopDesk: 450 }, { code: "16", nom: "Alger", domicile: 600, stopDesk: 400 }, { code: "17", nom: "Djelfa", domicile: 1000, stopDesk: 600 }, { code: "18", nom: "Jijel", domicile: 800, stopDesk: 500 }, { code: "19", nom: "Setif", domicile: 800, stopDesk: 500 }, { code: "20", nom: "Saida", domicile: 900, stopDesk: 600 }, { code: "21", nom: "Skikda", domicile: 800, stopDesk: 500 }, { code: "22", nom: "Sidi Bel Abbes", domicile: 800, stopDesk: 500 }, { code: "23", nom: "Annaba", domicile: 800, stopDesk: 500 }, { code: "24", nom: "Guelma", domicile: 900, stopDesk: 600 }, { code: "25", nom: "Constantine", domicile: 800, stopDesk: 500 }, { code: "26", nom: "Medea", domicile: 700, stopDesk: 450 }, { code: "27", nom: "Mostaganem", domicile: 800, stopDesk: 500 }, { code: "28", nom: "MSila", domicile: 800, stopDesk: 500 }, { code: "29", nom: "Mascara", domicile: 800, stopDesk: 500 }, { code: "30", nom: "Ouargla", domicile: 1100, stopDesk: 700 }, { code: "31", nom: "Oran", domicile: 800, stopDesk: 500 }, { code: "32", nom: "El Bayadh", domicile: 1200, stopDesk: 800 }, { code: "33", nom: "Illizi", domicile: 1900, stopDesk: 1500 }, { code: "34", nom: "Bordj Bou Arreridj", domicile: 800, stopDesk: 500 }, { code: "35", nom: "Boumerdes", domicile: 500, stopDesk: 300 }, { code: "36", nom: "El Tarf", domicile: 900, stopDesk: 600 }, { code: "37", nom: "Tindouf", domicile: 1700, stopDesk: 1000 }, { code: "38", nom: "Tissemsilt", domicile: 800, stopDesk: 500 }, { code: "39", nom: "El Oued", domicile: 1100, stopDesk: 700 }, { code: "40", nom: "Khenchela", domicile: 900, stopDesk: 600 }, { code: "41", nom: "Souk Ahras", domicile: 900, stopDesk: 600 }, { code: "42", nom: "Tipaza", domicile: 600, stopDesk: 400 }, { code: "43", nom: "Mila", domicile: 800, stopDesk: 500 }, { code: "44", nom: "Ain Defla", domicile: 800, stopDesk: 500 }, { code: "46", nom: "Ain Temouchent", domicile: 800, stopDesk: 500 }, { code: "47", nom: "Ghardaia", domicile: 1100, stopDesk: 700 }, { code: "48", nom: "Relizane", domicile: 800, stopDesk: 500 }, { code: "49", nom: "Timimoun", domicile: 1500, stopDesk: 1000 }, { code: "51", nom: "Ouled Djellal", domicile: 1000, stopDesk: 600 }, { code: "52", nom: "Beni Abbes", domicile: 1200, stopDesk: 800 }, { code: "53", nom: "In Salah", domicile: 1800, stopDesk: 1200 }, { code: "55", nom: "Touggourt", domicile: 1100, stopDesk: 700 }, { code: "56", nom: "Djanet", domicile: 2200, stopDesk: 1600 }, { code: "57", nom: "El MGhair", domicile: 1100, stopDesk: 700 }, { code: "58", nom: "El Meniaa", domicile: 1100, stopDesk: 800 } ]; const WILAYA_SEL = '[name="address[state]"], #address_province, [name="province"]'; const SHIP_SEL = '.shipping-price, [data-shipping-price]'; const TOTAL_SEL = '.payment-due__price, [data-checkout-total-price], .total-line--total .price'; let selectedWilaya = null; let selectedMethod = "domicile"; let baseTotal = null; const fmt = (n) => n.toLocaleString("fr-DZ") + " DA"; function buildSelect(original) { const sel = document.createElement("select"); sel.id = "yc-wilaya-select"; sel.name = original.name || "address[state]"; sel.style.cssText = "width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:4px;font-size:14px;background:#fff;color:#333;cursor:pointer;box-sizing:border-box;"; const ph = document.createElement("option"); ph.value = ""; ph.disabled = true; ph.selected = true; ph.textContent = "Selectionnez votre wilaya"; sel.appendChild(ph); WILAYAS.forEach((w) => { const o = document.createElement("option"); o.value = w.nom; o.textContent = w.code + " - " + w.nom; sel.appendChild(o); }); sel.addEventListener("change", function () { selectedWilaya = WILAYAS.find((w) => w.nom === this.value) || null; updateDisplay(); }); return sel; } function makeLabel(radioVal, isActive) { const lbl = document.createElement("label"); lbl.id = isActive ? "yc-label-domicile" : "yc-label-stopdesk"; lbl.style.cssText = "display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:5px;cursor:pointer;margin-bottom:8px;" + (isActive ? "border:2px solid #2563eb;background:#eff6ff;" : "border:1.5px solid #d1d5db;background:#fff;"); const radio = document.createElement("input"); radio.type = "radio"; radio.name = "yc_delivery"; radio.value = radioVal; radio.checked = isActive; radio.style.cssText = "width:16px;height:16px;accent-color:#2563eb;cursor:pointer;flex-shrink:0;"; const txt = document.createElement("span"); txt.style.cssText = "flex:1;font-size:14px;font-weight:500;color:" + (isActive ? "#1e40af" : "#374151") + ";"; txt.textContent = isActive ? "Livraison a domicile" : "Livraison au bureau Stop Desk"; const prix = document.createElement("span"); prix.id = isActive ? "yc-prix-domicile" : "yc-prix-stopdesk"; prix.style.cssText = "font-weight:600;font-size:14px;color:" + (isActive ? "#1e40af" : "#374151") + ";"; prix.textContent = "---"; lbl.appendChild(radio); lbl.appendChild(txt); lbl.appendChild(prix); return lbl; } function refreshStyles() { const lD = document.getElementById("yc-label-domicile"); const lS = document.getElementById("yc-label-stopdesk"); if (!lD || !lS) return; if (selectedMethod === "domicile") { lD.style.border = "2px solid #2563eb"; lD.style.background = "#eff6ff"; lS.style.border = "1.5px solid #d1d5db"; lS.style.background = "#fff"; } else { lS.style.border = "2px solid #2563eb"; lS.style.background = "#eff6ff"; lD.style.border = "1.5px solid #d1d5db"; lD.style.background = "#fff"; } } function updateDisplay() { const elD = document.getElementById("yc-prix-domicile"); const elS = document.getElementById("yc-prix-stopdesk"); if (!selectedWilaya) return; const frais = selectedMethod === "domicile" ? selectedWilaya.domicile : selectedWilaya.stopDesk; if (elD) elD.textContent = fmt(selectedWilaya.domicile); if (elS) elS.textContent = fmt(selectedWilaya.stopDesk); const shipEl = document.querySelector(SHIP_SEL); if (shipEl) shipEl.textContent = fmt(frais); if (baseTotal !== null) { const totEl = document.querySelector(TOTAL_SEL); if (totEl) totEl.textContent = fmt(baseTotal + frais); } } function injectAll() { if (document.getElementById("yc-wilaya-select")) return; const orig = document.querySelector(WILAYA_SEL); if (!orig) return; const sel = buildSelect(orig); orig.style.display = "none"; orig.parentNode.insertBefore(sel, orig); const totEl = document.querySelector(TOTAL_SEL); if (totEl && baseTotal === null) { const n = parseInt(totEl.textContent.replace(/[^\d]/g, ""), 10); if (!isNaN(n) && n > 0) baseTotal = n; } if (document.getElementById("yc-delivery-methods")) return; const wrap = document.createElement("div"); wrap.id = "yc-delivery-methods"; wrap.style.cssText = "margin:16px 0;padding:14px 16px;border:1px solid #e0e0e0;border-radius:6px;background:#fafafa;"; const titre = document.createElement("p"); titre.style.cssText = "margin:0 0 10px;font-weight:600;font-size:14px;color:#333;"; titre.textContent = "Methode de livraison"; wrap.appendChild(titre); wrap.appendChild(makeLabel("domicile", true)); wrap.appendChild(makeLabel("stopDesk", false)); const sibling = sel.nextSibling; sibling ? sel.parentNode.insertBefore(wrap, sibling) : sel.parentNode.appendChild(wrap); wrap.querySelectorAll("input[type=radio]").forEach((r) => { r.addEventListener("change", function () { selectedMethod = this.value; refreshStyles(); updateDisplay(); }); }); } const obs = new MutationObserver(injectAll); obs.observe(document.body, { childList: true, subtree: true }); injectAll(); }());