Visão geral

Esta visão geral resume o fluxo de pedidos de 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 do pedido lida com todas as interações com o usuário à medida que ele adiciona itens de menu ao pedido e decide entre retirada ou entrega, dependendo dos serviços oferecidos pelo restaurante. Essa experiência é fornecida pelas entidades Restaurant, Service e Menu encontradas nos feeds de dados.

A próxima etapa é a etapa de validação do carrinho, em que o Cart resultante criado pelo usuário é processado pelo seu 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 o endpoint do seu 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 impostos, 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 no Cart com base nos preços, na disponibilidade e nos provedores de serviços atuais. Em seguida, você calcula 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 for validado, o usuário poderá prosseguir para a etapa de envio do pedido do fluxo.

Ação "Enviar pedido"

A ação de enviar pedido é acionada quando o usuário faz o pedido. Seu serviço da Web precisa validar novamente 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 no Order, geralmente realizando as seguintes ações:

    1. Verificar tokens, detectar fraudes e fazer outras verificações de qualificação.
    2. Autorizar e, opcionalmente, cobrar o cartão.
  3. Seu endpoint responde com um SubmitOrderResponseMessage que contém um OrderUpdate com um estado de CREATED ("Status de compra "Encomendado"), CONFIRMED ("Status de compra "Aceito") ou REJECTED ("Status de compra "Recusado").

Com o pedido feito, o usuário espera receber atualizações de status do pedido de você e da interface do usuário de ponta a ponta do Ordering. Você precisa enviar um e-mail de confirmação do pedido ao usuário. Além disso, você usa a API Asynchronous Order Update para enviar atualizações de pedidos relevantes ao Google.

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

Independentemente das notificações 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. Mudanças nos itens do pedido, como preço ou disponibilidade.
  3. Sempre que o usuário acionar uma solicitação de suporte em um dos seus canais de suporte ao cliente.

As atualizações são enviadas do endpoint do seu web service como um AsyncOrderUpdateRequestMessage que contém um OrderUpdate. O Google responde com uma AsyncOrderUpdateResponseMessage.

Diagrama de sequência

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

Fluxo de atendimento de pedidos de ponta a ponta

Configurar o endpoint de fulfillment

As ações de finalização de pedidos usam mensagens JSON para se comunicar com seu serviço da Web e processar, confirmar e atualizar pedidos de comida. Ao projetar seu serviço da Web de final a final de pedidos, você precisa definir um endpoint de URL que receba mensagens de solicitação do serviço de final a final de pedidos e que possa retornar mensagens para o serviço do Google. Sua implementação precisa atender aos seguintes requisitos:

  • Seu serviço da Web precisa 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 atendimento, que você especifica no Centro de ações. O URL de processamento é usado para finalizar a compra 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.
  • Sua implementação do endpoint do URL precisa ser capaz de processar a finalização de compra e o atendimento do pedido com um único endpoint. Não é possível ter um endpoint de URL para finalização de compra e outro separado para 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 de acordo com a especificação da API Fulfillment.