
Разработка
Содержание
- События — точки подключения плагинов
- Web API — фронтенд и Nuxt, карта эндпоинтов
- API Router — маршрутизация, middleware, свои роуты
- Scheduler — фоновые задачи
- Модели и схема БД — модели xPDO
- Сервисный слой — DI-контейнер, расширение и замена сервисов
- JavaScript API — Headless API для SPA (Vue, React, Vanilla JS)
- Frontend JavaScript — модули на стороне сайта, включая UI-слой
- Интеграция вкладок товара
- Интеграция вкладок заказа
- Backend API — товары, заказы, опции и покупатели из PHP-кода
Manager API и процессоры
С 1.10+ экраны заказов, покупателей, настроек и утилит работают через Manager REST API (Controllers\Api\Manager\* на FastRoute). Карточка товара и категории остаются обычным экраном ресурса MODX. Vue там только во вкладках.
Процессоры (MiniShop3\Processors\*) остались в работе у:
- прежнего коннектора и вызова
runProcessor()из PHP; - утилит, где контроллер вызывает процессор явно:
ImportController(импорт товаров) иUtilitiesGalleryController(массовые операции с галереей), оба через трейтRunsMs3Processors; - авторизации покупателя в Web API: вход, регистрация, выход, запрос и сброс пароля идут через
Processors\Api\Customer\*.
Остальные контроллеры Manager API процессоры не вызывают — они работают через сервисный слой.
События при этом теряются не везде. Заказы, их статусы и позиции идут через сервисы, которые поднимают события сами: плагин на msOnChangeOrderStatus из админки сработает.
Vue-CRUD справочников пишет в базу напрямую, минуя Processors/Settings/Vendor/*, поэтому плагины на CRUD-события производителя из админки не сработают. У доставок и оплат в events.php зарегистрированы события стоимости, не CRUD. У типов связей CRUD-событий нет. См. События производителей.
Headless-фронтенд работает через Web API (/api/v1/*). Процессоры там остались только в авторизации покупателя — плагины на её события из headless-клиента сработают.
