<!-- Добавить выбор подарка в корзине от определенной суммы
Веб-студия Александры Шеиной – https://sheina-studio.ru/ -->
<!-- ===== ИНФРМАЦИЯ =====
❗️ ВАЖНО: Чтобы код работал на вашем сайте проверьте, что у вас включен jQuery в настройках сайта.
Настройки сайта ⟶ Вкладка Вставка кода ⟶ Ставим галочку у " Подключить jQuery на страницах сайта «
1️⃣ ДОБАВЛЯЕМ БЛОК КОРЗИНЫ (ST100)
В корзине добавляем поле «Промокод».
2️⃣ НИЖЕ ВСТАВЛЯЕМ КОД
В коде найдите:
const PROMO_MIN_SUM = 9000;
и замените 9000 на сумму, от которой покупателю будет доступна активация промокода.
❗️ ВАЖНО: если сумма корзины меньше указанной — поле промокода неактивно. При сумме, равной или больше указанной, промокод можно ввести и активировать. -->
<script>
(function () {
// ❗️ МЕНЯТЬ СУММУ ЗДЕСЬ
const PROMO_MIN_SUM = 12000;
function parsePrice(text) {
if (!text) return 0;
const normalized = text
.replace(/\s|\u00A0/g, '')
.replace(',', '.')
.replace(/[^\d.-]/g, '');
return parseFloat(normalized) || 0;
}
function getCart() {
return document.querySelector('.t706');
}
function getCartSum(cart) {
if (!cart) return 0;
const price = cart.querySelector(
'.t706__cartwin-bottom .t706__cartwin-prodamount-price'
);
return price
? parsePrice(price.textContent)
: 0;
}
function getPromoField(cart) {
if (!cart) return null;
return cart.querySelector('.t-input-group_pc');
}
function updatePromoField() {
const cart = getCart();
if (!cart) return;
const promoField = getPromoField(cart);
if (!promoField) return;
const input = promoField.querySelector(
'.t-inputpromocode'
);
const button = promoField.querySelector(
'.t-inputpromocode__btn'
);
if (!input) return;
const isAvailable =
getCartSum(cart) >= PROMO_MIN_SUM;
input.disabled = !isAvailable;
if (button) {
button.style.pointerEvents =
isAvailable ? '' : 'none';
button.style.opacity =
isAvailable ? '' : '0.45';
}
promoField.style.opacity =
isAvailable ? '' : '0.45';
}
function init() {
const cart = getCart();
if (!cart) {
setTimeout(init, 300);
return;
}
updatePromoField();
let timer;
const observer = new MutationObserver(function () {
clearTimeout(timer);
timer = setTimeout(
updatePromoField,
50
);
});
observer.observe(
cart,
{
childList: true,
subtree: true,
characterData: true
}
);
setTimeout(
updatePromoField,
500
);
}
if (document.readyState === 'loading') {
document.addEventListener(
'DOMContentLoaded',
init
);
} else {
init();
}
})();
</script>