Как вывести цену на сайте в рублях если исходная в евро через js
Используя плагин курса валют ЦБРФ хотелось бы не просто выводить сами валюты, но и использовать их для автоматической конвертации цен.
Например товары на сайте в евро, а законодательство требует отображать все цены в российских рублях. Именно такое требование у Яндекс Маркета при генерации турбо-страниц для интернет-магазинов.
К примеру наша статья по формату YML позволяет собрать свой шаблон импорта товаров в Яндекс Маркет. И вот если ваши цены в долларах или евро - то проверка списка товаров на стороне сайта выявит "проблему" цены не указаны в национальной валюте.
Простой JS скрипт автоматического пересчета цены из значений курса ЦБРФ в Рубли позволит решить подобную задачу.
1. У вас должен быть установлен Плагин cbr-exrate - Курсы валют для DLE
Открываем шаблон формирования списка валют {THEME}/assets/cbr-exrate/exrate.tpl
И для нужной валюты добавляем id например вот так id="curs-euro"
2. В шаблоне вывода стоимости вашего товара на страницах fullstory.tpl так же добавляем id для тега вывода цены.
Например вот так id="curs-price"
Где [xfvalue_xml2tpl_price] это тег дополнительного поля с ценой на товар.
3. Добавляем html код для вывода полученной цены (курс валюты умноженный на цену в валюте)
Готовый результат:
Пример кода в fullstory.tpl целиком
Например товары на сайте в евро, а законодательство требует отображать все цены в российских рублях. Именно такое требование у Яндекс Маркета при генерации турбо-страниц для интернет-магазинов.
К примеру наша статья по формату YML позволяет собрать свой шаблон импорта товаров в Яндекс Маркет. И вот если ваши цены в долларах или евро - то проверка списка товаров на стороне сайта выявит "проблему" цены не указаны в национальной валюте.
Простой JS скрипт автоматического пересчета цены из значений курса ЦБРФ в Рубли позволит решить подобную задачу.
Готовый скрипт цены в рублях:
<script>
window.onload = function() {
let cursPrice = document.getElementById('curs-price').innerHTML; // обьявляю переменную для цены в евро
let cursEuro = document.getElementById('curs-euro').innerHTML; // обьявляю переменную для курса евро на сегодня из плагина {THEME}/assets/cbr-exrate/exrate.tpl
let localePrice = cursPrice * cursEuro; // перемножаем объявленные переменные
let localeCost = (localePrice).toLocaleString('ru-RU', {
style: 'currency',
currency: "RUB"
})
document.getElementById('curs-localcost').innerHTML = localeCost; // выводим строку результата
}
</script>
Теперь подробно, по шагам
1. У вас должен быть установлен Плагин cbr-exrate - Курсы валют для DLE
Открываем шаблон формирования списка валют {THEME}/assets/cbr-exrate/exrate.tpl
И для нужной валюты добавляем id например вот так id="curs-euro"
EUR ЦБ: <b id="curs-euro">{euro}</b>
2. В шаблоне вывода стоимости вашего товара на страницах fullstory.tpl так же добавляем id для тега вывода цены.
Например вот так id="curs-price"
<p>
Исходная цена: <span id="curs-price">[xfvalue_xml2tpl_price]</span> [xfvalue_xml2tpl_currencyid] <sup class="text-danger">*</sup>
</p>
<p class="small">
* - оплата в рублях по курсу ЦБ России
</p>
Где [xfvalue_xml2tpl_price] это тег дополнительного поля с ценой на товар.
3. Добавляем html код для вывода полученной цены (курс валюты умноженный на цену в валюте)
ЦЕНА: <span id="curs-localcost"></span>
Готовый результат:
Пример кода в fullstory.tpl целиком
<div class="py-3">
ЦЕНА: <span id="curs-localcost"></span>
<p>
Исходная цена: <span id="curs-price">[xfvalue_xml2tpl_price]</span> [xfvalue_xml2tpl_currencyid] <sup class="text-danger">*</sup>
</p>
<p class="small">
* - оплата в рублях по курсу ЦБ России
</p>
</div>
<script>
window.onload = function() {
let cursPrice = document.getElementById('curs-price').innerHTML; // обьявляю переменную для цены в евро
let cursEuro = document.getElementById('curs-euro').innerHTML; // обьявляю переменную для курса евро на сегодня из плагина {THEME}/assets/cbr-exrate/exrate.tpl
let localePrice = cursPrice * cursEuro; // перемножаем объявленные переменные
let localeCost = (localePrice).toLocaleString('ru-RU', {
style: 'currency',
currency: "RUB"
})
document.getElementById('curs-localcost').innerHTML = localeCost; // выводим строку результата
}
</script>
0 Комментарии