Kasus Penggunaan untuk Update Real-Time
Update Real-Time harus selalu dikeluarkan dalam skenario berikut:
- Saat pengguna membatalkan reservasi di sistem Anda, dan slot menjadi tersedia.
- Saat pengguna memesan reservasi melalui Pusat Tindakan dan slot ketersediaannya tidak lagi tersedia.
- Jika reservasi yang dilakukan melalui Actions Center dibatalkan di sisi Anda, misalnya, oleh penjual secara langsung. Anda perlu memperbarui pemesanan serta ketersediaannya karena slot asli sekarang tersedia lagi.
Selain itu, jika Anda menerapkan Availability Replace RTU, Update Real-Time harus dikeluarkan dalam skenario berikut:
- Saat penjual mengubah jadwal (ketersediaan) di sistem Anda.
- Saat pengguna memesan reservasi di sistem Anda dan slot ketersediaannya tidak lagi tersedia.
-
Jika Anda menggunakan integrasi lama dengan
CheckAvailability
, saat panggilanCheckAvailability
server pemesanan menampilkan inventaris yang tidak cocok dengan inventaris sebenarnya.
Tidak semua panggilan Maps Booking API diperlukan. Berikut adalah persyaratan 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
)
RTU Update Booking
Jika pembaruan telah dilakukan pada pemesanan Actions Center (misalnya, dibatalkan atau
diubah) di 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 Anda:
-
Batch Replace (
InventoryUpdate.BatchServiceAvailability
): Mengganti data ketersediaan untuk penjual dan beberapa layanan sepenuhnya.- Catatan: Panggilan batch ini tidak menjamin atomicity. Hanya slot ketersediaan yang berhasil diperbarui yang akan ditampilkan.
-
Single Replace (
InventoryUpdate.ReplaceServiceAvailability
): Mengganti ketersediaan untuk satu penjual dan layanan sepenuhnya.
Gunakan referensi berikut untuk detail selengkapnya.
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 Penggantian untuk Ditelepon
Gunakan panduan berikut untuk membantu Anda menentukan metode penggantian mana yang lebih sesuai:
- Apakah beberapa layanan terpengaruh dengan satu pemesanan? Misalnya, potong rambut dan pewarnaan (masing-masing adalah Layanan yang berbeda) dipesan dengan penata rambut, sehingga semua layanan yang terkait dengan penata rambut untuk slot waktu tersebut harus dihapus.
- Sistem Anda akan disinkronkan dengan sistem Google dari waktu ke waktu dengan mengirimkan semua
perubahan ketersediaan sejak update terakhir (tidak direkomendasikan).
- Penggantian Batch
- Catatan: Kami memperkirakan RTU Inventaris akan dikirim dalam waktu 5 menit setelah pembaruan terjadi di pihak Anda. Jadi, Anda harus memeriksa dan mengirim pembaruan setidaknya setiap 5 menit.
- Tidak ada yang sesuai?
- Penggantian Tunggal
- Catatan: Anda dapat menggunakan beberapa panggilan penggantian tunggal untuk mengemulasi panggilan penggantian batch, tetapi akan lebih efisien jika menggunakan satu panggilan penggantian batch
Update Real-Time: Format Spots Open
Anda harus menggunakan format yang sama di seluruh feed, server pemesanan, dan update real-time.
Cuplikan feed spots_open
terlihat seperti:
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, format isi permintaan penggantian saat slot pukul 15.30 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 adalah contoh yang kami harapkan di feed harian berikutnya, jika slot baru pada pukul 15.30 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
Anda harus menggunakan format yang sama di seluruh feed, server pemesanan, dan update real-time.
Feed yang menggunakan pengulangan akan terlihat seperti:
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, format isi permintaan penggantian saat slot pukul 15.30 dipesan, akan 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 adalah contoh yang diharapkan di feed harian berikutnya. Perhatikan bahwa ini
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 Mengirimkan Update Real-Time
Pembaruan real-time harus dikirim secara terus-menerus setiap kali ketersediaan berubah. Hal ini selain feed ketersediaan komprehensif yang harus dikirimkan sekali sehari, untuk memastikan ketersediaan disinkronkan antara sistem Anda dan Google.