Verfügbarkeit in Feeds strukturieren

Verfügbarkeitsformat auswählen

Es gibt zwei Möglichkeiten, Verfügbarkeitsdaten anzugeben: (1) Plätze frei oder (2) Wiederkehrend. Wählen Sie nur eine Methode aus, die für alle Ihre Händler und Dienste verwendet werden soll. Nachdem Sie eine Methode ausgewählt haben, müssen Sie diese für die gesamte Integration (Feeds, Buchungsserver und Echtzeitaktualisierungen) beibehalten.

Anhand der folgenden Informationen können Sie besser entscheiden, welches Verfügbarkeitsformat am besten geeignet ist:

  • Speichern Sie die Verfügbarkeit in Ihrem System als explizite Zeitblöcke, z. B. 8:00–8:30 Uhr?
  • Speichern Sie die Verfügbarkeit in Ihrem System in einem wiederkehrenden Format, d. h., Händler bieten Dienstleistungen an, die mit einer konstanten Häufigkeit und nur wenigen Abweichungen stattfinden? Angenommen, die Slots wiederholen sich von 9:00 bis 17:00 Uhr alle 15 Minuten und es ist jeweils nur ein Sitzplatz verfügbar.
  • Können für die Dienstleistungen Ihrer Händler gleichzeitig mehrere Plätze frei sein? Beispiel: 30 freie Plätze für einen Kurs
  • Trifft keine der oben genannten Optionen auf Sie zu?
    • Spots Open verwenden
    • Hinweis: Die Verwendung von Wiederholungen ist effizienter und kann zu kleineren Feedgrößen führen. Wenn Ihr Datenmodell Wiederholungen jedoch nicht nativ unterstützt, wird die Verwendung von Wiederholungen nicht empfohlen, da Sie für jede Echtzeitaktualisierung die wiederkehrenden Zeitfenster für den gesamten Tag neu berechnen müssen.

    Spots Open

    Parameterdefinitionen:

    • „spots_open“: Die Anzahl der Plätze, die für diesen Verfügbarkeitseintrag derzeit verfügbar sind.
    • spots_total: Die Gesamtzahl der Anzeigenflächen, die der Händler für diese Konfiguration hat, einschließlich der nicht verfügbaren.

    Bei der Methode „Spots Open“ wird die Verfügbarkeit jedes Slots explizit angegeben. Außerdem wird das Modell unterstützt, bei dem mehrere Anzeigen für denselben Dienst vorhanden sind. Diese beiden Parameter bilden zusammen eine digitale Darstellung der Dienstkapazität.

    Bei einer Buchung sollte die Anzahl der freien Plätze in Echtzeit um 1 verringert werden. Die Gesamtzahl der Plätze sollte unverändert bleiben. Sobald „spots_open“ den Wert „0“ hat, sollte der Slot nicht mehr angezeigt werden.

    Beispiele für Dienste

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

    Abbildung 1:Grundriss 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",
                }
              ]
        }
        

    Beispiele für Dienstleistungen mit Buchung

    Abbildung 2:Grundriss mit einer aktiven Buchung

    Jetzt bucht ein Nutzer einen der Plätze. Bei einer Buchung wird die Verfügbarkeit in Echtzeit aktualisiert. Diese Buchung sollte im nächsten täglichen Verfügbarkeitsfeed berücksichtigt werden. Im Verfügbarkeitsfeed für diese Händler wird „spots_open“ für den Zeitraum vom 1. September 2018, 16:00:00 Uhr GMT, um 1 verringert. Der Slot am 1. September 2018 um 20:00 Uhr (GMT) bleibt 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

    • recurrence: Die Darstellung von sich regelmäßig wiederholenden Verfügbarkeitsslots.
    • repeat_until_sec: Der UTC-Zeitstempel der Endzeit des letzten Slots, bis zu dem die Verfügbarkeit wiederholt wird.
    • repeat_every_sec: Die Anzahl der Sekunden zwischen aufeinanderfolgenden verfügbaren Slots. Wenn beispielsweise „repeat_every_sec“ = 1800 (30 Minuten) und „start_sec“ um 9:00 Uhr beginnt, werden die Slots alle 30 Minuten um 9:00, 9:30, 10:00 Uhr usw. wiederholt.
      • Hinweis: „spots_open“ und „spots_total“ müssen nicht angegeben werden. Sie werden beide als „1“ angenommen, es sei denn, es gibt eine „schedule_exception“.

    Die Wiederholungsmethode gibt die tägliche Verfügbarkeit für Dienste an, die in regelmäßigen Abständen stattfinden, z. B. ein Dienst, der täglich von 9:00 bis 17:00 Uhr alle 30 Minuten stattfindet. Bei der Wiederholung geben Sie die Dauer des Slots, das erste Mal am Tag, die Häufigkeit der Wiederholung und das Ende der Wiederholung am selben Tag an. Hinweis: Für jeden Tag muss ein neuer Satz wiederkehrender Slots angegeben werden. Wenn innerhalb des Zeitraums bereits ein Slot gebucht ist, geben Sie eine Zeitplanausnahme an. Beispiel: Alle halbe Stunde von 9:00 bis 21:00 Uhr, außer von 11:00 bis 11:30 Uhr. Für jeden einzelnen Dienst gelten eigene Wiederholungs- und Planungsausnahmen.

    Beispiele für Dienste

    Ein Kosmetiksalon hat den folgenden Grundriss und keine aktiven Buchungen

    Abbildung 3:Grundrisse ohne aktive Buchungen. Es wird davon ausgegangen, dass pro Dienstleistung nur ein Termin verfügbar ist (z.B. bietet Sally alle 30 Minuten einen Haarschnitt an, kann aber nur einen Kunden gleichzeitig bedienen).

    Der Verfügbarkeitsfeed für einen Slot 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
                }
              }
            ]
        }
        

    Beispiele für Dienstleistungen mit Buchung

    Abbildung 4:Grundrisse mit einer aktiven Buchung. Es wird davon ausgegangen, dass pro Dienstleistung nur ein Termin verfügbar ist (z.B. bietet Sally alle 30 Minuten einen Haarschnitt an, kann aber nur einen Kunden gleichzeitig bedienen).

    Angenommen, ein Nutzer bucht einen Haarschnitt bei 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 berücksichtigt werden. Der Verfügbarkeitsfeed für diese Händler enthält eine Planungsausnahme für einen Dienst mit einer Dauer von 30 Minuten zwischen 12:30 und 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
                      }
                    }
                  ],
                }
              ]
        }