2011-03-31

Как заставить Virtuemart брать курсы валют из ЦБ РФ (cbr.ru)?

Virtuemart - прекрасный скрипт для создания небольшого Интернет-магазина в рамках CMS Joomla! Но, как всегда, есть подводные камни, сильно мешающие жить. Например, конвертация валют. По умолчанию Virtuemart берёт данные из Европейского Центрального Банка (http://www.ecb.int). Но для деятельности в России требуется брать курсы валют из Банка России (ЦБ РФ) (http://cbr.ru). На эту тему уже изведены мегабайты кода и дискового пространства Форумов.

Что предлагается?

Я предлагаю достаточно простой, расширяемый и надёжный способ научить Virtuemart брать данные из ЦБ РФ. Смысл предложения заключается в преобразовании XML-данных от cbr.ru к формату, повторяющему XML от ECB при помощи специально разработанной программы-конвертера cbr2ecbformat.cgi.

Эту чудесную программу я разместил на Google Code: http://code.google.com/p/cbr2ecbformat/

Русскую же документацию и описание установки программы--- на своём сайте: http://davimas.name/software/cbr2ecbformat


Предлагаемый путь "подмены источника курсов валют" для Virtuemart-а удобен также тем, что легко допускает практически любые манипуляции с курсами валют при минимуме изменений непосредственно в Virtuemart-е: достаточно доработать программу-преобразователь cbr2ecbformat.cgi. Такое положение делает предложенную схему практически универсальной по отношению к версиям Virtuemart-а и прекрасно подстраиваемой под нужды конкретного заказчика.

5 комментариев:

  1. Уже есть модуль который делает всё автоматически.
    http://www.liveinternet.ru/users/csh/post256670224/

    ОтветитьУдалить
    Ответы
    1. Мы не конкуренты. :) Ваш модуль менее `автоматический`, нежели моя программа, при этом сильно зависит от версии Joomla, VirtueMart и т.п. Предлагаемый мною путь/продукт обеспечивает хорошую переносимость и надежность работы при низких затратах на поддержку/настройку при обновлении той же Joomla или VirtueMart. А новые версии выходят регулярно. ;)

      Удалить
    2. Тем более, для особых случаев, мною запущен специальный сервис http://ce-rates.info/cbr2ecbformat.cgi Читать здесь:
      http://coolermen.ru/virtuemart/konverter-valiut-dlia-virtuemarta

      Отпадает нужда что-либо распаковывать, устанавливать и т.п.

      ***
      Есть более новый сервис ( бесплатный в нынешнем виде) http://ce-rates.info/cbr2ecbformat.cgi

      Теперь не надо возиться с этим файлом cbr2ecbformat.cgi совсем.

      Достаточно в файле administrator/components/com_virtuemart/classes/currency/convertECB.php заменить адрес источника XML:

      было - var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml'

      стало - var $document_address = 'http://ce-rates.info/cbr2ecbformat.cgi'

      Все.

      Удалить
  2. День добрый! А можно ли переделать данное решение на приватбанк? https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=4 и сколько это будет стоить?

    ОтветитьУдалить
    Ответы
    1. Сделать можно. Нужно только понять, какой из курсов (покупка/продажа) требуется. Стоить это будет моё время. Мои координаты здесь: http://blog.vsl.name/p/contacts.html Выходите на связь, обсудим.

      Удалить