Echtzeitaktualisierungen strukturieren

Anwendungsfälle für Echtzeitaktualisierungen

Echtzeitaktualisierungen müssen in den folgenden Fällen immer ausgegeben werden:

  • Wenn ein Nutzer eine Reservierung auf Ihrem System storniert und der Slot verfügbar.
  • Wenn ein Nutzer eine Reservierung über das Actions Center und das verfügbarer Slot ist nicht mehr verfügbar.
  • Wenn eine Reservierung, die über das Actions Center vorgenommen wurde, auf Ihrem zum Beispiel direkt vom Händler. Sie müssen die der Buchung und der Verfügbarkeit, da der ursprüngliche Slot wieder verfügbar sind.

Wenn Sie außerdem Echtzeitdaten zur Verfügbarkeit des Ersetzens Echtzeitaktualisierungen sollten in folgenden Fällen ausgegeben werden:

  • Wenn ein Händler seinen Zeitplan (Verfügbarkeit) in Ihrem System ändert.
  • Wenn ein Nutzer eine Reservierung in Ihrem System und im verfügbaren Slot bucht ist nicht mehr verfügbar.
  • Wenn Sie eine alte Integration mit CheckAvailability, wenn ein Buchungsserver CheckAvailability gibt Inventar zurück, das nicht mit dem tatsächlichen Inventar übereinstimmt.

Nicht alle Maps Booking API-Aufrufe sind erforderlich. Folgendes ist erforderlich:

Je nach Art der Integration ist möglicherweise Folgendes erforderlich oder verfügbar:

Echtzeitaktualisierung für Buchungen aktualisieren

Im Fall einer Aktualisierung einer Actions Center-Buchung (z.B. stornierter oder Änderungen) auf Ihrem System enthält, notification.partners.bookings.patch (BookingNotification.UpdateBooking) gesendet werden muss.

Bearbeitbare Felder

  • status
  • startTime
  • duration
  • partySize
  • paymentInformation.prepaymentStatus
<ph type="x-smartling-placeholder">

Beispiel für eine Kündigung

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{
  "name": "partners/<PARTNER_ID>/bookings/<BOOKING_ID>",
  "merchantId": "10001",
  "serviceId": "1001",
  "startTime": "2014-10-02T15:01:23.045123456Z",
  "duration": "3000s",
  "status": "CANCELED"
}

Echtzeitaktualisierung für "AvailabilityReplace"

<ph type="x-smartling-placeholder">

Es gibt zwei Arten von Ersetzungsmethoden, Verfügbarkeit:

  • Im Batch ersetzen (InventoryUpdate.BatchServiceAvailability): Ersetzt die Verfügbarkeitsdaten eines Händlers und mehrere .
    • Hinweis: Dieser Batch-Aufruf garantiert keine Atomarität. Nur erfolgreich aktualisierten verfügbaren Slots zurückgegeben.
  • Einzelnes Ersetzen (InventoryUpdate.ReplaceServiceAvailability): Ersetzt die Verfügbarkeit für einen einzelnen Händler und eine einzelne Dienstleistung vollständig.

Verwenden Sie Folgendes: Referenz für weitere Informationen Details.

Für Echtzeitaktualisierungen muss dieselbe Verfügbarkeitsstruktur wie für die Daten verwendet werden. die über Feeds gesendet werden. Dazu muss einer der folgenden Typen verwendet werden:

  • spotsOpen
  • recurrence

Ersetzungsmethode für den Aufruf auswählen

Die folgende Anleitung hilft Ihnen bei der Entscheidung, welche Ersetzungsmethode besser geeignet ist. geeignet:

  • Wirkt sich eine einzelne Buchung auf mehrere Services aus? Zum Beispiel ein Haarschnitt Farbgebung (jeder ist ein eigener Service) wird bei einem Stylisten gebucht. die mit dem Friseur für diesen Zeitblock verknüpft sind, sollten entfernt werden.
  • Ihr System wird hin und wieder mit dem von Google synchronisiert, indem alle Änderungen an der Verfügbarkeit seit der letzten Aktualisierung (nicht empfohlen).
    • Im Batch ersetzen
    • Hinweis: Die Echtzeitaktualisierung für Inventar wird voraussichtlich innerhalb von 5 Minuten nach einer Aktualisierung gesendet. auf Ihrer Seite. Daher solltest du mindestens alle fünf Minuten eine Prüfung durchführen und Updates senden.
  • Nichts davon trifft zu?
    • Einzelnes Ersetzen
    • Hinweis: Sie können mehrere einzelne Ersetzungsaufrufe verwenden, um eine einen Batch-Ersetzungsaufruf, aber es wäre effizienter, Batch-Ersetzungsaufruf

Echtzeitaktualisierungen: Spots-Open-Format

Es ist wichtig, für alle Feeds, den Buchungsserver und in Echtzeit.

Ein spots_open-Feed-Snippet sieht so aus:

Feed-Snippet

   "availability": [
          {
            "merchant_id": "1001",
            "service_id": "12310",
            "spots_open": 2,
            "spots_total": 2,
            "start_sec": 1412263800, # October 02, 2014 15:30:00
            "duration_sec": 1800,
            "availabilityTag": "1000001"
          }
    ]

Bei der Inventory Update API wird das Format des Anfragetexts für den Fall, dass ein Der Slot wird um 15:30 Uhr gebucht:

Snippet für Echtzeitaktualisierungen ersetzen

  {
    "extendedServiceAvailability": [
      {
        "merchantId": "1001",
        "serviceId": "12310",
        "startTimeRestrict": "2014-10-02T15:01:23.045123456Z",
        "endTimeRestrict": "2014-10-02T19:01:23.045123456Z",
        "availability": [
          {
            "startTime": "2014-10-02T15:30:00.00Z",
            "duration": "3600s",
            "spotsOpen": "1",
            "spotsTotal": "2",
            "availabilityTag": "1000001"
          }
        ]
      }
    ]
  }

Hier ist ein Beispiel dafür, was wir im nächsten täglichen Feed erwarten, 15:30 Uhr wird gebucht:

Feed-Snippet

"availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 2,
          "start_sec": 1412263800, # October 02, 2014 15:30:00
          "duration_sec": 1800,
          "availabilityTag": "1000001"
        }
      ]
<ph type="x-smartling-placeholder">

Echtzeitaktualisierungen: Wiederholungsformat

Es ist wichtig, für alle Feeds, den Buchungsserver und in Echtzeit.

Ein Feed, für den Wiederholungen verwendet werden, sieht so aus:

Feed-Snippet

  "availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 1,
          "start_sec": 1540890000, # October 30, 2018 9:00:00 AM
          "duration_sec": 1800,
          "recurrence": {
            "repeat_every_sec": 1800,
            "repeat_until_sec": 1540918800 # October 30, 2018 5:00:00 PM
          },
          "schedule_exception": [
            {
              "time_range": {
                "begin_sec": 1540902600, # October 30, 2018 12:30:00 PM
                "end_sec": 1540904400 # October 30, 2018 1:00:00 PM
              }
            }
          ],
        }
      ]

Bei der Inventory Update API wird das Format des Anfragetexts für den Fall, dass ein Der Slot wird um 15:30 Uhr gebucht und sieht so aus:

  {
    "extendedServiceAvailability": [
      {
        "merchantId": "1001",
        "serviceId": "12310",
        "startTimeRestrict": "2018-10-30T15:01:23.045123456Z",
        "endTimeRestrict": "2018-10-30T19:01:23.045123456Z",
        "availability": [
          {
            "startTime": "2018-10-30T15:30:00.00Z",
            "duration": "3600s",
            "spotsOpen": "1",
            "scheduleException": [
             {
                "timeRange": {
                  "startTime": "2018-10-30T12:30:00.00Z",
                  "endTime": "2018-10-30T13:00:00.00Z"
                }
              },
              {
                "timeRange": {
                  "startTime": "2018-10-30T15:30:00.00Z",
                  "endTime": "2018-10-30T16:00:00.00Z"
                }
              }
            ]
          }
        ]
      }
    ]
  }
<ph type="x-smartling-placeholder">

Hier ist ein Beispiel dafür, was im nächsten täglichen Feed erwartet wird. Beachten Sie, dass es ist die Verfügbarkeit der gesamten Dienstleistung für diesen Händler und alle vorherige und neue schedule_exceptions:

Feed-Snippet

   "availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 1,
          "start_sec": 1540890000, # October 30, 2018 9:00:00 AM
          "duration_sec": 1800,
          "recurrence": {
            "repeat_every_sec": 1800,
            "repeat_until_sec": 1540918800 # October 30, 2018 5:00:00 PM
          },
          "schedule_exception": [
            {
              "time_range": {
                "begin_sec": 1540902600, # October 30, 2018 12:30:00 PM
                "end_sec": 1540904400 # October 30, 2018 1:00:00 PM
              }
            },
            {
              "time_range": {
                "begin_sec": 1540913400, # October 30, 2018 3:30:00 PM
                "end_sec": 1540915200 # October 30, 2018 4:00:00 PM
              }
            }
          ],
        }
      ]

Wann Echtzeitaktualisierungen gesendet werden sollten

Aktualisierungen in Echtzeit sollten kontinuierlich gesendet werden, wenn sich die Verfügbarkeit ändert. Dies geschieht zusätzlich zu einem umfassenden Verfügbarkeitsfeed, der einmal täglich eingereicht werden, um sicherzustellen, zwischen Ihrem und dem Google-System.