URL скопирован в буфер обмена!

Как конвертировать цены в каталоге Tilda?

С помощью этой модификации можно конвертировать цены в каталоге тильда по своему курсу. Дополнительно можно вывести свой символ валюты. Модификация работает как с обычной корзиной, а также корзиной с оформлением заказа в два этапа. Поддерживает блоки каталога ST300, ST305N, ST310N, ST315N и ST320N.

Модификация находится на бета тесте. Мы активно собираем обратную связь чтобы улучшить функционал скрипта и исправить возможные баги.
Модификация работает с включенным Autoscale в блоках
Модификация работает только с стандартными блоками
Номер модификации в библиотеке TiCode

Генератор кода

Курс конвертации
Тип корзины
Вывести свой символ валюты
Войдите в аккаунт чтобы получить доступ к генератору кода
Этот генератор кода доступен только тем кто оплатил подписку
Символ валюты
Первая часть кода (вставляем на страницу каталога)
<!--TICODE--><!-- Библиотека модификаций для Тильда https://ticode.dev --> <!--TCD091--> <script> document.addEventListener('DOMContentLoaded', function() { const TCDExchangeRate = 90; const TCDProcessed = 'processed'; const TCDInterval = 50; const TCDMySymvol = false; let TCDintervaled; function ticodeProcessCards() { document.querySelectorAll('.t-store__card').forEach(function(card) { if (!card.classList.contains(TCDProcessed)) { const TCDpriceElem = card.querySelector('.js-product-price'); const TCDcurrencyElem = card.querySelector('.t-store__card__price-currency'); if (TCDpriceElem && TCDcurrencyElem) { let tcpriceText = TCDpriceElem.textContent.replace(/[^0-9,.]/g, '').replace(',', '.'); const tcpriceEnd = parseFloat(tcpriceText); if (!isNaN(tcpriceEnd)) { const tcpriceStart = (tcpriceEnd * TCDExchangeRate).toFixed(0); TCDpriceElem.textContent = tcpriceStart; card.classList.add(TCDProcessed); } if (TCDMySymvol) { TCDcurrencyElem.textContent = ''; } } } }); } function ticodeCardCheck() { TCDintervaled = setInterval(() => { ticodeProcessCards(); }, TCDInterval); } ticodeProcessCards(); document.querySelectorAll('.t-store__pagination a').forEach(function(paginationLink) { paginationLink.addEventListener('click', function() { clearInterval(TCDintervaled); ticodeCardCheck(); }); }); ticodeCardCheck(); function ticodeUpdateCartCurrency() { document.querySelectorAll('.t706__cartwin-prodamount-currency').forEach(function(currencyElement) { if (TCDMySymvol) { currencyElement.textContent = ''; } }); } const cartObserver = new MutationObserver(() => { ticodeUpdateCartCurrency(); }); const TCDcartWindow = document.querySelector('.t706__cartwin-content'); if (TCDcartWindow) { cartObserver.observe(TCDcartWindow, { childList: true, subtree: true }); } document.querySelectorAll('.t706__cartwin-prodamount-input').forEach(function(input) { input.addEventListener('change', function() { ticodeUpdateCartCurrency(); }); }); }); </script> <script> (function TCDupdType() { const TildahtmlBclok = document.currentScript; if (TildahtmlBclok) { const recordElement = TildahtmlBclok.closest('.r[data-record-type]'); if (recordElement) { recordElement.setAttribute('data-record-type', Math.random().toString(36).substring(2, 12)); }}})(); </script>
КОПИРОВАТЬ КОД
Вторая часть кода (см. инструкцию)
<!--TICODE--><!-- Библиотека модификаций для Тильда https://ticode.dev --> <!--TCD091--> <script> document.addEventListener('DOMContentLoaded', function() { const TCDExchangeRate = 90; const TCDMySymvol = false; let TCDintervalId; let TCDisPriceUpdated = false; let TCDisSelectChanged = false; const TCDInterval = 250; function ticodeUpdatePrice() { const TCDproduct = document.querySelector('.js-store-product'); const priceElem = TCDproduct.querySelector('.js-product-price'); const TCDcurrencyElem = TCDproduct.querySelector('.t-store__prod-popup__price-currency'); if (priceElem && TCDcurrencyElem) { let tcdpriceText = priceElem.textContent.replace(/[^0-9,.]/g, '').replace(',', '.'); const tcpricestart = parseFloat(tcdpriceText); if (!isNaN(tcpricestart)) { const priceend = (tcpricestart * TCDExchangeRate).toFixed(0); const ticurrentText = priceElem.textContent; if (ticurrentText !== priceend) { priceElem.textContent = priceend; TCDisPriceUpdated = true; } if (TCDMySymvol) { TCDcurrencyElem.textContent = ''; } } } } function ticodeStartPriceCheck() { TCDintervalId = setInterval(() => { if (TCDisPriceUpdated) { clearInterval(TCDintervalId); } else { ticodeUpdatePrice(); } }, TCDInterval); } ticodeStartPriceCheck(); document.querySelectorAll('.js-product-edition-option-variants').forEach(function(select) { select.addEventListener('change', function() { if (!TCDisSelectChanged) { TCDisSelectChanged = true; TCDisPriceUpdated = false; ticodeUpdatePrice(); setTimeout(() => { TCDisSelectChanged = false; }, TCDInterval); } }); }); function ticodeUpdateCartCurrency() { document.querySelectorAll('.t706__cartwin-prodamount-currency').forEach(function(currencyElement) { if (TCDMySymvol) { currencyElement.textContent = ''; } }); } const cartObserver = new MutationObserver(() => { ticodeUpdateCartCurrency(); }); const TCDcartWindow = document.querySelector('.t706__cartwin-content'); if (TCDcartWindow) { cartObserver.observe(TCDcartWindow, { childList: true, subtree: true }); } document.querySelectorAll('.t706__cartwin-prodamount-input').forEach(function(input) { input.addEventListener('change', function() { ticodeUpdateCartCurrency(); }); }); }); </script> <script> (function TCDupdType() { const TildahtmlBclok = document.currentScript; if (TildahtmlBclok) { const recordElement = TildahtmlBclok.closest('.r[data-record-type]'); if (recordElement) { recordElement.setAttribute('data-record-type', Math.random().toString(36).substring(2, 12)); }}})(); </script>
КОПИРОВАТЬ КОД
КОПИРОВАТЬ КОД
1. Создаем каталог тильда и загружаем в него товары(модификация не работает в с товарами которые загрузили в блок). Скрипт работает с блоками магазинов ST300, ST305N, ST310N, ST315N, ST320N. В настройках сайта устанавливаем основную валюту сайта.

2. В генераторе в поле "курс конвертации" указываем значение на которое будем умножать цену и выбираем тип корзины который используем на сайте. Если вы указали в каталоге цену 10 и поставили курс 10, то на сайте покажет цену 100. Если в каталоге у вас указано 100, а курс поставили 0.1, то на сайте покажет 10.

3. Копируем первый код и вставляем на страницу с каталогом в блок Т123. Блок с кодом размещаем под каталогом.

4. Создаем пустую страницу и вставляем на нее второй код в блок Т123. Эту страницу в настройках каталога назначаем шапкой товаров и ставим галочку "отображать popup карточку товара в виде отдельной страницы". Это нужно для того чтобы скрипт мог обновлять цену в самой карточке.

5. При необходимости можно вывести свой символ возле новой цены.

Примечание! Вывод своего символа не меняет валюту оплаты. Если у вас на сайте основная валюта $, а в генераторе указали Rub, то в самой корзине будет показана конвертированная цена с приставкой Rub, но в платежку будет передана как $. Поэтому либо указывайте основную валюту ту в которую конвертируете цены, либо на стороне платёжных систем делайте дополнительные настройки.

Данная версия скрипта пока что не поддерживает конвертацию перечеркнутых цен, промокодов и скидок!
Пример конвертации цен. Курс - 10
Made on
Tilda