Os parceiros que participam do programa de lista de espera precisam concluir a configuração da conta antes de começar. No entanto, algumas etapas no 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 na lista de espera no Reservar com o Google.
No geral, os principais fluxos de dados entre você (o parceiro) e o Google são capturados na Figura 2:
Diretrizes para todos os parceiros que usam a lista de espera
Lembre-se do seguinte ao implementar esse recurso:
- O serviço para cada comerciante na lista de espera precisa ter o
waitlist_rules
preenchido.- Você precisa usar o mesmo serviço para a lista de espera e a reserva. Em outras palavras, se seu restaurante também permite reservas, basta adicionar os metadados relacionados à lista de espera ao serviço de 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 tabela está pronta.
- Para notificar o usuário de que a entrada da 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 somente esse recurso não precisam enviar feeds de disponibilidade ao Reservar com o Google.
- Seu servidor de agendamento precisa implementar todas as etapas específicas da lista de espera em Implementar o servidor de reserva. Os parceiros que aceitam reservas e listas de espera podem adicionar os novos métodos ao servidor de reservas atual.
- O Reservar com o Google executa um conjunto de casos de teste para os métodos da lista de espera no servidor de reserva.
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.
Casos extremos comuns
Veja a seguir casos comuns em uma integração de lista de espera e soluções preferenciais.
-
Se alguns grupos, mas não todos, não aceitarem novas adições à lista de espera porque não há espera nesses grupos, o retorno será
WaitEstimates
para todos os grupos na respostaBatchGetWaitEstimates
e a permissão para que os usuários entrem na lista de espera desses grupos sem espera. Retorne 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 estiverem aceitando novas adições da lista de espera
porque a espera ficou muito longa, omita
WaitEstimates
para esses tamanhos na respostaBatchGetWaitEstimates
.
Essas abordagens são preferenciais 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 a lista de espera
Considere o seguinte se o servidor de agendamento for usado apenas para listas de espera:
- Os parceiros que usam somente a lista de espera não oferecem feeds de disponibilidade para o Reservar com o Google.
- Os parceiros que usam somente a lista de espera não implementam os métodos de reserva no servidor de reservas. Em vez disso, implemente o servidor de agendamento com as instruções necessárias para a implementação da lista de espera.
- Os parceiros que utilizam apenas esse recurso não fazem chamadas de API para o Google. Isso significa que os parceiros que usam apenas a lista de espera não precisam configurar um projeto na nuvem ou 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 de comerciantes e de serviços ainda precisam ser fornecidos no Reservar com o Google.
Diretrizes para parceiros com comerciantes que precisam aceitar/rejeitar manualmente as adições à lista de espera
Se os comerciantes precisarem aceitar ou rejeitar manualmente novas adições da lista de espera do Google, serão necessárias etapas adicionais:
- Defina
waitlist_confirmation_mode
comoWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
emwait_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, precisam estar no estado
PENDING_MERCHANT_CONFIRMATION
.
Casos de teste da lista de espera
O Google testa os seguintes casos de uso 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 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 a partir de uma
solicitação
CreateWaitlistEntry
. - Se a criação da entrada da lista de espera falhar, um erro de lógica de negócios vai aparecer na resposta.
- Se uma tentativa de
CreateWaitlistEntry
for bem-sucedida, a mesma resposta vai ser retornada quando a mesmaCreateWaitlistEntry
for recebida novamente. - Se uma tentativa de
CreateWaitlistEntry
falhar, o servidor tentará novamente quando a mesmaCreateWaitlistEntry
for recebida 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 de entrada da lista de espera é retornado corretamente na entrada das
respostas
GetWaitlistEntry
. - Verifique se cada carimbo de data/hora do estado está definido no campo de carimbo de data/hora 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 desativaram o recurso são tratados conforme descrito em Desativar comerciantes.
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 os 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 quiser desativar as reservas. - Remova o comerciante do feed se ele recusar todas as integrações do Google.