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

Risorsa: disponibilità

Uno spazio 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)
  },
  "prepayment": {
    object (Prepayment)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode),
  "linkoutRequiredReason": enum (LinkoutRequiredReason)
}
Campi
startTime

string (Timestamp format)

Ora di inizio dello spazio per appuntamenti.

Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione a livello di nanosecondo 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

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

spotsTotal

string (int64 format)

Numero di spot totali e di spot disponibili di questa disponibilità. Esempi:

  • Corso di yoga di 10 posti con 3 prenotazioni: 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, questi due campi verranno dedotti.

  • 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 intervallo di disponibilità da altri quando il servizio include diversi membri del personale o stanze.

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 essere condivise anche tra più commercianti.

Questo campo sostituisce qualsiasi payment_option_id specificato nel messaggio di servizio. Analogamente, gli ID opzione di pagamento specificati qui NON devono essere presenti nel messaggio di servizio, ma devono essere definiti 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)

Periodi in cui questo servizio non può essere pianificato. 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.

prepayment

object (Prepayment)

(Facoltativo) Dati facoltativi sul pagamento anticipato per questa disponibilità.

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 non viene impostato, per questo slot 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: "Adult weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "Adult weekends"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "Youth weekends"}

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: "youth" 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 "availability {...}" (non impostare ticketTypeId in questa fascia oraria).

(facoltativo)

durationRequirement

enum (DurationRequirement)

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

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Regole di pianificazione della disponibilità. Se i campi sono compilati, sostituiranno eventuali regole di pianificazione corrispondenti in SchedulingRules 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 per le disponibilità con la modalità di conferma CONFIRMATION_MODE_ASYNCHRONOUS devono essere rifiutati immediatamente o creati con lo stato PENDING.

linkoutRequiredReason

enum (LinkoutRequiredReason)

(Facoltativo) Il motivo per cui è necessario un collegamento per questo spazio. Se impostato, la risorsa commerciante per questo slot deve avere un LinkoutTemplate valido. (facoltativo)

Risorse

Una risorsa viene utilizzata per distinguere gli slot di disponibilità tra loro quando il servizio è composto da diversi membri del personale o stanze. 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,
  "roomDescription": {
    object (Text)
  }
}
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 è presente staffName.

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 da una persona, a differenza di un identificatore opaco. Questo campo deve essere presente se staffId è presente.

roomId

string

Un ID facoltativo per la stanza 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 è presente roomName.

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 da una persona, a differenza 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 che non sia il valore della stanza (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.

roomDescription

object (Text)

(Facoltativo) Descrizione localizzata della stanza. Se impostato, è necessario fornire un valore predefinito. È preferibile fornire anche le lingue comuni per le impostazioni internazionali del commerciante. (facoltativo)

Ricorrenza

I messaggi di ripetizione sono facoltativi, ma consentono una rappresentazione più compatta degli slot di disponibilità che si ripetono in modo coerente. In genere rappresentano la programmazione 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 gli ID, startTime, duration e le 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 periodicità è vantaggiosa per i 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 si ripete la disponibilità.

Un timestamp in formato "Zulu" UTC RFC3339, con risoluzione a livello di nanosecondo 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, un intervallo di ripetizione di 30 minuti, un orario di inizio di 9:00 e un orario di ripetizione fino alle 11:00 genererà slot dalle 9:00 alle 9:20, dalle 9:30 alle 9:50, dalle 10:00 alle 10:20, dalle 10:30 alle 10:50 e dalle 11:00 alle 11:20. (obbligatorio)

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

ScheduleException

I messaggi ScheduleException rappresentano intervalli di tempo prenotati/non disponibili all'interno della giornata lavorativa, che sono eccezioni alla ricorrenza descritta sopra. Man mano che gli intervalli di tempo vengono prenotati, l'elenco delle eccezioni deve essere aggiornato in base agli intervalli di tempo di nuova disponibilità. 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 ogni 30 min, un valore di inizio dalle 9:00 alle 11: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:00-10:20 e 10:00-10:20

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

Pagamento anticipato

Un pagamento che potrebbe essere addebitato all'utente nell'ambito della prenotazione.

Rappresentazione JSON
{
  "priceInfo": {
    object (PriceInfo)
  }
}
Campi
priceInfo

object (PriceInfo)

Contenitore per i dettagli del prezzo.

PriceInfo

Contenitore per i dettagli sui prezzi.

Rappresentazione JSON
{
  "priceType": enum (PriceType),

  // Union field price_options can be only one of the following:
  "price": {
    object (Price)
  },
  "priceRange": {
    object (PriceRange)
  }
  // End of list of possible types for union field price_options.
}
Campi
priceType

enum (PriceType)

Definisce come viene applicato il prezzo o la fascia di prezzo (a persona o fisso)

Campo unione price_options. Le opzioni di prezzo consentono di specificare un prezzo esatto o un intervallo di valori. price_options può essere solo uno dei seguenti:
price

object (Price)

Il prezzo di un servizio o una commissione.

priceRange

object (PriceRange)

Limite superiore e/o inferiore di un servizio o di una commissione.

IntervalloPrezzi

Elemento contenitore per un intervallo di importi monetari trattati come illimitati, a meno che non siano impostati entrambi i valori. È obbligatorio specificare almeno uno dei valori minAmount e maxAmount.

Rappresentazione JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
Campi
minPrice

object (Price)

Importo minimo.

maxPrice

object (Price)

Importo massimo. Deve sempre essere > minPrice.

DurationRequirement

Questo enum indica quali requisiti esistono per consentire all'utente di 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 che sia possibile fissare un appuntamento.

SchedulingRuleOverrides

Regole di pianificazione del 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 precedere startSec della durata 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 prenotare le 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.

LinkoutRequiredReason

Il motivo per cui uno slot ha un'esperienza di linkout.

Enum
LINKOUT_REQUIRED_REASON_UNSPECIFIED Valore predefinito: non utilizzare, equivale a sconosciuto.
PAYMENT_REQUIRED Lo slot richiede il pagamento nella piattaforma partner per la prenotazione.

Metodi

replace

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