Drupal → Ввод и хранение цен в одной валюте, а вывод в другой по текущему курсу (мультивалютность)

19.12.2014

Задача — указывать цены товаров в долларах, а ценник выводить в рублях по текущему курсу ЦБ.

Решение:

1. Установить модули Commerce Multicurrency и Commerce Multicurrency provider for RUB.

2. На странице admin/commerce/config/currency выбрать список доступных валют (USD и RUB) и дефолтную валюту, в которой будут выводится цены (RUB).

3. На странице admin/commerce/config/currency/conversion выбрать провайдера — Central Bank of the Russian Federation, включить опцию Synchronize rates on save и нажать Save Settings:

После этого при создании/редактировании товара будет доступно поле выбора валюты:

А все цены будут выводится в дефолтной валюте — рублях.

Видео

Мой модуль для правильной сортировки Views по цене в разных валютах — Commerce Multicurrency Sort.

Написанное актуально для
Commerce 1
Похожие записи

Комментарии

Спасибо. А чекаут будет в какой валюте?

На странице checkout товар в евро, итоговая сумма оплаты в рублях.
на странице вьюс 900 товаров, процентов 20-30 в евро

xandeadx
Какую версию модулю использовали?

Игорь
06.02.2015, 13:16

А может надежнее сделать дополнительное поле под конкретную валюту.
[Событие: Расчёт стоимости товара - commerce_product_calculate_sell_price]
А в рулсе при подсчете цены выдавать то что хочется?

xandeadx
Что-то не выходит у меня, модуль работает отлично, везде цены в рублях, но вот в checkout цены в исходной валюте.
Патчить https://www.drupal.org/node/1356906 пока ничего не пробовал.
Скорее всего либо я гдето галку не поставил|снял либо модуль како-то перекрывает в общем х.з. Никак не могу понять почему в карте выводит нормально а в заказе нет, вььюхи идентичные почти ...(

да, оказывается есть проблема. там в dev версии новый rules component добавили, но как им пользоваться я не знаю

Не там копал я. Это rules 2.8 крушит.
откатился на 2.7
Полет нормальный.

Антон
14.02.2015, 01:01

Проблема та же, везде цена отображаются конвертированные, кроме чекаута. Никто не нашел решения?

поставьте Rules 2.7, вместо последней 2.8

Антон
15.02.2015, 23:51

Спасибо. Помогло.
Можно ли прикрутить этот функционал к полю "Цена" (price), которое не относится к товару из Commerce?

Антон
17.03.2015, 10:53

Ура! Проблема устранена в Rules 2.9

Показывает цену с 6-ю знаками после запятой. Как пофиксить?

Игорь
27.03.2015, 17:11

27/03/2015 - 17:28 - время на сайте очень вперед убежало ;-) у меня ещё только 17:09 было, хостеры не работают 4-)
Вьюсои цена выводится или как - менять отображение. На крайняк в хуке перед редером.

В корзине неверное считает цену в рублях. Наблюдаются для некоторых товаров, когда их несколько штук, отклонения в большую или меньшую сторону. Как решить сие?

Игорь
31.03.2015, 11:21

Я уже писал выше в комменте, что считаю хранение цены в валюте сделать в другом поле правильнее, например en_price или dollar_price или field_usd_price и также для других валют field_eur_price и т.п.
Рассчитывать в момент сохранения/обновления продукта(вариации). Ещё можно по крону раз в сутки или раз в неделю пересчитывать.
Выводить эти поля не нужно, они просто хранятся.
Это как для скидки поле: field_old_price - очень удобно!

Артем
08.05.2015, 14:17

Доброе время суток! Спасибо за пост! А как быть если нужно сделать сортировку по цене? Беру поле commerce price amount делаю сортировку и разшариваю ее. В результате цены в USD он сортирует первыми а потом сортирует цены в ГРН!

Подскажите, есть ли возможность использовать мультивалютный раскрытый фильтр. При выборе валюты в настройках раскрытого фильтра не играет роли, т.к. фильтрация происходит по валюте, установленной по-умолчанию. А хочется при смене валюты менять и валюту фильтра.

Добавить комментарий