REST Resource: inventory.partners.merchants.services.availability

Resource: Availability

Slot ketersediaan layanan penjual, yang menunjukkan waktu dan jumlah tempat.

Representasi JSON
{
  "startTime": string,
  "duration": string,
  "spotsTotal": string,
  "spotsOpen": string,
  "availabilityTag": string,
  "resources": {
    object (Resources)
  },
  "paymentOptionId": [
    string
  ],
  "recurrence": {
    object (Recurrence)
  },
  "scheduleException": [
    {
      object (ScheduleException)
    }
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
Kolom
startTime

string (Timestamp format)

Waktu mulai slot janji temu.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Durasi slot janji temu

Durasi dalam detik dengan paling banyak sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s".

spotsTotal

string (int64 format)

Jumlah total tempat dan tempat terbuka dari ketersediaan ini. Contoh:

  • Kelas yoga yang menyediakan 10 tempat dengan 3 tempat yang sudah dipesan: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Sesi pijat kursi yang sudah habis dipesan: availability {spotsTotal: 1, spotsOpen: 0 ...}

Catatan: Jika mengirim permintaan menggunakan format kompresi ketersediaan yang ditentukan di bawah, kedua kolom ini akan diisi berdasarkan permintaan tersebut.

  • Sebuah Recurrence menyiratkan spotsTotal=1 dan spotsOpen=1.
  • Sebuah ScheduleException menyiratkan spotsTotal=1 dan spotsOpen=0.
spotsOpen

string (int64 format)

Jumlah titik terbuka.

availabilityTag

string

String buram opsional untuk mengidentifikasi slot ketersediaan ini. Jika ditetapkan, string ini akan disertakan dalam permintaan yang memesan/memperbarui/membatalkan janji temu.

resources

object (Resources)

Resource opsional biasanya digunakan untuk memperjelas slot ketersediaan ini dari yang lain jika anggota staf yang berbeda, atau ruangan merupakan bagian dari layanan.

Mis., kelas yoga yang sama dengan 2 instruktur:

availability { resources { staffId: "1" staffName: "Amy" }
               spotsTotal: 10 spotsOpen: 7 }
availability { resources { staffId: "2" staffName: "John" }
               spotsTotal: 5 spotsOpen: 2 }
paymentOptionId[]

string

Daftar id yang mereferensikan opsi pembayaran yang dapat digunakan untuk membayar slot ini. Opsi pembayaran yang sebenarnya ditentukan di tingkat Penjual, dan juga dapat digunakan bersama oleh beberapa penjual.

Kolom ini mengganti payment_option_id yang ditentukan dalam pesan layanan. Demikian pula, payment_option_id yang ditentukan di sini TIDAK harus ada dalam pesan layanan, meskipun harus ditentukan di tingkat Penjual.

recurrence

object (Recurrence)

Informasi pengulangan untuk ketersediaan, yang merepresentasikan lebih dari satu waktu mulai. Pengulangan harus berisi janji temu untuk satu hari kerja.

scheduleException[]

object (ScheduleException)

Waktu saat layanan ini tidak dapat dijadwalkan. Untuk membatasi jumlah pesan scheduleException, pertimbangkan untuk menggabungkan pengecualian yang berdekatan.

deposit

object (Deposit)

Deposit opsional untuk ketersediaan ini. Mengganti deposit layanan jika ditentukan.

noShowFee

object (NoShowFee)

Denda ketidakhadiran opsional untuk ketersediaan ini. Mengganti denda ketidakhadiran layanan jika ditentukan.

requireCreditCard

enum (RequireCreditCard)

Menunjukkan apakah pengguna harus menyediakan kartu kredit untuk memesan slot ketersediaan ini. Jika tidak ditetapkan, nilai ini akan diwarisi dari tingkat layanan jika ditetapkan di sana. (opsional)

ticketTypeId[]

string

Menunjukkan daftar jenis tiket yang didukung untuk slot ketersediaan ini. Jika tidak ditetapkan, semua jenis tiket di layanan induk tersedia untuk slot ini. Perhatikan bahwa nilai kolom ini harus ditentukan di layanan induk. Contoh:

  • Layanan dengan empat jenis tiket: TicketType {ticketTypeId: "adult_1" shortDescription: "Adult weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "Adult weekends"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "Youth weekends"}

Untuk merepresentasikan inventaris selama hari kerja: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Untuk merepresentasikan inventaris selama hari libur: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Layanan dengan tiga jenis tiket: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

Untuk menunjukkan bahwa ketiga jenis tiket tersebut tersedia untuk slot waktu ini, gunakan availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} atau `availability {...}' (jangan tetapkan ticketTypeId di slot ini).

(opsional)

durationRequirement

enum (DurationRequirement)

Persyaratan untuk menampilkan durasi slot dan/atau waktu berakhir. Kolom ini akan diabaikan jika slot tidak tersedia. Tidak digunakan di vertical Rekomendasi Aktivitas. (opsional)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Aturan penjadwalan ketersediaan. Jika diisi, kolom tersebut akan mengganti setiap aturan penjadwalan yang sesuai di SchedulingRules tingkat layanan.

confirmationMode

enum (ConfirmationMode)

Mode konfirmasi yang akan digunakan saat memesan ketersediaan ini. Percobaan pembuatan pemesanan untuk ketersediaan dengan mode konfirmasi CONFIRMATION_MODE_SYNCHRONOUS harus segera dikonfirmasi atau ditolak. Percobaan pembuatan pemesanan untuk ketersediaan dengan mode konfirmasi CONFIRMATION_MODE_ASYNCHRONOUS harus segera ditolak atau dibuat dengan status PENDING.

Referensi

Resource (sumber daya) digunakan untuk membedakan slot ketersediaan dari satu sama lain jika anggota staf yang berbeda, atau ruangan merupakan bagian dari layanan. Beberapa slot untuk layanan dan interval waktu yang sama dapat muncul bersamaan meskipun memiliki sumber daya yang berbeda.

Representasi JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
Kolom
staffId

string

ID opsional untuk anggota staf yang menyediakan layanan. Kolom ini menunjukkan anggota staf di seluruh catatan penjual, layanan, dan ketersediaan. Kolom ini juga harus stabil dari waktu ke waktu untuk memungkinkan korelasi dengan pemesanan terdahulu. Kolom ini harus ada jika staffName ada.

staffName

string

Nama opsional anggota staf yang menyediakan layanan. Kolom ini akan ditampilkan kepada pengguna yang melakukan pemesanan, dan harus dapat dibaca oleh manusia, bukan ID buram. Kolom ini harus ada jika staffId ada.

roomId

string

ID opsional untuk ruangan tempat layanan berada. Kolom ini menunjukkan ruangan di seluruh catatan penjual, layanan, dan ketersediaan. Kolom ini juga harus stabil dari waktu ke waktu untuk memungkinkan korelasi dengan pemesanan terdahulu. Kolom ini harus ada jika roomName ada.

roomName

string

Nama opsional untuk ruangan tempat layanan berada. Kolom ini akan ditampilkan kepada pengguna yang melakukan pemesanan, dan harus dapat dibaca oleh manusia, bukan ID buram. (opsional tetapi diperlukan jika roomId ada) Dalam ruang makan, nama ruang hanya boleh digunakan untuk area duduk seperti bar atau teras dan tidak boleh digunakan untuk menu harga tetap, aktivitas khusus, atau nilai non-kamar lainnya (seperti reservasi atau makan malam). Sangat disarankan agar tidak ada ruangan yang terkait dengan area duduk default.

partySize

integer

Hanya berlaku untuk Tempat Makan: Jumlah tamu yang dapat diakomodasi selama slot waktu ini. Restoran dapat dikaitkan dengan beberapa Slot untuk waktu yang sama, yang masing-masing menentukan partySize yang berbeda, jika misalnya 2, 3, atau 4 orang dapat duduk dengan reservasi.

Recurrence

Pesan Recurrence (Pengulangan) bersifat opsional, tetapi memungkinkan representasi yang lebih ringkas dari slot ketersediaan yang berulang secara konsisten. Pesan ini biasanya merepresentasikan jadwal kerja dalam sehari. Pesan ScheduleException kemudian digunakan untuk merepresentasikan rentang waktu yang dipesan/tidak tersedia dalam hari kerja.

Persyaratan:

  1. Perluasan slot ketersediaan atau pengulangan TIDAK boleh membuat slot yang identik. Jika id, startTime, duration, dan resources cocok, slot akan dianggap identik.
  2. JANGAN mencampur format ketersediaan standar dan pengulangan dalam slot satu layanan. Pengulangan memberikan manfaat ke penjual/layanan yang menawarkan janji temu. Format standar ditujukan untuk penjual/layanan dengan kelas yang dijadwalkan secara rutin.
  3. Pengulangan tidak boleh berdurasi lebih dari 24 jam.
Representasi JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Kolom
repeatUntil

string (Timestamp format)

Stempel waktu UTC maksimum inklusif yang menunjukkan sampai kapan ketersediaan akan berulang.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Menentukan waktu di antara beberapa slot ketersediaan berurutan.

Contoh: Ketersediaan dengan durasi 20 menit, repeatEvery 30 menit, startTime 09.00, dan repeatUntil 11.00 akan menghasilkan slot pada pukul 09.00-9.20, 09.30-09.50, 10.00-10.20, 10.30-10.50, 11.00-11.20. (wajib)

Durasi dalam detik dengan paling banyak sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s".

ScheduleException

ScheduleException merepresentasikan rentang waktu yang dipesan/tidak tersedia dalam hari kerja, yang merupakan pengecualian terhadap pengulangan yang dideskripsikan di atas. Saat slot waktu dipesan, daftar pengecualian harus diperbarui untuk mencerminkan rentang waktu yang baru saja tidak tersedia. Pengulangan itu sendiri tidak boleh dimodifikasi.

Representasi JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Kolom
timeRange

object (TimeRange)

Rentang waktu pengecualian. Setiap slot yang dideskripsikan oleh pengulangan yang tumpang tindih dengan rentang waktu tertutup-terbuka ini akan dianggap tidak tersedia.

Contoh: Jika pengulangan menentukan durasi 20 menit, repeatEvery 30 menit, startTime 9.00, dan repeatUntil 11.00, maka ScheduleException dengan timeRange 09.45-11.00 akan membuat tidak tersedianya slot pada pukul 09.30-09.50, 10.00-10.20, dan 10.30-10.50.

Perhatikan bahwa karena rentang waktu bersifat tertutup-terbuka, slot yang dimulai pada pukul 11.00 tidak akan terpengaruh.

DurationRequirement

Enum ini menunjukkan persyaratan yang ada bagi pengguna untuk mengonfirmasi atau melihat durasi/waktu berakhir slot yang diminta.

Enum
DURATION_REQUIREMENT_UNSPECIFIED Penanganan waktu berakhir tidak ditentukan. Ini adalah defaultnya.
DO_NOT_SHOW_DURATION Waktu berakhir tidak ditampilkan kepada pengguna.
MUST_SHOW_DURATION Waktu berakhir harus ditampilkan kepada pengguna sebelum janji temu dapat dibuat.

SchedulingRuleOverrides

Aturan penjadwalan tingkat ketersediaan.

Representasi JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Kolom
lastBookableSec

string (int64 format)

Waktu terakhir (dalam detik) saat slot ini dapat dipesan. Stempel waktu ini harus sebelum startSec yang ditetapkan untuk slot agar dapat diterapkan (jika pengguna harus dapat memesan setelah waktu mulai, gunakan SchedulingRules.min_booking_before_end_time tingkat layanan). Jika ada, akan mengganti apa pun yang ditentukan dalam min_booking_buffer dari SchedulingRules milik Layanan terkait.

firstBookableSec

string (int64 format)

Waktu pertama (dalam detik) saat slot ini dapat dipesan. Stempel waktu ini harus sebelum startSec yang ditetapkan untuk slot, atau lastBookableSec jika ditentukan.

lastOnlineCancellableSec

string (int64 format)

Jika ditetapkan, waktu terakhir (dalam detik sejak epoch Unix) slot janji temu khusus ini dapat dibatalkan melalui Pesan dengan Google. Kolom ini akan menggantikan aturan pembatalan tingkat layanan apa pun. (opsional)

ConfirmationMode

Mode konfirmasi yang digunakan saat memesan info detail.

Enum
CONFIRMATION_MODE_UNSPECIFIED Mode konfirmasi tidak ditentukan. Konfirmasi sinkron akan dipilih.
CONFIRMATION_MODE_SYNCHRONOUS Pemesanan untuk ketersediaan ini akan dikonfirmasi secara sinkron.
CONFIRMATION_MODE_ASYNCHRONOUS Pemesanan untuk ketersediaan ini akan dikonfirmasi secara asinkron.

Metode

replace

Mengganti Availability dari Service yang ada pada penjual yang dikelola agregator yang ditentukan, dan menampilkannya.