Skip to content
msFastOrder
msFastOrder
Быстрый заказ в один клик через модальное окно для MODX 3 и MiniShop3
  1. Компоненты
  2. msFastOrder
  3. Начало работы
  4. Системные настройки

Системные настройки msFastOrder

Краткая последовательность: Быстрый старт.

Все ключи в пространстве имён 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 обязателен. Для MS — уведомления при настройке почты
msfastorder_phone_maskтекст+7 (999) 999-99-99Маска поля телефона в модалке (PhoneMask в JS)
msfastorder_success_redirectтекст(пусто)URL редиректа после успеха, если нет payment_link. При наличии payment_link — редирект на оплату через ~2 с

MiniShop3 (режим MS)

КлючТипПо умолчаниюОписание
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 в эти настройки.

Связанные настройки MiniShop3

Ключ MS3Зачем
ms3_order_success_page_idСтраница «Спасибо» с просмотром заказа (msorder=uuid) для DefaultPayment
ms3_status_newСтатус нового заказа после быстрого оформления

Интерфейс и assets

КлючТипПо умолчаниюОписание
msfastorder_modal_libraryтекстnativeМодалка: native, bootstrap, fancybox
msfastorder_connector_urlтекст/assets/components/msfastorder/connector.phpURL AJAX (только POST)
msfastorder_assets_urlтекст/assets/components/msfastorder/База для css/msfo.min.css и js/msfo.min.js
msfastorder_copy_countда/нетДаВ транспорте: копировать количество со страницы. В JS копирование выполняется всегда — см. Подключение на сайте
msfastorder_generate_emailда/нетДаВ транспорте: автогенерация email. В MS при пустом email PHP вызывает generateEmail() независимо от этой настройки
msfastorder_frontend_cssтекст(пусто)Зарезервировано под свой CSS; стандартный сниппет подключает msfo.min.css
msfastorder_frontend_jsтекст(пусто)Зарезервировано под свой JS; стандартный сниппет подключает msfo.min.js

Для bootstrap на странице нужен Bootstrap 5 Modal. Для fancybox — Fancybox 4/5; подключайте msfo.min.css после CSS Fancybox.

Телефон и префикс страны

КлючТипПо умолчаниюОписание
msfastorder_prefix_enabledда/нетНетВключить проверку длины и кода страны на сервере
msfastorder_prefix_countryтекст7Код страны без +
msfastorder_prefix_lengthчисло11Ожидаемое число цифр в номере

Безопасность и отладка

КлючТипПо умолчаниюОписание
msfastorder_debugда/нетНетВ JSON-ответах connector при ошибках добавляется debug; доступен action=rate-limit/reset
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.

Режим MS

  1. Создаётся заказ MiniShop3 с одной позицией (товар, количество, опции/variant_id).
  2. Покупатель заполняется из полей формы.
  3. Заказ регистрируется в сессии MS3, статус «Новый».
  4. В ответе AJAX — payment_link (если способ оплаты это поддерживает).
  5. Запись в msfastorder_logs.

URL возвращает обработчик оплаты MiniShop3 (Payment::getPaymentLink()). Отдельный URL в msFastOrder не задаётся — только msfastorder_payment_id.

Где используется:

  • data.payment_link в ответе order/create
  • кнопка «Оплатить» на экране успеха (JS renderSuccess)
  • событие msfo:order:success
  • чанк msfo_email_customer (если отправка клиенту включена)
Тип способа оплатыpayment_link
DefaultPaymenthttps://site.ru/spasibo?msorder={uuid}
ЮKassa (msp3YooKassa)URL checkout ЮKassa

Пошаговая настройка ЮKassa: Интеграция.

При непустом msfastorder_success_redirect и наличии payment_link фронт через ~2 с перенаправляет на оплату.

Режим MAIL

  1. Заказ в MS3 не создаётся.
  2. Письмо менеджеру — чанк msfo_email_manager на msfastorder_email_manager.
  3. При указанном email клиента — msfo_email_customer.
  4. В лог: method = MAIL, order_id вида MAIL-{timestamp}.

Получение в коде

php
$modx->getOption('msfastorder_method', null, 'MS');
$modx->getOption('msfastorder_payment_id', null, 0);

Элементы пакета

ЭлементНазначение
Сниппет msFastOrderКнопка, CSS/JS, CSRF в сессии
Сниппет msFastOrderClientConfigТолько <script>window.msfoConfig</script>
Плагин msfastorder_webСвежий CSRF при отдаче страницы

См. Сниппеты.