Рейтинг: 0  
Новая
Предложил Пользователь 68775 29.07.2019 13:28:51

Поддержка криптовалют

Добрый день.

Задача:
Указывать цену за товар в Биткоинах (BTC).
Цена может иметь вид 0,00001 BTC

Решение 1:
Добавить валюту Биткоинах в разделе Настройки / Валюты / Список валют - Добавить валюту

Проблема: при сохранении товара с указанием цены 0,0001 её округляет до значения 0,00

Решение 2:
  1. Добавить валюту Биткоинах в разделе Настройки / Валюты / Список валют - Добавить валюту
  2. Указать номинал: 1
  3. Указать курс по умолчанию: 10000
  4. В настройках компонента комплексный каталог включить опцию Показывать цены в одной валюте и выбрать валюту BTC
  5. В настройках компонента корзина включить опцию Показывать цены в одной валюте
Проблемы:
  1. Цены в списке товаров и карточке товара показываются правильно, в корзине нет.
  2. При оформлении заказа цены показываются в валюте рубли.
  3. При передаче заказа на оплату валюта заказа передаётся рубли. Платежный шлюз далее по своему курсу конвертирует рубли в биткоины (этого не надо).
Решение 3:
  1. Найти альтернативную валюту биткоинам, допустим этой валютой могла бы стать USDT.
Проблема:
  1. При добавлении валюты в поле Валюта есть ограничение на количество символов - 4.
Решение 4:
  1. Изменить тип данных у полей в таблице бд с demicial(18,2) на demicial(18,5).
Проблема:
  1. При обновлении системы могут затереться изменения установленные вручную и произойдет потеря данных (установленных цен).
  2. Обновления могут вообще не установиться из-за измененного типа данных.
  3. При проверке бд средствами битрикс будут постоянно отображаться ошибки из-за отличия типа данных в бд от описанных.
  4. Это в принципе решение очень нестабильное и обычные пользователи его не смогут использовать.
Нужна более гибкая система работы с ценами и валютами.

Ну или хотя бы объясните в связи с чем наложены такие ограничения...
Ну или может есть какое-то другое решение недокументированное...
Рейтинг: 1  
Ответил Жуков Евгений 29.07.2019 15:17:42
При добавлении валюты в поле Валюта есть ограничение на количество символов - 4
Мы ориентируемся на iso-стандарт 4217 (https://www.iso.org/iso-4217-currency-codes.html). Символьный код валюты по этому стандарту должен содержать 3 символа латинского алфавита. Там же указано, что подавляющее число валют имеет 2 знака после запятой в ценах. Увеличение дробной части цен до 4-х разрядов есть в планах.
Изменить тип данных у полей в таблице бд с demicial(18,2) на demicial(18,5).
Это прямая правка базы, да еще и неправильная (вы уменьшили максимально возможное значение цены в 1000 раз (на 3 порядка)).

При оформлении заказа цены показываются в валюте рубли
Показываются в той валюте, которая выбрана для сайта в настройках модуля sale (Интернет-магазин). Так же обращаю ваше внимание на то, что деятельность Интернет-магазинов на территории РФ регулируется федеральным законом ФЗ-54 (безусловное использование онлайн-касс).

На текущий момент введение поддержки криптовалют в магазине не планируется.