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

Risorsa: disponibilità

Uno slot di disponibilità del servizio del commerciante, che indica l'ora e il numero di posti.

Rappresentazione 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)
}
Campi
startTime

string (Timestamp format)

Ora di inizio dello spazio per appuntamenti.

Un timestamp nel formato RFC3339 UTC "Zulu" con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Durata dello spazio per appuntamenti

Durata in secondi con un massimo di nove cifre frazionarie e termina con "s". Esempio: "3.5s".

spotsTotal

string (int64 format)

Numero di posti totali e posti disponibili per questa disponibilità. Esempi:

  • Corso di yoga in 10 luoghi di cui 3 prenotati: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Sessione di massaggio poltrone già al completo: availability {spotsTotal: 1, spotsOpen: 0 ...}

Nota: se invii richieste utilizzando il formato di compressione della disponibilità definito di seguito, verranno dedotti questi due campi.

  • Una ricorrenza implica spotsTotal=1 e spotsOpen=1.
  • Un'eccezione ScheduleException implica spotsTotal=1 e spotsOpen=0.
spotsOpen

string (int64 format)

Numero di posti disponibili.

availabilityTag

string

Una stringa opaca facoltativa per identificare questa slot di disponibilità. Se impostato, verrà incluso nelle richieste di prenotazione/aggiornamento/annullamento degli appuntamenti.

resources

object (Resources)

Risorse facoltative utilizzate per distinguere questo slot di disponibilità da altri quando diversi membri del personale o stanze fanno parte del servizio.

Ad es. la stessa lezione di yoga con due 2 istruttori:

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

string

Un elenco di ID che fanno riferimento alle opzioni di pagamento che possono essere utilizzati per pagare lo slot. Le opzioni di pagamento effettive sono definite a livello di commerciante e possono anche essere condivise tra più commercianti.

Questo campo sostituisce qualsiasi payment_option_id specificato nel messaggio di servizio. Allo stesso modo, payment_option_id specificati qui, NON deve essere presente nel messaggio di servizio, ma deve essere definito a livello di commerciante.

recurrence

object (Recurrence)

Informazioni sulla ricorrenza per la disponibilità, che rappresentano più di un'ora di inizio. Una ricorrenza deve contenere appuntamenti per un giorno lavorativo.

scheduleException[]

object (ScheduleException)

Orari in cui non è possibile pianificare questo servizio. Per limitare il numero di messaggi scheduleEccezioni, valuta la possibilità di unire le eccezioni adiacenti.

deposit

object (Deposit)

Deposito facoltativo per questa disponibilità. Sostituisce il deposito per il servizio, se specificato.

noShowFee

object (NoShowFee)

Tariffa facoltativa per il mancato arrivo per questa disponibilità. Sostituisce la tariffa per il mancato arrivo, se specificata.

requireCreditCard

enum (RequireCreditCard)

Indica se l'utente deve fornire una carta di credito per prenotare questa fascia di disponibilità. Se il valore non è impostato, viene ereditato dal livello di servizio, se impostato. (facoltativo)

ticketTypeId[]

string

Indica un elenco di tipi di ticket supportati per questo slot di disponibilità. Se il criterio non viene configurato, per questo spazio sono disponibili tutti i tipi di ticket nel servizio principale. Tieni presente che i valori di questo campo devono essere definiti nel servizio padre. Esempi:

  • Servizio con quattro tipi di biglietti: TicketType {ticketTypeId: "adult_1" ShortDescription: "Giorni feriali per adulti"} TicketType {ticketTypeId: "adult_2" ShortDescription: "Weekend adulti"} TicketType {ticketTypeId: "youth_1" ShortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" ShortDescription: "Weekend per la gioventù"}

Per rappresentare l'inventario durante i giorni feriali: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Per rappresentare l'inventario durante le festività: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Servizio con tre tipi di biglietti: TicketType {ticketTypeId: "adult" ShortDescription: "Adult"} TicketType {ticketTypeId: "giovani" ShortDescription: "Youth"} TicketType {ticketTypeId: "senior" ShortDescription: "Senior"}

Per indicare che tutti e tre i tipi di biglietti sono disponibili per questa fascia oraria, utilizza availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} o "disponibilità {...}" (non impostare ticketTypeId in questo spazio).

(facoltativo)

durationRequirement

enum (DurationRequirement)

Il requisito che richiede di mostrare la durata e/o l'ora di fine degli slot. Questo campo verrà ignorato se lo spazio non è disponibile. Non utilizzato nel verticale Cose da fare. (facoltativo)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Regole di pianificazione della disponibilità. Se i campi vengono compilati, sostituiranno tutte le eventuali regole di pianificazione corrispondenti nelle regole di pianificazione Scheduling a livello di servizio.

confirmationMode

enum (ConfirmationMode)

La modalità di conferma che verrà utilizzata per prenotare questa disponibilità. I tentativi di creare prenotazioni per le disponibilità con la modalità di conferma CONFIRMATION_MODE_SYNCHRONOUS devono essere confermati o rifiutati immediatamente. I tentativi di creare prenotazioni di disponibilità con la modalità di conferma CONFIRMATION_MODE_ASYNCHRONOUS devono essere rifiutati immediatamente o creati con lo stato IN ATTESA.

Risorse

Una risorsa viene utilizzata per distinguere gli slot di disponibilità l'uno dall'altro quando diversi membri del personale o sale fanno parte del servizio. Più slot per lo stesso servizio e lo stesso intervallo di tempo possono coesistere quando hanno risorse diverse.

Rappresentazione JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer
}
Campi
staffId

string

ID facoltativo per un membro del personale che fornisce il servizio. Questo campo identifica il membro del personale in tutti i record di commercianti, servizi e disponibilità. Inoltre, deve essere stabile nel tempo per consentire la correlazione con le prenotazioni passate. Questo campo deve essere presente se staffName è presente.

staffName

string

Nome facoltativo di un membro del personale che fornisce il servizio. Questo campo verrà mostrato agli utenti che effettuano una prenotazione e deve essere leggibile, invece di un identificatore opaco. Questo campo deve essere presente se staffId è presente.

roomId

string

Un ID facoltativo della camera in cui si trova il servizio. Questo campo identifica la camera in tutti i record di commercianti, servizi e disponibilità. Inoltre, deve essere stabile nel tempo per consentire la correlazione con le prenotazioni passate. Questo campo deve essere presente se roomName è presente.

roomName

string

Un nome facoltativo per la stanza in cui si trova il servizio. Questo campo verrà mostrato agli utenti che effettuano una prenotazione e deve essere leggibile, invece di un identificatore opaco. (facoltativo, ma obbligatorio se è presente roomId) Nella sala da pranzo il nome di una sala deve essere utilizzato solo per la zona salotto, come il bar o il patio, e non per menu a prezzo fisso, attività speciali o qualsiasi altro valore diverso da quello della camera (come una prenotazione o una cena). È vivamente consigliato che alla zona con posti a sedere predefinita non sia associata una stanza.

partySize

integer

Applicabile solo per i pasti: il numero di persone che possono essere ospitati in questa fascia oraria. Un ristorante può essere associato a più Slot contemporaneamente, ognuno dei quali specifica un partySize diverso, se ad esempio 2, 3 o 4 persone possono sedere al momento della prenotazione.

Ricorrenza

I messaggi di ricorrenza sono facoltativi, ma consentono una rappresentazione più compatta degli slot di disponibilità che si ripetono in modo coerente. In genere rappresentano l'orario di lavoro di una giornata. I messaggi ScheduleException vengono quindi utilizzati per rappresentare gli intervalli di tempo prenotati/non disponibili nell'ambito della giornata lavorativa.

Requisiti:

  1. L'espansione degli slot di disponibilità o delle ricorrenze NON deve creare slot identici. Se ID, ora di inizio, durata e risorse corrispondono, gli slot sono considerati identici.
  2. NON combinare il formato di disponibilità standard e la ricorrenza all'interno degli slot di un singolo servizio. La ricorrenza offre vantaggi ai commercianti/servizi che offrono appuntamenti. Il formato standard è pensato per i commercianti/servizi con corsi programmati regolarmente.
  3. Le ricorrenze non devono durare più di 24 ore.
Rappresentazione JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Campi
repeatUntil

string (Timestamp format)

Il timestamp UTC massimo incluso fino al quale la disponibilità si ripete.

Un timestamp nel formato RFC3339 UTC "Zulu" con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Definisce l'intervallo di tempo tra gli slot di disponibilità successivi.

Esempio: una disponibilità con una durata di 20 minuti, una ripetizioneOgni 30 minuti, un orario di inizio alle 9:00 e una ripetizione fino alle 11:00 produrrà slot tra le 9:00 e le 09:20, dalle 9:30 alle 09:50, dalle 10:00 alle 10:20, dalle 10:30 alle 10:50 e dalle 10:30 alle 10:50. (obbligatorio)

Durata in secondi con un massimo di nove cifre frazionarie e termina con "s". Esempio: "3.5s".

ScheduleException

I messaggi ScheduleException rappresentano gli intervalli di tempo prenotati/non disponibili all'interno della giornata lavorativa, che sono eccezioni alla ricorrenza descritta sopra. Poiché le fasce orarie sono prenotate, l'elenco delle eccezioni dovrebbe essere aggiornato in modo da riflettere i nuovi intervalli di tempo non disponibili. La ricorrenza in sé non deve essere modificata.

Rappresentazione JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Campi
timeRange

object (TimeRange)

L'intervallo di tempo dell'eccezione. Tutti gli spazi descritti dalla ricorrenza che si sovrappongono a questo intervallo di tempo chiuso verranno considerati non disponibili.

Esempio: se la ricorrenza specifica una durata di 20 minuti, una ripetizione di 30 min, un valore di startTime delle 9:00 e una ripetizione fino alle 11:00, una ScheduleException con un timeRange di 9:45-11:00 renderà non disponibili gli slot alle 9:30-9:50, 10:30-10:20 e 10:00-10:20

Tieni presente che, poiché l'intervallo di tempo è chiuso/aperto, lo slot che inizia alle 11:00 non sarà interessato.

DurationRequirement

Questo enum indica i requisiti che l'utente deve soddisfare per confermare o visualizzare la durata/l'ora di fine degli slot richiesti.

Enum
DURATION_REQUIREMENT_UNSPECIFIED La gestione dell'ora di fine non è specificata. Questa è l'impostazione predefinita.
DO_NOT_SHOW_DURATION L'ora di fine non viene mostrata all'utente.
MUST_SHOW_DURATION L'ora di fine deve essere mostrata all'utente prima di poter fissare un appuntamento.

SchedulingRuleOverrides

Regole di pianificazione a livello di disponibilità.

Rappresentazione JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Campi
lastBookableSec

string (int64 format)

L'ultima volta (in secondi) in cui questo slot può essere prenotato. Questo timestamp deve essere precedente al valore startSec dello slot da rispettare (se gli utenti devono essere in grado di prenotare dopo l'ora di inizio, utilizza il livello di servizio SchedulingRules.min_booking_before_end_time). Se presente, sostituirà qualsiasi valore specificato in min_booking_buffer delle SchedulingRules del servizio corrispondente.

firstBookableSec

string (int64 format)

La prima volta (in secondi) in cui lo slot può essere prenotato. Questo timestamp deve essere precedente al valore startSec dello slot o lastBookableSec, se specificato.

lastOnlineCancellableSec

string (int64 format)

Se impostato, indica l'ultima volta (in secondi dall'epoca di Unix) in cui questo spazio per appuntamenti specifico può essere annullato tramite Prenota con Google. Questo campo sostituirà eventuali regole di annullamento a livello di servizio. (facoltativo)

ConfirmationMode

Le modalità di conferma utilizzate per la prenotazione della disponibilità.

Enum
CONFIRMATION_MODE_UNSPECIFIED La modalità di conferma non è stata specificata. Viene considerata una conferma sincrona.
CONFIRMATION_MODE_SYNCHRONOUS Le prenotazioni per questa disponibilità verranno confermate in modo sincrono.
CONFIRMATION_MODE_ASYNCHRONOUS Le prenotazioni per questa disponibilità verranno confermate in modo asincrono.

Metodi

replace

Sostituisce il valore Availability di un Service esistente di un commerciante gestito dall'aggregatore specificato e lo restituisce.