Gå til hovedinnhold
Fri Frakt Når du Handler for over 600 kr - Sendes Fra Lager i Norge
Meny
Startside
Butikk
Om Shilajit
Kontakt oss
Artikler
(function () { "use strict"; // ====== CONFIG (gift tiers) ====== // Stacking is ON: at 2500 kr the customer gets all lower-tier gifts too. var rewards = [ { amount: 600, giftProductId: null, name: "Fri Frakt" }, { amount: 800, giftProductId: 782350509, name: "gratis 30 gram resin" }, { amount: 1500, giftProductId: 782352768, name: "gratis Shilajit Tabletter" }, { amount: 2500, giftProductId: 782352770, name: "gratis 100 gram resin" } ]; var maxAmount = rewards[rewards.length - 1].amount; // ====== inject styles (no HTML pasted) ====== function injectStylesOnce() { if (document.getElementById("free-gift-bar-styles")) return; var s = document.createElement("style"); s.id = "free-gift-bar-styles"; s.appendChild(document.createTextNode( "#free-gift-bar{position:sticky;top:0;z-index:9999;background:#f7f7f7;border-bottom:1px solid #e5e5e5}" + "#free-gift-bar .wrap{max-width:1100px;margin:0 auto;padding:10px 16px;font:600 14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}" + "#free-gift-bar .track{width:100%;height:8px;background:#e9e9e9;border-radius:999px;overflow:hidden;margin-top:6px}" + "#free-gift-bar .fill{height:100%;width:0%;background:#2ecc71;transition:width .25s ease}" )); document.head.appendChild(s); } // ====== build the bar (no innerHTML with tags) ====== function ensureBar() { if (document.getElementById("free-gift-bar")) return; var bar = document.createElement("div"); bar.id = "free-gift-bar"; bar.setAttribute("role", "status"); bar.setAttribute("aria-live", "polite"); bar.style.display = "none"; var wrap = document.createElement("div"); wrap.className = "wrap"; var msg = document.createElement("span"); msg.id = "gift-msg"; msg.textContent = "Legg varer i handlekurven for å se fordeler."; var track = document.createElement("div"); track.className = "track"; var fill = document.createElement("div"); fill.className = "fill"; track.appendChild(fill); wrap.appendChild(msg); wrap.appendChild(track); bar.appendChild(wrap); document.body.insertBefore(bar, document.body.firstChild); } // ====== helpers ====== function fmt(amount) { try { return Ecwid.formatCurrency(amount); } catch (e) { return (Number(amount) || 0).toFixed(2) + " kr"; } } function showBar() { var b = document.getElementById("free-gift-bar"); if (b && b.style.display === "none") b.style.display = "block"; } function findGiftIndex(cart, productId) { if (!cart || !cart.items) return -1; for (var i = 0; i < cart.items.length; i++) { var it = cart.items[i]; if (it && it.product && it.product.id === productId) return i; } return -1; } // avoid double add/remove var processingGift = {}; function syncGifts(cart) { var subtotal = Number((cart && cart.subtotal) || 0); rewards.forEach(function (r) { if (!r.giftProductId) return; // skip non-gift tiers var qualifies = subtotal >= r.amount; var idx = findGiftIndex(cart, r.giftProductId); if (qualifies && idx === -1 && !processingGift[r.giftProductId]) { processingGift[r.giftProductId] = true; Ecwid.Cart.addProduct({ id: r.giftProductId, quantity: 1 }, function () { processingGift[r.giftProductId] = false; }); } else if (!qualifies && idx > -1 && !processingGift[r.giftProductId]) { processingGift[r.giftProductId] = true; Ecwid.Cart.removeProduct(idx, function () { processingGift[r.giftProductId] = false; }); } }); } function updateBar(cart) { injectStylesOnce(); ensureBar(); showBar(); var subtotal = Number((cart && cart.subtotal) || 0); var pct = Math.max(0, Math.min(1, subtotal / maxAmount)) * 100; var fill = document.querySelector("#free-gift-bar .fill"); if (fill) fill.style.width = pct + "%";