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 sunucusuCheckAvailability
ç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:
-
notification.partners.bookings.patch
(BookingNotification.UpdateBooking
)
Entegrasyonun türüne bağlı olarak aşağıdakiler de kullanılabilir veya gerekli olabilir:
inventory.partners.availability.replace
(InventoryUpdate.BatchServiceAvailability
) VEYAinventory.partners.merchants.services.availability.replace
(InventoryUpdate.ReplaceServiceAvailability
)
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
İ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.