<!--СКИДКА ЗА САМОВЫВОЗ-->
<script>
document.addEventListener("DOMContentLoaded", function() {
(function () {
//Название скидки в системе
let dnDelivery = 'Самовывоз 10%';
//Название доставки в корзине
let cartNameDelivery = 'Самовывоз';
//Подпись для подсказки в корзине
let discountHint = 'Скидка за самовывоз 10%';
let originalDiscounts = null;
let pickupDiscounts = null;
let pickupOn = false;
let initialized = false;
let observerInstalled = false;
function isTildaReady() {
return (
window.tcart &&
Array.isArray(window.tcart.products) &&
Array.isArray(window.t_cart__discounts)
);
}
function saveOriginalDiscounts() {
if (!Array.isArray(window.t_cart__discounts)) {
return false;
}
if (originalDiscounts === null) {
originalDiscounts = window.t_cart__discounts.slice();
pickupDiscounts = originalDiscounts.slice();
}
return true;
}
function getDiscountsWithoutPickup() {
if (!originalDiscounts) {
return [];
}
return originalDiscounts.filter(function (discount) {
return discount.name !== dnDelivery;
});
}
function getDiscountsWithPickup() {
if (!pickupDiscounts) {
return [];
}
return pickupDiscounts.slice();
}
function updateDiscounts() {
try {
if (typeof window.tcart__updateTotalProductsinCartObj === 'function') {
window.tcart__updateTotalProductsinCartObj();
}
if (typeof window.tcart__reDrawTotal === 'function') {
window.tcart__reDrawTotal();
}
if (typeof window.tcart__saveLocalObj === 'function') {
window.tcart__saveLocalObj();
}
} catch (error) {
console.error('[PickupDiscount] Update error:', error);
}
}
function activePickup() {
if (!saveOriginalDiscounts()) {
return;
}
window.t_cart__discounts = getDiscountsWithPickup();
pickupOn = true;
updateDiscounts();
}
function unactivePickup() {
if (!saveOriginalDiscounts()) {
return;
}
window.t_cart__discounts = getDiscountsWithoutPickup();
pickupOn = false;
updateDiscounts();
}
function getSelectedDelivery() {
const deliveryInput = document.querySelector('input.t-radio_delivery:checked');
if (!deliveryInput) {
return null;
}
return String(deliveryInput.value || '').trim();
}
function updateDiscountHint() {
setTimeout(function () {
const descriptions = document.querySelectorAll('.t706__cartwin-discounts__description li');
descriptions.forEach(function (description) {
if (description) {
description.innerText = discountHint;
}
});
}, 100);
}
function checkDelivery() {
if (!initialized) {
return;
}
const deliveryName = getSelectedDelivery();
if (deliveryName === cartNameDelivery) {
if (!pickupOn) {
activePickup();
}
updateDiscountHint();
} else {
if (pickupOn) {
unactivePickup();
}
}
}
function initialDisablePickupDiscount() {
if (!initialized) {
return;
}
const deliveryName = getSelectedDelivery();
if (deliveryName !== cartNameDelivery) {
unactivePickup();
} else {
activePickup();
}
}
function installDeliveryObserver() {
if (observerInstalled) {
return;
}
observerInstalled = true;
document.addEventListener('change', function (event) {
if (event.target && event.target.matches('input.t-radio_delivery')) {
setTimeout(checkDelivery, 50);
}
}, true);
}
function installCartObserver() {
const cart = document.querySelector('.t706__cartwin');
if (!cart) {
return false;
}
const observer = new MutationObserver(function () {
setTimeout(checkDelivery, 50);
});
observer.observe(cart, {
childList: true,
subtree: true
});
return true;
}
function initialize() {
if (!isTildaReady()) {
return false;
}
if (!saveOriginalDiscounts()) {
return false;
}
if (!initialized) {
initialized = true;
installDeliveryObserver();
let cartObserverAttempts = 0;
const cartObserverInterval = setInterval(function () {
cartObserverAttempts++;
if (installCartObserver()) {
clearInterval(cartObserverInterval);
}
if (cartObserverAttempts > 100) {
clearInterval(cartObserverInterval);
}
}, 100);
}
initialDisablePickupDiscount();
setTimeout(initialDisablePickupDiscount, 300);
setTimeout(initialDisablePickupDiscount, 1000);
setTimeout(initialDisablePickupDiscount, 2000);
return true;
}
let attempts = 0;
const maxAttempts = 300;
const installWatcher = setInterval(function () {
attempts++;
if (initialize()) {
if (attempts > 30) {
clearInterval(installWatcher);
}
}
if (attempts >= maxAttempts) {
clearInterval(installWatcher);
console.error('[PickupDiscount] Initialization timeout');
}
}, 100);
window.__pickupDiscountDebug = {
state: function () {
return {
initialized: initialized,
pickupOn: pickupOn,
selectedDelivery: getSelectedDelivery(),
currentDiscounts: window.t_cart__discounts,
originalDiscounts: originalDiscounts
};
},
check: checkDelivery,
enable: activePickup,
disable: unactivePickup,
reinitialize: initialize
};
})();
});
</script>
<!-- СКИДКА ЗА ONLINE ОПЛАТУ -->
<script>
(function () {
const dnPayment = 'Скидка за оплату 15%';
const cartNamePayment = 'Наличными при получении';
const discountHint = 'Скидка за оплату on-line 15%';
let originalDiscounts = null;
let paymentOn = false;
let initialized = false;
let observerInstalled = false;
let cartObserverInstalled = false;
function isTildaReady() {
return (
window.tcart &&
Array.isArray(window.tcart.products) &&
Array.isArray(window.t_cart__discounts)
);
}
function saveOriginalDiscounts() {
if (!Array.isArray(window.t_cart__discounts)) {
return false;
}
if (originalDiscounts === null) {
originalDiscounts = window.t_cart__discounts.slice();
}
return true;
}
function getDiscountsWithoutPayment() {
if (!originalDiscounts) {
return [];
}
return originalDiscounts.filter(function (discount) {
return discount.name !== dnPayment;
});
}
function getDiscountsWithPayment() {
if (!originalDiscounts) {
return [];
}
return originalDiscounts.slice();
}
function updateDiscounts() {
try {
if (typeof window.tcart__updateTotalProductsinCartObj === 'function') {
window.tcart__updateTotalProductsinCartObj();
}
if (typeof window.tcart__reDrawTotal === 'function') {
window.tcart__reDrawTotal();
}
if (typeof window.tcart__saveLocalObj === 'function') {
window.tcart__saveLocalObj();
}
} catch (error) {
console.error('[PaymentDiscount] Cart update error:', error);
}
}
function activePayment() {
if (!saveOriginalDiscounts()) {
return;
}
if (paymentOn) {
return;
}
window.t_cart__discounts = getDiscountsWithPayment();
paymentOn = true;
updateDiscounts();
}
function unactivePayment() {
if (!saveOriginalDiscounts()) {
return;
}
const discountsWithoutPayment = getDiscountsWithoutPayment();
const currentlyHasPaymentDiscount =
Array.isArray(window.t_cart__discounts) &&
window.t_cart__discounts.some(function (discount) {
return discount.name === dnPayment;
});
if (!paymentOn && !currentlyHasPaymentDiscount) {
return;
}
window.t_cart__discounts = discountsWithoutPayment;
paymentOn = false;
updateDiscounts();
}
function getSelectedPayment() {
const paymentInput = document.querySelector('input.t-radio_payment:checked');
if (!paymentInput) {
return null;
}
const parent = paymentInput.parentElement;
if (!parent) {
return null;
}
return String(parent.innerText || '').trim();
}
function updateDiscountHint() {
setTimeout(function () {
const descriptions = document.querySelectorAll('.t706__cartwin-discounts__description li');
if (!descriptions.length) {
return;
}
descriptions.forEach(function (description) {
if (description) {
description.innerText = discountHint;
}
});
}, 100);
}
function checkPayment() {
if (!initialized) {
return;
}
const paymentName = getSelectedPayment();
if (paymentName === cartNamePayment) {
if (!paymentOn) {
activePayment();
}
updateDiscountHint();
} else {
if (paymentOn) {
unactivePayment();
} else {
const hasPaymentDiscount =
Array.isArray(window.t_cart__discounts) &&
window.t_cart__discounts.some(function (discount) {
return discount.name === dnPayment;
});
if (hasPaymentDiscount) {
unactivePayment();
}
}
}
}
function applyInitialState() {
if (!initialized) {
return;
}
const paymentName = getSelectedPayment();
if (paymentName === cartNamePayment) {
activePayment();
updateDiscountHint();
} else {
unactivePayment();
}
}
function installPaymentObserver() {
if (observerInstalled) {
return;
}
observerInstalled = true;
document.addEventListener('change', function (event) {
if (event.target && event.target.matches('input.t-radio_payment')) {
setTimeout(checkPayment, 50);
}
}, true);
}
function installCartObserver() {
if (cartObserverInstalled) {
return true;
}
const cart = document.querySelector('.t706__cartwin');
if (!cart) {
return false;
}
const observer = new MutationObserver(function () {
setTimeout(checkPayment, 50);
});
observer.observe(cart, {
childList: true,
subtree: true
});
cartObserverInstalled = true;
return true;
}
function initialize() {
if (!isTildaReady()) {
return false;
}
if (!saveOriginalDiscounts()) {
return false;
}
if (!initialized) {
initialized = true;
installPaymentObserver();
}
installCartObserver();
applyInitialState();
setTimeout(applyInitialState, 200);
setTimeout(applyInitialState, 500);
setTimeout(applyInitialState, 1000);
setTimeout(applyInitialState, 2000);
return true;
}
let attempts = 0;
const maxAttempts = 300;
const installWatcher = setInterval(function () {
attempts++;
const result = initialize();
if (result && attempts > 30) {
clearInterval(installWatcher);
}
if (attempts >= maxAttempts) {
clearInterval(installWatcher);
console.warn('[PaymentDiscount] Initialization timeout');
}
}, 100);
document.addEventListener('DOMContentLoaded', function () {
setTimeout(initialize, 100);
});
window.addEventListener('load', function () {
setTimeout(initialize, 100);
setTimeout(applyInitialState, 300);
setTimeout(applyInitialState, 1000);
setTimeout(applyInitialState, 2000);
});
window.__paymentDiscountDebug = {
state: function () {
return {
initialized: initialized,
paymentOn: paymentOn,
selectedPayment: getSelectedPayment(),
currentDiscounts: window.t_cart__discounts,
originalDiscounts: originalDiscounts
};
},
check: checkPayment,
enable: activePayment,
disable: unactivePayment,
initialize: initialize
};
})();
</script>