Descripción general

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:

  1. El servicio de pedido de extremo a extremo envía un CheckoutRequestMessage que contiene un Cart al extremo del servicio web de entrega.
  2. 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.
  3. El extremo responde con un CheckoutResponseMessage que contiene el Cart sin modificar para las solicitudes exitosas. Se puede incluir un FoodErrorExtension en CheckoutResponseMessage 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:

  1. El servicio de pedidos de extremo a extremo envía un SubmitOrderRequestMessage que contiene un Order al extremo del servicio web de entrega. Tu backend debe realizar otra validación de Cart antes de continuar.
  2. Tu servicio web procesa los detalles del pago que se encuentran en Order y, por lo general, realiza las siguientes acciones:

    1. Realizar verificaciones de tokens, fraudes y otras verificaciones de elegibilidad
    2. Autoriza la tarjeta y, de forma opcional, realiza el cargo correspondiente.
  3. Tu extremo responde con un SubmitOrderResponseMessage que contiene un OrderUpdate con un estado de CREATED (estado de compra "Ordenado"), CONFIRMED (estado de compra "Aceptado") o REJECTED (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:

  1. Cambios en OrderState, como las transiciones de CREATED a CONFIRMED y de CONFIRMED a IN_TRANSIT
  2. Cambios en los artículos del pedido, como el precio o la disponibilidad
  3. 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.

Solicita el flujo de entrega de extremo a extremo

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.