currency-converter-tilda.demo
{ preview }
// проблема

Что решает

  • ! Клиенты из СНГ заходят и не понимают, сколько 4990 ₽ — это в их валюте
  • ! Курс на сайте отстаёт на 1–2 дня — обновлять цифры руками нереально
  • ! После переключения валюты цены в каталоге, карточках и корзине не пересчитываются вместе
  • ! Один сайт под несколько языков — в EN-версии хочется видеть $, в KZ — ₸
  • ! Под каждую валюту нужна своя платёжная система — Tilda сама это не разруливает
// решение

Что получите

  • Курс из ЦБ РФ или Open Exchange Rates с автообновлением раз в сутки — либо фикс по вашей формуле
  • Один клик в шапке — пересчитывается каталог, карточки товаров, поп-апы и корзина целиком
  • Любые пары валют: RUB, USD, EUR, KZT, BYN, UAH, KGS, AMD и любые свои
  • Запоминаем выбор клиента — при следующем визите цены сразу в его валюте
  • Связь язык → валюта → платёжка: RU/₽/ЮKassa, EN/$/Stripe, KZ/₸/Kaspi — одной настройкой
// подробно

О скрипте

Проблема

Tilda из коробки не умеет показывать цены в альтернативной валюте по живому курсу. Если вы продаёте в несколько стран или работаете с валютой, которой нет в стандартных настройках, приходится либо вручную править цены, либо терять клиентов.

Решение

Скрипт берёт актуальный курс из API выбранного нацбанка (пример: USD→BYN или USD→RUB), пересчитывает цены в карточках товаров, модальных окнах и реагирует на действия пользователя.

Что делает скрипт

  • Загружает актуальный курс валют при открытии страницы.
  • Пересчитывает цены в карточках товаров каталога.
  • Обновляет цены в модальных окнах товара.
  • Реагирует на фильтры, сортировку и кнопку «Загрузить ещё».
  • Сохраняет оригинальные цены для корзины и оплаты.

Как это работает

  1. Скрипт обращается к API нацбанка при загрузке страницы.
  2. Получает курс валютной пары.
  3. Находит все элементы с ценами и применяет пересчёт.
  4. Слушает события DOM (фильтры, модалки, load more) и обновляет значения.

Преимущества

  • Живой курс вместо ручного обновления.
  • Работает со стандартными каталогами Tilda.
  • Поддерживает любую валютную пару, где есть API нацбанка.

Что в комплекте

  • Полный готовый скрипт с настройкой валютной пары.
  • Установка под ключ.
  • Доработка под конкретный каталог и дизайн.
// инструкция

Как это устроено

Что делает скрипт

Заменяет цены на сайте Tilda на пересчитанные по выбранной валюте. Работает на каталоге, карточках товаров, поп-апах и в корзине — без редактирования каждого блока вручную.

Источник курса

Поддерживается два режима:

  • API — курс берётся раз в сутки из ЦБ РФ, Open Exchange Rates или ECB; кэшируется на сервере, чтобы не упереться в лимиты.
  • Фикс — вы задаёте свой курс прямо в конфиге скрипта. Удобно, если держите свою наценку.

Какие валюты

В конфиге указываете базовую валюту (в которой цены в админке 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, карточки товаров и поп-апы поддерживаются из коробки — отдельные классы там не нужны.

Цена «от 0»

Если в Tilda задан price = 0 или товар бесплатный — скрипт оставит надпись «Бесплатно» и пересчёт пропустит. Это поведение по умолчанию для Zero-блоков и карточек с нулевой ценой; настраивать ничего не нужно.

Корзина с вариантами товара

Когда у товара несколько вариантов (размер, цвет и т.п.) и для каждого своя цена — скрипт пересчитает все варианты на лету при выборе и при переключении валюты. Связка с tcart идёт через MutationObserver: пересчёт срабатывает при добавлении и удалении товара, смене количества и варианта.

Язык, валюта и платёжка

Если на сайте несколько языков — скрипт связывает язык с валютой и платёжной системой:

  • RU → ₽ → ЮKassa / Тинькофф
  • EN → $ → Stripe / PayPal
  • KZ → ₸ → Kaspi.kz

В корзине автоматически подставляется правильный обработчик оплаты и текст кнопки «Оплатить». Настраивается в одном объекте LANG_PAYMENTS в начале файла.

Установка

Один JS-файл подключается на сайт. Внешних зависимостей и jQuery не требует. Время установки — 10–15 минут.

$ ./contact --new-project

Есть задача? Обсудим

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами
Используем для работы сайта и аналитики посещаемости. Подробнее
Принять
Отказаться