
mxDadata
mxDadata — дополнение для интеграции DaData с MiniShop3 на MODX Revolution 3: подсказки адреса и организаций на чекауте, нормализация и проверка данных через Clean и Party API, кэш и журнал запросов в панели управления. Актуальная версия пакета в поставке — 1.0.0-pl. Полный список изменений — в файле core/components/mxdadata/docs/changelog.txt в составе компонента.
Минимальный путь к подсказкам на витрине
- Установить пакет и убедиться, что стоит MiniShop3.
- В профиле DaData взять Token (и Secret для валидации заказа).
- Extras → mxDadata → API — вставить ключи, Сохранить, при необходимости Тест соединения.
- В чанк формы заказа (например
tpl.msOrder) некэшированно вывести[[!mxDadataAddressSuggest]]с вернымinputпод поле адреса. - Настройки → Очистить кэш и открыть страницу оформления с товаром в корзине.
Детали: Быстрый старт, поля формы: Подключение на сайте.
Безопасность ключей
- Token DaData используется для Suggest и запросов с витрины через
connector-web.php(запросы ограничены по действиям и rate limit). В HTML/шаблон не подставляйте Secret вручную. - Secret храните только в системных настройках MODX: он нужен для Clean и Party на сервере (плагин заказа, менеджер).
- Сетевой доступ к DaData с сервера — по HTTPS. Ключи в БД MODX защищайте политиками доступа к настройкам.
Тарифы, баланс и лимиты DaData
- Условия и стоимость — в кабинете DaData. Баланс и статистика запросов удобно смотреть в Extras → mxDadata → Dashboard (как и Логи).
- Сайт расходует квоту на каждую подсказку и валидацию. RateLimiter в компоненте (
mxdadata_throttle_rpm) снижает риск всплесков и 429. При исчерпанном балансе ответы API дают отказ — см. FAQ → 429 и Логи.
Возможности
- Suggest на витрине — сниппеты
mxDadataAddressSuggest,mxDadataPartySuggest, универсальная формаmxDadataForm(JSON-конфиг полей) через публичный коннекторassets/components/mxdadata/connector-web.php - Плагин MiniShop3 — на
msOnBeforeCreateOrderиmsOnSubmitOrder: валидация телефона и email (Clean), нормализация адреса, обязательный FIAS/индекс, блокировка заказа при ошибках. ДополнительноOnWebPageInitподставляет плейсхолдеры веб-контекста в шаблоны - Админ-панель (Vue) — Extras → mxDadata: дашборд (статус API, баланс), настройки API, вкладка MiniShop3, кэш, логи, тест Party по ИНН (нужен VueTools)
- Кэш — таблица
mxdadata_cache, настраиваемый TTL, очистка из админки - Логи — таблица
mxdadata_log, фильтры, просмотр request/response, ротация по расписанию (опционально пакет Scheduler)
Системные требования
| Требование | Версия |
|---|---|
| MODX Revolution | 3.x |
| PHP | 8.2+ |
| MiniShop3 | 3.x |
| MySQL / MariaDB | как в требованиях MODX 3 |
Зависимости
Опционально
- Scheduler — фоновая ротация логов по расписанию (см. установку пакета)
Установка
- Установите пакет через Extras → Installer (транспорт с ModStore или локальная сборка
php _build/build.phpиз исходников) - Убедитесь, что установлены MiniShop3
- Зарегистрируйтесь на dadata.ru, в профиле скопируйте API Token и Secret
- Extras → mxDadata (вкладка API) — вставьте ключи, Тест соединения, Сохранить
- Настройки → Очистить кэш
С чего начать: Быстрый старт.
Термины
| Термин | Описание |
|---|---|
| Token / Secret | Ключи DaData: Token — в основном Suggest, Secret — Clean и Party |
| connector-web.php | Публичный коннектор для AJAX-подсказок с витрины (ограничение частоты, кэш) |
| connector.php | Коннектор для менеджерских процессоров (MODX) |
| Party | API организаций по ИНН (реквизиты, адрес) |
Документация по разделам
- Быстрый старт — ключи, плагин, сниппеты в чанке заказа
- Админка в MODX — вкладки, дашборд, логи, Party
- Системные настройки — API, кэш, throttling, MiniShop3
- Сниппеты — адрес, ИНН, универсальная форма
- Подключение на сайте — порядок вывода с msRussianPost, событие
mxdadata:order-address-updated - Интеграция и сценарии — события плагина, валидация, кэш, схемы потоков
- Для разработчиков — плейсхолдеры, API DaData
- FAQ — частые проблемы, 429
Расширенные JSON-примеры для mxDadataForm — Интеграция и сниппет. Руководство по админке — Админка в MODX.
