Обновленная сборка интернет-магазина на MODX Revolution. Несколько валют

    Больше года назад я писал про нашу готовую сборку интернет-магазина на базе MODX Revolution. Учитывая текущую обстановку с курсами валют в России (при этом необходимость указывать цены именно в рублях), я решил, что наверняка будет актуальна возможность указывать различные базовые валюты для товаров, но чтобы на сайте как бы все равно все было в рублях. Главное здесь — чтобы можно было указать валюту товара (например евро или доллары), а на сайте цена выводилась бы в рублях по курсу (возможно автоматическое обновление курсов с сайта центробанка). Это далеко не полноценный мультивалютный магазин, но зато цены всегда боле менее актуальны будут с учетом текущего курса валют.

    Совсем не много о том, какие изменения были за этот год+
    За этот год мы и сами сделали не один магазин на основе ShopModxBox (бОльшая часть из которых — перенос уже существующих магазинов с других движков на этот с сохранением структуры и контента. Отчет по одному из таких проектов можно прочитать здесь), да и сторонними разработчиками было создано не мало (по моим наблюдениям только боевых магазинов несколько десятков, а просто для эксперимента никак не меньше сотни-другой). И хотя мы выпустили не одну обновленную версию движка (ссылка на гитхаб), никаких кардинальных изменений мы в изначальную основу не вносили. По большей степени это связано с тем, что мы не старались и не будем стараться создавать какой-то мегауниверсальный движок. ИМХО на это достаточно уже готовых решений. Для нас — это основа именно для каких-то индивидуальных проектов. Бывает такое, что клиенту нужен какой-то особенный магазин, со своими не стандартными фишками. Имея хоть и скромную, но гибкую основу, можно довольно быстро реализовать почти любые мыслимые фишки. Но все же какие-то базовые вещи мы конечно добавляем в сборку, среди которых оплата через ЕдинуюКассу и UnitPay.


    В новой версии упор был сделан именно на обновление курсов и пересчет стоимости товара на лету, чтобы сам сайт по прежнему работал в рублях. Признаюсь, что хотелось бы более гибкой работы с валютами, но здесь есть много подводных камней, с которыми я сейчас не стал бороться, поэтому еще раз повторюсь: эта сборка рассчитана на работу именно с рублями, и хотя можно указывать для товара другие валюты, и будет пересчет везде, но все равно все будет в рублях. Но зато даже в Яндекс.Маркет идет выгрузка в рублях, даже если у товара указана цена в другой валюте.

    Рассмотрим чуть подробней техническую сторону вопроса.

    1. Обновление курсов валют на сайте.
    Для этого написан специальный процессор, который вызывается простым простым GET-запросом ваш_сайт/assets/components/modxsite/connectors/connector.php?pub_action=currencies/update_courses
    Запускаете вызов его по крону раз в сутки, и курсы на сайте будут обновляться автоматически, подгружаясь с сайта центробанка.

    Я не стал на него накладывать какие-то особые ограничения по доступу, ибо все, что он может сделать — это только обновить курсы валют, более ничего.

    Кстати, вопрос в студию: кто знает нормальный источник для получения курсов относительно других валют, а не только относительно рубля (или я плохо читал документацию API cbr.ru и там как-то можно указать относительно какой валюты нужны курсы? Если так, то кто подскажет как указать?). Просто сейчас курсы тянутся только относительно рубля, и это одна из причин неполноценности мультивалютного механизма на сайте.

    2. Как добавить свою валюту.
    Сейчас в сборку включены валюты EUR и USD. Если нужна какая-то другая валюта, создаете в контексте spravochniki в валютах новый документ с типом Валюта и шаблоном Валюта и задаете ему заголовок — код валюты. Обязательно, чтобы это был один из кодов, имеющихся в возвращаемом XML, иначе не будет автоматического обновления этой валюты.

    Собственно все. Ничего дополнительно делать не надо. Процессор, возвращаемый данные товаров, автоматически будет пересчитывать стоимость товаров.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 2
    • +1
      Я только что доделал плагин под woocommerce который позволяет делать поддержку многих валют, и все конвертируется в основную. Для этого я использую yahoo api и дополнительно центробанк, т.к. Он быстрее обновляется
      • 0
        Спасибо за подсказку!

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.