Introdução às listas de espera

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.

Figura 1: etapas de integração de alto nível
Figura 1:etapas de integração de alto nível

No geral, os principais fluxos de dados entre você (o parceiro) e o Google são capturados na Figura 2:

Figura 2: diagrama de fluxo de dados de integração
Figura 2: diagrama de fluxo de dados de integração

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.

Figura 3: fluxograma de status da lista de espera
Figura: 3 fluxograma de status da lista de espera

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 resposta BatchGetWaitEstimates e a permissão para que os usuários entrem na lista de espera desses grupos sem espera. Retorne um WaitLength com 0 parties_ahead_count e/ou com um estimated_seat_time_range com 0 start_seconds e com 0 end_seconds para os party_sizes 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 resposta BatchGetWaitEstimates.

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 como WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS em wait_estimate para tamanhos de grupo que exigem confirmação manual. Isso precisa ser definido em BatchGetWaitEstimateResponse e GetWaitlistEntryResponse.
  • 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 mesma CreateWaitlistEntry for recebida novamente.
  • Se uma tentativa de CreateWaitlistEntry falhar, o servidor tentará novamente quando a mesma CreateWaitlistEntry 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 espera

Desativação do comerciante

O Google espera determinadas respostas para comerciantes que já tinham listas de espera ativadas, mas decidiram desativá-las.

Desativação imediata

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.