Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Внимание, этот компонент требует PHP
8.2
или выше!
Внимание, этот компонент требует MODX 3 или выше.
MiniShop3 разработан специально для MODX Revolution 3.x и использует все преимущества новой версии:
Улучшенная архитектура
Совместимость
MiniShop3 сохраняет обратную совместимость с miniShop2 на уровне:
Системные требования
Зависимости MODX
MiniShop3 использует Vue 3 для современного интерфейса админки. Пакет VueTools должен быть установлен до или вместе с MiniShop3. При отсутствии пакета будет показано сообщение с инструкцией по установке.
Composer библиотеки
MiniShop3 использует следующие PHP библиотеки (включены в пакет):
nikic | ^1.3 | Маршрутизация REST API
rakit/validation | ^1.4 | Валидация данных форм и API
intervention/image | ^3.0 | Обработка изображений (ресайз, водяные знаки)
robmorgan/phinx | ^0.16 | Миграции базы данных
ramsey/uuid | ^4.7 | Генерация UUID для токенов
- PHP 8.1+ — современный синтаксис, типизация, атрибуты
- Namespaces — все классы организованы в пространстве имён MiniShop3\
- PSR-4 автозагрузка — через Composer
- Миграции Phinx — версионирование структуры БД
Улучшенная архитектура
- REST API — полноценный API для headless-интеграций
- Service Container — зависимости через DI-контейнер MODX
- Vue 3 + PrimeVue — современный интерфейс админки через VueTools
- Современный фронтенд — без jQuery, нативный JavaScript
Совместимость
MiniShop3 сохраняет обратную совместимость с miniShop2 на уровне:
- Имена сниппетов (msProducts, msCart, msOrder и др.)
- Структура чанков и плейсхолдеров
- Параметры сниппетов
Системные требования
- MODX Revolution | 3.0.0+
- PHP | 8.1+
- MySQL | 5.7+ / MariaDB 10.3+
Зависимости MODX
- pdoTools 3.x — для работы сниппетов и шаблонизатора Fenom
- VueTools — Vue 3 и PrimeVue для административного интерфейса
- Scheduler (опционально) — для фоновых задач (импорт, уведомления, очистка)
MiniShop3 использует Vue 3 для современного интерфейса админки. Пакет VueTools должен быть установлен до или вместе с MiniShop3. При отсутствии пакета будет показано сообщение с инструкцией по установке.
Composer библиотеки
MiniShop3 использует следующие PHP библиотеки (включены в пакет):
nikic | ^1.3 | Маршрутизация REST API
rakit/validation | ^1.4 | Валидация данных форм и API
intervention/image | ^3.0 | Обработка изображений (ресайз, водяные знаки)
robmorgan/phinx | ^0.16 | Миграции базы данных
ramsey/uuid | ^4.7 | Генерация UUID для токенов
[2026-04-27] 🚀 Версия 1.10.1-beta1
Тип релиза: PATCH (beta) — точечные исправления и восстановление контракта событий
🐛 Исправлено
Manager API — события жизненного цикла позиции заказа (#208, closes #207):
- Vue-админка дёргает
msOnBefore/Create/Update/Remove OrderProductчерезUtils::invokeEventпри добавлении/изменении/удалении позиций заказа — раньше события были зарегистрированы вevents.php, ноOrdersControllerих не вызывал, и сторонние подписчики (ms3PromoCode и т.п.) не срабатывали. - Before-hooks могут заблокировать операцию через
Response::error(400). After-hooks логируются на WARN-уровне с маркером(persistence already done)— ошибка плагина послеsave()/remove()не возвращается клиенту как 4xx, потому что persistence уже произошёл.
Опции товара — переключение групп больше не сбрасывает значения (#230):
ProductOptionsTab.vueрендерит все группы сразу сv-showвместоv-if-style монтирования только активной — локальныеvalue = ref(...)и hidden inputs сохраняются между переключениями вкладок.- Раньше значения, введённые в неактивной группе, терялись и не доезжали на бэкенд (MODX/ExtJS
BasicForm.getValues()собирает только инпуты, физически присутствующие в DOM на момент сабмита).
Опции товара — висячие modcategory_id после удаления категории (#228):
- Плагин
MiniShop3подписан наOnCategoryRemove— обнуляетmsOption.modcategory_idдля всех опций, ссылавшихся на удалённуюmodCategory. Зеркалит штатный паттерн MODX, гдеmodCategory::remove()сбрасываетcategoryуmodChunk/modPlugin/modSnippet/modTemplate/modTemplateVar. - Без фикса в карточке товара мог появиться второй таб «Без группы» с разными мёртвыми
modcategory_id.
OrderFinalizeService вызывал несуществующие события (#217):
msOnBeforeFinalizeOrder/msOnFinalizeOrderнигде не были зарегистрированы какmodEvent, подписать плагин через UI было нельзя. Заменены наmsOnBeforeMgrCreateOrder/msOnMgrCreateOrder— уже существовали в билдере, но никем не вызывались.
Импорт товаров — неправильный ключ system setting для дефолтного шаблона (#210):
Processors\Utilities\Import\Fields::getTvFields()использовал несуществующий ключms3_product_default_template. Корректный ключ —ms3_template_product_default(используется вcontrollers/product/create.class.php). Из-за опечатки на экране импорта блок «TV-поля» перечислял все TV вместо только привязанных к шаблону-дефолту.
Cart API — отсутствующий лексикон (#223, closes #222):
- Добавлен ключ
ms3_cart_get_successвlexicon/{ru,en}/cart.inc.php— ключ использовался вCart::get(), но без перевода MODX писал в логLanguage string not found.
ServiceRegistry — лишний debug-шум в логах (#225, closes #224):
- На штатной установке без кастомизации сервисов
loadMainConfig()/loadAddonConfigs()писали DEBUG про отсутствие дефолтных override-путей. Теперь логирование срабатывает только если оператор явно задалms3_services_config/ms3_services_addons_dirчерез system settings, а файла/папки по этому пути нет.




Последние обсуждения в сообществе MODX.pro