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

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

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

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

ПлейсхолдерСодержимое
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.

Чанк chunk.mxdadata.fenomWebDefaults в поставке — заготовка Fenom с типовыми подстановками коннектора и флагов (см. elements/chunks/chunk.mxdadata.fenomWebDefaults.tpl).

События MODX / MiniShop3 ​

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

Коннекторы ​

ФайлНазначение
connector-web.phpВитрина: Suggest/Party/Geolocate и т.д., ограничение частоты, кэш. CORS Access-Control-Allow-Origin: *. При ошибке процессора JSON { success: false, message: 'Processor error' } без текста исключения
connector.phpМенеджер: Dashboard, логи, Clean-процессоры Clean/Phone, Clean/Email, Clean/Address, Clean/Name, Party, кэш. При mxdadata_debug_mode ответ может содержать сообщение исключения

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

Возможность пакетаAPI DaData (сеть)
Подсказки (адрес, org, name, email, bank)suggestions.dadata.ru — suggest/* (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)
Баланс (Dashboard)dadata.ru/api/v2/profile/balance (Secret)

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

HTTP-повторы: mxdadata_api_retry — число попыток. По умолчанию 1. Повтор только при ошибке curl, не при HTTP 4xx/5xx.

Таблицы БД ​

ТаблицаНазначение
mxdadata_cacheОтветы DaData (Suggest, Clean, Party, Geolocate). TTL mxdadata_cache_ttl. Очистка с Dashboard — только эта таблица. RateLimiter хранит счётчик в cacheManager
mxdadata_logЖурнал запросов, ротация по mxdadata_log_retention_days (процессор Logs/Rotate, задача Scheduler mxdadata_rotate_logs)

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