Structurer les données de disponibilité pour les réservations

Pour que vos créneaux s'affichent correctement dans le parcours de réservation, vous devez envoyer un mappage précis et à jour de votre inventaire. Le nombre de places disponibles peut varier considérablement après une seule réservation en raison de la nature des restaurants et de la possibilité de regrouper des tables ou de modifier la taille du groupe. Les exemples de ce document vous expliquent comment gérer et mapper correctement votre inventaire disponible.

Voici les paramètres spécifiés dans Availability definition :

  • party_size : taille du groupe que l'établissement peut accueillir à ce créneau horaire. Les schémas de cet article présentent les différentes manières de configurer la taille du groupe.
  • spots_open : nombre de tables actuellement disponibles pour un créneau de disponibilité et une taille de groupe spécifiques.
  • spots_total : nombre total de tables dont dispose le marchand pour cette configuration, y compris les tables indisponibles.

Ces trois paramètres fonctionnent ensemble pour créer une représentation numérique du plan de l'étage. party_size correspond au nombre de personnes que chaque table peut accueillir. Il existe une entrée pour chaque taille qu'une table peut accueillir. spots_open et spots_total sont des nombres de tables pouvant accueillir ce party_size.

Exemple de plan de salle vide

Imaginez un restaurant avec le plan de salle suivant et sans réservation active :

Figure 1. Plan de salle sans réservations actives

Figure 1 Plan de salle sans réservation active.

Voici les valeurs de party_size, spots_open et spots_total :

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1

Le flux de disponibilité pour un créneau horaire chez ce marchand se présente comme suit :

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 4,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

Exemple de plan d'étage avec une réservation

Voici un restaurant dont l'une des tables rondes a été réservée :

Figure 1. Plan de salle avec une réservation active

Figure 2. Plan de salle avec une réservation active.

Voici les valeurs de party_size, spots_open et spots_total :

party_size spots_open spots_total
4 2 3
5 2 3
6 3 4
7 1 1
8 1 1

Le flux de disponibilité pour un créneau horaire chez ce marchand se présente comme suit :

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

Spécifier la disponibilité des restaurants avec la prise en charge des tables combinées

Un restaurant peut combiner des tables de nombreuses façons pour accueillir des groupes plus importants. Vous devez spécifier spots_open et spots_total de manière à refléter précisément si vous pouvez accepter des groupes d'une taille donnée.

Voici un exemple de spécification de la combinaison de tableaux. Vos flux peuvent varier en fonction de la méthode de calcul que vous utilisez. Vous pouvez spécifier spots_open et spots_total de manière à ce qu'ils correspondent à la logique de votre activité.

Si un restaurant autorise la combinaison de tables pour accueillir un groupe plus important, vous pouvez modifier vos spots_open et spots_total pour refléter cette possibilité.

Par exemple, un restaurant qui peut combiner deux petites tables pour accueillir un groupe de 7 à 10 personnes :

Figure 1. Plan de salle sans réservations actives

Figure 3. Plan de salle sans réservation active.

En l'absence de réservations actives, voici les valeurs de party_size, spots_open et spots_total :

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1
9 1 1
10 1 1

Maintenant, avec le même plan, une réservation est effectuée pour un groupe de dix personnes qui combine deux petites tables.

Figure 1. Plan de salle avec une réservation active pour deux tables

Figure 4. Plan de salle avec une réservation active pour deux tables.

Les valeurs de party_size, spots_open et spots_total sont les suivantes :

party_size spots_open spots_total
4 1 3
5 1 3
6 2 4
7 1 1
8 1 1
9 0 1
10 0 1