msOrderTranslator

Открывает заказы miniShop2 наружу как набор API-эндпоинтов
Автор дополнения
Артур Шевченко
Пакетов
31
Закачек
3 488
Обычно отвечает в течение суток
Автор дополнения
Пакетов
31
Закачек
3 488
Обычно отвечает в течение суток
Версия 0.4.0-pl
Дата выпуска 05.08.2026
Загрузки 0
Просмотры 115
Внимание, этот компонент несовместим с MODX 3.
Что делает
  • Публикует заказы miniShop2 вашего сайта как готовый набор API-эндпоинтов: список и карточка заказа, история, создание, изменение, удаление, групповые операции.
  • Отдельно открыты позиции заказа и справочники — статусы, доставки, оплаты, пользователи, товары и их опции.
  • Все операции выполняются штатными процессорами miniShop2, поэтому логика заказа, статусы и уведомления остаются прежними.
Безопасность
  • Транспорт, авторизация по токенам, ограничение частоты запросов, идемпотентность и журнал вызовов — на стороне пакета mxApi.
  • Клиент не может назвать произвольный процессор: наружу открыт фиксированный список именованных эндпоинтов, который виден в каталоге mxApi.
  • Права на чтение, запись и удаление выдаются отдельно и проверяются правами MODX и miniShop2.
Требования
  • MODX Revolution 2.x, PHP 7.4+
  • miniShop2 4+
  • Пакет mxApi

msOrderTranslator changelog

0.4.0-pl

  • Передатчик переведён на mxApi и больше не реализует транспорт сам. Удалены: точка входа assets/components/msordertranslator/api/v1/index.php, Basic Auth с IP-allowlist (Auth.php), лимит частоты (RateLimiter.php), сериализация ответа (Response.php), роутер на 13 маршрутов (Translator.php), прокси процессоров с whitelist на 21 процессор и сервисным пользователем (ProcessorProxy.php), собственный аудит-лог (AuditLogger.php) и операционное логирование (Logger.php). Всё это теперь у mxApi: bearer-токены, права namespace mxapi, лимит частоты, идемпотентность и журнал вызовов.
  • Пакет поставляет провайдер эндпоинтов (core/components/msordertranslator/src/): ms2.orders. (список, карточка, история, создание, изменение, удаление, групповая операция, состав колонок), ms2.orders.products. (список, позиция, добавление, изменение, удаление) и ms2.refs.* (статусы, доставки, оплаты, пользователи, товары, карточка товара, опции, автодополнение).
  • Режим «клиент присылает имя процессора» удалён вместе с whitelist: каждый справочник стал отдельным именованным эндпоинтом, назвать процессор клиент не может, а каталог mxApi показывает точный список открытого.
  • Права эндпоинтов mxapi_ms2_orders_read / _write / _delete и mxapi_ms2_refs_read добавляются в шаблон политики mxapiTemplate резолвером (resolver.acl.php).
  • Регистрация в mxApi — статичный плагин msOrderBridgeApi на событии mxApiOnRegisterEndpoints: класс провайдера лежит в пакете, MODX его не автозагружает, поэтому плагин подключает файлы и возвращает имя класса.
  • Доменная логика ms2 осталась в пакете: ResponseNormalizer (резолв колонок addr*, payment, properties_, vendor_*) вызывается хуком transformPayload, а фильтр товаров по контексту заказа — процессором bridge/product/getlist, который теперь публикуется как GET /ms2/refs/products.
  • Сводка по выборке (num, sum, month_total, month_sum), которую miniShop2 отдаёт рядом со списком заказов, уходит в meta ответа (хук extraMeta): панель над гридом читает её и без этих полей падала.
  • Настройки транспорта и доступа удалены из пакета, а старые ключи вычищаются из базы при установке (resolver.cleanup.php): оставленные значения Basic Auth и IP-allowlist выглядели бы рабочими ограничениями, которых больше нет.
  • Лексикон приведён к фактическому составу настроек: подписи удалённых (Basic Auth, IP-allowlist, сервисный пользователь, лимит частоты, whitelist, аудит-лог) убраны, добавлен английский файл — без него грид настроек показывал сырые ключи всем, кто работает в англоязычной админке. Области настроек подписаны.
  • Резолвер уборки удаляет устаревшие настройки прямым SQL: удаление через xPDO оставляло в таблице строку с пустым ключом — в гриде она выглядела как безымянная настройка, внутри которой лежал старый пароль Basic Auth.
  • Требуется mxApi. Зависимость мягкая: резолвер и плагин сообщают в лог, если mxApi не установлен, но установку пакета не блокируют.

0.3.3-pl

  • Added operational/debug logging via mxLogger (new class msOrderTranslatorLogger). The durable AuditLogger (JSONL audit trail) is unchanged and keeps writing always — mxLogger only carries operational/debug events: auth failures, rate-limit hits, API call summaries and unhandled exceptions.
  • New settings: msordertranslator.debug (on/off, default No) and msordertranslator.log_level (debug|info|warning|error, default debug). Consistent with mxlogger.min_level.
  • Tags: base msordertranslator + order, stage tags auth / ratelimit / request / translate. process_uid groups all operational logs of one request. If mxLogger is not installed, logging is silently skipped (audit trail still works).
  • The previous $modx->log INFO request line and ERROR exception line now also go through mxLogger; the critical exception is additionally kept in the MODX error log.

0.3.2-pl

  • Product picker is filtered by the order context (bridge/product/getlist adds WHERE context_key).

0.3.1-pl

  • The bridge processor set is built into the code (always allowed); allowed_processors is now for EXTRA processors only. Reinstalling the package no longer requires editing the whitelist setting.

0.3.0-pl

  • Whitelisted reference processors so the receiver reads statuses, deliveries, payments, users and products from the transmitter, not the local stage.

0.2.0-pl

  • auth_pass setting holds a plain Basic Auth password (a password_hash/crypt hash is also accepted); the hash-only setting was removed.

0.1.0

  • Order and order-product API (REST + direct-processor route) over Basic Auth, IP allowlist, processor whitelist, rate limit and JSONL audit log.
  • Configurable grid columns: order_grid_fields / order_productfields settings, GET /orders/fields, and a normalizer that resolves prefixed tokens (properties incl. nested a:b, relation/address fields) — no field whitelist, all miniShop2 fields pass through.

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