Los socios que participan en el programa de listas de espera de Reservations 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 lista de espera. En los lineamientos de esta página, se explica qué pasos deben seguir los socios interesados en utilizar 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 seguir para lanzar los comercios habilitados para las listas de espera en el Centro de acciones.
![Figura 1: Pasos de integración de alto nivel](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=7&hl=es)
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](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=7&hl=es)
Lineamientos para todos los socios de listas de espera de Reservations
Ten en cuenta lo siguiente cuando implementes la función de listas de espera de Reservations:
- El servicio de todos los comercios de listas de espera de Reservations debe tener
propagado
waitlist_rules
.- Debes usar el mismo servicio tanto para la lista de espera como para la reserva. En otras palabras, si tu restaurante también permite hacer reservas, simplemente 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:
- Confirmar que el usuario se unió correctamente a la lista de espera
- Para notificar al usuario que su tabla está lista.
- Para notificar al usuario que se canceló su entrada a 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 al Centro de Acciones.
- Tu servidor de reservas debe implementar todos los pasos específicos de la lista de espera que se indican en Cómo implementar el servidor de reservas. Los socios que admiten reservas y listas de espera pueden agregar los métodos nuevos 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 del estado
En este gráfico, se describen los estados que se deben informar en
WaitlistEntry.waitlist_entry_state
cuando se responde a llamadas
GetWaitlistEntry
. En el gráfico, también se indica cuándo registrar y completar los campos
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
y cuándo enviar un SMS al usuario para informarle que ingresó un nuevo estado.
![Figura 3: Diagrama de flujo del estado de la lista de espera](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=7&hl=es)
Casos extremos comunes
Los siguientes son casos extremos comunes en una integración de listas de espera de Reservations y las soluciones preferidas 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 de grupo, se recomienda mostrar
WaitEstimates
para todos los tamaños de grupo en la respuestaBatchGetWaitEstimates
y permitir que los usuarios se unan a la lista de espera de estos tamaños sin tiempo de espera. Muestra un objetoWaitLength
con 0parties_ahead_count
o con unestimated_seat_time_range
con 0start_seconds
y con 0end_seconds
para losparty_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 larga, es preferible omitir
WaitEstimates
para esos tamaños en la respuestaBatchGetWaitEstimates
.
Se prefieren 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 Reservations
Ten en cuenta lo siguiente si el servidor de reservas se usa solo para listas de espera:
- Los socios que solo usan listas de espera de Reservations 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 su lugar, 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 Reservations no realizan llamadas a la API a Google. Esto significa que los socios que solo usan listas de espera de Reservations no necesitan configurar un proyecto de 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, aún se deben proporcionar los feeds de comercio y servicio al Centro de acciones.
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 la lista de espera de Google, debes seguir estos pasos adicionales:
- Configura
waitlist_confirmation_mode
comoWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
enwait_estimate
para los tamaños de grupo que requieren confirmación manual. Se debe configurar enBatchGetWaitEstimateResponse
yGetWaitlistEntryResponse
. - Las entradas de la lista de espera que solicitó el usuario, pero que el comercio aún
no acepta, deben tener el estado
PENDING_MERCHANT_CONFIRMATION
.
Casos de prueba de listas de espera de Reservations
Google prueba los siguientes casos de uso para garantizar la funcionalidad de los métodos de lista 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 de espera se muestran para cada tamaño de grupo solicitado en un
BatchGetWaitEstimatesRequest
. - Para los tamaños de grupo en los que el comercio tiene la opción de aceptar o rechazar nuevas incorporaciones a la lista de espera, establece playlist_confirmation_mode en
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 falla la creación de la entrada de la lista de espera, se mostrará un error de lógica empresarial en la respuesta.
- Si un intento de
CreateWaitlistEntry
se realiza correctamente, se muestra la misma respuesta cuando se vuelve a recibir el mismoCreateWaitlistEntry
. - Si un intento de
CreateWaitlistEntry
falla, el servidor vuelve a intentarlo cuando se recibe el mismoCreateWaitlistEntry
. - 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 entrada de la lista de espera se muestre correctamente en la entrada de la lista de espera de las respuestas
GetWaitlistEntry
. - Verifica que cada marca de tiempo de estado esté establecida en el campo de marca de tiempo correspondiente de la entrada de lista de espera en las respuestas
GetWaitlistEntry
.
Eliminación de entradas de lista de espera
- Es posible borrar entradas de lista de espera existentes. La respuesta a una eliminación correcta debe ser el archivo proto vacío
{}
.
Inhabilitar
- Verifica que los comercios inhabilitados se traten como se describe en Inhabilitación de comercios.
Ejemplo de feed de servicio de lista de espera (JSON)
Feed de servicio de lista de esperaInhabilitación de comercios
Google espera ciertas respuestas de los comercios que anteriormente tenían habilitadas las listas de espera, pero que decidieron inhabilitarlas.
Inhabilitación inmediata
- Muestra
CLOSED_OTHER
para las solicitudesBatchGetWaitEstimates
. - Muestra
WAITLIST_CLOSED
para solicitudesCreateWaitlistEntry
. - Muestra las solicitudes
GetWaitlistEntry
correctamente para los usuarios que ya están en la lista de espera.
Inhabilitación extendida
- Quita el
waitlist_rules
del feed de servicios del comercio si este no inhabilitó las reservas. - Quita al comercio del feed de comercios si inhabilita todas las integraciones de Google.