Visão geral

Esta visão geral resume o fluxo de pedidos ponta a ponta e como ele interage com seu serviço da Web de fulfillment.

Pedidos

A interface do usuário de ponta a ponta lida com todas as interações com o usuário, enquanto ele adiciona itens ao pedido e decide se prefere retirada ou entrega, dependendo dos serviços oferecidos pelo restaurante. Essa experiência usa a tecnologia das entidades Restaurant, Service e Menu encontradas nos seus feeds de dados.

A próxima etapa é o estágio de validação do carrinho, em que o Cart resultante criado pelo usuário é processado pelo serviço da Web.

Ação de finalização de compra

A ação de finalização de compra é a primeira chamada feita pelo Google para seu endpoint de serviço da Web. Seu serviço da Web é responsável pela validação do Cart. Você precisa confirmar a disponibilidade e o preço dos itens, calcular e devolver tributos, descontos e taxas e validar o endereço de entrega do pedido.

O processo de finalização de compra segue esta sequência:

  1. O serviço de pedidos de ponta a ponta envia um CheckoutRequestMessage que contém um Cart para o endpoint do serviço da Web de fulfillment.
  2. Seu serviço da Web precisa validar os itens na Cart com base nos preços, na disponibilidade e nos provedores de serviços atuais. Em seguida, calcule o preço total, que inclui descontos, tributos e taxas de entrega.
  3. Seu endpoint responde com um CheckoutResponseMessage que contém o Cart não modificado para solicitações bem-sucedidas. Um FoodErrorExtension pode ser incluído no CheckoutResponseMessage para gerar um erro de processamento ou propor pequenas mudanças, se necessário.

Depois que o Cart é validado, o usuário pode prosseguir para o estágio de envio do pedido do fluxo.

Enviar ação do pedido

A ação de envio do pedido é acionada quando o usuário faz o pedido. Seu serviço da Web precisa revalidar o carrinho, processar o token do cartão se os pagamentos on-line estiverem ativados e, por fim, atualizar o status do pedido.

O processo de envio de pedidos segue esta sequência:

  1. O serviço de pedidos de ponta a ponta envia um SubmitOrderRequestMessage que contém um Order para o endpoint do serviço da Web de fulfillment. Seu back-end precisa realizar outra validação Cart antes de continuar.
  2. Seu serviço da Web processa os detalhes de pagamento encontrados em Order, normalmente realizando as seguintes ações:

    1. Realizar verificação de tokens, fraudes e outras verificações de qualificação.
    2. Autorize e, se quiser, faça uma cobrança no cartão.
  3. Seu endpoint responde com um SubmitOrderResponseMessage que contém um OrderUpdate com um estado de CREATED ("Status da compra"), CONFIRMED ("Status de compra aceita") ou REJECTED ("Status de compra recusada").

Com o pedido feito, o usuário espera receber atualizações do status do pedido de você e da interface do usuário de ponta a ponta. É necessário enviar um e-mail de confirmação do pedido para o usuário. Além disso, você usa a API de atualização de pedidos assíncronos para enviar atualizações relevantes sobre pedidos ao Google.

Ação de atualização de pedido assíncrono

Independentemente de qualquer notificação do usuário, você também precisa enviar atualizações de status do pedido ao Google para os seguintes eventos:

  1. Mudanças em OrderState, como transições de CREATED para CONFIRMED e de CONFIRMED para IN_TRANSIT.
  2. Alterações nos itens do pedido, como preço ou disponibilidade.
  3. Sempre que o usuário acionar uma solicitação de suporte de um dos seus canais de suporte ao cliente.

As atualizações são enviadas do endpoint do serviço da Web como um AsyncOrderUpdateRequestMessage que contém um OrderUpdate. O Google responde com um AsyncOrderUpdateResponseMessage.

Diagrama de sequência

A ilustração a seguir demonstra como as ações de fulfillment interagem com o serviço da Web. Clique para ampliar.

Fluxo de atendimento de pedidos completo

Configurar o endpoint de fulfillment

As ações completas de pedidos usam mensagens JSON para se comunicar com seu serviço da Web e lidar com o processamento, a confirmação e as atualizações de pedidos de comida. Ao projetar seu serviço da Web de Pedidos de ponta a ponta, você precisa definir um endpoint de URL que receba mensagens de solicitação desse serviço e que possa retornar mensagens ao serviço do Google. A implementação precisa atender aos seguintes requisitos:

  • Seu serviço da Web precisa ser capaz de receber uma mensagem JSON como uma solicitação POST do serviço de Pedidos de ponta a ponta.
  • Seu serviço da Web precisa fornecer um endpoint de URL acessível publicamente, chamado de URL de fulfillment, que você especifica na Central de ações. O URL de atendimento do pedido é usado para finalizar compras e enviar pedidos. Sua implementação precisa processar os dois tipos de solicitações.
  • Seu serviço da Web precisa verificar mensagens do Google usando o método Verificação de mensagens.
  • A implementação do endpoint do URL precisa processar a finalização de compra e o fulfillment de pedidos com um único endpoint. Não é possível ter um endpoint de URL para finalização de compra e outro para o envio de pedidos.

Bibliotecas de cliente

O gerador de código do cliente na seção "Ferramentas" está disponível para validar seu serviço da Web em relação à especificação da API Fulfillment.