К содержимому
Инвойсбокс

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

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

Параметры 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Открывать форму в новой вкладке
widget_themeТема формы. Без параметра — светлаязначения
widget_accentЦвет кнопки, `#rrggbb`. Цвет надписи виджет подбирает сам — тот из чёрного и белого, что контрастнее
widget_accent_textПожелание по цвету надписи на кнопке. Принимается, только если контраст к цвету кнопки не ниже 4,5:1, иначе виджет ставит читаемыйзначения
widget_radiusСкругление полей и кнопки в пикселях, от 0 до 20. Без параметра — 10; карточка скругляется в 1,4 раза сильнее
widget_sizeПлотность формы. Компактная сокращает отступы и высоту полей, размер текста и тач-цели остаютсязначения
widget_fontНаследовать ли шрифт страницы магазина. Наследуется только семейство: размеры и межстрочный интервал у виджета своизначения
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 *Код ставки НДСзначения

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

Оформление

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

Цвет надписи на кнопке задать нельзя, можно только пожелать: виджет считает контраст по WCAG 2.1 и берёт из чёрного и белого тот, что читается на выбранном цвете. Из этих двух хотя бы один всегда даёт не меньше 4,5:1, так что надпись остаётся читаемой при любом цвете кнопки. Заметность самой кнопки так не гарантируется: если цвет почти совпал с фоном карточки, виджет обводит её по краю, а конструктор предупреждает.

Не настраиваются: подписи и тексты формы, размер шрифта, состав правового подвала, логотипы, кольцо фокуса и цвета самих полей. Форма оплаты должна оставаться узнаваемой и читаемой — иначе покупатель не понимает, кому платит, а виджет превращается в чужой интерфейс. Параметр widget_css_external остался от прежних версий; оформление задаётся параметрами из этого раздела.

Надпись на кнопке — 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Не облагается

Тема формы — widget_theme

ЗначениеЧто означает
lightСветлая
darkТёмная
autoПо системе покупателя

Плотность формы — widget_size

ЗначениеЧто означает
normalОбычный
compactКомпактный

Шрифт — widget_font

ЗначениеЧто означает
ownСвой шрифт виджета
inheritШрифт страницы магазина

Цвет надписи на кнопке — widget_accent_text

ЗначениеЧто означает
autoВыбирает виджет по контрасту
lightСветлая надпись
darkТёмная надпись

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

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

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

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

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

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