gromit/oc-dadatawidgets-plugin

Formwidgets working with Dadata services

dev-main 2021-05-17 16:36 UTC

This package is auto-updated.

Last update: 2024-04-17 23:36:16 UTC


README

Плагин интеграции подсказок сервиса Dadata в OctoberCMS v.2

Установка

composer require gromit/oc-dadatawidgets-plugin

Настройка

Для использования плагина, необходимо получить токен сервиса Dadata. Получить токен можно бесплатно - необходимо зарегистрироваться на сайте https://dadata.ru/ и скопировать его в профиле.

Полученный токен (он же АПИ КЛЮЧ) вставляем в настройки плагина через Настройки -> Dadata Widgets

Использование

В конфиге формы указываем тип поля dadataSuggestions, тип подсказки suggestion и привязку данных к полям формы.

Пример конфига поля:

name:
    label: Название компании
    type: dadataSuggestions
    suggestion: company

Маппер

В конфиге поля можно указать соответствие данных, получаемых из сервиса Dadata, и полей формы, куда эти данные вставить.

map:
    имя поля1: значение из ответа Dadata
    имя поля2: значение из ответа Dadata
    ...
    имя поляN: значение из ответа Dadata

Структура возвращаемых данных сервиса Dadata зависит от типа подсказки:

Тип подсказки Описание ответа
suggestion: company https://dadata.ru/api/suggest/party/#response
suggestion: bank https://dadata.ru/api/suggest/bank/#response
suggestion: address https://dadata.ru/api/suggest/address/#response
suggestion: email https://dadata.ru/api/suggest/email/#response
suggestion: fio https://dadata.ru/api/suggest/name/#response

Соответственно в маппере используем описанные выше структуры данных.

Примеры

Небольшие примеры использования виджета для разных ситуаций

Поиск контрагента и заполнение нужных полей

fields:
    name:
        label: Название компании
        type: dadataSuggestions
        suggestion: company
        map:
            name: value
            inn: data.inn
            kpp: data.kpp
            ogrn: data.ogrn
    inn:
        label: ИНН
    kpp:
        label: КПП
    ogrn:
        label: ОГРН

Поиск банка

fields:
    bank:
        label: Банк
        type: dadataSuggestions
        suggestion: bank
        map:
            bank: value
            bic: data.bic
            cs: data.correspondent_account
    bic:
        label: БИК
    cs:
        label: К/С

Ввод адреса и его последующий разбор

fields:
    address:
        label: Адрес
        type: dadataSuggestions
        suggestion: address
        map:
            address: value
            country: data.country
            city: data.city
            lat: data.geo_lat
            lon: data.geo_lon

    country:
        label: Страна
    city:
        label: Город
    lat:
        label: Координаты (широта)
    lon:
        label: Координаты (долгота)

Помощь при вводе email-адреса и его разбор

fields:
    email:
        label: Email
        type: dadataSuggestions
        suggestion: email
        map:
            email: value
            local: data.local
            domain: data.domain
    local:
        label: Локальное (до собачки)
    domain:
        label: Домен

Помощь при вводе ФИО и разбор

fields:
    fio:
        label: ФИО
        type: dadataSuggestions
        suggestion: fio
        map:
            fio: value
            surname: data.surname
            name: data.name
            patronymic: data.patronymic
            gender: data.gender
    surname:
        label: Фамилия
    name:
        label: Имя
    patronymic:
        label: Отчество
    gender:
        label: Пол