@SteepNET

Битрикс умный фильтр мультивалютность?

Добрый день!
Прошу помощи в реализации мультиалютности в умном фильтре, именно в выводе в полях для ввода "Цена ОТ - ДО" цен в другой валюте!
Я успешно реализовал вывод в другой валюте в карточке товара с помощью CCurrencyRates::ConvertCurrency() с помощью селектора меняю там отображение цен.

Но умном фильтре в полях ввода стало для меня проблемой...

В input в шаблоне я заменил value на
$price_min = round(CCurrencyRates::ConvertCurrency($arItem["VALUES"]["MIN"]["VALUE"], 'RUB', 'USD'), 2);
$price_min_html = round(CCurrencyRates::ConvertCurrency($arItem["VALUES"]["MIN"]["HTML_VALUE"], 'RUB', 'USD'), 2);

value="<?=($price_min_html) ? $price_min_html : ($price_min)?>"
data-price="<?=$price_min;?>"

Так же для значений MAX

Значения успешно подставляются в input полях на нужные, но бегунки при перемещении по прежнему отображают рубли.
В $arJsParams =
Передаются как раз параметры в script.js но если я там меняю на конвертированные значения он естественно так как нет таких цен он работает не корректно.

Нужно передавать значения в рублях а в input отображать в конвертированных значениях.
И тут пришел в тупик! Знаю что с ходу тут врядле без проб можно подсказать, может кому то придут мысли какие то или решал подобную задачу...

У товара одна цена в рублях.
  • Вопрос задан
  • 467 просмотров
Решения вопроса 1
@topuserman
Умный фильтр фильтрует только заданным по значениям полей.
Т.е. если фильтр по свойству цены с рублевой валютой, то фильтрация будет только по рублю, и кастомизировать компонент, а тем более шаблон, очень трудозатратно.

На много проще будет добавить дополнительные типы цены - Цена USD, Цена EUR и т.д.

Повесить обработчик на изменение/добавление товара, в котором автоматически будут заполняться эти типы цен с пересчета с рубля по внутреннему курсу валют.

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

UPD

Если у вас редакция Малый бизнес, то там многоценовости не будет.
В этом случае придется кастомизировать компонент фильтра:

1. Выносите компонент в отдельное пространство
2. В куда-нибудь заводите курс валют
3. В шаблоне компонента, где выводится блок для фильтрации по цене, добавляете селект, с выбором нужной валюты, при изменении валюты, через ajax, пересчитываете цены по курсу, а выводите в этом же месте.
+ добавляете input:hidden с выбранный валютой
4. В компоненте, проверяете пришедший курс, и переводите в рубли.

В итоге все будет работать поверх стандартного функционала.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы