Чеклист готовности сайта к MiniShop3

Ниже чеклист для интегратора и блок про отличия MiniShop3 от miniShop2. Факты взяты из документации MS3 и страницы отличий от MS2.

miniShop2 и MiniShop3 — разные платформы


miniShop2 работает на MODX 2.x (PHP 7.0+, pdoTools 2.x). MiniShop3 — только на MODX 3.0+ (PHP 8.1+, pdoTools 3.x). Поставить MS2 на MODX 3 нельзя. На MODX 3 магазин — только MS3.

Переход с MS2: сначала MODX 3, потом MiniShop3. План миграции: Отличия от miniShop2.


Зачем MS3, если MS2 ещё живёт на MODX 2


Что реально заложено в MS3:

  • MODX 3 — namespaces, PSR-4, DI-контейнер ($modx->services->get('ms3') вместо getService('minishop2')).
  • Phinx-миграции вместо схемы xPDO + build: версионирование структуры БД при обновлениях пакета.
  • REST Web API (/assets/components/minishop3/api.php) — корзина, заказ, клиент для headless и SPA. У MS2 — единый action.php.
  • Токенная авторизация API (cookie ms3_token, заголовок MS3TOKEN). У MS2 API без отдельной авторизации клиента.
  • Админка на Vue 3 + PrimeVue через VueTools. MS2 — ExtJS-интерфейс прежнего поколения.
  • Фронтенд без jQuery — нативный JS, объект ms3, система hooks вместо callbacks miniShop2.
  • Сущность msCustomer — клиент магазина отдельно от modUser, сохранённые адреса, верификация email, авторегистрация при заказе (настройки ms3_customer_*).
  • Новые сниппетыmsCustomer (личный кабинет), msOrderTotal (вместо msMiniCart).
  • Настройки API и безопасности — CORS, rate limit, debug API (ms3_cors_allowed_origins, ms3_rate_limit_max_attempts и др.).
  • События плагинов — имена в основном те же (msOnBeforeAddToCart и т.д.), плюс события клиента и API (msOnCustomerCreate, msOnBeforeAPIRequest).
Что переносится проще: имена сниппетов (msProducts, msCart, msOrder), структура плейсхолдеров в чанках, большинство параметров сниппетов. Что придётся менять: настройки ms2_*ms3_*, JS miniShop2ms3, data-атрибуты форм, PHP-классы с namespaces.

Минимум по версиям

  • MODX Revolution — 3.0.0+, лучше 3.2.x. Где: менеджер, низ страницы
  • PHP — 8.1+, на проде 8.2 или 8.3. Где: php -v в SSH и панели хостинга
  • MySQL / MariaDB — 5.7+ / 10.3+. Где: SELECT VERSION();
  • pdoTools — 3.x. Где: Пакеты → Установщик
  • VueTools — установить до MS3. Где: Пакеты → Установщик
  • Scheduler — опционально. Для чего: импорт CSV, фоновые задачи

1. PHP: версия и расширения


PHP в браузере (через MODX) и php в CLI на shared-хостинге иногда разные. Проверьте оба.

php -v
php -m | grep -E 'pdo|mbstring|json|curl|gd|intl|zip|fileinfo'

  • pdo_mysql — база
  • mbstring, json — ядро MODX и API
  • curl — платежи, внешние запросы
  • gd или imagick — Intervention Image в составе пакета
  • intl — форматирование цен
  • zip — распаковка транспортных пакетов
  • fileinfo — загрузка файлов
В php.ini для магазина с картинками:
  • memory_limit ≥ 256M
  • upload_max_filesize и post_max_size ≥ 32M
  • max_execution_time ≥ 120 на время установки пакета

2. pdoTools 3


Сниппеты MS3 работают через pdoTools и Fenom. Ветка 2.x — для MODX 2, не для MS3.

Проверка: Пакеты → Установщик → pdoTools версии 3.x. Сниппеты pdoPage, pdoResources в менеджере открываются без ошибок.

3. VueTools до MiniShop3


Админка MS3 на Vue 3 + PrimeVue. VueTools отдаёт их через import maps. Без пакета — заглушка с просьбой установить VueTools.

Порядок установки:
  1. pdoTools 3
  2. VueTools
  3. Scheduler (если нужен)
  4. MiniShop3
После VueTools откройте Дополнения → MiniShop3. Раздел заказов и товаров грузится без ошибок в консоли браузера (F12).

4. Права на папки


Установщик пишет в core/packages/, core/cache/, assets/components/. Phinx при установке создаёт таблицы и трогает core/components/minishop3/.

Веб-сервер должен писать в:
  • core/cache/
  • core/packages/
  • assets/components/
Тест: загрузите файл через File Manager в менеджере. Permission denied в логе — чините до MS3.

5. Scheduler


Для базового магазина не обязателен. Нужен для импорта по расписанию, фоновых задач из core/components/minishop3/elements/tasks/.

Cron раз в минуту:

* * * * * php /path/to/site/core/components/scheduler/run.php

Без cron задачи не выполнятся.

6. Репозиторий пакетов


MS3 в каталоге modstore.pro / modx.com. Нет доступа к репозиторию — .transport.zip с релизов GitHub в core/packages/Искать пакеты локально.

7. Переход с miniShop2



Сайт на MODX 2 + miniShop2:
  1. Миграция на MODX 3 (отдельный проект, со своим чеклистом).
  2. Установка MiniShop3 по порядку выше.
  3. Перенос настроек ms2_*ms3_*, шаблонов, JS, плагинов на события.
Снимите бэкап БД и файлов. Прогоните на staging.

8. Staging: полный цикл


  1. Установка пакетов.
  2. Категория и товар.
  3. Добавление в корзину.
  4. Тестовый заказ.
  5. Раздел MS3 в админке.
Дальше: Быстрый старт.

Чеклист в тикет


[ ] MODX 3.0+ (не MODX 2)
[ ] PHP 8.2+ (cli = web)
[ ] pdo_mysql, mbstring, json, curl, gd/imagick, intl, zip, fileinfo
[ ] pdoTools 3.x
[ ] VueTools до MS3
[ ] Scheduler + cron (если нужен импорт/фон)
[ ] Права на core/cache, core/packages, assets/components
[ ] Репозиторий modstore или transport.zip
[ ] С MODX 2 + MS2 — план миграции на MODX 3 + MS3
[ ] Бэкап БД и файлов
[ ] Тестовый заказ на staging

Установка упала


  • core/cache/logs/error.log
  • лог PHP-FPM / Apache
  • консоль браузера на странице установщика
Частые причины: нет VueTools, PHP ниже 8.1, pdoTools 2.x, сайт на MODX 2, нет прав на core/packages, таймаут на слабом хостинге.

Документация MiniShop3 ·
Отличия от miniShop2 ·
Быстрый старт ·
GitHub
Иван Бочкарев
9 часов назад
modx.pro
1
65
+4
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0