Memilih Format Ketersediaan
Ada dua cara untuk menentukan data ketersediaan: (1) Tempat Terbuka atau (2) Pengulangan. Hanya pilih satu metode yang akan digunakan di semua penjual dan layanan Anda. Setelah memilih metode, Anda harus tetap menggunakannya untuk seluruh integrasi (feed, server pemesanan, dan update real time).
Gunakan panduan berikut untuk membantu Anda menentukan format ketersediaan mana yang lebih cocok:
- Di sistem Anda, apakah Anda menyimpan ketersediaan sebagai slot eksplisit, misalnya,
08.00 - 08.30?
- Gunakan Spots Open
- Di sistem Anda, apakah Anda menyimpan ketersediaan dalam format berulang,
yang berarti penjual memiliki layanan yang terjadi dengan frekuensi yang konsisten dengan
sedikit penyimpangan? Misalnya, slot berulang setiap 15 menit dari pukul 09.00 - 17.00, dan hanya satu kursi yang tersedia dalam setiap kelipatan 15 menit.
- Gunakan Pengulangan
- Untuk layanan penjual Anda, dapatkah ada lebih dari satu slot yang terbuka sekaligus? Misalnya, 30 slot terbuka untuk kelas
- Gunakan Spots Open
- Tidak ada opsi yang sesuai?
- Gunakan Spots Open
- Catatan: Meskipun penggunaan pengulangan lebih efisien dan dapat menghasilkan ukuran feed yang lebih kecil, jika model data Anda tidak mendukung pengulangan secara native, sebaiknya jangan gunakan pengulangan, karena Anda harus menghitung ulang slot berulang untuk seluruh hari untuk setiap pembaruan real-time.
Spots Open
Definisi Parameter:
- spots_open: Jumlah tempat yang saat ini tersedia untuk entri ketersediaan ini.
- spots_total: Jumlah total tempat yang dimiliki penjual untuk konfigurasi ini, termasuk tempat yang tidak tersedia.
Metode Spots Open secara eksplisit menunjukkan setiap ketersediaan slot dan mendukung model memiliki beberapa spot untuk layanan yang sama. Kedua parameter ini bekerja sama untuk membuat representasi digital dari kapasitas layanan.
Saat pemesanan terjadi, jumlah spots_open akan berkurang 1 melalui pembaruan realtime (jumlah spots_total akan tetap sama). Setelah spots_open = 0, slot tidak akan muncul lagi.
Contoh Layanan
Kelas yoga atau salon kecantikan memiliki denah lantai berikut dan tidak ada pemesanan aktif
Gambar 1: Denah lantai tanpa pemesanan aktif Feed ketersediaan untuk 2 slot di penjual ini akan terlihat seperti:
{ "availability": [ { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Contoh Layanan dengan Pemesanan
Gambar 2: Denah lantai dengan satu pemesanan aktif Sekarang pengguna memesan salah satu tempat. Saat pemesanan terjadi, update real-time akan dikeluarkan untuk memperbarui ketersediaan. Dalam feed ketersediaan harian berikutnya, pemesanan ini akan ditampilkan. Feed ketersediaan untuk penjual ini akan memiliki pengurangan spots_open sebesar 1 untuk slot 1 September 2018 pukul 16.00.00 GMT. Slot 20.00.00 GMT 1 September 2018 tetap tidak berubah.
Cuplikan Feed dengan Pemesanan
{ "availability": [ { "spots_total": 6, "spots_open": 5, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
Berulang
Definisi Parameter
- pengulangan: Representasi slot ketersediaan yang berulang secara konsisten.
- repeat_until_sec: Stempel waktu UTC waktu akhir slot terakhir yang menjadi batas waktu pengulangan ketersediaan.
- repeat_every_sec: Jumlah detik antara slot ketersediaan berturut-turut. Misalnya, jika repeat_every_sec = 1800 (30 menit), dan
start_sec dimulai pada pukul 09.00, slot akan diulang setiap 30 menit pada
09.00, 09.30, 10.00, dll.
- Catatan: Anda tidak perlu menentukan spots_open dan spots_total, keduanya diasumsikan 1 kecuali jika ada schedule_exception
Metode pengulangan menunjukkan ketersediaan setiap hari untuk layanan yang terjadi secara berkala, misalnya, layanan yang terjadi setiap 30 menit dari pukul 09.00 - 17.00 setiap hari. Dengan pengulangan, Anda menentukan durasi slot, waktu pertama kali slot terjadi dalam sehari, frekuensi slot tersebut diulang, dan kapan slot tersebut harus berhenti diulang pada hari yang sama. Catatan: kumpulan slot berulang baru harus ditentukan untuk setiap hari secara terpisah. Jika slot sudah dipesan dalam rentang waktu, Anda akan menentukan pengecualian jadwal. Misalnya, ulangi setiap setengah jam dari pukul 09.00 hingga 21.00 kecuali dari pukul 11.00 hingga 11.30. Setiap layanan akan memiliki pengecualian penjadwalan dan pengulangannya sendiri.
Contoh Layanan
Salon kecantikan memiliki denah lantai berikut dan tidak ada pemesanan aktif
Gambar 3: Denah lantai tanpa pemesanan aktif. Mengasumsikan hanya ada 1 slot yang terbuka per layanan (misalnya, Sally menyediakan layanan potong rambut setiap 30 menit, tetapi hanya dapat melayani 1 pelanggan dalam satu waktu.) Feed ketersediaan untuk 1 slot di penjual ini akan terlihat seperti:
Cuplikan Feed:
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", # haircut "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT } } ] }
Contoh Layanan dengan Pemesanan
Gambar 4: Denah lantai dengan satu pemesanan aktif. Mengasumsikan hanya ada 1 slot yang terbuka per layanan (misalnya, Sally menyediakan layanan potong rambut setiap 30 menit, tetapi hanya dapat melayani 1 pelanggan dalam satu waktu.) Sekarang bayangkan pengguna memesan potong rambut dengan Sally pada pukul 12.30. Saat pemesanan terjadi, update real-time akan dikeluarkan untuk memperbarui ketersediaan. Di feed ketersediaan harian berikutnya, pemesanan ini akan ditampilkan. Feed ketersediaan untuk penjual ini akan memiliki pengecualian penjadwalan selama pukul 12.30 - 13.00 untuk layanan dengan durasi 30 menit.
Cuplikan Feed dengan Pemesanan:
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT }, "schedule_exception": [ { "time_range": { "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT } } ], } ] }