Партнеры, участвующие в программе «Списки ожидания бронирования», должны завершить настройку учетной записи перед ее началом. Однако некоторые шаги общего руководства не обязательны для использования функции списка ожидания. В рекомендациях на этой странице объясняется, какие действия следует предпринять партнерам, заинтересованным в использовании функции списка ожидания в программе «Забронировать через Google». Мы рекомендуем вам прочитать этот обзор, прежде чем переходить к этапам интеграции.
Процесс запуска
На рис. 1 показан процесс запуска продавцов с включенным в список ожидания в Центре действий.
![Рисунок 1. Этапы интеграции высокого уровня](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=7&hl=ru)
В целом основные потоки данных между вами (Партнером) и Google показаны на рисунке 2:
![Рисунок 2. Схема потока данных интеграции.](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=7&hl=ru)
Рекомендации для всех партнеров по спискам ожидания бронирования
При реализации функции «Списки ожидания резервирования» помните следующее:
- В службе для каждого продавца списков ожидания резервирования должно быть заполнено
waitlist_rules
.- Вы должны использовать одну и ту же услугу как для списка ожидания, так и для бронирования. Другими словами, если ваш ресторан также разрешает бронирование, просто добавьте метаданные, связанные со списком ожидания, в службу для бронирования.
- Рассылка SMS-обновлений необходима для реализации списка ожидания в следующих случаях:
- Чтобы подтвердить, что пользователь успешно присоединился к списку ожидания.
- Чтобы уведомить пользователя о том, что его стол готов.
- Чтобы уведомить пользователя о том, что его запись в списке ожидания была отменена.
- SMS-сообщения должны содержать ссылку на страницу, где пользователи могут просмотреть статус своего списка ожидания.
- Продавцам, имеющим только список ожидания, не нужно предоставлять информацию о доступности в Центр действий.
- Ваш сервер бронирования должен реализовать все действия, относящиеся к списку ожидания, перечисленные в разделе «Реализация сервера бронирования» . Партнеры, которые поддерживают как бронирование, так и списки ожидания, могут добавить новые методы к своему существующему серверу бронирования.
- Центр действий запускает набор тестовых сценариев для методов списка ожидания на сервере бронирования.
Блок-схема статуса
В этой диаграмме описаны состояния, о которых необходимо сообщать в WaitlistEntry.waitlist_entry_state
при ответе на вызовы GetWaitlistEntry
. На диаграмме также указано, когда записывать и заполнять поля WaitlistEntry.waitlist_entry_state_times.*_time_seconds
и когда отправлять SMS пользователю, чтобы сообщить ему, что он перешел в новое состояние.
![Рисунок 3. Блок-схема статуса списка ожидания](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=7&hl=ru)
Общие крайние случаи
Ниже приведены типичные крайние случаи интеграции списков ожидания резервирования и предпочтительные решения для них.
- Если некоторые (но не все) размеры партий не принимают новые добавления в список ожидания, поскольку для этих размеров групп нет ожидания, тогда возврат
WaitEstimates
для всех размеров партий в ответеBatchGetWaitEstimates
и разрешение пользователям присоединяться к списку ожидания для этих размеров партий без ожидания предпочтительнее. ВозвращаетWaitLength
с 0parties_ahead_count
и/или сestimated_seat_time_range
с 0start_seconds
и с 0end_seconds
дляparty_size
без ожидания - Если один или несколько размеров групп не принимают новые добавления в список ожидания, поскольку ожидание стало слишком долгим, то предпочтительно опустить
WaitEstimates
для этих размеров групп в ответеBatchGetWaitEstimates
.
Эти подходы являются предпочтительными, поскольку они предоставляют пользователю возможности, даже если список ожидания продавца может быть не полностью открыт.
Рекомендации для партнеров, использующих только списки ожидания бронирования
Если сервер бронирования используется только для списков ожидания, имейте в виду следующее:
- Партнеры службы бронирования, использующие только списки ожидания, не предоставляют данные о доступности для функции «Забронировать через Google».
- Партнеры, использующие только списки ожидания, не реализуют методы бронирования на своем сервере бронирования. Вместо этого вы реализуете сервер бронирования с инструкциями по реализации списка ожидания.
- Партнеры, работающие только со списками ожидания бронирования, не выполняют вызовы API в Google. Это означает, что партнерам, использующим только списки ожидания резервирования, не нужно настраивать облачный проект или предоставлять адрес электронной почты разработчика. Вам не нужно обновлять API в реальном времени . Однако фиды продавцов и услуг по-прежнему необходимо предоставлять в Центр действий.
Рекомендации для партнеров, чьи продавцы должны вручную принимать или отклонять добавления в список ожидания
Если вашим продавцам требуется возможность вручную принимать или отклонять новые добавления в список ожидания от Google, необходимо выполнить дополнительные действия:
- Установите для
waitlist_confirmation_mode
значениеWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
вwait_estimate
для размеров групп, требующих подтверждения вручную. Это должно быть установлено вBatchGetWaitEstimateResponse
иGetWaitlistEntryResponse
. - Записи списка ожидания, запрошенные пользователем, но еще не принятые продавцом, должны находиться в состоянии
PENDING_MERCHANT_CONFIRMATION
.
Тестовые примеры списков ожидания бронирования
Google тестирует следующие варианты использования, чтобы убедиться в работоспособности методов списка ожидания в реализации вашего сервера бронирования. Google также тестирует и отслеживает задержку. Все эти тесты должны пройти до запуска.
Получение WaitEstimate
- Оценки ожидания возвращаются для каждого размера группы, запрошенного в
BatchGetWaitEstimatesRequest
. - Для групповых размеров, при которых продавец имеет возможность принимать или отклонять новые добавления в список ожидания, установите для параметра waitlist_confirmation_mode значение
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
.
Создание записи в списке ожидания
- Запись в списке ожидания можно создать на основе запроса
CreateWaitlistEntry
. - Если создать запись списка ожидания не удается, в ответе отображается ошибка бизнес-логики.
- Если попытка
CreateWaitlistEntry
успешна, тот же ответ возвращается при повторном получении того жеCreateWaitlistEntry
. - Если попытка
CreateWaitlistEntry
завершается неудачей, сервер повторяет попытку, когда тот жеCreateWaitlistEntry
будет получен снова. - Записи списка ожидания отображаются в интерфейсе продавца.
- Вызовы
GetWaitlistEntry
успешно возвращают созданную запись списка ожидания.
Состояния и временные метки записей в списке ожидания
- Убедитесь, что каждое состояние записи списка ожидания возвращается правильно в записи списка ожидания ответов
GetWaitlistEntry
. - Убедитесь, что каждая временная метка состояния установлена в соответствующем поле временной метки записи списка ожидания в ответах
GetWaitlistEntry
.
Удаление записи из списка ожидания
- Существующие записи списка ожидания можно удалить. Ответом на успешное удаление должен быть пустой прототип
{}
.
Уклоняться
- Убедитесь, что продавцы, отказавшиеся от участия, рассматриваются так, как описано в разделе «Отказ продавца» .
Пример фида службы списка ожидания (JSON)
Фид службы списка ожиданияПродавец отказывается от участия
Google ожидает определенных ответов от продавцов, у которых ранее были включены списки ожидания, но которые решили отказаться от них.
Немедленный отказ
- Возвращает
CLOSED_OTHER
для запросовBatchGetWaitEstimates
. - Возвращайте
WAITLIST_CLOSED
для запросовCreateWaitlistEntry
. - Правильно возвращайте запросы
GetWaitlistEntry
для пользователей, которые уже находятся в списке ожидания.
Расширенный отказ
- Удалите
waitlist_rules
из фида услуг продавца, если продавец не отказывается от резервирования. - Удалите продавца из фида продавцов, если он отказывается от всех интеграций с Google.