Verfügbarkeitsdaten für Reservierungen strukturieren

Parameterdefinitionen

Wie in der Definition von Availability angegeben:

  • party_size: Die Anzahl der Personen, für die während dieses Zeitfensters Platz ist. Ein Restaurant kann mit mehreren Slots gleichzeitig verknüpft sein, wobei jeder Slots eine andere party_size angibt, wenn beispielsweise 2, 3 oder 4 Personen mit einer Reservierung Platz haben.
  • spots_open: Die Anzahl der Plätze, die derzeit für diesen Verfügbarkeitseintrag verfügbar sind
  • spots_total: Die Gesamtzahl der Plätze, die der Händler für diese Konfiguration hat (einschließlich der nicht verfügbaren Plätze)

Diese drei Parameter bilden zusammen eine digitale Darstellung des Gebäudeplans. party_size ist die Anzahl der Personen, die in einer Tabelle Platz haben. Für jede Größe, die in einer Tabelle Platz ist, gibt es einen Eintrag. spots_open und spots_total geben an, wie viele Tabellen diese party_size aufnehmen können.

Beispiel für einen leeren Gebäudeplan

Stellen Sie sich ein Restaurant mit folgendem Grundriss und ohne aktive Buchungen vor:

Abbildung 1: Gebäudeplan ohne aktive Buchungen
Abbildung 1:Gebäudeplan ohne aktive Buchungen

Die Werte für party_size, spots_open und spots_total wären also:

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

Der Verfügbarkeitsfeed für ein Zeitfenster bei diesem Händler würde so aussehen:

JSON

{
  "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
          }
        }
      ]
}

Beispiel für einen Gebäudeplan mit einer Buchung

Stellen Sie sich nun vor, einer der runden Tische war gebucht:

Abbildung 2: Gebäudeplan mit einer aktiven Buchung
Abbildung 2:Gebäudeplan mit einer aktiven Buchung

Die Werte für party_size, spots_open und spots_total wären jetzt:

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

JSON

{
  "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
          }
        }
      ]
}

Verfügbarkeit von Restaurants mit Unterstützung für kombinierte Tabellen angeben

Es gibt viele Möglichkeiten, wie ein Restaurant Tische kombinieren kann, um größere Gruppen zu unterstützen. Du musst spots_open und spots_total in deinen Feeds so angeben, dass du Gruppen einer bestimmten Größe annehmen kannst. Im Folgenden finden Sie ein Beispiel dafür, wie Sie das Kombinieren von Tabellen angeben können. Deine Feeds können sich in der Art und Weise, wie diese Berechnung durchgeführt wird, unterscheiden. Du kannst spots_open und spots_total so angeben, dass sie deiner Geschäftslogik entsprechen.

Wenn ein Restaurant die Kombination von Tabellen zu einer größeren Gruppe unterstützt, kannst du spots_open und spots_total entsprechend aktualisieren.

Angenommen, ein Restaurant kann zwei kleine Tische für eine Gruppe von 7 bis 10 Personen kombinieren.

Abbildung 3: Gebäudeplan ohne aktive Buchungen
Abbildung 3:Gebäudeplan ohne aktive Buchungen

Wenn keine aktiven Buchungen vorliegen, sind die Werte für party_size, spots_open und spots_total so:

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

Jetzt wird bei gleichem Gebäudeplan eine Buchung für bis zu 10 Personen durchgeführt, die zwei kleine Tische kombiniert.

Abbildung 4: Gebäudeplan mit einer aktiven Buchung, die sich über zwei Tabellen erstreckt
Abbildung 4:Gebäudeplan mit einer aktiven Buchung, die sich über zwei Tabellen erstreckt

Dann sind die Werte für party_size, spots_open und spots_total:

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