Ограничение применения промокода в корзине Tilda
Промокод в Tilda не действует на выбранную категорию (например, «Распродажа»). Готовый скрипт + инструкция по подключению.
- Tilda
- JavaScript
Tilda из коробки не умеет показывать цены в альтернативной валюте по живому курсу. Если вы продаёте в несколько стран или работаете с валютой, которой нет в стандартных настройках, приходится либо вручную править цены, либо терять клиентов.
Скрипт берёт актуальный курс из API выбранного нацбанка (пример: USD→BYN или USD→RUB), пересчитывает цены в карточках товаров, модальных окнах и реагирует на действия пользователя.
Заменяет цены на сайте Tilda на пересчитанные по выбранной валюте. Работает на каталоге, карточках товаров, поп-апах и в корзине — без редактирования каждого блока вручную.
Поддерживается два режима:
В конфиге указываете базовую валюту (в которой цены в админке Tilda) и список целевых, на которые умеет переключать. Например, цены в ₽ → переключатель показывает $, €, ₸, BYN.
const CURRENCY = {
base: "RUB",
rates: { USD: 95.4, EUR: 102.1, KZT: 0.21, BYN: 28.5 },
source: "cbr" // или "fixed", или "openexchange"
};
Скрипт ищет блоки по CSS-классу. Чтобы блок начал реагировать на переключатель — добавьте маркер в настройках Zero Block или элемента каталога:
.js-price — обычная цена товара.js-price-old — старая (зачёркнутая) цена.js-price-cart — цены и итог в корзине TildaВнутри элемента с классом скрипт сам найдёт число и подменит. Стандартные блоки каталога t-store, карточки товаров и поп-апы поддерживаются из коробки — отдельные классы там не нужны.
Если в Tilda задан price = 0 или товар бесплатный — скрипт оставит надпись «Бесплатно» и пересчёт пропустит. Это поведение по умолчанию для Zero-блоков и карточек с нулевой ценой; настраивать ничего не нужно.
Когда у товара несколько вариантов (размер, цвет и т.п.) и для каждого своя цена — скрипт пересчитает все варианты на лету при выборе и при переключении валюты. Связка с tcart идёт через MutationObserver: пересчёт срабатывает при добавлении и удалении товара, смене количества и варианта.
Если на сайте несколько языков — скрипт связывает язык с валютой и платёжной системой:
В корзине автоматически подставляется правильный обработчик оплаты и текст кнопки «Оплатить». Настраивается в одном объекте LANG_PAYMENTS в начале файла.
Один JS-файл подключается на сайт. Внешних зависимостей и jQuery не требует. Время установки — 10–15 минут.
Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.