Зачем отдельная ручка
Анкета заказа в интернет-магазине — это имя, почта, телефон, город, способ доставки, способ оплаты, примечание и две галочки согласия. Отдельными вызовамиfill это девять обращений, девять ответов со всей страницей и восемь пауз
между ними, каждая из которых приближает сессию к закрытию по простою.
Здесь поля идут подряд, по порядку списка. Порядок соблюдается намеренно:
витрины пересчитывают одно поле по другому, и «город» перед «улицей» — не
прихоть, а условие того, что улица вообще появится.
Запрос
Параметры
string
required
Идентификатор сессии из
open.array
required
Поля анкеты по порядку. Каждое — объект с
ref и value. От одного до
шестидесяти.string
Ссылка на кнопку, которую нажать после заполнения. Пусто — анкета останется
заполненной, но не отправленной.
string
default:"buttons,fields"
Что вернуть после заполнения. Те же значения, что и в
open.Что означает value
Зависит от того, что за поле — смотрите field в списке
элементов.
Ответ
string
Что оказалось в поле на самом деле. Сверяйте с
value: маска ввода,
maxlength и обработчик на странице могли его переписать. В примере выше
телефон уехал в поле цифрами, а вернулся в маске — это нормально, и агент
должен видеть именно возвращённое.integer
Сколько знаков набрано. У списка и переключателя — ноль: вводом там дело не
решается.
string
Почему поле не заполнилось. Промах по одному полю не отменяет остальных:
анкета, заполненная на пять шестых, полезнее пустой, а какое поле не легло —
видно здесь.
string
Какая кнопка нажата. Приходит, только если
submit был задан и нажатие
прошло; иначе на её месте submit_error.Оформление заказа целиком
Живой пример: один дешёвый товар, самовывоз, оплата при получении.Разделы анкеты открываются по очереди: способы доставки и оплаты на витринах
Битрикса появляются в разметке только после того, как заполнен покупатель.
Поэтому шагов два, а не один, и
ref для второго берутся из ответа первого —
ссылки предыдущего списка после перерисовки уже не действуют.Частые отказы
Отказ по одному полю приходит в его строке
filled[].error и шаг не отменяет.
Отказ по сессии — общий, и тогда filled не приходит вовсе.
Дальше
Элементы и ссылки
Что такое
field, group, checked и options.fill
Одно поле, когда оно и вправду одно.

