
- MODX 3
- PHP 8.2
- miniShop3


Все ключи в пространстве имён msfastorder. В БД: префикс msfastorder_. Область в интерфейсе — msfastorder или msfastorder_main (зависит от версии транспорта).
Меняйте в Настройки → Системные настройки, фильтр msfastorder. Последовательность: Быстрый старт.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
msfastorder_method | текст | MS | Режим: MS — заказ в MiniShop3; MAIL — только письмо менеджеру. Параметр сниппета &method= не читается PHP |
msfastorder_required_fields | текст | receiver,phone | Обязательные поля на сервере (через запятую): receiver, phone, email, city, comment |
msfastorder_email_manager | текст | (пусто) | Email менеджера в режиме MAIL. Цепочка: msfastorder_email_manager → ms3_email_manager → emailsender. Пустой итог — заказ MAIL не создаётся |
msfastorder_phone_mask | текст | +7 (999) 999-99-99 | Маска поля телефона в модалке (PhoneMask в JS) |
msfastorder_success_redirect | текст | (пусто) | URL редиректа после успеха, если нет payment_link. При наличии payment_link — редирект на оплату через ~2 с |
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
msfastorder_payment_id | число / текст | 0 или пусто | ID активного способа оплаты MS3. Для ЮKassa — ID «Оплата через ЮKassa» |
msfastorder_delivery_id | число / текст | 0 или пусто | ID способа доставки MS3 |
msfastorder_default_image | текст | /assets/components/minishop3/img/web/ms3_small.png | Превью товара в модалке, если у товара нет изображения |
При установке резолвер может создать способы Fast Order Payment / Fast Order Delivery и записать ID в эти настройки.
| Ключ MS3 | Зачем |
|---|---|
ms3_order_success_page_id | Страница «Спасибо» с просмотром заказа (msorder=uuid) для DefaultPayment |
ms3_order_redirect_thanks_id | Запасная страница «Спасибо», если ms3_order_success_page_id пуст. Дальше запасной вариант — site_start |
ms3_status_new | Статус нового заказа после быстрого оформления |
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
msfastorder_modal_library | текст | native | Модалка: native, bootstrap, fancybox |
msfastorder_connector_url | текст | /assets/components/msfastorder/connector.php | URL AJAX (только POST) |
msfastorder_assets_url | текст | /assets/components/msfastorder/ | База для css/msfo.min.css и js/msfo.min.js |
msfastorder_copy_count | да/нет | Да | Копировать количество со страницы в модалку. Нет — в модалке всегда 1 (msfoConfig.copyCount) |
Сниппет всегда подключает msfo.min.css и msfo.min.js из msfastorder_assets_url. Свой CSS/JS — вручную в шаблоне. Отдельных ключей настроек нет.
Для bootstrap на странице нужен глобальный bootstrap.Modal. Для fancybox — window.Fancybox. Подключайте msfo.min.css после CSS Fancybox.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
msfastorder_prefix_enabled | да/нет | Нет | Включить проверку кода страны на сервере |
msfastorder_prefix_country | текст | 7 | Код страны без + |
msfastorder_prefix_length | число | 11 | Длина номера для проверки префикса: если число цифр не совпало с этим значением, префикс не проверяется (ошибки нет). Общая длина 10–15 цифр по-прежнему допустима |
Ограничение валидации префикса
msfastorder_prefix_length не отклоняет номера «не той» длины: при несовпадении длины проверка префикса пропускается. Это поведение текущего кода, не настройка «строгой длины».
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
msfastorder_debug | да/нет | Нет | В JSON-ответах connector при ошибках добавляется debug. Доступен action=rate-limit/reset. Отключает rate limit на order/create (удобно на тестовом стенде) |
msfastorder_rate_limit_attempts | число | 5 | Лимит успешных order/create с одного IP за окно |
msfastorder_rate_limit_window | число | 300 | Длина окна в секундах (5 минут) |
CSRF: токен в $_SESSION['msfastorder.csrf_token'], в HTML — window.msfoConfig.csrfToken. Плагин msfastorder_web обновляет конфиг при OnWebPagePrerender, чтобы токен не «застывал» в кэше страницы. Подробнее: AJAX API.
variant_id).generateEmail() (отдельной настройки нет).payment_link (если способ оплаты это поддерживает).msfastorder_logs.msfo_email_* не отправляются. Уведомления MS3 настраиваются в MiniShop3.URL возвращает обработчик оплаты MiniShop3 (Payment::getPaymentLink()). Отдельный URL в msFastOrder не задаётся — только msfastorder_payment_id.
Где используется:
data.payment_link в ответе order/createFormHandler.renderSuccess)msfo:order:successВ письме клиенту (msfo_email_customer, режим MAIL) плейсхолдер {$payment_link} в шаблоне есть, но штатный поток MAIL его не передаёт. Кнопка оплаты только на экране успеха в JS.
| Тип способа оплаты | payment_link |
|---|---|
| DefaultPayment | Страница «Спасибо» с ?msorder={uuid}; при msorder=num PHP может переписать URL на uuid (см. ниже) |
| ЮKassa (msp3YooKassa) | URL checkout от обработчика MS3 |
Нормализация DefaultPayment: MiniShop3Integration::normalizePaymentLink() переписывает msorder={num} на msorder={uuid}, если uuid заказа 36 символов (канонический UUID v4). Без библиотеки Ramsey UUID в пакете может генерироваться 32 hex без дефисов — тогда переписывание не сработает.
Пошаговая настройка ЮKassa: Интеграция.
При непустом msfastorder_success_redirect и наличии payment_link фронт через ~2 с перенаправляет на оплату.
msfo_email_manager на msfastorder_email_manager.msfo_email_customer.method = MAIL, order_id вида MAIL-{timestamp}.$modx->getOption('msfastorder_method', null, 'MS');
$modx->getOption('msfastorder_payment_id', null, 0);| Элемент | Назначение |
|---|---|
Сниппет msFastOrder | Кнопка, CSS/JS, inline msfoConfig + CSRF (ClientConfig::getConfigScript) |
Сниппет msFastOrderClientConfig | Только <script>window.msfoConfig</script> + CSRF |
Плагин msfastorder_web | Свежий CSRF и конфиг при отдаче кэшированной страницы |
См. Сниппеты.