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:
- O serviço de pedidos de ponta a ponta envia um
CheckoutRequestMessage
que contém umCart
para o endpoint do serviço da Web de fulfillment. - 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. - Seu endpoint responde com um
CheckoutResponseMessage
que contém oCart
não modificado para solicitações bem-sucedidas. UmFoodErrorExtension
pode ser incluído noCheckoutResponseMessage
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:
- O serviço de pedidos de ponta a ponta envia um
SubmitOrderRequestMessage
que contém umOrder
para o endpoint do serviço da Web de fulfillment. Seu back-end precisa realizar outra validaçãoCart
antes de continuar. Seu serviço da Web processa os detalhes de pagamento encontrados no
Order
, geralmente realizando as seguintes ações:- Verificar tokens, detectar fraudes e fazer outras verificações de qualificação.
- Autorizar e, opcionalmente, cobrar o cartão.
Seu endpoint responde com um
SubmitOrderResponseMessage
que contém umOrderUpdate
com um estado deCREATED
("Status de compra "Encomendado"),CONFIRMED
("Status de compra "Aceito") ouREJECTED
("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:
- Mudanças em
OrderState
, como transições deCREATED
paraCONFIRMED
e deCONFIRMED
paraIN_TRANSIT
. - Mudanças nos itens do pedido, como preço ou disponibilidade.
- 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.
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.