Оновлена збірка інтернет-магазину на 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, інакше не буде автоматичного оновлення цієї валюти.

Власне все. Нічого додатково робити не треба. Процесор, повертається дані товарів, автоматично буде перераховувати вартість товарів.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.