Для разработчиков
Назначение данного раздела — описать способы взаимодействия с виджетом Веб-платформы по задуманому вами сценарию. Типичный процесс подключения, открытия и отслеживания виджета выглядит так:
1. Подключите скрипт external.script.js
к вашему сайту. Его адрес будет доступен после
добавления сайта в процессе настройки в администраторской панели Веб-Платформы, так же
как и параметр id
для подключения
2. Вставьте в необходимом месте на своём сайте код:
<script type="text/javascript">
// инициализируем виджет с параметрами
WPInit({
id: 1,
width: 400,
type: 'modal'
})
// сразу откроем его для пользователя
WPOpenModal(); // вариант для модального окна
// WPOpen(); // вариант для открытия в теле страницы. Используется при инициализации виджета с type: 'instant'
// будем следить за состоянием виджета
WPChange = function(response) {
if (response.status == 'reserved') {
// если заказ зарезирвирован, занесём данные из response.data.order_id себе на сайт
}
if (response.status == 'completed') {
// если заказ оплачен, занесём данные из response.data.order_id себе на сайт
}
}
</script>
Функции
WPInit({params})
Функция загрузки виджета с параметризацией, при создании необходимо передать id виджета, который можно найти в Административной панели
Минимальный способ инициализации:
-
WPInit({ id: 1 })
Пример передаваемых данных:
Виджет можно инициализировать с различными параметрами, все из них опциональные, кроме id
.
WPInit({
id: 1,
width: 400,
height: 600,
type: 'modal'
})
WPOpen({params})
Функция открытия виджета в каком-либо блоке, используется при инициализации виджета с type: 'instant'
Пример передаваемых данных:
// показ виджета с группой id 5
WPOpen({
groupid: [5]
})
WPOpenModal({params})
Функция открытия виджета в модальном окне, используется при инициализации виджета с type: 'modal'
Пример передаваемых данных:
// показ виджета на нажатие кнопки с id "OpenButton"
var OpenButton = document.getElementById('OpenButton');
OpenButton.onclick = function() {
WPOpenModal({
tariffsid: [27, 28]
})
}
WPChange({status, data})
Функция, которая вызывается каждый раз при изменении состояния виджета. Каждый раз передаёт в переменной response состояние в status и опционально данные в data. При переопределении этой функции у себя на странице, администратор может следить за состоянием виджета и статусом заказа из javascript
Примеры передаваемых данных:
-
{ status:'starting' }
— виджет в процессе запуска, в этот момент определяется, что он должен в данный момент отображать -
{ status:'started' }
— виджет на начальном экране, где показывается список услуг для покупки -
{ status:'reserved', data: { order_id: 2 } }
— виджет находится на стадии забронированного заказ, в data передаётся id -
{ status:'completed', data: { order_id: 2 } }
— виджет находится на стадии оплаченного заказ, в data передаётся id заказа
Пример работы с данными:
WPChange = function(response) {
if (response.status == 'starting') {
// действие на внешней странице
}
if (response.status == 'started') {
// действие на внешней странице
}
if (response.status == 'reserved') {
// id зарезервированного заказа: response.data.order_id
}
if (response.status == 'completed') {
// id оплаченного заказа: response.data.order_id
}
}
Параметры
Обязательные параметры WPInit
id: 1 int
id виджета, который можно узнать в Административной панели
Возможные параметры WPInit
height: 480 int
Высота виджета в пикселях, по умолчанию:
480
px, если виджет запущен какtype: 'modal'
100%
, если виджет запущен какtype: 'instant'
width: 640 int
Ширина виджета в пикселях, по умолчанию:
640
px, если виджет запущен какtype: 'modal'
100%
, если виджет запущен какtype: 'instant'
type: 'modal' string
Способ открытия виджета, по умолчанию 'instant'
:
-
'instant'
Открытие виджета на месте, где был вызов виджета (на месте тэгаscript
), либо в блокеplace
, если он указан в параметрах виджета при инициализации -
'modal'
Открытие виджета в модальном окне
place: '#place' string
Идентификатор элемента DOM, в который необходимо поместить виджет, например: #widget
. Используется
совместно с type: 'instant'
place
должен быть либо на странице
до вставки инициализации виджета (WPInit
), либо инициализация виджета должна быть исполнена после
загрузки DOM (например, обёрнута в событие $(document).ready(function(){})
в jQuery) Возможные параметры WPOpen и WPOpenModal
Календарь и даты
nocalendar: false boolean
Убирает календарь внутри виджета (и в покупке и в пополнении), в случаях, когда дата, на которую
покупается/пополняется билет, не важна. По умолчанию false
mindate: '01.01.2019' string
Параметр минимальной отображаемой даты в календаре (и в покупке и в пополнении).
mindate: '20.05.2018'
покажет 20.05.2018 как самую первую дату, доступную к выбору в календаре, если
она находится после текущего дня
maxdate: '01.01.2020' string
Параметр максимальной отображаемой даты в календаре (и в покупке и в пополнении).
maxdate: '20.05.2018'
покажет 20.05.2018 как самую последнюю дату, доступную к выбору в календаре.
forcedate: '12.06.2019' string
Параметр для открывания виджета с указанной сразу датой (и в покупке и в пополнении).
forcedate: '20.05.2018'
покажет услуги к продаже на дату 20.05.2018.
disableddates: ['23.02.2019' string, … ] array
Параметр отключения дат в календаре (и в покупке и в пополнении). Делает невозможным выбор определённых
дней в массиве дат.
Пример использования: disableddates: ['23.02.2018', '08.03.2018']
уберёт
даты 23.02.2018 и 08.03.2018 из возможных для выбора дат в календаре.
Услуги, пакеты услуг, группы услуг
tariffsid: [29 int, 30 int, … ] array
Тарифы, которые следует показать на вкладке «Покупка услуг». По умолчанию массив пуст и не показывает отдельно
никакие из услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю
необходимо показывать услуги, доступные только для него.
Пример использования:
tariffsid: [29, 30]
покажет тарифы с id 29 и 30 во вкладке «Покупка услуг».
tariffsid: false
уберёт все тарифы с первой страницы
rtariffsid: [56 int, 57 int, … ] array
Тарифы, которые следует показать после ввода карты во вкладке «Пополнение услуг». По умолчанию массив пуст и не
показывает отдельно никакие из услуг. Используется для принудительной фильтрации в том случае, когда определённому
пользователю необходимо показывать услуги, доступные только для него.
Пример использования:
rtariffsid: [56, 57]
покажет тарифы с id 56 и 57 после ввода карты во вкладке «Пополнение услуг»
tariffsid: false
уберёт все тарифы с первой страницы
bundlesid: [4 int, 5 int, … ] array
Пакеты услуг, которые следует показать на первой странице. По умолчанию массив пуст и не показывает отдельно никакие
из пакетов услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю
необходимо показывать пакеты услуг, доступные только для него.
Пример использования:
bundlesid: [4, 5]
покажет пакеты услуг с id 4 и 5 в момент открытия виджета.
bundlesid: false
уберёт все пакеты услуг с первой страницы
groupid: 12 int
Параметр, который форсирует показ определённой группы услуг ппс. groupid: 5
покажет только одну группу с
id 5 в виджете.
Предзаказ
preorder: [{id: 57 int, date: '06.06.2019' string, count: 1 int}, … ] array
Параметр, позволяющий купить сразу несколько услуг и перейти к подтверждению покупки.
-
id
— id услуги к покупке -
date
— дата, на которую покупается услуга -
count
— количество покупаемых услуг
Пример передаваемых данных:
// либо WPOpenModal({})
WPOpen({
preorder: [
{
id: 57,
date: '06.06.2019',
count: 1
}, {
id: 58,
date: '07.06.2019',
count: 2
}
]
})
Отображение
forcetab: 'rewrite' string
Переключение на необходимую вкладку виджета («покупка услуг» или «пополнение услуг») при загрузке. По умолчанию
открывается вкладка «покупка услуг». forcetab: 'rewrite'
принудительно откроет «пополнение услуг».
Обычно используется в комбинации с параметром onlytab
onlytab: 'rewrite' string
Скрытие других вкладок виджета («покупка услуг» или «пополнение услуг») при загрузке. Обычно используется в
комбинации с параметром forcetab
onlytab: 'service'
покажет только вкладку «покупка услуг».onlytab: 'rewrite'
покажет только вкладку «пополнение услуг».
forcemedia: 'E0012345678900' string
Параметр, который вставяет строчку с носителем в поле носителя во вкладке «Пополнение услуг». Используется, например, для QR-кода нанесённого на носитель, чтобы быстро его пополнить.
nopromo: false boolean
Убирает вывод промокода на странице подтверждения заказа. По умолчанию false
terminal: true boolean
Включение режима «терминал» для работы виджета. При этом режиме убирается возможность отослать заказ на SMS, а сам заказ распечатывается на принтере.
cartmaxitems: 5 int
*
Ограничивает максимальное кол-во товаров в корзине. Минимальное значение 1
. Максимальное значение
60
. По умолчанию 6
locale: 'ru' string
*
Параметр локализации. Позволяет переключать между языками виджета, например 'ru' - русский язык, 'en' - английский язык.
ordercomment: 'Комментарий к заказу' string
*
Опциональный комментарий к заказу. Максимальная длинна комментария 50 символов
.
disablemultipleseances: true boolean
*
Параметр предотвращает добавление в корзину тарифов с различными сеансами.
Таким образом как только в корзине
появится хоть один товар с сеансом "10:00 - 11:30", товары, у которых есть сеанс например "13:00 - 14:30" будет
невозможно добавить в корзину. Товары без сеансов не будут затронуты.
По умолчанию false
tariffsseancesfilter: true boolean
*

Включить отображение фильтра тарифов по сеансам. По умолчанию false
resetcart: true boolean
*
Автоматически очищать содержимое корзины. По умолчанию false
minimap: false boolean
*
Отображать миникарту. По умолчанию true
minimapaspect: 0.5 float
*
Размер миникарты относительной полного размера карты, а не контейнера, в которой она находится. По умолчанию
0.2
forceseanceid: 42 int
*
Заставит виджет выбрать мероприятие арены по идентификатору платформы и не позволять вернуться к этапу выбора других мероприятий. Без указания идентификатора не учитывается.
forcesectorid: 42 int
*
Заставит виджет выбрать сектор мероприятия по id и не позволять вернуться к этапу выбора других секторов. Без указания идентификатора не учитывается.
requiredloyalty: true boolean
*
Включает обязательную регистриацию клиента в программе настроенной на объектке. По умолчанию false
personallessonsskillstariffs: [56 int, 57 int, … ] array
*
Производит фильтрацию тарифов для индивидуальных занятий. Принимает массив идентификаторов. По умолчанию
[]
multidayslessonsskillstariffs: [56 int, 57 int, … ] array
*
Производит фильтрацию тарифов для многодневных занятий. Принимает массив идентификаторов. Параметр дополняет
фильтрацию по параметру grouplessonsskillstariffs. По умолчанию []
saletermstype: 'checkbox' string
*
Перед оплатой просит пользователя согласиться с правилами в форме галочки или всплывающего окна
saletermstype: 'checkbox'
потребует установку галочки для согласия.saletermstype: 'dialog'
покажет всплывающее окно с правилами, которые нужно принять.saletermstype: 'default'
принятие правил не требуется.
'default'
* - доступно в новой версии виджета