book() — это метод, открывающий checkout. Всё остальное в клиенте настраивает его или отслеживает его работу.
entase.book(eventID);
entase.book(eventID, options);eventID — идентификатор запланированного события, билеты на которое нужно продавать. Это тот же идентификатор, который используется в кодах публикации и встраивания вашего события.
Вызов возвращает управление сразу – он открывает панель или окно и не ждёт, пока посетитель завершит оформление. Используйте события, чтобы реагировать на дальнейшие действия.
Параметры
| Название | Тип | По умолчанию | Описание |
|---|---|---|---|
checkoutMode | string | значение экземпляра | 'pane' или 'popup' только для этого бронирования. |
clientContext | object | null | Произвольные данные, передаваемые в checkout, когда он будет готов. См. ниже. |
collectConsent | boolean | значение экземпляра | Нужно ли просить посетителя принять уведомление об условиях. |
backdrop | boolean | значение экземпляра | Нужно ли затемнять страницу за checkout. |
backdropColor | string | значение экземпляра | Цвет затемнённой области. |
pane | object | значение экземпляра | { width, height } для встроенной панели. |
popup | object | значение экземпляра | { width, height } для всплывающего окна. |
Для всех неуказанных параметров используются значения, с которыми был создан экземпляр, поэтому параметры отдельных вызовов дополняют, а не заменяют набор параметров.
entase.book('EVENT_ID', {
pane: { width: '60vw' },
backdrop: false,
clientContext: { source: 'homepage-hero' }
});Контекст клиента
clientContext — это объект с определяемой вами структурой. Клиент хранит его, пока checkout не сообщит, что готов, а затем передаёт его. Используйте его для передачи в сессию checkout информации, известной только вашей странице: какая кнопка была нажата, из какой кампании пришёл посетитель, внутренняя ссылка на клиента.
Контекст хранится отдельно для каждого идентификатора события, поэтому при бронировании двух разных событий с одной страницы их контексты остаются раздельными.
Не помещайте в него конфиденциальные данные. Он передаётся в checkout через браузер и виден всем, кто проверяет страницу.
Открытие нескольких событий с одной страницы
Один экземпляр обрабатывает любое количество событий. Создайте его один раз и каждый раз передавайте другой идентификатор:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
document.querySelectorAll('[data-event-id]').forEach(button => {
button.addEventListener('click', () => {
entase.book(button.dataset.eventId, {
clientContext: { source: button.dataset.source }
});
});
});После удаления клиента
Вызов book() у экземпляра, который вы уже удалили, записывает ошибку в консоль и ничего не открывает. Это сделано намеренно – удалённый экземпляр больше не прослушивает сообщения от checkout, поэтому открытое им окно нельзя было бы закрыть или отслеживать. Вместо этого создайте новый экземпляр.
Закрытие checkout
Посетитель закрывает checkout самостоятельно: клавишей Escape или щелчком по затемнённой области в режиме панели, либо с помощью элементов управления окном в режиме всплывающего окна. Checkout также закрывается сам после завершения бронирования.
Публичного метода для его закрытия из вашего кода нет. Если вам нужно знать, когда он закрылся, прослушивайте событие checkout.closed.