[ Веб-студия Александры Шеиной ]
Tilda
Стандартный блок
Кастомизация

Активация промокода в корзине от определенной суммы на Tilda

Поле промокода в корзине становится доступным только после того, как сумма заказа достигает заданного значения. До этого момента поле и кнопка активации неактивны, поэтому применить промокод раньше установленного порога нельзя.

Минимальная сумма настраивается в коде и автоматически проверяется при изменении состава корзины. Если итоговая стоимость снова становится ниже установленного значения, поле промокода блокируется.
Артикул: 0009
❗️   ВАЖНО:   Чтобы код работал на вашем сайте проверьте, что у вас включен jQuery в настройках сайта.

  Настройки сайта   ⟶ Вкладка   Вставка кода   ⟶ Ставим галочку у "  Подключить jQuery на страницах сайта  «

1️⃣  ДОБАВЛЯЕМ БЛОК КОРЗИНЫ (ST100)
  • В корзине добавляем поле «Промокод».

2️⃣  НИЖЕ ВСТАВЛЯЕМ КОД
В коде найдите:
  const PROMO_MIN_SUM = 9000;  
и замените 9000 на сумму, от которой покупателю будет доступна активация промокода.

❗️   ВАЖНО:   если сумма корзины меньше указанной — поле промокода неактивно. При сумме, равной или больше указанной, промокод можно ввести и активировать.
<!-- Добавить выбор подарка в корзине от определенной суммы
Веб-студия Александры Шеиной – 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>

Другие модификации для Tilda

Полезные статьи

Услуги студии

© 2026 Веб-студия Александры Шеиной
* Компания Meta Platforms Inc., владеющая социальными сетями Facebook и Instagram, по решению суда от 21.03.2022 признана экстремистской организацией, ее деятельность на территории России запрещена.
© 2026 Веб-студия Александры Шеиной
* Компания Meta Platforms Inc., владеющая социальными сетями Facebook и Instagram, по решению суда от 21.03.2022 признана экстремистской организацией, ее деятельность на территории России запрещена.
Как используется аналитика на сайте
Чтобы сайт работал стабильно и был удобным, мы используем технические данные и аналитику. Аналитика подключается только с вашего согласия и работает через Яндекс.Метрику и статистику Tilda. Подробнее — в Политике конфиденциальности.
Как используется аналитика на сайте
О работе сайта
Часть технических данных необходима для стабильной работы сайта и не может быть отключена. Аналитика используется только с вашего согласия и может быть настроена ниже.
Для работы сайта
Эти элементы нужны, чтобы сайт открывался корректно, работали страницы, формы и навигация. Они включены по умолчанию — без них сайт просто не сможет работать.
Аналитика сайта
Disabled
Помогает нам видеть, какие страницы смотрят чаще и что можно сделать удобнее. Используется Яндекс.Метрика и статистика Tilda. Включается только с вашего согласия.
Made on
Tilda