Огляд Shopkeeper 3.0 для MODX Revolution



У цій статті я розповім що нового в Shopkeeper 3.0, які нові можливості і які відмінності від попередньої версії. Але спочатку трохи історії.

Історія створення

Перша версія Shopkeeper вийшла більше 5 років тому, в 2009 році. Тоді дуже не вистачало рішення для створення інтернет-магазину на MODX. Shopkeeper не був першим, але був досить не погано затребуваний. Досі хтось використовує його на MODX Evolution, хоча остання версія для цієї платформи вийшла в 2011 році. Потім був випущений SHK 2.x для MODX Revolution. Для Revo першим був компонент VisionCart, але він мені відразу не сподобався заплутаним інтерфейсом. Його розвиток схоже стихло ще в 2011 році. Незабаром за Шопкипером вийшли ще гідні компоненти інтернет-магазинів і приємно усвідомлювати, що все це випущено російськими розробниками. Тепер прийшов час Shopkeeper 3.


Що нового в Shopkeeper 3


Інтерфейс створений з використанням Bootstrap і AngularJS. Звичайно, схрещування цих інструментів з ExtJS, який використовується у MODX Revo, може здатися зайвим, але вживаються вони досить не погано. Після того як я спробував AngularJS використовувати щось інше зовсім не хотілося. Тим більше це зайвий раз доводить універсальність MODX. Думаю ви не будете розчаровані цим рішенням.

У конфігурації компонента тепер можна задати не тільки статуси замовлень, але і курси валют, поля таблиці замовлень, контактні дані замовлень, методи доставки та способи оплати.

Для доставки можна вказати суму замовлення, при якій доставка стане безкоштовною. Для кожного статусу замовлення можна вказати свій шаблон листа користувачу, якщо залишити поле порожнім, лист відправлятися не буде.

Є розділ «Статистика». Поки він тільки показує статистику кількості замовлень по місяцях, але планується його розширення.


Так виглядає редагування замовлення:


Сніппети і плагіни

Сниппет Shopkeeper в шаблоні сайту тепер потрібно викликати так:
[[!Shopkeeper3@cart_catalog]]

cart_catalog — Ім'я набору параметрів.
Рекомендується всі параметри вказувати в наборі параметрів, т. к. потрібно синхронізувати ці параметри при аякс-запиті.

Можна виводити дві і більше кошика на одній сторінці. В налаштуваннях системи потрібно перерахувати всі використовувані набори параметрів для SHK (параметр «shk3.property_sets»), а в чанке кошика для оберточного елемента додати атрибут «data-shopcart» з номером набору параметра. За цим номером буде проводитися оновлення кошика.
Приклад чанка кошика товарів
<div class="shop-cart" data-shopcart="1">
<div class="shop-cart-head"><b>Кошик</b></div>
<div class="empty">
<div class="shop-cart-empty">Порожньо</div>
</div>
</div>
<!--tpl_separator-->
<div class="shop-cart" data-shopcart="1">
<div class="shop-cart-head"><a name="shopCart"></a><b>Кошик</b></div>
<div class="full">
<form action="[[+this_page_url]]#shopCart" method="post">
<fieldset>
<div style="text-align:right;">
<a href="[[+empty_url]]" id="shk_butEmptyCart">Очистити кошик</a>
</div>
<table width="100%">
<colgroup>
<col width="25%" />
<col width="40%" />
<col width="25%" />
<col width="10%" />
</colgroup>
<tbody>
[[+inner]]
</tbody>
</table>
<div style="text-align:right;">
Доставка: [[+delivery_name]] ([[+delivery_price]] [[+currency]])
</div>
<div style="text-align:right;">
Загальна сума: <b>[[+price_total]]</b> [[+currency]]
</div>
<noscript>
<div><input type="submit" name="shk_recount" value="Перерахувати" /></div>
</noscript>
<div class="cart-order">
<a href="[[+order_page_url]]" id="shk_butOrder">Оформити замовлення</a>
</div>
</fieldset>
</form>
</div>
</div>


Як і у версії 2.x, чанк складається з двох частин зі спеціальним роздільником
<!--tpl_separator-->

Перша частина — чанк порожній кошика товарів.
Друга частина — чанк кошики з товарами.

Вже готові до використання опціональні доповнення:
shkOptions — новий фрагмент для виведення конфігурації Shopkeeper. Наприклад, можна виводити список способів доставки і оплати.
hk_fihook — хук для FormIt, який використовується для відправки листів після оформлення замовлення.
num_format — сниппет-модифікатор для поділу чисел цін на розряди.
shk_curr_rate — сниппет-модифікатор для виведення цін за курсом, якщо в магазині використовується мультивалютність.
shk_contextSwitch — плагін для автоматичного перемикання контекстів.
shk_updateInventory — плагін для обліку кількості товарів на складі.
shk_multicurrency — плагін для перерахунку цін при зміні валюти.
Докладніше в документації, яка завжди йде в комплекті ("/core/components/shopkeeper3/docs/readme.txt").

Переписані shopkeeper.js та shopkeeper.class.php, але по функціоналу відмінності не значні.

Як перейти з Shopkeeper 2.x 3.0

Приблизний список дій з оновлення:
  1. Зробити резервну копію сайту (файлів БД).
  2. Видалити вручну сніппети і плагіни в категорії «Shopkeeper» (від старої версії). Сам компонент видаляти не обов'язково.
  3. Встановити SHK 3 і оновити виклики фрагменту Shopkeeper в шаблонах.
  4. Створити набори параметрів фрагменту. Провести налаштування у відповідності з новою документацією.
  5. Відредагувати чанкі кошика, додати атрибут «data-shopcart».
  6. Налаштувати нові плагіни, якщо вони використовуються.
  7. Якщо використовується висновок способів доставки, оновити відповідно до нової документацією (фрагмент «shkOptions»).
  8. Якщо ви створювали свої фрагменти або плагіни і використовували звернення до таблиць SHK в БД, потрібно змінити імена пакету і об'єктів в коді.
Таблиці в БД не сумісні, тому історія замовлень при переході зі старої версії буде втрачена. Мигратора поки немає.

На даний момент доступна версія Shopkeeper 3.0rc5.

Компонент в репозиторії MODX: http://modx.com/extras/package/shopkeeper3
Сайт проекту: http://modx-shopkeeper.ru/
Форум підтримки: http://modx-shopkeeper.ru/forum/
Вихідний код: https://bitbucket.org/andchir/shopkeeper-3
Демо-сайт: http://demo.modx-shopkeeper.ru/ (в розробці, працює не все, що заплановано)

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

0 коментарів

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