Descripción general

Los socios que participan en el programa de listas de espera de reservas deben completar la configuración de la cuenta antes de comenzar. Sin embargo, algunos pasos de la guía general no son necesarios para usar la función de listas de espera. Los lineamientos de esta página explican qué pasos deben seguir los socios que deseen usar la función de listas de espera en Reserva con Google. Te sugerimos que leas esta descripción general antes de seguir los pasos de la integración.

Proceso de lanzamiento

En la figura 1, se describe el proceso que se debe realizar para lanzar los comercios habilitados para utilizar listas de espera en Actions Center.

Figura 1: Pasos de integración de alto nivel
Figura 1: Pasos de integración de alto nivel

En general, los principales flujos de datos entre Google y tú (el socio) se muestran en la Figura 2:

Figura 2: Diagrama de flujo de datos de la integración
Figura 2: Diagrama de flujo de datos de la integración

Lineamientos para todos los socios de las listas de espera de reservas

Ten en cuenta lo siguiente cuando implementes la función de listas de espera de reservas:

  • El servicio de todos los comercios que usan listas de espera de reservas debe tener waitlist_rules propagado.
    • Debes usar el mismo servicio para la lista de espera y la reserva. En otras palabras, si tu restaurante también permite reservas, solo agrega los metadatos relacionados con la lista de espera al servicio de reserva.
  • El envío de actualizaciones por SMS es obligatorio para la implementación de la lista de espera en los siguientes casos:
    • Para confirmar que el usuario se unió correctamente a la lista de espera.
    • Notificar al usuario que su mesa está lista
    • Para notificarle al usuario que se canceló su entrada en la lista de espera.
  • Los mensajes SMS deben contener un vínculo a una página en la que los usuarios puedan ver su estado en la lista de espera.
  • Los comercios que solo usan listas de espera no necesitan proporcionar feeds de disponibilidad a Acciones Center.
  • Tu servidor de reservas debe implementar todos los pasos específicos para las listas de espera que se detallan en Implementa el servidor de reservas. Los socios que admiten reservas y listas de espera pueden agregar los nuevos métodos a su servidor de reservas existente.
  • El Centro de Acciones ejecuta un conjunto de casos de prueba para los métodos de lista de espera en el servidor de reservas.

Diagrama de flujo de estado

En este gráfico, se describen los estados que se deben informar en WaitlistEntry.waitlist_entry_state cuando se responde a llamadas GetWaitlistEntry . El gráfico también indica cuándo registrar y propagar los campos WaitlistEntry.waitlist_entry_state_times.*_time_seconds y cuándo enviar un SMS al usuario para informarle que ingresó a un estado nuevo.

Figura 3: Flujo de trabajo del estado de la lista de espera
Figura 3: Flujo de trabajo del estado de la lista de espera

Casos extremos comunes

A continuación, se describen algunos casos extremos comunes que pueden ocurrir en una integración de listas de espera de reservas y las soluciones recomendadas para ellos.

  • Si algunos tamaños de grupo (pero no todos) no aceptan nuevas incorporaciones a la lista de espera porque no hay tiempo de espera para estos tamaños, es preferible mostrar WaitEstimates para todos los tamaños de grupo en la respuesta BatchGetWaitEstimates y permitir a los usuarios unirse a la lista de espera para estos tamaños sin tiempo de espera. Muestra un WaitLength con 0 parties_ahead_count o con un estimated_seat_time_range con 0 start_seconds y 0 end_seconds para los party_size sin espera.
  • Si uno o más tamaños de grupo no aceptan nuevas incorporaciones a la lista de espera porque la espera es demasiado extensa, es preferible omitir WaitEstimates para esos tamaños en la respuesta BatchGetWaitEstimates.

Se prefiere utilizar estos enfoques, ya que brindan opciones al usuario aunque la lista de espera del comercio no esté completamente abierta.

Lineamientos para socios que solo usan listas de espera de reservas

Ten en cuenta lo siguiente si el servidor de reservas se usa solo para las listas de espera:

  • Los socios que solo usan listas de espera para reservas no proporcionan feeds de disponibilidad a Reserva con Google.
  • Los socios que solo usan listas de espera no implementan los métodos de reserva en su servidor de reservas. En cambio, debes implementar el servidor de reservas con las instrucciones para la implementación de listas de espera.
  • Los socios que solo usan listas de espera de reservas no realizan llamadas a la API a Google. Esto significa que los socios que solo usan listas de espera de reservas no necesitan configurar un proyecto en la nube ni proporcionar una dirección de correo electrónico de desarrollador. No es necesario que completes las actualizaciones de la API en tiempo real. Sin embargo, sí debes proporcionar los feeds de comercio y servicio a Actions Center.

Lineamientos para socios cuyos comercios deben aceptar o rechazar manualmente las incorporaciones a listas de espera

Si tus comercios necesitan aceptar o rechazar manualmente las nuevas incorporaciones a listas de espera de Google, deben seguir pasos adicionales:

  • Establece waitlist_confirmation_mode como WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS en wait_estimate para los tamaños de grupo que requieren confirmación manual. Esto se debe configurar en BatchGetWaitEstimateResponse y GetWaitlistEntryResponse.
  • Las entradas de lista de espera que haya solicitado el usuario, pero que el comercio todavía no haya aceptado deben tener el estado PENDING_MERCHANT_CONFIRMATION.

Casos de prueba de las listas de espera de reservas

Google prueba los siguientes casos de uso para garantizar la funcionalidad de los métodos de las listas de espera en la implementación del servidor de reservas. Google también prueba y supervisa la latencia. Todas estas pruebas deben aprobarse antes del lanzamiento.

Recuperación de WaitEstimate

  • Las estimaciones del tiempo de espera se muestran para cada tamaño de grupo solicitado en un BatchGetWaitEstimatesRequest.
  • En el caso de los tamaños de grupo para los que el comercio tiene la opción de aceptar o rechazar nuevas incorporaciones a la lista de espera, configura waitlist_confirmation_mode como WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS.

Creación de entradas de lista de espera

  • Se puede crear una entrada de lista de espera a partir de una solicitud CreateWaitlistEntry.
  • Si la creación de la entrada de lista de espera falla, aparecerá un error de lógica empresarial en la respuesta.
  • Si un intento de CreateWaitlistEntry se ejecuta correctamente, se muestra la misma respuesta cuando se vuelve a recibir el mismo CreateWaitlistEntry.
  • Si un intento de CreateWaitlistEntry falla, el servidor volverá a intentarlo cuando se reciba el mismo CreateWaitlistEntry.
  • Las entradas de lista de espera aparecen en la interfaz del comercio.
  • Las llamadas a GetWaitlistEntry muestran correctamente la entrada de lista de espera creada.

Estados y marcas de tiempo de las entradas de lista de espera

  • Verifica que cada estado de la entrada de lista de espera se muestre correctamente en la entrada de lista de espera de las respuestas GetWaitlistEntry.
  • Verifica que cada marca de tiempo de estado esté configurada en el campo de marca de tiempo correspondiente de la entrada de lista de espera en las respuestas de GetWaitlistEntry.

Eliminación de entradas de lista de espera

  • Es posible borrar entradas de lista de espera existentes. La respuesta a una eliminación exitosa debe ser el protocolo vacío {}.

Inhabilitar

Ejemplo de feed de servicio de lista de espera (JSON)

Feed de servicio de lista de espera

Inhabilitación de comercios

Google espera ciertas respuestas de los comercios que anteriormente tenían listas de espera habilitadas, pero decidieron inhabilitarlas.

Inhabilitación inmediata

Inhabilitación extendida

  • Quita waitlist_rules del feed de servicios del comercio si este no inhabilita las reservas.
  • Quita al comercio del feed de comercio si inhabilita todas las integraciones de Google.