[DaData] - интеграция с сервисом DaData
[DaData] — интеграция с сервисом DaData.
DaData.ru исправляет проблемные адреса, ФИО и телефоны автоматически, по 5–10 копеек за запись.
А бесплатные Подсказки помогают клиентам за пару секунд вводить правильные адреса, ФИО, email, реквизиты компаний и банков.
в пакете реализованы методы:
— подсказок
— стандартизации
— геолокации
— актуальности справочников
— баланса
— поиск адреса по коду КЛАДР или ФИАС
пример работы посмотреть тут location.vgrish.ru/index.php?id=10
сниппет dadata.form
Подключение подсказок к любым полям формы. Для того чтобы подключить подсказки нужно указать селектор контейнера для поиска полей и перечислить необходимые поля.
subject и master — зависимые поля.
параметры сниппета
пример подключения подсказок (Форма 2)
пример подключения подсказок (AjaxForm)
пример для адреса (Форма 4 (адрес))
подключение к форме заказа (miniShop2)
Код на github, создавайте isuue
Компонент условно-бесплатный, буду рад donation
DaData.ru исправляет проблемные адреса, ФИО и телефоны автоматически, по 5–10 копеек за запись.
А бесплатные Подсказки помогают клиентам за пару секунд вводить правильные адреса, ФИО, email, реквизиты компаний и банков.
в пакете реализованы методы:
— подсказок
— стандартизации
— геолокации
— актуальности справочников
— баланса
— поиск адреса по коду КЛАДР или ФИАС
пример работы посмотреть тут location.vgrish.ru/index.php?id=10
сниппет dadata.form
Подключение подсказок к любым полям формы. Для того чтобы подключить подсказки нужно указать селектор контейнера для поиска полей и перечислить необходимые поля.
subject и master — зависимые поля.
параметры сниппета
- apiMode — Режим работы
- apiToken — API ключ
- apiSecret — Секретный ключ для стандартизации
- suggestions — Строка параметров подсказок, закодированная в JSON
- actionUrl — Коннектор для обработки ajax запросов
- selector — Имя CSS класса, который будеи использован как jQuery селектор при выборе контейнера для поиска input
- objectName — Имя объекта для инициализации в подключаемом javascript. По умолчанию «dadata»
- frontendCss — Файл с css стилями для подключения на фронтенде
- frontendJs — Файл с javascript для подключения на фронтенде
- jqueryJs — Файл с jquery.js для подключения на фронтенде
[[!dadata.form?
&suggestions=`{
'fullname': {
'type': 'NAME',
'params': {
},
'autoSelectFirst':1,
'count':6,
'subject': {
'surname-name': 'SURNAME',
'fullname-name': 'NAME',
'fullname-patronymic': 'PATRONYMIC'
}
},
'surname-name': {
'type': 'NAME',
'params': {
'parts': ['SURNAME']
},
'master': {
'fullname': 'SURNAME'
}
},
'fullname-name': {
'type': 'NAME',
'params': {
'parts': ['NAME']
},
'master': {
'fullname': 'NAME'
}
},
'fullname-patronymic': {
'type': 'NAME',
'params': {
'parts': ['PATRONYMIC']
},
'master': {
'fullname': 'PATRONYMIC'
}
}
}`
]]
пример подключения подсказок (Форма 2)
[[!dadata.form?
&selector=`#dadata-form2`
&suggestions=`{
'email': {
'type': 'EMAIL'
},
'address': {
'type': 'ADDRESS'
},
'party': {
'type': 'PARTY',
'restrict_value': 'true'
},
'inn': {
'type': 'PARTY',
'restrict_value': 'true',
'params': {
'return': {
'keys': ['data.inn']
}
}
},
'bank': {
'type': 'BANK'
}
}`
]]
пример подключения подсказок (AjaxForm)
[[!dadata.form?
&selector=`.ajax_form.af_example`
&suggestions=`{
'name': {
'type': 'NAME'
},
'email': {
'type': 'EMAIL'
}
}`
]]
пример для адреса (Форма 4 (адрес))
[[!dadata.form?
&selector=`#dadata-form4`
&suggestions=`{
'address-input': {
'type': 'ADDRESS',
'params': {
},
'subject': {
'address-postalcode': 'postal_code',
'address-region': 'region',
'address-city': 'city',
'address-street': 'street_with_type',
'address-house': 'house',
'address-flat': 'flat'
}
},
'address-postalcode': {
'type': 'ADDRESS',
'bounds': 'postal-code',
'params': {
'return': {
'keys': ['data.postal_code']
}
},
'master': {
'address-input': 'postal_code'
}
},
'address-region': {
'type': 'ADDRESS',
'bounds': 'region-area',
'params': {
'return': {
'keys': ['data.region_with_type']
}
},
'master': {
'address-input': 'region_with_type'
}
},
'address-city': {
'type': 'ADDRESS',
'bounds': 'city-settlement',
'params': {
'return': {
'keys': ['data.city']
}
},
'master': {
'address-input': 'city'
}
},
'address-street': {
'type': 'ADDRESS',
'bounds': 'street',
'params': {
'return': {
'keys': ['data.street']
}
},
'master': {
'address-input': 'street'
}
},
'address-house': {
'type': 'ADDRESS',
'bounds': 'house',
'params': {
'return': {
'keys': ['data.house']
}
},
'master': {
'address-input': 'house'
}
},
'address-flat': {
'type': 'ADDRESS',
'params': {
'return': {
'keys': ['data.flat']
}
},
'master': {
'address-input': 'flat'
}
}
}`
]]
подключение к форме заказа (miniShop2)
[[!dadata.form?
&selector=`#msOrder`
&suggestions=`{
'address': {
'type': 'ADDRESS',
'params': {
},
'subject': {
'index': 'postal_code',
'region': 'region_with_type',
'city': 'city',
'street': 'street_with_type',
'building': 'house'
}
},
'index': {
'type': 'ADDRESS',
'bounds': 'postal-code',
'params': {
'return': {
'keys': ['data.postal_code']
}
},
'master': {
'address': 'postal_code'
}
},
'region': {
'type': 'ADDRESS',
'bounds': 'region-area',
'params': {
'return': {
'keys': ['data.region_with_type']
}
},
'master': {
'address': 'region_with_type'
}
},
'city': {
'type': 'ADDRESS',
'bounds': 'city-settlement',
'params': {
'return': {
'keys': ['data.city']
}
},
'master': {
'address': 'city'
}
},
'street': {
'type': 'ADDRESS',
'bounds': 'street',
'params': {
'return': {
'keys': ['data.street']
}
},
'master': {
'address': 'street'
}
},
'building': {
'type': 'ADDRESS',
'bounds': 'house',
'params': {
'return': {
'keys': ['data.house']
}
},
'master': {
'address': 'house'
}
},
'email': {
'type': 'EMAIL'
},
'receiver': {
'type': 'NAME'
}
}`
]]
Код на github, создавайте isuue
Компонент условно-бесплатный, буду рад donation
Поблагодарить автора
Отправить деньги
Комментарии: 45
Володя, привет.
Я так понимаю, что это новая версия этого дополнения: modstore.pro/packages/integration/msdadata?
Или здесь принципиальное отличие, что он не заточен под MS2?
Обновишь в Магазине? Сделать его бесплатным?
Я так понимаю, что это новая версия этого дополнения: modstore.pro/packages/integration/msdadata?
Или здесь принципиальное отличие, что он не заточен под MS2?
Обновишь в Магазине? Сделать его бесплатным?
Привет. Да тот я убрать совсем хотел.
Назвал условно-бесплатным оттого что выложил на гитхаб, кому надо бесплатно тот скачает, кто хочет поддержки — в поддержку. Так что думаю символическая цена в 490 руб. будет адекватна.
Назвал условно-бесплатным оттого что выложил на гитхаб, кому надо бесплатно тот скачает, кто хочет поддержки — в поддержку. Так что думаю символическая цена в 490 руб. будет адекватна.
Понятно.
Да, вполне разумно.
Тогда ждем заявку на модерацию.
Да, вполне разумно.
Тогда ждем заявку на модерацию.
Может быть без «modx-» попробовать?
Вроде у нас пока всё только для него.
Вроде у нас пока всё только для него.
сейчас попробую
отправил
Опубликовал новое дополнение и отключил старое.
Спасибо! Очень оперативно )
Поправил. А у тебя масштаб 100%?
да сотка. Сейчас все ок
Наверное, стоит apiToken и apiSecret убрать в конфиг. Думаю, в рамках одного проекта эти значения везде одинаковы
да, наверно стоит добавить в настройки. Ато как я щас сделал — запалил токены тут и полез менять.
Хорошо когда все в одном месте, это недолго. А так бы на рабочем проекте замучался.
Хорошо когда все в одном месте, это недолго. А так бы на рабочем проекте замучался.
Добавил настройки для apiToken и apiSecret
Только купил, даже попробовать не успел, как аддон убрали из магазина.
Печаль
Печаль
Документация осталась по старому расширению?
Не работает, как и здесь, в демо
Я считаю, что если сняли с продажи предыдущий компонент — нужно дать доступ к новому. Напиши в тех. поддержку по этому поводу Володе, пожалуйста.
Володя, что думаешь?
Володя, что думаешь?
да я согласен, как в случае с modstore.pro/packages/ecommerce/quickview когда все старые подписки перенесли на новый пакет.
Но тогда мне дали понять что этот механизм переноса неудобен. И я не дергаюсь. Пакет в свободном доступе есть на github.com/vgrish/dadata и так же можно загрузить уже собранный пакет тут modx.pro/components/7294-gl-geo-location/#comment-51220
Если возможно дать доступ к новому пакету просто по запросу в ТП, думаю так будет разумно.
Но тогда мне дали понять что этот механизм переноса неудобен. И я не дергаюсь. Пакет в свободном доступе есть на github.com/vgrish/dadata и так же можно загрузить уже собранный пакет тут modx.pro/components/7294-gl-geo-location/#comment-51220
Если возможно дать доступ к новому пакету просто по запросу в ТП, думаю так будет разумно.
Ну и отлично, договорились.
Все желающие по запросу через тех. поддержку или по заявке на info@modstore.pro смогут получить обновление msDaData → DaData.
Stan Ezersky, что-то у тебя 6 аккаунтов в Магазине. Дай актуальный логин, пожалуйста.
Все желающие по запросу через тех. поддержку или по заявке на info@modstore.pro смогут получить обновление msDaData → DaData.
Stan Ezersky, что-то у тебя 6 аккаунтов в Магазине. Дай актуальный логин, пожалуйста.
Свяжемся!
дополнил примером подсказок адреса (Форма 4)
Не совсем понял, этот компонент поддерживает стандартизацию или нет?
Нет ни одного примера стандартизации, зато есть поле для ключа стандартизации.
Если можно, то просьба рассмотреть телефон.
Нет ни одного примера стандартизации, зато есть поле для ключа стандартизации.
Если можно, то просьба рассмотреть телефон.
Методы стандартизации есть, обертки на js чтобы все это работало не написано еще.
В планах есть написать как будет необходимость.
В планах есть написать как будет необходимость.
минимальное пополнение баланса для стандартизации от 1 000 руб. и просто так закидывать туда деньги мне неинтересно.
если есть необходимость стандартизации можешь ускорить — оплатить стандартизацию и предоставив ключ для теста мне на время написания этого функционала.
если есть необходимость стандартизации можешь ускорить — оплатить стандартизацию и предоставив ключ для теста мне на время написания этого функционала.
дополнил примером подключения к форме заказа (miniShop2)
Нужный компонент думаю для любого проекта! Подскажите пожалуйста три дня уже бъюсь, не хочет подсказывать, колесо крутиться и больше ничего! чего может не хватать, key и api прописываю!
попробуйте добавить файл .htaccess в папку
/assets/components/dadata/
RewriteCond %{HTTP:Authorization} !^$
RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]
К сожалению не помогло! :(
Если компонент установлен через магазин — напишите в ТП с указанием доступов к админке, посмотрю в чем дело…
В параметре «subject» не получается использовать данные 2го уровня в многомерных объектах. Например, не работает следующий код:
Можно, предположить, что я делаю что-то не так, но вот тут такая же проблема: github.com/vgrish/dadata/issues/3
Скопировал оттуда код, ничего не менял в нем, он тоже не работает с многомерными объектами:
П.С.2: Может быть последнее обновление не было выложено? отсюда и проблемы?
,"company" : {
"type" : "PARTY"
,"subject": {
"contragent[INN]" : "INN"
,"contragent[KPP]" : "KPP"
,"contragent[OGRN]" : "OGRN"
,"contragent[OGRNIP]" : "OGRNIP"
,"contragent[legalAddress]" : "address.value"
}
}
Если написать ,«contragent[legalAddress]»: «address», то в инпуте пишется [object Object].Можно, предположить, что я делаю что-то не так, но вот тут такая же проблема: github.com/vgrish/dadata/issues/3
Скопировал оттуда код, ничего не менял в нем, он тоже не работает с многомерными объектами:
[[!dadata.form?
&selector=`#dadata-form5`
&suggestions=`{
'inn': {
'type': 'PARTY',
'restrict_value': 'true',
'params': {
'return': {
'keys': ['data.inn']
}
},
'subject': {
'kpp': 'kpp',
'ogrn': 'ogrn',
'name-full':'name.full',
'name-short_with_opf':'name.short_with_opf'
}
}
}`
]]
П.С. в инструкции нет примера вызова для формы 5.П.С.2: Может быть последнее обновление не было выложено? отсюда и проблемы?
В параметре «subject» не получается использовать данные 2го уровня в многомерных объектах. Например, не работает следующий код:Используйте расширенный класс обработки данных, он идет в комплекте с пакетом, нужно только его прописать в настройках.
dadata_format_handler_class —
Extended
нужно только его прописать в настройках.О каких настройках идет речь? если системные настройки MODx, то ключа с названием dadata_format_handler_class там нет. Его нужно самому создать?
dadata_format_handler_class
Да, действительно, нужно самому вручную создать данный параметр. Все заработало, спасибо.
Только не понятно, почему нигде про это не написано.
Только не понятно, почему нигде про это не написано.
П.С. в инструкции нет примера вызова для формы 5.
[[!dadata.form?
&selector=`#dadata-form5`
&suggestions=`{
'inn': {
'type': 'PARTY',
'restrict_value': 'true',
'params': {
'return': {
'keys': ['data.inn']
}
},
'subject': {
'kpp': 'kpp',
'ogrn': 'ogrn',
'name-full':'name.full',
'name-short_with_opf':'name.short_with_opf'
}
}
}`
]]
П.С.2: Может быть последнее обновление не было выложено? отсюда и проблемы?Свежая версия пакета всегда доступна в репозитории магазина
Установил компонент с гитхаба вроде бы все успешно, но сам сниппет пустой. Это нормально?
Ну и подозрений добавляет что в итоге ничего не работает. Руками добавил скрипты dadata на страницу, указываю id формы и поля как в примере, но ничего не происходит. Пытаюсь подключить подсказки.
Ну и подозрений добавляет что в итоге ничего не работает. Руками добавил скрипты dadata на страницу, указываю id формы и поля как в примере, но ничего не происходит. Пытаюсь подключить подсказки.
с пустым сниппетом разобрался, это я неверно установил, но все равно не работает. колесико крутится, но подсказок не появляется.
разобрался. оказывается
<div class="suggestion">
это важно.
Добавил сниппет в корзину:
Ошибки отсутствуют.
Js скрипты работают.
Пробовал в другом месте тоже самое.
В чем может быть проблема?
{$_modx->runSnippet('!dadata.form', [
'apiToken' =>'#',
'apiSecret' =>'#',
'selector' =>'#msOrder',
'suggestions' =>'{"receiver":{"type":"NAME","params":{"parts":["SURNAME","NAME","PATRONYMIC"]}}}'
])}
<form role="form" id="msOrder" method="post">
<input type="text" id="receiver" placeholder="ФИО получателя *" name="receiver" class="form-control required">
</form>
но не выводить подсказки.Ошибки отсутствуют.
Js скрипты работают.
Пробовал в другом месте тоже самое.
В чем может быть проблема?
Проблему решил:
Необходимо было не добавить файл в /assets/components/dadata/,
а добавить строчки в корневой файл — .htaccess:
Необходимо было не добавить файл в /assets/components/dadata/,
а добавить строчки в корневой файл — .htaccess:
RewriteCond %{HTTP:Authorization} !^$
RewriteRule ^(.*)$ $1?http_auth=%{HTTP:Authorization} [QSA]
Народ кто то сталкивался с такой проблемой:
Для реализаций использовал (Форма 4).
Но в корзине minishop2 при выборе подсказки в поле Адрес — поля (индекс, область, город ...) с начало заполняются, а потом рандомные исчезают мгновенно, data-oldvalue выводиться. Если перезагрузить страницу то все поля которые были пусты буду заполнены. В чем может быть проблема?
Для реализаций использовал (Форма 4).
Но в корзине minishop2 при выборе подсказки в поле Адрес — поля (индекс, область, город ...) с начало заполняются, а потом рандомные исчезают мгновенно, data-oldvalue выводиться. Если перезагрузить страницу то все поля которые были пусты буду заполнены. В чем может быть проблема?
У меня такая же проблема. При выборе организации поля сначала заполняются, а затем очищаются и значения остаются в data-oldvalue.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.