Продолжается разработка модуля Shopkeeper для MODx Revolution. Этот модуль (и сниппет) многим уже известен и используется на MODx Evolution для создания интернет-магазинов.
Кроме переноса Шопкипера на Рево планируется полный рефакторинг кода с учетом накопленного опыта. Но уже сейчас можно использовать версию beta1 для создания простенького магазина.
Что уже готово:
- Полная автоматическая установка из системы управления;
- Добавление товаров в корзину;
- Отправка заказа на почту менеджеру магазина и в модуль управления заказами;
- Возможность устанавливать заказам статусы;
- Возможность редактировать статусы и их цвета;
- Возможность размещения товаров в отдельном контексте MODX (удобно для индивидуальной настройки каталога);
- Привязка заказов к зарегистрированным пользователям.
Установить пакет очень просто:
- Загрузите архив shopkeeper-2.0-beat1.transport.zip в папку core/packages/ вашего сайта.
- В панеле управления перейдите «Система» -> «Управление пакетами» -> «Добавить новый пакет» -> «Искать пакеты локально» -> «Дальше».
- В таблице пакетов появится пакет «shopkeeper». Нажмите кнопку «Установить».
- Закончите установку.
Как и ранее по-максимуму используются готовые дополнения для MODX. Для вывода товаров используется сниппет getResources. Для отправки заказа на почту и в систему управления заказами используется сниппет FormIt. Для регистрации и авторизации можно использовать сниппет Login. В комплект также входит сниппет shk_fihook, который используется как hook для FormIt, а также плагин contextSwitch для переключения контекстов.
Размещение товаров в отдельном контексте не обязательно, но рекомендуется, если планируется много товаров (больше 2000). Это позволит для каталога сделать индивидуальные настройки, например, при необходимости отключить дружественные URL (friendly_urls).
В целом отдельный контекст это почти тоже самое как отдельная таблица БД в Evolution. Я пока не тестировал скорость работы при большом кол-ве товаров (ресурсов MODX), но при отключенных friendly_urls (как временное решение) проблем быть не должно.
Создание контекста для товаров:
- в меню перейти «Система» -> «Контексты», нажать кнопку «Создать новый». В поле «Ключ контекста» ввести «catalog». Далее нажать правой кнопке на строке контекста в списке и выбрать «Обновить контекст».
- Настройки контекста:
site_start: 20
error_page: 21
unauthorized_page: 22
где 20 — ID документа каталога, 21 — страница 404, 22 — страница 403 (доступ запрещен).
- Создать в контексте «catalog» документ-контейнер «Каталог». Внутри создать структуру каталога.
- В контекте «web» создать документ-ссылку «Каталог», в поле «Ссылка» ввести «catalog/».
- Если используются дружественные URL и сервер Apache, в .htaccess заменить строку
наRewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
RewriteRule ^(catalog)?(\/)?(.*)$ index.php?c=$1&q=$1$2$3 [L,QSA]
- Проверить чтобы был установлен плагин contextSwitch (core/components/shopkeeper/elements/plugins/context_switch.php).
Пример вызова сниппета Shopkeeper:
[[!Shopkeeper? &cartType=`full`&flyToCart=`image`&orderFormPage=`12`]]
Вывод товаров из контекста «catalog»:
[[!getResources?
&context=`catalog`
&tplPath=`[[++core_path]]components/shopkeeper/elements/chunks/ru/`
&tpl=`@FILE chunk_shopStuff.tpl`
&includeTVs=`1`
&parents=`9`
]]
Обновлено
Уже доступна версия beta3 (можно скачать из панели управления).