
- MODX 3
- PHP 8.2
- miniShop3


Причины:
Data у товара.&id указывает на несуществующий или не товарный ресурс.[[!msFastOrder]] / {'!msFastOrder' | snippet}.Проверка: сниппет должен выполняться на странице товара MS3. В HTML должна быть разметка кнопки с data-msfo-trigger.
msfo.min.js / msfo.min.css.msfastorder_assets_url и файлы в assets/components/msfastorder/.msfastorder_modal_library=bootstrap или fancybox — библиотека подключена на странице.Connector вернул HTML (PHP-ошибка), а не JSON.
| Причина | Действие |
|---|---|
Неверный путь к config.core.php | В connector.php должно быть dirname(__FILE__, 4) |
| Fatal в MS3 / msFastOrder | Откройте тело ответа в Network → connector.php |
| Нет сниппета на странице | Обычно 403 JSON, не HTML — но проверьте вызов [[!msFastOrder]] |
msFastOrder или msFastOrderClientConfig.csrf_token из window.msfoConfig.csrfToken (не устаревший из кэша страницы).msfastorder_web включён.После очистки кэша MODX обновите страницу товара (жёсткое обновление в браузере).
msfastorder_phone_mask с форматом ввода.msfastorder_prefix_enabled=1 — msfastorder_prefix_country, msfastorder_prefix_length.Серверная валидация строже клиентской — см. msfastorder_required_fields в настройках.
msfastorder_payment_id и msfastorder_delivery_id — существующие активные ID в MS3.[msFastOrder].msfastorder_debug=1 на staging.После order/create в data.payment_link ожидается непустая строка.
| Симптом | Что проверить |
|---|---|
| Поле пустое | msfastorder_method=MS, активные payment/delivery ID |
| Ссылка на «Спасибо», нужна ЮKassa | В msfastorder_payment_id — способ с классом YooKassa. Установлен msp3YooKassa |
| Статус заказа не «оплачен» | Webhook ЮKassa и ключи msp3YooKassa |
| Нет кнопки «Оплатить» | payment_link в ответе. Не ломайте renderSuccess без кнопки |
Пошагово: Интеграция → ЮKassa.
msfastorder_email_manager.modMail.ms3variants-product-{id}.ms3variant_id обновляется при смене варианта.Форма в модалке строится в JS (renderForm), success — renderSuccess. Чанки — эталоны.
Подключение на сайте → форма, Чанки.
Используйте класс с ID товара:
<input type="number" name="count" class="msfastorder-count-{$id}" value="1" min="1"><input type="number" name="count" class="msfastorder-count-[[+id]]" value="1" min="1">Превышен rate limit на order/create. Настройки: msfastorder_rate_limit_attempts, msfastorder_rate_limit_window.
На staging при msfastorder_debug=1: POST action=rate-limit/reset — AJAX API.
Обновите пакет msFastOrder через ModStore до актуальной версии — в клиенте должны подставляться подписи из msfoConfig.lexicon.field_*.
Таблица msfastorder_logs:
SELECT * FROM msfastorder_logs ORDER BY created_at DESC LIMIT 20;AJAX: Network → connector.php → JSON success, message, errors, debug.