(function() {
'use strict';
const MIN_AMOUNT = 3000;
function cleanPromoFromLocalStorage() {
try {
// Получаем данные корзины
const cartData = JSON.parse(localStorage.getItem('tcart') || '{}');
if (Object.keys(cartData).length > 0) {
console.log('[DEBUG] Исходные данные корзины:', cartData);
// Удаляем ВСЕ поля, связанные со скидкой
delete cartData.promocode;
delete cartData.prodamount_discountsum;
delete cartData.prodamount_withdiscount;
delete cartData.discountsum;
// Восстанавливаем исходную сумму
cartData.amount = cartData.prodamount;
// Сохраняем очищенные данные
localStorage.setItem('tcart', JSON.stringify(cartData));
console.log('[DEBUG] Промокод очищен из localStorage');
return true;
}
} catch(e) {
console.error('[DEBUG] Ошибка очистки localStorage:', e);
}
return false;
}
function removePromoUIElements() {
// Удаляем сообщение об активации
document.querySelectorAll('*').forEach(el => {
if (el.textContent.includes('Промокод') && el.textContent.includes('активирован')) {
const parent = el.closest('.t-inputpromocode__wrapper, .t-section, .t-cell, .t-row');
if (parent) {
parent.remove();
console.log('[DEBUG] Удалено сообщение об активации');
}
}
});
// Удаляем блок со скидкой
document.querySelectorAll('.t706__cartwin-totalamount-info').forEach(block => {
if (block.textContent.includes('Скидка:') || block.textContent.includes('скидка')) {
block.remove();
console.log('[DEBUG] Удален блок со скидкой');
}
});
// Очищаем поле ввода промокода
const promoInput = document.querySelector('input[placeholder*="промокод" i]');
if (promoInput) {
promoInput.value = '';
['input', 'change', 'blur'].forEach(eventType => {
promoInput.dispatchEvent(new Event(eventType, { bubbles: true }));
});
console.log('[DEBUG] Поле промокода очищено');
}
}
function forceUpdateCartUI() {
try {
// Получаем исходную сумму из localStorage
const cartData = JSON.parse(localStorage.getItem('tcart') || '{}');
const originalAmount = cartData.prodamount || 0;
if (originalAmount > 0) {
// Обновляем итоговую сумму
document.querySelectorAll('.t706__cartwin-totalamount, .t706__sidebar-totalamount').forEach(el => {
el.textContent = `${originalAmount.toLocaleString('ru-RU')}р.`;
console.log(`[DEBUG] Сумма обновлена на: ${originalAmount}р.`);
});
// Обновляем сумму в детализации
const firstValue = document.querySelector('.t706__cartwin-totalamount-info_value:first-child');
if (firstValue) {
firstValue.innerHTML = `
${originalAmount.toLocaleString('ru-RU')}
р.
`;
}
}
} catch(e) {
console.error('[DEBUG] Ошибка обновления UI:', e);
}
}
function resetCart() {
console.log('[DEBUG] Начинаем сброс корзины...');
// 1. Очищаем localStorage
const localStorageCleaned = cleanPromoFromLocalStorage();
// 2. Удаляем UI элементы
removePromoUIElements();
// 3. Обновляем интерфейс
forceUpdateCartUI();
// 4. Принудительно обновляем страницу если ничего не помогло
if (localStorageCleaned) {
console.log('[DEBUG] Корзина успешно сброшена!');
} else {
console.log('[DEBUG] Принудительная перезагрузка страницы');
setTimeout(() => {
location.reload();
}, 1000);
}
}
function checkAndReset() {
try {
// Получаем исходную сумму из localStorage
const cartData = JSON.parse(localStorage.getItem('tcart') || '{}');
const originalAmount = cartData.prodamount || 0;
console.log(`[DEBUG] Текущая сумма: ${originalAmount}р., Минимальная для промокода: ${MIN_AMOUNT}р.`);
if (originalAmount < MIN_AMOUNT && originalAmount > 0) {
console.log('[DEBUG] Сумма меньше минимальной, сбрасываем промокод');
resetCart();
}
} catch(e) {
console.error('[DEBUG] Ошибка проверки суммы:', e);
}
}
// Основная инициализация
function init() {
console.log('[DEBUG] Запуск скрипта сброса промокода');
// Проверяем каждые 300мс
setInterval(checkAndReset, 300);
// Проверяем при загрузке
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', checkAndReset);
} else {
checkAndReset();
}
// Проверяем при полной загрузке
window.addEventListener('load', () => {
setTimeout(checkAndReset, 500);
});
}
// Запускаем
init();
})();