Динамические формы
IMSHOP Retail Protocol (IRP) является объектом интеллектуальной собственности ООО «АЙ ЭМ СОЛЮШНЗ» (IMSHOP) и защищён как объект авторского права. Свидетельство о депонировании произведения № 023-014461 от 16 января 2023 г. подтверждает исключительные права ООО «АЙ ЭМ СОЛЮШНЗ» на данные технологии.
IMSHOP Retail Protocol создан по заказу ООО «АЙ ЭМ СОЛЮШНЗ». Использование IMSHOP Retail Protocol допустимо только при взаимодействии с ООО "АЙ ЭМ СОЛЮШНЗ" и наличии действующего лицензионного договора. Более подробно можно ознакомиться здесь.
Динамические формы – формы на сабтудеях с возможностью подгрузки дополнительных элементов форм на основе введенных пользователем данных.
Для корректной работы динамических форм необходимо включение интеграции.
Конечные результаты форм могут отправляться через ендпоинт выгрузки форм.
Оглавление
Заведение сабтудея с поддержкой динамических форм
В консоли при создании элементов сабтудея необходимо завести форму, дать ей идентификатор (для примера, form123
) и отметить, что данная форма будет загружаться через IRP ендпоинт.
Механизм работы webhook-интеграции
При посещении пользователем сабтудея с динамической формой происходит запрос начальной формы. Вам приходит название запрашиваемой формы:
При запросе формы из DSS-приложения в запрос дополнительно будет присылаться outletId магазина, привязанного к продавцу (в случае наличия привязанного магазина).
В ответ сервер должен отправить содержание формы:
success – boolean, успех отправки формы
name – название запрашиваемой и отправляемой формы
form
alertText и alertTitle – заголовок и текст сообщения после заполнения формы
title – заголовок формы
elements – массив с элементами формы
Элементы формы в elements могут располагаться в произвольном порядке.
Элементы формы
Заголовок (title)
Заголовок или произвольная надпись в форме жирным шрифтом. Не распологается произвольно, всегда находится сверху формы.
Передается в form
Барабан (picker)
Поле, при нажатии которого появляется барабан с возможностью выбора одного варианта.
Передается в elements
name – идентификатор элемента
placeholder – плейсхолдер для поля ввода
required – true/false, является для данный элемент обязательным для заполнения
type – тип элемента (picker)
title – заголовок элемента
list – массив из строк с вариантами выбора
nextElementsNames – подгрузка следующих элементов формы
Чекбокс (checkbox)
Чекбокс.
Передается в elements
name – идентификатор элемента
type – тип элемента (checkbox)
title – надпись справа от чекбокса
Поле ввода текста (text)
Поле для ввода текста.
Передается в elements
name – идентификатор элемента
placeholder – плейсхолдер для поля ввода
required – true/false, является для данный элемент обязательным для заполнения
type – тип элемента (text)
title – заголовок элемента
Поле ввода эл.почты (email)
Поле с форматированием электронной почты.
Передается в elements
name – идентификатор элемента
placeholder – плейсхолдер для поля ввода
required – true/false, является для данный элемент обязательным для заполнения
type – тип элемента (email)
title – заголовок элемента
Поле ввода телефона (phone)
Поле с форматированием телефонного номера.
Передается в elements
name – идентификатор элемента
placeholder – плейсхолдер для поля ввода
required – true/false, является для данный элемент обязательным для заполнения
type – тип элемента (phone)
title – заголовок элемента
Поле ввода даты (date)
Поле, при нажатии которого отображается барабан с возможностью ввода даты.
Передается в elements
name – идентификатор элемента
placeholder – плейсхолдер для поля ввода
required – true/false, является для данный элемент обязательным для заполнения
type – тип элемента (text)
title – заголовок элемента
Кнопка завершения редактирования формы (submit)
Кнопка завершения заполнения формы, при нажатии данные отправляются на сервер и появляется сообщение.
Передается в elements
name – идентификатор элемента
placeholder – надпись на кнопке
disabledPlaceholder – надпись на кнопке в заблокированном состоянии ( когда пользователь не ввел данные в обязательные поля)
type – тип элемента (submit)
Примечание (notice)
Примечание, надпись мелким шрифтом.
Передается в elements
name – идентификатор элемента
placeholder – надпись
type – тип элемента (notice)
Ссылка (url)
Текст, по нажатию на который открывается ссылка.
Передается в elements
name – идентификатор элемента
title – надпись
redirectTo – ссылка (поддерживаются диплинки)
useExternalBrowser – true/false, открывать ссылку во внешнем браузере (по умолчанию false)
alignToLeft – сместить текст к левому краю (по умолчанию false)
type – тип элемента (notice)
Сообщение после завершения заполнения формы (alert)
Сообщение, которое отображается после нажатия на сабмит.
Передается в form
alertTitle – заголовок сообщения
alertText – тело сообщения
Markdown (markdown)
Rich-текст в формате Markdown.
Передается в elements
name – идентификатор элемента
text – текст в формате Markdown
type – тип элемента (markdown)
Пикер фотографий (images)
Rich-текст в формате Markdown.
Передается в elements
name – идентификатор элемента
minImages – минимальное количество фотографий для отправки (по умолчанию 0)
maxImages – максимальное количество фотографий для отправки (по умолчанию ограничение отсутствует)
type – тип элемента (images)
Изображения передаются в base64. При экспорте формы в поле data
появится массив images
следующего вида:
id – случайный идентификатор фотографии
type – MIME-тип изображения
base64 – закодированное изображение в base64
Авторизация покупателя (customer_auth)
Только для DSS. Авторизация или регистрация покупателя и последующая отправка его данных в форме.
Передается в elements
name – идентификатор элемента
required – true/false, является ли данный элемент обязательным для заполнения
type – тип элемента (customer_auth)
nextElementsNames – подгрузка следующих элементов формы (необязательно)
При экспорте формы в поле data
появится объект customer
следующего вида:
Поле externalId
будет содержать идентификатор пользователя в вашей системе.
Помимо этого, запросе на экспорт формы будет приходить staffId
продавца, с аккаунта которого была отправлена форма:
Запрос клиентом следующих элементов формы
В элементе барабана или авторизации покупателя возможно наличие идентификаторов следующих полей nextElementsNames
. Дозапрос от сервера следующих элементов формы происходит после выбора пользователем значения в барабане, либо после авторизации покупателя.
Сервер принимает JSON с введенными пользователем значениями в поле data
, где ключ – идентификатор элемента как в поле name
в отправленных элементах:
В ответ сервер отправляет следующие элементы форм, например:
В передаваемых далее барабанах могут содержаться дальнейшие идентификаторы полей.
Новые элементы формы могут дозапрашиваться сколько угодно раз, окончанием заполнения формы всегда считается нажатие на сабмит.
Конечные результаты форм могут отправляться через ендпоинт выгрузки форм.
Last updated