Verfügbarkeit in Feeds strukturieren

Verfügbarkeitsformat auswählen

Es gibt zwei Möglichkeiten, Verfügbarkeitsdaten anzugeben: (1) offene Spots oder (2) Wiederholung. Wähle nur eine Methode für alle deine Händler und Dienstleistungen aus. Nachdem Sie eine Methode ausgewählt haben, müssen Sie sie für die gesamte Integration (Feeds, Buchungsserver und Echtzeitaktualisierungen) beibehalten.

Anhand des folgenden Leitfadens können Sie herausfinden, welches Verfügbarkeitsformat am besten geeignet ist:

  • Speichern Sie die Verfügbarkeit in Ihrem System als explizite Slots, z. B. von 8:00 bis 8:30 Uhr?
  • Speichern Sie die Verfügbarkeit in Ihrem System in einem wiederkehrenden Format, d. h. Händler bieten Dienste, die mit wenigen Abweichungen regelmäßig stattfinden? Beispiel: Die Slots wiederholen sich alle 15 Minuten von 9:00 bis 17:00 Uhr und es ist nur ein Platz pro 15-Minuten-Schritt verfügbar.
  • Kann es für die Dienstleistungen Ihrer Händler mehr als einen freien Platz gleichzeitig geben? Beispiel: 30 offene Plätze für einen Kurs.
  • Keine der Antworten trifft zu?
    • Verwende Spots Open.
    • Hinweis: Die Verwendung von Wiederholungen ist zwar effizienter und kann zu kleineren Feedgrößen führen, aber wenn Ihr Datenmodell nativ nicht nativ unterstützt, wird die Wiederholung nicht empfohlen, da Sie die wiederkehrenden Termine des ganzen Tages für jede Echtzeitaktualisierung neu berechnen müssen.

    Spots Open

    Parameterdefinitionen:

    • spots: Die Anzahl der derzeit für diesen Verfügbarkeitseintrag verfügbaren Plätze.
    • places_total: Die Gesamtzahl der Plätze, die der Händler für diese Konfiguration hat, einschließlich der nicht verfügbaren.

    Die Methode „Spots Open“ gibt die Slot-Verfügbarkeit explizit an und unterstützt das Modell mit mehreren Spots für denselben Dienst. Diese beiden Parameter bilden zusammen eine digitale Darstellung der Dienstkapazität.

    Bei einer Buchung sollte sich die Anzahl der „spots_open“ durch ein Echtzeitupdate um 1 verringern. Die Anzahl der „spots_total“ sollte gleich bleiben. Sobald „spots_open“ auf „0“ gesetzt ist, sollte die Anzeigenfläche nicht mehr angezeigt werden.

    Beispieldienste

    Ein Yogakurs oder ein Kosmetiksalon hat die folgenden Grundrisse und keine aktiven Buchungen

    Abbildung 1:Gebäudeplan ohne aktive Buchungen

    Der Verfügbarkeitsfeed für zwei Slots bei diesen Händlern würde so aussehen:

    JSON

        {
          "availability": [
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT
                  "merchant_id": "1001"
                },
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT
                  "merchant_id": "1001",
                }
              ]
        }
        

    Beispieldienste mit einer Buchung

    Abbildung 2: Gebäudeplan mit einer aktiven Buchung

    Nun bucht ein Nutzer einen dieser Orte. Bei einer Buchung wird die Verfügbarkeit in Echtzeit aktualisiert. Diese Buchung sollte im nächsten täglichen Verfügbarkeitsfeed widergespiegelt werden. Im Verfügbarkeitsfeed für diese Händler würde „spots_open“ für den Slot 1. September 2018 um 16:00 Uhr GMT um 1 verringert. Der 1. September 2018 um 20:00 Uhr GMT ist unverändert.

    Feed-Snippet mit einer Buchung

    JSON

        {
          "availability": [
                {
                  "spots_total": 6,
                  "spots_open": 5,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT
                  "merchant_id": "1001"
                },
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT
                  "merchant_id": "1001",
                }
              ]
    }
        

    Wiederholung

    Parameterdefinitionen

    • Wiederholung: Die Darstellung sich wiederholender Verfügbarkeits-Slots.
    • Repeat_until_sec: Der UTC-Zeitstempel der Endzeit des letzten Slots, bis zu dem die Verfügbarkeit wiederholt wird.
    • Wiederholen_alle_Sekunden: Die Anzahl der Sekunden zwischen aufeinanderfolgenden verfügbaren Slots. Wenn beispielsweise „Repeat_every_sec“ = 1.800 (30 Minuten) beginnt und „start_sec“ um 9:00 Uhr beginnt, werden die Slots alle 30 Minuten um 9:00 Uhr, 9:30 Uhr, 10:00 Uhr usw. wiederholt.
      • Hinweis: „Spots_open“ und „spots_total“ müssen nicht angegeben werden. Es wird davon ausgegangen, dass beide den Wert „1“ haben, es sei denn, „schedule_exception“ ist vorhanden.

    Die Wiederholungsmethode zeigt die tägliche Verfügbarkeit von Diensten an, die regelmäßig ausgeführt werden, z. B. alle 30 Minuten von 9:00 bis 17:00 Uhr. Bei Wiederholungen geben Sie die Dauer des Slots an, d. h. die Zeit, zu der der Slot zum ersten Mal am Tag stattfindet, wie oft dieser Slot wiederholt werden soll und wann er an diesem Tag nicht mehr wiederholt wird. Hinweis: Sie müssen für jeden Tag einen neuen Satz von wiederkehrenden Slots separat angeben. Wenn bereits ein Slot innerhalb des Zeitraums gebucht wurde, geben Sie eine Fahrplanausnahme an. Zum Beispiel wiederholen Sie jede halbe Stunde von 9:00 bis 21:00 Uhr, außer von 11:00 bis 11:30 Uhr. Für jeden einzelnen Dienst gibt es eigene Wiederholungs- und Zeitplanausnahmen.

    Beispieldienste

    Ein Kosmetiksalon hat den folgenden Gebäudeplan und hat keine aktiven Buchungen

    Abbildung 3:Grundrisse ohne aktive Buchungen. Es wird davon ausgegangen, dass pro Dienst nur ein Spot geöffnet ist (z.B. bietet Sally alle 30 Minuten einen Friseurservice an, kann aber nur an einem Kunden teilnehmen).

    Der Verfügbarkeitsfeed für eine Anzeigenfläche bei diesen Händlern würde so aussehen:

    Feed-Snippet:

    JSON

        {
        "availability": [
              {
                "merchant_id": "1001",
                "service_id": "1001",  # haircut
                "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT
                "duration_sec": 1800,
                "recurrence": {
                  "repeat_every_sec": 1800,
                  "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT
                }
              }
            ]
        }
        

    Beispieldienste mit einer Buchung

    Abbildung 4: Grundrisse mit einer aktiven Buchung. Es wird davon ausgegangen, dass pro Dienst nur ein Spot geöffnet ist (z.B. bietet Sally alle 30 Minuten einen Friseurservice an, kann aber nur an einem Kunden teilnehmen).

    Angenommen, ein Nutzer bucht einen Haarschnitt mit Sally um 12:30 Uhr. Bei einer Buchung wird die Verfügbarkeit in Echtzeit aktualisiert. Diese Buchung sollte im nächsten täglichen Verfügbarkeitsfeed widergespiegelt werden. Der Verfügbarkeitsfeed für diese Händler hätte eine Fahrplanausnahme für einen Dienst mit einer Dauer von 30 Minuten von 12:30 Uhr bis 13:00 Uhr.

    Feed-Snippet mit einer Buchung:

    JSON

        {
          "availability": [
                {
                  "merchant_id": "1001",
                  "service_id": "1001",
                  "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT
                  "duration_sec": 1800,
                  "recurrence": {
                    "repeat_every_sec": 1800,
                    "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT
                  },
                  "schedule_exception": [
                    {
                      "time_range": {
                        "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT
                        "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT
                      }
                    }
                  ],
                }
              ]
        }