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

Для разработчиков

Плейсхолдеры, отладка кода, соответствие вызовов API DaData и сценариев сопровождения.

Плейсхолдеры веб-контекста (OnWebPageInit)

Плейсхолдеры выставляет вызов mxdadata_set_web_context_placeholders(). В шаблонах и Fenom используйте [[+имя]] (системные подстановки [[++…]] к ним не относятся) — это плейсхолдеры страницы:

ПлейсхолдерСодержимое
mxdadataConnectorWebПолный URL …/assets/components/mxdadata/connector-web.php
mxdadataEnabledOn1 или 0 — флаг mxdadata_enabled
mxdadataDebugOn1 или 0 — флаг mxdadata_debug_mode
cartPageIdID страницы корзины MS3
orderPageIdID страницы оформления заказа MS3

Исходник: core/components/mxdadata/include/web_context_placeholders.php.

События MODX / MiniShop3

  • Свои плагины на msOnBeforeCreateOrder / msOnSubmitOrder выполняются вместе с mxDadata (приоритет — порядок плагинов в БД). mxDadata нормализует адрес в объекте Address до сохранения, если валидация прошла.
  • Для реакции на фронте после подсказки используйте событие DOM mxdadata:order-address-updated (см. Интеграция).

Соответствие функций пакета и API DaData

Возможность пакетаAPI DaData (сеть)
Подсказки (адрес, org, name, email, bank)suggestions.dadata.rusuggest/* (Token)
Геолокация адресаgeolocate/address (Token)
Party по ИННfindById/party (Secret)
Версия/статус справочников SuggestGET …/suggestions/api/4_1/rs/status (Token)
Clean: телефон, email, адрес, ФИОcleaner.dadata.ru/api/v1/clean/… (Secret)
Баланс (дашборд)dadata.ru/api/v2/profile/balance (Secret)

Секрет в браузер не отдаётся: mxdadata_api_secret используется только в серверных запросах (плагин, менеджерские процессоры, connector-web.php для действий, требующих Secret). Публичные подсказки с витрины идут через connector-web.php с ограничением RateLimiter и кэшем.

Таблицы БД

ТаблицаНазначение
mxdadata_cacheКэш ответов DaData, TTL mxdadata_cache_ttl
mxdadata_logЖурнал запросов, ротация по mxdadata_log_retention_days

Связанные разделы документации