Carrinho de compras





(function () { var MIN_ORDER_VALUE = 35; var SHIPPING_COUNTRY_ISO_CODE = "IT"; var CHECKOUT_BUTTON_SELECTOR = ".backet-checkout-btn"; var TRANSLATIONS = { de: { locale: "de-DE", text: function (min, missing) { return "Mindestbestellwert " + min + ". Es fehlen noch " + missing + ", um die Bestellung abschließen zu können."; } }, it: { locale: "it-IT", text: function (min, missing) { return "Ordine minimo " + min + ". Ti mancano ancora " + missing + " per poter procedere all'ordine."; } }, en: { locale: "en-GB", text: function (min, missing) { return "Minimum order value " + min + ". You still need " + missing + " more to complete your order."; } }, fr: { locale: "fr-FR", text: function (min, missing) { return "Montant minimum de commande " + min + ". Il vous manque " + missing + " pour finaliser votre commande."; } }, nl: { locale: "nl-NL", text: function (min, missing) { return "Minimale bestelwaarde " + min + ". Je hebt nog " + missing + " nodig om je bestelling af te ronden."; } }, pt: { locale: "pt-PT", text: function (min, missing) { return "Valor mínimo de encomenda " + min + ". Falta ainda " + missing + " para poder finalizar a encomenda."; } } }; function getTranslation() { var lang = (document.documentElement.lang || "en").toLowerCase().substring(0, 2); return TRANSLATIONS[lang] || TRANSLATIONS.en; } function formatCurrency(value, currency, locale) { try { return new Intl.NumberFormat(locale, { style: "currency", currency: currency || "EUR" }).format(value); } catch (e) { return value.toFixed(2) + " €"; } } function isTargetShippingCountry(basketData) { if (!basketData || !basketData.shippingCountryId) { return false; } var localization = window.ceresStore.state.localization; var countries = localization.shippingCountries.concat(localization.euShippingCountries || []); var country = countries.find(function (c) { return c.id === basketData.shippingCountryId; }); return !!(country && country.isoCode2 && country.isoCode2.toUpperCase() === SHIPPING_COUNTRY_ISO_CODE); } function toggleCheckoutButton(hide) { var buttons = document.querySelectorAll(CHECKOUT_BUTTON_SELECTOR); buttons.forEach(function (button) { button.style.display = hide ? "none" : ""; }); } function updateHint(basketData) { var container = document.getElementById("min-order-hint"); var textEl = container ? container.querySelector(".min-order-hint__text") : null; if (!container || !textEl || !basketData) { if (container) container.style.display = "none"; toggleCheckoutButton(false); return; } var showNet = window.ceresStore.state.basket.showNetPrices; var currentValue = showNet ? basketData.basketAmountNet : basketData.basketAmount; if (typeof currentValue !== "number" || !isTargetShippingCountry(basketData)) { container.style.display = "none"; toggleCheckoutButton(false); return; } var belowMinOrder = currentValue < MIN_ORDER_VALUE; if (belowMinOrder) { var translation = getTranslation(); var missing = MIN_ORDER_VALUE - currentValue; textEl.textContent = translation.text( formatCurrency(MIN_ORDER_VALUE, basketData.currency, translation.locale), formatCurrency(missing, basketData.currency, translation.locale) ); container.style.display = "flex"; } else { container.style.display = "none"; } toggleCheckoutButton(belowMinOrder); } function waitForStore(callback, attemptsLeft) { if (window.ceresStore) { callback(window.ceresStore); return; } if (attemptsLeft <= 0) { return; } setTimeout(function () { waitForStore(callback, attemptsLeft - 1); }, 100); } waitForStore(function (store) { store.watch( function (state) { return state.basket.data; }, function (basketData) { updateHint(basketData); }, { immediate: true } ); }, 100); })();