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

Системные настройки mxDadata ​

Ключи в пространстве имён mxdadata. В БД префикс mxdadata_ (пример: mxdadata_api_token).

Где менять: Настройки → Системные настройки (фильтр mxdadata) или Extras → mxDadata → Настройки (system/settings&ns=mxdadata). Во Vue-админке отдельных вкладок для этих полей нет.

API ​

КлючТипПо умолчаниюОписание
mxdadata_api_tokenтекст—API Token DaData. Обязателен для Suggest, Clean, Party
mxdadata_api_secretтекст—Secret. Для Clean и Party
mxdadata_api_timeoutчисло2Таймаут HTTP к DaData, сек.
mxdadata_api_retryчисло1Число попыток HTTP в DadataClient::exchange(). По умолчанию 1 (без повтора). Повтор только при ошибке curl (сеть, таймаут), не при HTTP 4xx/5xx. Пауза между попытками: 100 мс × номер попытки

Кэш ​

КлючТипПо умолчаниюОписание
mxdadata_cache_ttlчисло86400TTL ответов в таблице mxdadata_cache, сек. (86400 = 24 ч.). Считается от created_at

Suggest, Clean, Party и Geolocate пишутся в mxdadata_cache. Кнопка Очистить кеш на Dashboard делает DELETE только из этой таблицы. Кэш MODX и счётчик RateLimiter в cacheManager не сбрасываются.

Основные ​

КлючТипПо умолчаниюОписание
mxdadata_enabledда/нетДаВключить компонент. При «Нет» плагин и публичный коннектор не обрабатывают логику
mxdadata_throttle_rpmчисло60Лимит запросов в минуту (защита квоты DaData)
mxdadata_log_levelсписокwarningРежет INSERT в mxdadata_log. debug — все запросы. warning и error — только статус ≠ 200. LoggerService::debug() в лог MODX пишется только при уровне debug
mxdadata_debug_modeда/нетНетФорсирует уровень debug в LoggerService::debug(). На витрине connector-web.php всегда отвечает 'Processor error' без текста исключения. В менеджерском connector.php при «Да» в ответ может попасть сообщение исключения
mxdadata_log_retention_daysчисло30Хранение записей логов (дней). Ротация: Logs/Rotate, Scheduler mxdadata_rotate_logs

MiniShop3 ​

КлючТипПо умолчаниюОписание
mxdadata_strict_validationда/нетНетСтрогая валидация: невалидный телефон или email — заказ не создаётся
mxdadata_block_order_on_errorда/нетДаБлокировать заказ при любой ошибке валидации
mxdadata_validate_phoneда/нетДаНормализация телефона через Clean
mxdadata_validate_emailда/нетДаПроверка email через Clean
mxdadata_auto_normalize_addressда/нетДаНормализация адреса через Clean Address при создании заказа
mxdadata_required_fiasда/нетНетТребовать выбор адреса из подсказок (FIAS)
mxdadata_required_indexда/нетНетТребовать почтовый индекс
mxdadata_field_mappingмногостр. текст—JSON: переопределение сопоставления полей Clean Address → поля адреса MS3. Пример: {"city": "city", "index": "postal_code"} (ключи ответа Clean, не Suggest city_with_type)

По умолчанию маппинг включает address, city, region, index, street, building, room, lat, lon, fias_id и другие поля. AddressMapper считает lat/lon. Плагин заказа в msOrder.Address координаты не сохраняет: их нет в карте полей плагина. Плагин пишет fias_id. При установке резолвер добавляет колонку fias_id (VARCHAR(36)) в {prefix}ms3_order_addresses, если её нет. Без MiniShop3 резолвер пишет WARN и продолжает установку.

Получение в коде ​

php
$modx->getOption('mxdadata_api_token', null, '');
$modx->getOption('mxdadata_cache_ttl', null, 86400);

Связанные настройки MiniShop3 ​

Имена полей формы заказа должны совпадать с тем, что ждут MS3 и сниппеты. См. Подключение на сайте и Интеграцию.