Pull to refresh

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

Reading time3 min
Views7.5K
Больше года назад я писал про нашу готовую сборку интернет-магазина на базе 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, иначе не будет автоматического обновления этой валюты.

Собственно все. Ничего дополнительно делать не надо. Процессор, возвращаемый данные товаров, автоматически будет пересчитывать стоимость товаров.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+1
Comments2

Articles

Change theme settings