К содержимому

Справочник параметров виджета

Код виджета собирает конструктор, и руками его писать не нужно. Этот справочник — для случаев, когда код правят: подставляют номер заказа из своей системы, меняют состав на лету или разбираются, почему форма ведёт себя не так. Звёздочкой отмечено то, что в коде есть всегда.

Параметры init

Всё, что виджет знает о заказе, лежит в объекте, который передаётся в InvoiceBoxWidget…init({…}).

ПараметрЧто задаёт
widget_id *Идентификатор экземпляра виджета: время сборки и случайная цифра. Тот же идентификатор стоит в `id` контейнера
widget_version *Версия формата кода. Сейчас 3
widget_button_type *Надпись на кнопкезначения
widget_order_type *Как называется оплачиваемое: заказ, договор, бронирование, счётзначения
widget_payment_type *Что оплачивают: 1 — товары или услуги с заданной ценой, 2 — свободная сумма
widget_addfields *Поля, которые заполняет покупатель, через запятуюзначения
widget_goods *Состав заказа: JSON, сжатый deflate и закодированный base64значения
widget_person_typeТип плательщиказначения
widget_goods_selectПокупатель выбирает одну позицию из списка вместо оплаты всего состава
widget_css_externalАдрес своего файла стилей для формы виджета
widget_target_blankОткрывать форму в новой вкладке
itransfer_language_idЯзык формы
itransfer_participant_id *Идентификатор магазина из личного кабинета
itransfer_person_name *Имя плательщика, если оно известно заранее. Пустая строка — покупатель введёт сам
itransfer_person_email *Электронная почта плательщика, если известна заранее
itransfer_person_phone *Телефон плательщика, если известен заранее
itransfer_order_id *Ваш номер заказа: по нему вы узнаете платёж в своей системе
itransfer_participant_ident *Региональный код магазина из личного кабинета
itransfer_url_returnКуда вернуть покупателя после оплаты — успешной или нет
itransfer_url_returnsuccessКуда вернуть покупателя только после успешной оплаты

Аргументы вызова

АргументЧто задаёт
параметрыОбъект из таблицы выше
ширинаШирина кадра в пикселях. Конструктор и сервер отдают 600
высотаВсегда `auto`: кадр подстраивается под содержимое
контейнерИдентификатор элемента `div`, в который встанет виджет

Состав заказа

Позиции складываются в массив, сериализуются в JSON, сжимаются алгоритмом deflate и кодируются base64 — результат и есть значение widget_goods. Порядок полей в позиции важен: его ждёт принимающая сторона.

Поле позицииЧто задаёт
type *`service` — услуга, `commodity` — товар
name *Название позиции, его увидит покупатель и бухгалтерия
measure *Единица измерения: шт, усл, кг
quantity *Количество
price *Цена за единицу, строкой с двумя знаками после точки
vat *Код ставки НДСзначения

Состав приходит из браузера покупателя и не подписан — его можно изменить до отправки. Получив уведомление об оплате, сверяйте сумму с той, которую ожидали: Безопасность виджета.

Надпись на кнопке — widget_button_type

ЗначениеЧто означает
1Оплатить
2Купить
3Пополнить
4Пожертвовать

Название оплачиваемого — widget_order_type

ЗначениеЧто означает
1Заказ
2Договор
3Бронирование
4Счёт

Тип плательщика — widget_person_type

ЗначениеЧто означает
1Физическое лицо
2Организация или ИП
3Клиент выбирает сам

Поля покупателя — widget_addfields

ЗначениеЧто означает
person_nameИмя плательщика
person_emailЭлектронная почта
person_phoneТелефон
participant_order_idНомер заказа
quantityКоличество

Ставка НДС — vat в позиции состава

ЗначениеЧто означает
1222 %
410 %
107 %
95 %
50 %
6Не облагается

Ссылка QR-режима

Тот же заказ можно передать не кодом на странице, а ссылкой — например, показать её QR-кодом на кассе. Адрес начинается с https://widget.invoicebox.ru/?smpspg=qr, дальше идут параметры.

ПараметрЧто задаёт
g *Состав заказа — та же упаковка, что и в `widget_goods`
t *Тип плательщиказначения
p *Идентификатор магазина
o *Ваш номер заказа
sАдрес возврата после успешной оплаты

Однострочный вариант

Некоторые конструкторы сайтов не принимают многострочный код. Для них тот же код отдаётся одной строкой: переносы убраны, повторяющиеся пробелы сжаты — на поведение это не влияет. Где и как вставлять — в инструкции по вставке.

Идентификатор магазина и региональный код берутся в личном кабинете. Если сумму и состав определяет только ваш сервер, надёжнее создавать заказы через API — виджет и API работают с одним и тем же магазином.