Verfügbarkeit in Feeds strukturieren

Ein Verfügbarkeitsformat auswählen

Es gibt zwei Möglichkeiten, Verfügbarkeitsdaten anzugeben: (1) Offene Plätze oder (2) Wiederholung. Wähle nur eine Methode aus, die für alle deine Händler und Dienstleistungen verwendet werden soll. Wenn du eine Methode ausgewählt hast, musst du sie für die gesamte Integration beibehalten (Feeds, Buchungsserver und Echtzeitaktualisierungen).

In der folgenden Übersicht erfährst du, welches Verfügbarkeitsformat am besten geeignet ist:

  • Speichern Sie die Verfügbarkeit in Ihrem System als explizite Slots, z. B. 8:00–8:30 Uhr?
  • Speichern Sie Verfügbarkeiten in Ihrem System in einem wiederkehrenden Format, d. h., Händler haben Dienste, die regelmäßig und mit wenigen Abweichungen stattfinden? Slots wiederholen sich beispielsweise alle 15 Minuten von 09:00 bis 17:00 Uhr und es ist nur ein Platz im 15-Minuten-Takt verfügbar.
  • Kann es für die Dienstleistungen deiner Händler mehr als einen freien Parkplatz gleichzeitig geben? Beispiel: 30 freie Plätze pro Kurs
  • Keine der oben genannten Aussagen trifft zu?
    • Verwenden Sie Spots Open.
    • Hinweis: Wiederholungen sind effizienter und können kleinere Feedgrößen zur Folge haben. Wenn Ihr Datenmodell jedoch keine Wiederholungen unterstützt, sollten Sie sie nicht verwenden, da Sie die wiederkehrenden Slots für den gesamten Tag für jede Echtzeitaktualisierung neu berechnen müssen.

    Spots Open

    Parameterdefinitionen:

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

    Die Spots Open-Methode gibt explizit jede Slot-Verfügbarkeit an und unterstützt das Modell, mehrere Spots für denselben Dienst zu haben. Diese beiden Parameter bilden zusammen eine digitale Darstellung der Dienstkapazität.

    Wenn eine Buchung stattfindet, sollte die Anzahl von „spots_open“ durch eine Echtzeitaktualisierung um 1 verringert werden (die Anzahl von „spots_total“ sollte gleich bleiben). Wenn spot_open = 0 ist, sollte der Slot nicht mehr angezeigt werden.

    Beispieldienste

    Ein Yogakurs oder ein Kosmetiksalon hat die folgenden Grundrisse und hat 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",
                }
              ]
        }
        

    Beispiele für Dienstleistungen mit einer Buchung

    Abbildung 2:Gebäudeplan mit einer aktiven Buchung

    Nun bucht der Nutzer einen der Spots. Bei einer Buchung wird die Verfügbarkeit in Echtzeit aktualisiert. Diese Buchung sollte im nächsten täglichen Verfügbarkeitsfeed enthalten sein. Der Verfügbarkeitsfeed für diese Händler hätte „spots_open“ für den Slot vom 1. September 2018 um 16:00:00 Uhr GMT um 1 verringert. Der Slot (1. September 2018 um 20:00: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 wiederholenden verfügbaren Slots.
    • Repeat_until_sec: Der UTC-Zeitstempel der Endzeit des letzten Slots, bis zu dem sich die Verfügbarkeit wiederholt.
    • Repeat_every_sec: Anzahl der Sekunden zwischen aufeinanderfolgenden verfügbaren Slots. Wenn beispielsweise „Repeat_every_sec“ = 1.800 (30 Minuten) ist 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: Es ist nicht nötig, „spots_open“ und „spots_total“ anzugeben. Für beide wird angenommen, dass sie den Wert „1“ haben, es sei denn, es gibt eine „schedule_exception“ .

    Die Wiederholungsmethode gibt für Dienste, die in regelmäßigen Abständen stattfinden, die Verfügbarkeit auf täglicher Basis an, z. B. einen Dienst, der jeden Tag alle 30 Minuten von 9:00 bis 17:00 Uhr stattfindet. Bei einer Wiederholung geben Sie die Dauer des Slots an, die erste Zeit am Tag, an der der Slot stattfindet, wie oft der Slot wiederholt werden soll und wann er am selben Tag aufhören soll. Hinweis: Für jeden Tag muss ein neuer Satz wiederkehrender Slots separat angegeben werden. Wenn innerhalb des Zeitraums bereits ein Slot gebucht ist, geben Sie eine Zeitplanausnahme an. Wiederholen Sie den Vorgang beispielsweise alle 30 Minuten von 09:00 bis 21:00 Uhr, außer von 11:00 bis 11:30 Uhr. Für jeden einzelnen Service gibt es eigene Serien- und Planungsausnahmen.

    Beispieldienste

    Ein Kosmetiksalon hat den folgenden Grundriss und hat keine aktiven Buchungen

    Abbildung 3:Gebäudepläne ohne aktive Buchungen. Es wird davon ausgegangen, dass nur 1 Spot pro Dienst geöffnet ist. (Beispiel: Sally bietet alle 30 Minuten Friseurdienstleistungen an, kann aber nur jeweils einen Kunden besuchen.)

    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 einer Buchung

    Abbildung 4:Gebäudepläne mit einer aktiven Buchung. Es wird davon ausgegangen, dass nur 1 Spot pro Dienst geöffnet ist. (Beispiel: Sally bietet alle 30 Minuten Friseurdienstleistungen an, kann aber nur jeweils einen Kunden besuchen.)

    Stellen Sie sich nun vor, dass eine nutzende Person um 12:30 Uhr mit Sally einen Friseur bucht. Bei einer Buchung wird die Verfügbarkeit in Echtzeit aktualisiert. Diese Buchung sollte im nächsten täglichen Verfügbarkeitsfeed enthalten sein. Der Verfügbarkeitsfeed für diese Händler hätte für einen Service mit einer Dauer von 30 Minuten eine Planungsausnahme 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
                      }
                    }
                  ],
                }
              ]
        }