Os parceiros que participam do programa de listas de espera de reservas precisam concluir a configuração da conta antes de começar. No entanto, algumas etapas do guia geral não são necessárias para o uso do recurso de lista de espera. As diretrizes desta página explicam quais etapas se aplicam aos parceiros interessados em usar o recurso de lista de espera no Reservar com o Google. Sugerimos que você leia esta visão geral antes de seguir as etapas de integração.
Processo de lançamento
A Figura 1 descreve o processo para lançar seus comerciantes que usam lista de espera na Central de ações.
![Figura 1: etapas de integração de alto nível](https://developers.google.cn/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=3&hl=pt)
No geral, os principais fluxos de dados entre você (o parceiro) e o Google são mostrados na Figura 2:
![Figura 2: diagrama de fluxo de dados de integração](https://developers.google.cn/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=3&hl=pt)
Diretrizes para todos os parceiros das listas de espera de reservas
Considere o seguinte ao implementar o recurso de listas de espera de reservas:
- O serviço de cada comerciante das listas de espera do Reservations precisa ter o campo
waitlist_rules
preenchido.- É necessário usar o mesmo serviço para as listas de espera e as reservas. Ou seja, se o restaurante também permite reservas, basta adicionar os metadados relacionados à lista de espera ao serviço para fazer a reserva.
- O envio de atualizações por SMS é necessário para a implementação da lista de espera nos seguintes casos:
- Para confirmar que o usuário entrou na lista de espera.
- Para notificar o usuário de que a mesa está pronta.
- Para notificar o usuário de que a entrada na lista de espera foi cancelada.
- As mensagens SMS precisam conter um link para uma página em que os usuários possam ver o status da lista de espera.
- Os comerciantes que usam esse recurso não precisam enviar feeds de disponibilidade para a Central de ações.
- O servidor de agendamento precisa implementar todas as etapas específicas da lista de espera listadas em Implementar o servidor de agendamento. Os parceiros que aceitam reservas e listas de espera podem adicionar os novos métodos ao servidor de agendamento atual.
- A Central de ações executa um conjunto de casos de teste para os métodos da lista de espera no servidor de agendamento.
Fluxograma de status
Este gráfico descreve os status que precisam ser informados em
WaitlistEntry.waitlist_entry_state
ao responder a chamadas
GetWaitlistEntry
. O gráfico também indica quando gravar e preencher os campos
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
e quando enviar um SMS ao usuário para informar que ele entrou em um novo estado.
![Figura 3: fluxograma de status da lista de espera](https://developers.google.cn/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=3&hl=pt)
Casos extremos comuns
Confira a seguir casos extremos comuns em uma integração de listas de espera do Reservations e as soluções preferenciais para eles.
-
Se alguns grupos (mas não todos) não aceitarem novas adições à lista de espera porque não há espera para esses grupos, retorne
WaitEstimates
para todos os grupos na respostaBatchGetWaitEstimates
e permita que os usuários entrem na lista de espera dessas pessoas sem tempo de espera. Retornar umWaitLength
com 0parties_ahead_count
e/ou com umestimated_seat_time_range
com 0start_seconds
e com 0end_seconds
para osparty_size
s sem espera. -
Se um ou mais grupos não aceitarem novas adições à lista de espera porque o tempo de espera se tornou muito longo, é preferível omitir
WaitEstimates
para eles na respostaBatchGetWaitEstimates
.
Essas abordagens são preferíveis porque oferecem opções ao usuário, mesmo que a lista de espera do comerciante não esteja totalmente aberta.
Diretrizes para parceiros que usam apenas listas de espera de reservas
Lembre-se do seguinte se o servidor de agendamento for usado apenas para listas de espera:
- Os parceiros que utilizam apenas listas de espera de reservas não enviam feeds de disponibilidade ao Reservar com o Google.
- Os parceiros que usam apenas listas de espera de reservas não implementam os métodos de reserva no servidor de agendamento. Em vez disso, implemente o servidor de agendamento com as instruções para a implementação da lista de espera.
- Os parceiros que usam somente listas de espera de reservas não fazem chamadas de API para o Google. Isso significa que os parceiros que usam apenas listas de espera do Reservations não precisam configurar um projeto do Cloud nem fornecer um endereço de e-mail do desenvolvedor. Não é necessário concluir as atualizações da API em tempo real. No entanto, os feeds do comerciante e do serviço ainda precisam ser fornecidos à Central de ações.
Diretrizes para parceiros com comerciantes que precisam aceitar/rejeitar manualmente adições à lista de espera
Se os comerciantes exigirem a possibilidade de aceitar ou rejeitar manualmente novas adições à lista de espera do Google, serão necessárias outras etapas:
- Defina o
waitlist_confirmation_mode
comoWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
nowait_estimate
para tamanhos de grupo que exigem confirmação manual. Isso precisa ser definido emBatchGetWaitEstimateResponse
eGetWaitlistEntryResponse
. - As entradas da lista de espera que foram solicitadas pelo usuário, mas ainda não foram aceitas pelo comerciante, devem estar com o estado
PENDING_MERCHANT_CONFIRMATION
.
Casos de teste das listas de espera de reservas
O Google testa os casos de uso a seguir para garantir a funcionalidade dos métodos da lista de espera na implementação do servidor de agendamento. O Google também testa e monitora a latência. Todos esses testes precisam ser aprovados antes do lançamento.
Recuperação de WaitEstimate
- As estimativas de espera são retornadas para cada tamanho de grupo solicitado em um
BatchGetWaitEstimatesRequest
. - Para tamanhos de grupo em que o comerciante tem a opção de aceitar ou rejeitar novas adições à lista de espera, defina Waitlist_confirmation_mode como
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
.
Criação de entradas da lista de espera
- É possível criar uma entrada da lista de espera com base em uma solicitação
CreateWaitlistEntry
. - Se a criação da entrada da lista de espera falhar, um erro de lógica de negócios será exibido na resposta.
- Se uma tentativa de
CreateWaitlistEntry
for bem-sucedida, a mesma resposta será retornada quando o mesmoCreateWaitlistEntry
for recebido novamente. - Se uma tentativa de
CreateWaitlistEntry
falhar, o servidor vai repetir quando o mesmoCreateWaitlistEntry
for recebido novamente. - As entradas da lista de espera são exibidas na interface do comerciante.
- As chamadas para
GetWaitlistEntry
retornam a entrada da lista de espera criada.
Estados e carimbos de data/hora das entradas da lista de espera
- Verifique se cada estado é retornado corretamente na entrada da lista de espera das respostas de
GetWaitlistEntry
. - Verifique se cada carimbo de data/hora de estado está definido no campo apropriado da entrada da lista de espera nas respostas de
GetWaitlistEntry
.
Exclusão de entradas da lista de espera
- É possível remover as entradas da lista de espera. A resposta a uma exclusão
bem-sucedida precisa ser o proto vazio
{}
.
Deixar de participar
- Verifique se os comerciantes que recusaram são tratados conforme descrito em Desativação do comerciante.
Exemplo de feed de serviços da lista de espera (JSON)
Feed de serviços da lista de esperaDesativação do comerciante
O Google espera determinadas respostas para comerciantes que já tinham listas de espera ativadas, mas decidiram desativá-las.
Desativação imediata
- Retorne
CLOSED_OTHER
para solicitaçõesBatchGetWaitEstimates
. - Retorne
WAITLIST_CLOSED
para solicitaçõesCreateWaitlistEntry
. - Retorne solicitações
GetWaitlistEntry
corretamente para usuários que já estão na lista de espera.
Desativação estendida
- Remova o
waitlist_rules
do feed de serviços do comerciante se ele não estiver desativando as reservas. - Remova o comerciante do feed se ele desativar todas as integrações do Google.