Les partenaires participant au programme de listes d'attente pour les réservations doivent d'abord configurer leur compte. Cependant, certaines étapes du guide général ne sont pas nécessaires pour utiliser la fonctionnalité de liste d'attente. Les consignes de cette page expliquent les étapes qui s'appliquent aux partenaires qui souhaitent utiliser la fonctionnalité de liste d'attente sur Réserver avec Google. Nous vous recommandons de lire cette présentation avant de passer aux étapes d'intégration.
Processus de publication de votre flux
La figure 1 décrit le processus de lancement dans le centre d'actions pour les marchands qui utilisent des listes d'attente.
![Figure 1: Vue générale des étapes d'intégration](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=19&hl=fr)
Dans l'ensemble, les principaux flux de données entre vous (le partenaire) et Google sont décrits dans la figure 2:
![Figure 2 : Diagramme présentant les flux de données d'intégration](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=19&hl=fr)
Consignes pour tous les partenaires de listes d'attente de réservations
Tenez compte des points suivants lorsque vous implémentez la fonctionnalité de listes d'attente pour les réservations:
waitlist_rules
doit être renseigné pour le service pour tous les marchands qui utilisent des listes d'attente de réservations.- Vous devez utiliser le même service pour les listes d'attente et les réservations. En d'autres termes, si votre restaurant autorise également les réservations, ajoutez simplement les métadonnées liées à la liste d'attente au service de réservation.
- L'envoi de notifications par SMS est nécessaire pour l'implémentation sur liste d'attente dans les cas suivants :
- Pour confirmer que l'utilisateur s'est bien inscrit sur la liste d'attente.
- Pour avertir l'utilisateur que sa table est prête.
- Pour informer l'utilisateur que son inscription à la liste d'attente a été annulée.
- Les SMS doivent contenir un lien vers une page sur laquelle les utilisateurs peuvent consulter leur état sur la liste d'attente.
- Les marchands qui n'utilisent que des listes d'attente n'ont pas besoin de fournir de flux disponibilité au Centre d'actions.
- Votre serveur de réservation doit mettre en œuvre toutes les étapes spécifiques aux listes d'attente décrites dans la section Mettre en œuvre le serveur de réservation. Les partenaires qui acceptent à la fois les réservations et les listes d'attente peuvent ajouter les nouvelles méthodes à leur serveur de réservation existant.
- Le Centre d'actions exécute un ensemble de scénarios de test pour les méthodes de liste d'attente dans le serveur de réservation.
Organigramme d'état
Ce graphique décrit les états à indiquer dans
WaitlistEntry.waitlist_entry_state
lorsque vous répondez à des appels
GetWaitlistEntry
. Le graphique indique également quand enregistrer et remplir les champs
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
, et quand envoyer un SMS à l'utilisateur pour l'informer qu'il est entré dans un nouvel état.
![Figure 3: Organigramme indiquant l'état de la liste d'attente](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=19&hl=fr)
Problèmes courants
Vous trouverez ci-dessous les cas limites courants liés à l'intégration de listes d'attente pour des réservations, ainsi que les solutions privilégiées pour ces cas.
-
Si certaines tailles de personnes (mais pas toutes) n'acceptent pas de nouveaux ajouts à la liste d'attente, car il n'y a pas d'attente pour ces tailles de personnes, il est préférable de renvoyer
WaitEstimates
pour toutes les tailles de personnes dans la réponseBatchGetWaitEstimates
et d'autoriser les utilisateurs à rejoindre la liste d'attente pour ces tailles de personnes sans attente. Renvoie uneWaitLength
avec 0parties_ahead_count
et/ou avec uneestimated_seat_time_range
avec 0start_seconds
et 0end_seconds
pour lesparty_size
sans attente -
Si une ou plusieurs tailles de personnes n'acceptent pas de nouveaux ajouts à la liste d'attente, car l'attente est devenue trop longue, il est préférable d'omettre
WaitEstimates
pour ces nombres dans la réponseBatchGetWaitEstimates
.
Ces approches sont à privilégier, car elles offrent à l'utilisateur différentes options même si la liste d'attente du marchand n'est peut-être pas entièrement ouverte.
Consignes pour les partenaires utilisant le service de listes d'attente pour les réservations
Tenez compte des points suivants si le serveur de réservation n'est utilisé que pour les listes d'attente:
- Les partenaires Réservations qui n'utilisent que des listes d'attente ne fournissent pas de flux disponibilité à Réserver avec Google.
- Les partenaires qui utilisent uniquement des listes d'attente pour les réservations ne mettent pas en œuvre les méthodes de réservation sur leur serveur de réservation. À la place, vous devez mettre en œuvre le serveur de réservation en suivant les instructions relatives à la mise en œuvre basée sur des listes d'attente.
- Les partenaires Réservations qui utilisent uniquement des listes d'attente n'envoient pas d'appels d'API à Google. Cela signifie que les partenaires qui n'utilisent que des listes d'attente pour les réservations n'ont pas besoin de configurer de projet cloud ni de fournir une adresse e-mail de développeur. Vous n'avez pas besoin d'effectuer les mises à jour de l'API en temps réel. Toutefois, vous devez toujours fournir des flux marchands et services dans Actions Center.
Consignes pour les partenaires dont les marchands doivent accepter/refuser manuellement les ajouts à la liste d'attente
Si vos marchands ont besoin d'accepter ou de refuser manuellement les nouveaux ajouts à la liste d'attente de la part de Google, des étapes supplémentaires sont nécessaires:
- Pour le nombre de personnes nécessitant une confirmation manuelle, définissez
waitlist_confirmation_mode
surWAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
dans le champwait_estimate
. Il doit être défini dansBatchGetWaitEstimateResponse
et dansGetWaitlistEntryResponse
. - Les entrées d'une liste d'attente demandées par l'utilisateur, mais pas encore acceptées par le marchand, doivent être associées à l'état
PENDING_MERCHANT_CONFIRMATION
.
Scénarios de test pour les listes d'attente pour les réservations
Google teste les cas d'utilisation suivants pour s'assurer que les méthodes de listes d'attente fonctionnent correctement dans la mise en œuvre de votre serveur de réservation. Google teste et surveille également la latence. Tous ces tests doivent réussir avant le lancement.
Récupération de la valeur WaitEstimate
- Des estimations d'attente sont renvoyées pour chaque nombre de personnes demandé dans un
BatchGetWaitEstimatesRequest
. - Pour le nombre de personnes pour lesquelles le marchand a la possibilité d'accepter ou de refuser de nouveaux ajouts à la liste d'attente, définissez le mode de liste d'attente (waitlist_confirmation_mode) sur
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
.
Créer une entrée dans une liste d'attente
- Une entrée dans une liste d'attente peut être créée à partir d'une requête
CreateWaitlistEntry
. - Si la création d'une entrée dans une liste d'attente échoue, une erreur de logique métier s'affiche dans la réponse.
- Si une tentative
CreateWaitlistEntry
aboutit, la même réponse est renvoyée lorsque le mêmeCreateWaitlistEntry
est reçu à nouveau. - Si une tentative
CreateWaitlistEntry
échoue, le serveur effectue une nouvelle tentative lorsque la mêmeCreateWaitlistEntry
est reçue à nouveau. - Les entrées dans des listes d'attente s'affichent dans l'interface du marchand.
- Les appels à
GetWaitlistEntry
renvoient l'entrée dans la liste d'attente qui a été créée.
États et horodatages des entrées dans des listes d'attente
- Vérifiez que chaque état d'entrée dans la liste d'attente est correctement renvoyé dans l'entrée dans la liste d'attente des réponses
GetWaitlistEntry
. - Vérifiez que chaque code temporel d'état est défini dans le champ d'horodatage approprié de l'entrée dans la liste d'attente dans les réponses
GetWaitlistEntry
.
Supprimer une entrée dans une liste d'attente
- Les entrées existantes dans des listes d'attente peuvent être supprimées. La réponse à une suppression réussie doit être le fichier proto
{}
vide.
Désactiver
- Vérifiez que les marchands qui ont désactivé la fonctionnalité sont traités comme décrit dans la section Désactivation des fonctionnalités pour les marchands.
Exemple de flux services avec listes d'attente (JSON)
Flux services avec listes d'attenteMarchands ayant désactivé la fonctionnalité
Google s'attend à recevoir certaines réponses de la part des marchands qui avaient précédemment activé les listes d'attente, mais qui ont décidé de désactiver la fonctionnalité.
Désactivation immédiate de la fonctionnalité
- Renvoyez
CLOSED_OTHER
pour les requêtesBatchGetWaitEstimates
. - Renvoyez
WAITLIST_CLOSED
pour les requêtesCreateWaitlistEntry
. - Renvoyez correctement les requêtes
GetWaitlistEntry
pour les utilisateurs qui figurent déjà sur la liste d'attente.
Désactivation de la fonctionnalité pour un temps prolongé
- Supprimez l'
waitlist_rules
du flux de services pour le marchand si celui-ci ne désactive pas les réservations. - Supprimez le marchand du flux marchands s'il désactive toutes les intégrations Google.