
Подключение на сайте
Сниппеты выводятся в чанке формы заказа (например tpl.msOrder) или эквиваленте. Вызов должен быть некэшированным, иначе скрипты не попадут на страницу.
Коннектор витрины
URL: assets/components/mxdadata/connector-web.php (в сниппетах подставляется абсолютный URL от [[++assets_url]]).
Переопределение: параметр сниппета connectorUrl.
Разрешённые действия (см. исходник коннектора), в том числе: Suggest/Address, Suggest/Party, Suggest/Name, Suggest/Email, Suggest/Bank, Party/FindById, Geolocate/Address, Tools/Version.
Публичный POST без сессии менеджера. В ответах заголовок Access-Control-Allow-Origin: * (см. connector-web.php). Ошибки процессора в JSON: 'Processor error' без текста исключения.
Имена полей формы MiniShop3
name в форме должны совпадать с ожиданиями сниппетов и модели msOrder.Address (и полей Party для ИНН).
Адрес (модель Address)
name (форма) | Поле модели | Описание | Автозаполнение |
|---|---|---|---|
address_first_name | first_name | Имя | — |
address_last_name | last_name | Фамилия | — |
address_phone | phone | Телефон | — |
address_email | email | — | |
address_text_address | text_address | Адрес (основное поле для подсказок) | Да |
address | text_address | То же, альтернативное имя | Да |
address_fias_id | fias_id | Код ФИАС (часто скрытое) | Да |
address_city | city | Город | Да |
address_region | region | Регион | Да |
address_index | index | Почтовый индекс | Да |
address_street | street | Улица | Да |
address_building | building | Дом | Да |
address_room | room | Квартира / офис | Да |
Реквизиты юрлица (Party, ИНН)
name (форма) | Описание | Автозаполнение |
|---|---|---|
address_inn | ИНН | Да (ввод) |
inn | ИНН, альтернатива | Да |
address_company_name | Наименование организации | Да |
company_name | Альтернативное имя | Да |
address_kpp | КПП | Да |
kpp | Альтернатива | Да |
address_ogrn | ОГРН | Да |
ogrn | Альтернатива | Да |
address_legal_address | Юридический адрес | Да |
legal_address | Альтернатива | Да |
Порядок с msRussianPost
Чтобы доставка Почтой России пересчиталась после выбора подсказки:
- Поля адреса и подсказки mxDadata (
mxDadataAddressSuggestи при необходимости Party) — выше по разметке - Затем msrpLexiconScript → msRussianPost → чанки виджета Почты
После обновления адреса срабатывает событие mxdadata:order-address-updated. russianpost.js подписан на него и вызывает пересчёт, если выбрана доставка Почты России. Хук ms3Hooks.afterAddOrder в ряде сценариев после order/set не вызывается.
Демо чанка
Чанк tpl.mxdadata.msOrder в пакете содержит блок «Демо mxDadata» в <details> (внизу):
- поля Party (
#mxdadata-demo-innи реквизиты) - контейнер
#mxdadata-demo-universalдляmxDadataForm(конфигchunk.mxdadata.demoFormSugчерезsuggestionsChunk) - поле адреса для
mxDadataAddressSuggest
В конце чанка вызываются mxDadataAddressSuggest, mxDadataPartySuggest (innInput на демо-ИНН) и mxDadataForm.
Показ демо в штатном чанке — только если корзина не пуста (ветка в шаблоне на непустую корзину). На экране «пустая корзина» демо намеренно не выводится: не подключаются скрипты и запросы к DaData.
Проверка всех трёх сниппетов на одной странице без товаров в корзине (когда блок из tpl.mxdadata.msOrder не подходит):
- Создайте отдельный ресурс с произвольным шаблоном (отдельного демо-шаблона в транспорте нет).
- Разметка формы +
suggestionsChunk=chunk.mxdadata.demoFormSugTestдляmxDadataForm, плюсmxDadataAddressSuggestиmxDadataPartySuggestс нужнымиinput/innInput. - Либо передайте непустой
suggestionsв параметре. Без валидного JSON подсказки не инициализируются.
Стили
Общие стили подсказок: assets/components/mxdadata/css/web/suggest.css (подключается хелпером вместе со сниппетами).
Fenom
При auto_escape выводите сниппеты как сырой HTML (|raw / {raw …}), чтобы не экранировались <script>.
Примеры синтаксиса MODX и Fenom: сниппеты и mxDadataForm.
