En esta descripción general, se resume el flujo de Order with Google y cómo interactúa con tu servicio web de entrega.
Orden
La interfaz de usuario de Order with Google 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 que ofrece el restaurante. Esta experiencia se basa en 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 el servicio web procesa el Cart
resultante que creó el usuario.
Acción de Checkout
La acción de confirmación de la compra es la primera llamada que Google realiza al extremo del servicio web.
Tu servicio web es responsable de la validación de Cart
. Debes confirmar la disponibilidad y el precio de los artículos, calcular y devolver impuestos, descuentos y tarifas, y validar la dirección de entrega del pedido.
El proceso de confirmación de la compra sigue esta secuencia:
- El servicio de Order with Google 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, la disponibilidad y los proveedores de servicios actuales. Luego, calcularás el precio total, que incluye descuentos, impuestos y tarifas de entrega. - Tu 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 validar el Cart
, el usuario puede optar por continuar con la etapa de envío del pedido del flujo.
Enviar acción de pedido
La acción de 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 Order with Google envía un
SubmitOrderRequestMessage
que contiene unOrder
al extremo del servicio web de entrega. El backend debe realizar otra validación deCart
antes de continuar. Tu servicio web procesa los detalles de pago que se encuentran en
Order
, por lo general, mediante las siguientes acciones:- Realiza verificaciones de fraudes, verificaciones de fraude y otras verificaciones de elegibilidad.
- Autoriza y, de manera opcional, carga la tarjeta.
Tu extremo responde con un
SubmitOrderResponseMessage
que contiene unOrderUpdate
con el estadoCREATED
(estado de compra),CONFIRMED
(estado de compra aceptado) oREJECTED
(estado de compra rechazado).
Una vez realizado el pedido, el usuario espera recibir actualizaciones del estado del pedido tanto de ti como de la interfaz de usuario de Order with Google. Debes enviar un correo electrónico de confirmación del pedido al usuario. Además, usas la API de actualización de pedido asíncrona para enviar actualizaciones de pedido relevantes a Google.
Acción asíncrona de actualización de pedido
Más allá de cualquier notificación de usuario de tu parte, también debes enviar actualizaciones de estado del pedido 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.
- Cuando el usuario activa una solicitud de asistencia desde uno de tus canales de asistencia al cliente.
Las actualizaciones se envían desde el extremo del servicio web como un AsyncOrderUpdateRequestMessage
que contiene un OrderUpdate
. Google responde con un AsyncOrderUpdateResponseMessage
.
Diagrama de secuencias
En la siguiente ilustración, se muestra cómo las acciones de entrega interactúan con tu servicio web. Haz clic para agrandar.
Configura el extremo de entrega
Las acciones de Order with Google usan mensajes JSON para comunicarse con tu servicio web y controlar el procesamiento, la confirmación y las actualizaciones de los pedidos de comida. Cuando diseñas tu servicio web de Order with Google, debes definir un extremo de URL que reciba mensajes de solicitud del servicio de Order with Google 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 Order with Google. - Tu servicio web debe proporcionar un extremo de URL de acceso público, llamado URL de entrega, que especificas en el Portal para socios. La URL de entrega se usa para pagar y enviar pedidos. Tu implementación debe manejar ambos tipos de solicitudes.
- Tu servicio web debe poder verificar los mensajes de Google con el método Verificación de mensajes.
- Tu implementación del extremo de URL debe poder manejar 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 para el envío de pedidos.
Bibliotecas cliente
El generador de código del cliente en la sección Herramientas está disponible para validar tu servicio web con la especificación de la API de entrega.