Gerçek Zamanlı Güncellemeleri Yapılandırma

Gerçek Zamanlı Güncellemelerin Kullanım Alanları

Gerçek Zamanlı Güncellemeler her zaman aşağıdaki senaryolarda verilmelidir:

  • Bir kullanıcı sisteminizdeki bir rezervasyonu iptal ettiğinde ve zaman aralığı değiştiyse kullanılabilir.
  • Bir kullanıcı İşlemler Merkezi ve müsaitlik durumu aralığı artık kullanılamıyor.
  • İşlemler Merkezi üzerinden yapılan bir rezervasyon cihazınızda iptal edildiğinde tarafından doğrudan satıcıya yansıtılır. Şunu güncellemeniz gerekiyor: ve müsaitlik durumunun yanı sıra rezervasyonun da yeniden kullanılabilir.

Ayrıca, Kullanılabilirlik RTU'nun yerine geçer, Gerçek Zamanlı Güncellemeler aşağıdaki senaryolarda verilmelidir:

  • Bir satıcının sisteminizdeki planını (stok durumu) değiştirmesi.
  • Bir kullanıcının sisteminizde ve müsaitlik durumu aralığında rezervasyon yapması artık kullanılamıyor.
  • Eski bir entegrasyon kullanıyorsanız CheckAvailability rezervasyon sunucusu CheckAvailability çağrısı, gerçek envanterle eşleşmeyen envanteri döndürür.

Haritalar Rezervasyon API'si çağrılarının hepsi gerekli değildir. Aşağıdakiler zorunludur:

Entegrasyonun türüne bağlı olarak aşağıdakiler de kullanılabilir veya gerekli olabilir:

Rezervasyon RTU'sunu Güncelle

İşlemler Merkezi rezervasyonunda güncelleme yapılması (ör. iptal edilmiş veya üzerinde) işlem yapılmasını notification.partners.bookings.patch (BookingNotification.UpdateBooking) gönderilmelidir.

Değiştirilebilir Alanlar

  • status
  • startTime
  • duration
  • partySize
  • paymentInformation.prepaymentStatus
ziyaret edin.

İptal örneği

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

RTU'nun yerine kullanılabilirlik

Verilerinizi güncellemek için kullanabileceğiniz iki tür değiştirme yöntemi vardır: uygunluk durumu:

  • Toplu Değiştirme (InventoryUpdate.BatchServiceAvailability): Bir satıcı ve birden fazla satıcı için stok durumu verilerini tamamen değiştirir kullanıma sunuyoruz.
    • Not: Bu toplu çağrı, eksiklik garantisi vermez. Yalnızca başarıyla güncellenen kullanılabilirlik aralıkları döndürülür.
  • Tek Değiştirme (InventoryUpdate.ReplaceServiceAvailability): Tek bir satıcı ve hizmetin stok durumunu tamamen değiştirir.

Lütfen şunu kullanın: Daha fazlası için referans: bolca fırsat sunuyor.

Gerçek zamanlı güncellemeler, verilerle aynı kullanılabilirlik yapısını kullanmalıdır. feed'ler aracılığıyla gönderilir. Aşağıdakilerden birini kullanmalıdır:

  • spotsOpen
  • recurrence

Çağrılacak Değiştirme Yöntemini Seçme

Hangi değiştirme yönteminin daha iyi olduğunu belirlemenize yardımcı olması için aşağıdaki kılavuzu kullanın uygun:

  • Tek bir rezervasyonda birden fazla hizmet etkilenir mi? Örneğin, saç kestirme ve renklendirme (her biri ayrı bir Hizmettir) bir stilistle randevu alındığından söz konusu zaman dilimi için stilistle ilişkili hizmetlerin kaldırılması gerekir.
  • Sisteminiz zaman zaman Google'ın sistemiyle senkronize etmek için, Son güncellemeden bu yana kullanılabilirlik değişiklikleri (önerilmez).
    • Toplu Değiştirme
    • Not: Envanter RTU'sunun, bir güncellemenin yapılmasından itibaren 5 dakika içinde gönderilmesini bekleriz. yanınızdadır. Bu nedenle, en az 5 dakikada bir güncellemeleri kontrol edip göndermeniz gerekir.
  • Bunların hiçbiri geçerli değil mi?
    • Tek Değiştirme
    • Not: Bir emülasyon için birden çok tek değiştirme çağrısı kullanabilirsiniz. toplu değiştirme çağrısı yapmak, ancak tek bir toplu değiştirme çağrısı

Gerçek Zamanlı Güncellemeler: Spots Açık Biçimi

Feed'ler, rezervasyon sunucusu ve gerçek zamanlı güncellemelerdir.

spots_open feed snippet'i şöyle görünür:

Feed Snippet'i

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

Inventory Update API için, 15:30 zaman aralığı rezerve ediliyor:

Gerçek Zamanlı Güncellemeler Snippet'ini Değiştirme

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

Bir sonraki günlük feed'de yeni bir aralık 15:30'da rezervasyon yapılıyor:

Feed Snippet'i

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

Gerçek Zamanlı Güncellemeler: Yinelenme Biçimi

Feed'ler, rezervasyon sunucusu ve gerçek zamanlı güncellemelerdir.

Yineleme kullanan bir feed aşağıdaki gibi görünür:

Feed Snippet'i

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

Inventory Update API için, 15:30 zaman aralığı rezerve ediliyor. Görünüşe göre:

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

Bir sonraki günlük feed'de neler olacağına dair bir örnek aşağıda verilmiştir. Unutmayın ki hizmetin tamamının ilgili satıcı için kullanılabilirliği ve önceki ve yeni schedule_exceptions:

Feed Snippet'i

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

Anlık Güncellemelerin Gönderileceği Zaman

Müsaitlik durumu değiştiğinde gerçek zamanlı güncellemeler sürekli olarak gönderilmelidir. Bu bilgiler, eklenmesi gereken kapsamlı bir stok durumu feed'ine ek olarak stok durumunun senkronize edilmesini sağlamak için sistemleri arasında bağlantı kurmaktır.