Skip to content
mxDadata
mxDadata
Подсказки DaData и валидация адреса для MiniShop3 в MODX 3
  • MODX 3
  • PHP 8.2
  • miniShop3
  1. Компоненты
  2. mxDadata

mxDadata ​

mxDadata подключает DaData к MiniShop3 на MODX Revolution 3. Сниппеты дают подсказки адреса и организаций. При оформлении заказа плагин нормализует и проверяет данные через Clean, пишет ответы в mxdadata_cache и журнал в mxdadata_log.

Список изменений: core/components/mxdadata/docs/changelog.txt в составе компонента.

Минимальный путь к подсказкам на витрине ​

  1. Установите пакет. Нужен MiniShop3.
  2. В профиле DaData возьмите Token (и Secret для валидации заказа).
  3. Задайте Token и Secret: Настройки → Системные настройки (фильтр mxdadata) или Extras → mxDadata → Настройки. На Dashboard в карточке Подключение нажмите Тест соединения.
  4. В чанк формы заказа (например tpl.msOrder) некэшированно выведите [[!mxDadataAddressSuggest]]. Параметр input должен указывать на поле адреса.
  5. Настройки → Очистить кэш. Откройте оформление заказа с товаром в корзине.

Детали: Быстрый старт. Поля формы: Подключение на сайте.

Безопасность ключей ​

  • Token DaData нужен для Suggest и запросов с витрины через connector-web.php. Запросы ограничены по действиям и частоте. Не подставляйте Secret в HTML или шаблон.
  • 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, вкладки Dashboard, Юрлица, Логи (KPI, тест API, очистка кэша, Party по ИНН). Ключи MS3, API и лимит запросов: системные настройки
  • Для админки нужен VueTools. Сниппеты на витрине работают без него
  • Кэш: таблица mxdadata_cache, TTL mxdadata_cache_ttl, очистка с Dashboard (только эта таблица). Счётчик RateLimiter — в cacheManager
  • Логи: таблица mxdadata_log, фильтры, просмотр request/response. Ротация вручную или задача Scheduler mxdadata_rotate_logs (процессор Logs/Rotate)

Системные требования ​

ТребованиеВерсия
MODX Revolution3.0.3+
PHP8.2+
MiniShop3пакет minishop3 ≥ 1.0.0
MySQL / MariaDBкак в требованиях MODX 3

Зависимости ​

  • MiniShop3 — адрес заказа, события оформления
  • VueTools — в requires транспорта для админки Vue. Resolver без него пишет предупреждение. Сниппеты и плагин заказа от VueTools не зависят.

Опционально ​

  • Scheduler — задача mxdadata_rotate_logs (Logs/Rotate). Расписание задайте в Scheduler после установки пакета.

Установка ​

  1. Установите пакет через Extras → Installer (транспорт с ModStore или локальная сборка php _build/build.php из исходников).
  2. Зарегистрируйтесь на dadata.ru. В профиле скопируйте API Token и Secret.
  3. Задайте mxdadata_api_token и mxdadata_api_secret в системных настройках mxdadata. Тест соединения: Dashboard → Подключение.
  4. Настройки → Очистить кэш.

Пошагово: Быстрый старт.

Термины ​

ТерминОписание
Token / SecretКлючи DaData: Token в основном для Suggest, Secret для Clean и Party
connector-web.phpПубличный коннектор для AJAX-подсказок с витрины (ограничение частоты, кэш)
connector.phpКоннектор для менеджерских процессоров (MODX)
PartyAPI организаций по ИНН (реквизиты, адрес)

Порядок вывода с msRussianPost и событие mxdadata:order-address-updated: Подключение на сайте. Частые ошибки: FAQ.