En esta descripción general, se resume el flujo de pedidos de extremo a extremo y cómo interactúa con tu servicio web de entregas.
Pedidos
La interfaz de usuario de extremo a extremo de pedidos controla todas las interacciones con el usuario a medida que agrega elementos de menú a su pedido y decide el retiro o la entrega, según los servicios ofrecidos por el restaurante. Esta experiencia cuenta con la tecnología de las entidades Restaurant
, Service
y Menu
que se encuentran en tus feeds de datos.
El siguiente paso es la etapa de validación del carrito, en la que tu servicio web procesa el Cart
resultante que creó el usuario.
Acción de confirmación de la compra
La acción de confirmación de la compra es la primera llamada que realiza Google al extremo de tu servicio web.
Tu servicio web es responsable de la validación de Cart
. Debes confirmar la disponibilidad y los precios de los artículos, calcular y devolver los impuestos, los descuentos y las tarifas, y validar la dirección de entrega del pedido.
El proceso de confirmación de la compra sigue esta secuencia:
- El servicio de pedido de extremo a extremo envía un
CheckoutRequestMessage
que contiene unCart
al extremo del servicio web de entrega. - Tu servicio web debe validar los elementos de
Cart
según los precios actuales, la disponibilidad y los proveedores de servicios. Luego, calculas el precio total, que incluye descuentos, impuestos y cargos de envío. - El extremo responde con un
CheckoutResponseMessage
que contiene elCart
sin modificar para las solicitudes exitosas. Se puede incluir unFoodErrorExtension
enCheckoutResponseMessage
para generar un error de procesamiento o proponer cambios menores, si es necesario.
Después de que se valide Cart
, el usuario podrá continuar con la etapa de envío de pedidos del flujo.
Acción de enviar pedido
La acción Enviar pedido se activa cuando el usuario realiza su pedido. Tu servicio web debe volver a validar el carrito, procesar el token de la tarjeta si los pagos en línea están habilitados y, por último, actualizar el estado del pedido.
El proceso de envío de pedidos sigue esta secuencia:
- El servicio de pedidos de extremo a extremo envía un
SubmitOrderRequestMessage
que contiene unOrder
al extremo del servicio web de entrega. Tu backend debe realizar otra validación deCart
antes de continuar. Tu servicio web procesa los detalles del pago que se encuentran en
Order
y, por lo general, realiza las siguientes acciones:- Realizar verificaciones de tokens, fraudes y otras verificaciones de elegibilidad
- Autoriza la tarjeta y, de forma opcional, realiza el cargo correspondiente.
Tu extremo responde con un
SubmitOrderResponseMessage
que contiene unOrderUpdate
con un estado deCREATED
(estado de compra "Ordenado"),CONFIRMED
(estado de compra "Aceptado") oREJECTED
(estado de compra "Rechazada").
Una vez realizado el pedido, el usuario espera recibir actualizaciones del estado del pedido tanto de ti como de la interfaz de usuario de extremo a extremo de Ordering. Debes enviar un correo electrónico de confirmación del pedido al usuario. Además, usas la API de Aasync Order Update para enviar actualizaciones de pedidos relevantes a Google.
Acción de actualización de pedido asíncrona
Independientemente de cualquier notificación para el usuario, también debes enviar actualizaciones del estado de los pedidos a Google para los siguientes eventos:
- Cambios en
OrderState
, como las transiciones deCREATED
aCONFIRMED
y deCONFIRMED
aIN_TRANSIT
- Cambios en los artículos del pedido, como el precio o la disponibilidad
- Cada vez que el usuario activa una solicitud de asistencia desde uno de tus canales de asistencia al cliente
Las actualizaciones se envían desde el extremo de tu servicio web como un AsyncOrderUpdateRequestMessage
que contiene un OrderUpdate
. Google responde con una AsyncOrderUpdateResponseMessage
.
Diagrama de secuencias
En la siguiente ilustración, se muestra cómo interactúan las acciones de entrega con tu servicio web. Haz clic para ampliar.
Configura tu extremo de entrega
Las acciones de Pedidos de extremo a extremo usan mensajes JSON para comunicarse con tu servicio web y manejar el procesamiento, la confirmación y las actualizaciones de los pedidos de comida. Cuando diseñas tu servicio web de pedidos de extremo a extremo, debes definir un extremo de URL que reciba mensajes de solicitud del servicio de pedidos de extremo a extremo y pueda mostrar mensajes de vuelta al servicio de Google. Tu implementación debe cumplir con los siguientes requisitos:
- Tu servicio web debe poder recibir un mensaje JSON como una solicitud
POST
del servicio de Pedidos de extremo a extremo. - Tu servicio web debe proporcionar un extremo de URL de acceso público, llamado URL de entrega, que especificas en el Centro de acciones. La URL de entrega se usa para pagar y enviar pedidos. Tu implementación debe controlar ambos tipos de solicitudes.
- Tu servicio web debe poder verificar mensajes de Google con el método Verificación de mensajes.
- Tu implementación del extremo de URL debe poder controlar la confirmación de la compra y la entrega del pedido con un solo extremo. No puedes tener un extremo de URL para la confirmación de la compra y otro separado para el envío de pedidos.
Bibliotecas cliente
El generador de código cliente de la sección Herramientas está disponible para validar tu servicio web según la especificación de la API de cumplimiento.