MiniShop3

Современный компонент интернет-магазина для MODX3
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Николай Савин
Пакетов
20
Закачек
32 666
Автор дополнения
Пакетов
20
Закачек
32 666
Версия 1.11.1-beta1
Дата выпуска 22.05.2026
Загрузки 459
Просмотры 2 831
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
MiniShop3 разработан специально для MODX Revolution 3.x и использует все преимущества новой версии:

  • 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-05-22] 🚀 Версия 1.11.1-beta1

Тип релиза: PATCH (beta) — точечные хотфиксы установки и каталога с превью

🐛 Исправлено

SQL-ошибка в msProducts / msCart / msGetOrder при includeThumbs (#293):

  • Хелпер ProductThumbnailJoin::buildLeftJoinOn() оборачивал результат $modx->getTableName() ещё одной парой backticks. xPDO getTableName() уже экранирует имя таблицы — в итоге в runtime SQL появлялись тройные backticks вокруг имени, MySQL отвергал запрос как Error 42000. Любой вызов includeThumbs=... на витрине после установки 1.11.0-beta1 отдавал пустой каталог.
  • Фикс — убраны внешние backticks вокруг %4$s в sprintf-шаблоне ProductThumbnailJoin. В код добавлен комментарий чтобы не наступить повторно.

Установка пакета 1.11.0-beta1 падала с Data too long for column 'metadata' (#296):

  • В _build/build.php через setPackageAttributes передавался полный core/components/minishop3/docs/changelog.txt (~33 KB истории с 1.0.0-alpha) + license.txt (~15 KB) + readme.txt. На MODX-установках с колонкой modx_transport_packages.metadata типа TEXT (лимит 65 535 байт) сериализованные attributes не помещались — INSERT падал с SQLSTATE 22001 / 1406. В предыдущих релизах changelog был меньше и проблема не проявлялась.
  • В transport metadata теперь идёт только блок текущего релиза (~7 KB вместо 33 KB) через новый метод readLatestChangelogEntry(). Полный changelog по-прежнему есть внутри пакета (docs/changelog.txt) — пользователь видит полную историю в файле, а в карточке пакета MODX — последний релиз.

[2026-05-21] 🚀 Версия 1.11.0-beta1 — ⚠️ Breaking changes

Числовой контракт сниппетов (#242, breaking): плейсхолдеры цен и веса в msOrder, msGetOrder, msCart, msProducts, msOrderTotal теперь возвращают float (не строку с валютой). Для вывода используйте *_formatted. Замените {$order.cost} на {$order.cost_formatted} в кастомных чанках.

Группировка опций — модель msOptionGroup (#10, breaking): заменила modCategory. Миграция данных автоматическая. Если кастомный код читал msOption.modcategory_id — теперь это option_group_id. Алиас category_name в snippet-данных опции → group_name.

Удалён endpoint GET /api/mgr/options/modcategories — заменён на /api/mgr/option-groups (CRUD).

Новое: window.ms3.refresh() API для интеграции с mFilter (#274), пересчёт стоимости заказа в админке (#212), отрицательные стоимости доставки/оплаты как скидки (#211), бейджи скидка/наценка во Vue (#265), расширенный редактор validation_rules (#215).

Полный список изменений — CHANGELOG.md в репозитории.

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