Kasus Penggunaan untuk Update Real-Time
Update Real-Time harus selalu dilakukan dalam skenario berikut:
- Bila pengguna membatalkan reservasi di sistem Anda, dan slot tersebut yang tersedia.
- Saat pengguna memesan reservasi melalui {i>Actions Center<i} dan slot ketersediaan tidak lagi tersedia.
- Jika reservasi yang dilakukan melalui Pusat Tindakan dibatalkan di misalnya, oleh penjual secara langsung. Anda harus memperbarui pemesanan serta ketersediaan karena slot aslinya sekarang tersedia lagi.
Selain itu, jika Anda mengimplementasikan RTU Penggantian Ketersediaan, Update Real-Time harus diberikan dalam skenario berikut:
- Saat penjual mengubah jadwalnya (ketersediaan) di sistem Anda.
- Saat pengguna memesan reservasi di sistem Anda dan slot ketersediaan sudah tidak tersedia.
-
Jika Anda menggunakan integrasi lama dengan
CheckAvailability
, saat server pemesananCheckAvailability
akan menampilkan inventaris yang tidak sesuai dengan inventaris sebenarnya.
Tidak semua panggilan Maps Booking API diperlukan. Hal berikut bersifat wajib:
-
notification.partners.bookings.patch
(BookingNotification.UpdateBooking
)
Bergantung pada jenis integrasi, hal berikut mungkin juga tersedia atau diperlukan:
inventory.partners.availability.replace
(InventoryUpdate.BatchServiceAvailability
) ATAUinventory.partners.merchants.services.availability.replace
(InventoryUpdate.ReplaceServiceAvailability
)
Memperbarui RTU Pemesanan
Jika pembaruan telah dilakukan pada pemesanan Actions Center (misalnya, dibatalkan atau
dimodifikasi) pada sistem Anda,
notification.partners.bookings.patch
(BookingNotification.UpdateBooking
)
harus dikirim.
Kolom yang Dapat Diubah
status
startTime
duration
partySize
paymentInformation.prepaymentStatus
Contoh pembatalan
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" }
Availability Replace RTU
Ada dua jenis metode penggantian yang tersedia untuk memperbarui ketersediaan:
-
Penggantian Batch (
InventoryUpdate.BatchServiceAvailability
): Sepenuhnya menggantikan data ketersediaan untuk satu penjual dan beberapa layanan IT perusahaan mereka.- Catatan: Panggilan batch ini tidak menjamin atomitas. Hanya slot ketersediaan yang berhasil diperbarui akan ditampilkan.
-
Penggantian Tunggal (
InventoryUpdate.ReplaceServiceAvailability
): Sepenuhnya menggantikan ketersediaan untuk satu penjual dan layanan.
Gunakan yang berikut referensi untuk informasi selengkapnya spesifikasi pendukung.
Update real-time harus menggunakan struktur ketersediaan yang sama dengan data yang dikirim melalui feed. Mereka harus menggunakan salah satu dari:
spotsOpen
recurrence
Memilih Metode Ganti untuk Memanggil
Gunakan panduan berikut untuk membantu Anda menentukan metode penggantian mana yang lebih cocok:
- Apakah beberapa layanan terpengaruh dengan satu pemesanan? Misalnya, potong rambut dan mewarnai (masing-masing adalah Layanan yang berbeda) dipesan oleh stylist, jadi semua layanan yang terkait dengan stylist untuk slot waktu tersebut harus dihapus.
- Sistem Anda akan melakukan sinkronisasi dengan Google dari waktu ke waktu dengan mengirimkan semua
ketersediaan berubah sejak update terakhir (tidak direkomendasikan).
- Penggantian Batch
- Catatan: Kami memperkirakan RTU Inventaris akan dikirim dalam waktu 5 menit setelah pembaruan terjadi berpihak kepada Anda. Jadi, Anda harus memeriksa dan mengirimkan update setidaknya setiap 5 menit.
- Tidak ada yang sesuai?
- Penggantian Tunggal
- Catatan: Anda dapat menggunakan beberapa panggilan penggantian tunggal untuk mengemulasi mengganti banyak panggilan, tetapi akan lebih efisien untuk menggunakan satu panggilan penggantian batch
Update Real-Time: Format Spots Terbuka
Penting untuk menggunakan format yang sama di seluruh feed, server pemesanan, dan pembaruan real-time.
Cuplikan feed spots_open
terlihat seperti ini:
Cuplikan Feed
"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" } ]
Untuk Inventory Update API, ganti format isi permintaan saat Slot pukul 15.30 dapat dipesan:
Mengganti Cuplikan Update Real-Time
{ "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" } ] } ] }
Berikut contoh yang kami harapkan di feed harian berikutnya, jika slot baru di Pukul 15.30 akan dipesan:
Cuplikan Feed
"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" } ]
Update Real-Time: Format Pengulangan
Penting untuk menggunakan format yang sama di seluruh feed, server pemesanan, dan pembaruan real-time.
Feed yang menggunakan pengulangan terlihat seperti ini:
Cuplikan Feed
"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 } } ], } ]
Untuk Inventory Update API, ganti format isi permintaan saat Slot pukul 15.30 akan dipesan, terlihat seperti:
{ "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" } } ] } ] } ] }
Berikut contoh hal yang diharapkan dalam feed harian berikutnya. Perhatikan bahwa
adalah ketersediaan seluruh layanan untuk penjual tersebut, dan semua
schedule_exceptions
sebelumnya dan baru:
Cuplikan Feed
"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 } } ], } ]
Kapan harus Mengirim Pembaruan Real-Time
Update real-time harus dikirim secara terus-menerus setiap kali ketersediaan berubah. Hal ini merupakan tambahan dari feed ketersediaan komprehensif yang seharusnya dikirimkan sekali sehari, untuk memastikan bahwa ketersediaan disinkronkan antara Anda dan sistem Google.