new

mxDadata

Интеграция DaData API с MiniShop3: автокомплит адреса, нормализация данных, подсказки
Автор дополнения
Ivan Bochkarev
Пакетов
12
Закачек
79
Обычно отвечает в течение нескольких дней
Автор дополнения
Пакетов
12
Закачек
79
Обычно отвечает в течение нескольких дней
Версия 1.0.0-pl
Дата выпуска 26.04.2026
Загрузки 0
Просмотры 197
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
🧭 mxDadataDaData (Suggest, Clean, Party) и чекаут для MODX Revolution 3 + MiniShop3. Подсказки по адресу, организациям, ФИО, e-mail, банкам, нормализация (Clean), карточка организации по ИНН (Party), геолокация и версия справочников с единой точкой вызова API: защищённый connector в менеджере и публичный connector-web для сайта. В админке — дашборд (статус API, баланс), настройки, кэш, логи с ротацией, раздел Party и интеграция с MiniShop3 (валидация/маппинг адреса, сниппеты и демо-чанк оформления заказа).

Кому подойдёт
  • Нужны подсказки DaData на чекауте MS3 без «самописного» к фронтенду и с контролем лимитов и кэша на бэкенде
  • Важны логи запросов к API и ротация записей (по умолчанию хранение логов 30 суток)
  • Планируется универсальная форма на JSON (mxDadataForm) с полями NAME / EMAIL / ADDRESS / PARTY / BANK, геолокацией и блоком версии справочников
  • Нужны три языка интерфейса в менеджере: RU, EN, UA (лексиконы компонента)

✨ Возможности
  • API DaData: Suggest (адрес, party, name, e-mail, bank), Clean, Party/FindById, Geolocate/Address, Tools/Version; обработка ответов и ошибок в едином стиле (лексикон + разбор тела ответа API)
  • Кэш и ограничение частоты запросов к внешнему API; таблица mxdadata_cache
  • Логи в БД, просмотр в админке, ротация (в т.ч. через Scheduler — опционально)
  • Плагины и интеграция MS3: валидация/нормализация адреса, маппинг полей; событие mxdadata:order-address-updated для сторонних виджетов (например доставок) после обновления адреса
  • Сниппеты: mxDadataAddressSuggest, mxDadataPartySuggest, mxDadataForm; скрипты address-suggest.js, party-suggest.js, dadata-form.js
  • Чанк заказа tpl.mxdadata.msOrder с демо-панелью подсказок при непустой корзине; тестовый чанк JSON для QA — chunk.mxdadata.demoFormSugTest
  • Админка на Vue 3 и PrimeVue: дашборд, настройки, API, кэш, логи, Party, мини-раздел MiniShop3

🛒 Связка с MiniShop3
  • В системных настройках namespace mxdadata задаются токен, секрет (для Party), режимы кэша/логов и др. (mxdadata_*)
  • Оформление заказа: чанк tpl.mxdadata.msOrder + сниппеты подсказок по документации; универсальная форма — отдельно через mxDadataForm и JSON
  • Службы доставки (в т.ч. msRussianPost на modstore) можно подписать на обновление адреса через событие mxdadata:order-address-updated
📌 На что обратить внимание
  • Без токена DaData публичные подсказки и Clean не заработают — для Party/FindById нужен секрет в настройках



📷 Скриншоты








📋 Требования
  • MODX Revolution 3.0+ (версия 2.x не поддерживается)
  • PHP 8.2+
  • MiniShop3 3.x (для сценариев заказа и чанка tpl.mxdadata.msOrder)
  • VueTools (для UI в менеджере)
  • Scheduler (опционально) — фоновая ротация логов

Документация по компоненту: mxDadata.


Официальные материалы DaData: dadata.ru — тарифы, лимиты и условия использования API.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0-pl] - 2026-04-24

Первый публичный релиз компонента mxDadata для MODX 3 и MiniShop3.

Added

  • Интеграция с DaData: Suggest (адрес, организация, имя, e-mail, банк), Clean API, Party/FindById. Клиент DadataClient, сервисы Suggest/Clean/Party, кэш, ограничение частоты запросов (rate limit), логи в БД.
  • Плагин заказа MiniShop3: валидация и нормализация адреса до создания и отправки заказа (OrderValidator, AddressMapper).
  • Публичный API: connector-web.php, connector.php. Скрипты address-suggest.js, party-suggest.js, dadata-form.js. Сниппеты mxDadataAddressSuggest, mxDadataPartySuggest, универсальная форма mxDadataForm с JSON-конфигом полей.
  • Чанки: оформление заказа tpl.mxdadata.msOrder, демо и значения по умолчанию для Fenom, тестовый чанк подсказок chunk.mxdadata.demoFormSugTest для QA.
  • Менеджер (Vue): дашборд (статус DaData, баланс), настройки, API, кэш, логи, Party, раздел MiniShop3.
  • Таблицы mxdadata_cache, mxdadata_log, настройка прав доступа, системные настройки с префиксом mxdadata_*, лексиконы ru, en, ua.
  • Плейсхолдеры веб-контекста для шаблонов: коннектор, флаги отладки, страницы корзины и заказа (плагин OnWebPageInit).

Fixed

  • Совместимость с PHP 8.2+, устойчивая работа коннекторов при POST-запросах с телом JSON, корректная инициализация подсказок при оформлении заказа в MS3. — через Processor::failureFromApiBody().
  • Веб-виджет party-suggest.js больше не зацикливает Party/FindById при программном обновлении поля ИНН после успешного ответа DaData.
  • mxDadataForm (GEOLOCATE) теперь сразу подставляет первый найденный адрес в fillTarget и оставляет список вариантов для ручного выбора, если адресов несколько.
  • mxDadataForm теперь умеет брать JSON-конфиг suggestionsChunk из статического файла чанка, если в рантайме MODX не вернул содержимое чанка из БД.

Dependencies

  • MODX 3.x, MiniShop3 3.x, VueTools, PHP >= 8.2. Опционально — пакет Scheduler для фоновой ротации логов.

Последние обсуждения в сообществе MODX.pro