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

Risorsa: Availability

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.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

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 posti totali e disponibili di questa disponibilità. Esempi:

  • Corso di yoga da 10 posti con 3 prenotati: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Sessione di massaggio su sedia già completamente prenotata: 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 di pianificazione implica spotsTotal=1 e spotsOpen=0.
spotsOpen

string (int64 format)

Numero di posti disponibili.

availabilityTag

string

Una stringa opaca facoltativa per identificare questo 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à dagli altri quando fanno parte del servizio diversi membri dello staff o stanze.

Ad esempio, la stessa lezione di yoga con due 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 utilizzate per pagare questo spazio. Le opzioni di pagamento effettive sono definite a livello di commerciante e possono essere condivise anche tra più commercianti.

Questo campo sostituisce tutti i payment_option_ids specificati nel messaggio di servizio. Analogamente, gli ID opzione di pagamento specificati qui NON devono essere presenti nel messaggio del servizio, anche se devono essere definiti a livello di commerciante.

recurrence

object (Recurrence)

Le informazioni sulla ricorrenza della disponibilità, che rappresentano più di un orario di inizio. Una ricorrenza deve contenere appuntamenti per un giorno lavorativo.

scheduleException[]

object (ScheduleException)

Orari in cui questo servizio non può essere programmato. Per limitare il numero di messaggi scheduleException, valuta la possibilità di unire le eccezioni adiacenti.

deposit

object (Deposit)

Deposito facoltativo per questa disponibilità. Esegue l'override del deposito del servizio, se specificato.

noShowFee

object (NoShowFee)

Tariffa facoltativa per mancata presentazione per questa disponibilità. Esegue l'override della commissione per mancata presentazione al servizio, se specificata.

prepayment

object (Prepayment)

Facoltativo. Informazioni facoltative sul pagamento anticipato per questa disponibilità.

requireCreditCard

enum (RequireCreditCard)

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

ticketTypeId[]

string

Indica un elenco dei tipi di biglietti supportati per questo slot di disponibilità. Se non è impostato, tutti i tipi di ticket nel servizio principale sono disponibili per questo slot. 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 biglietto sono disponibili per questa fascia oraria, utilizza availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} o `availability {...}' (non impostare ticketTypeId in questa fascia).

(facoltativo)

durationRequirement

enum (DurationRequirement)

L'obbligo di mostrare la durata e/o l'ora di fine degli slot. Questo campo verrà ignorato se lo spazio pubblicitario non è disponibile. Non utilizzata nella verticale Cose da fare. (facoltativo)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Regole di pianificazione della disponibilità. Se i campi sono compilati, sostituiranno le 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 disponibilità con una modalità di conferma CONFIRMATION_MODE_SYNCHRONOUS devono essere confermati o negati immediatamente. I tentativi di creare prenotazioni per disponibilità con modalità di conferma CONFIRMATION_MODE_ASYNCHRONOUS devono essere immediatamente rifiutati o creati con stato PENDING.

linkoutRequiredReason

enum (LinkoutRequiredReason)

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

Risorse

Una risorsa viene utilizzata per distinguere gli slot di disponibilità l'uno dall'altro quando diversi membri dello staff o stanze fanno parte del servizio. Più slot per lo stesso servizio e 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 dello staff che fornisce il servizio. Questo campo identifica il membro dello staff in tutti i commercianti, i servizi e i record di 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 dello staff che fornisce il servizio. Questo campo verrà visualizzato dagli utenti che effettuano una prenotazione e deve essere leggibile, anziché un identificatore opaco. Questo campo deve essere presente se è presente staffId.

roomId

string

Un ID facoltativo per la stanza in cui si trova il servizio. Questo campo identifica la camera in tutti i commercianti, i servizi e i record di 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à visualizzato dagli utenti che effettuano una prenotazione e deve essere leggibile, anziché un identificatore opaco. (facoltativo, ma obbligatorio se è presente roomId) In una sala da pranzo, il nome deve essere utilizzato solo per le aree con posti a sedere, come il bar o il patio, e non per i menu a prezzo fisso, le attività speciali o qualsiasi altro valore non relativo alla camera (come la prenotazione o la cena). Ti consigliamo vivamente di non associare una stanza all'area posti predefinita.

partySize

integer

Applicabile solo per i ristoranti: il numero di persone che possono essere ospitate durante questa fascia oraria. Un ristorante può essere associato a più slot per lo stesso orario, ognuno dei quali specifica una dimensione del gruppo diversa, ad esempio se 2, 3 o 4 persone possono sedersi con una prenotazione.

roomDescription

object (Text)

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

Ricorrenza

I messaggi di ricorrenza sono facoltativi, ma consentono una rappresentazione più compatta degli slot di disponibilità che si ripetono costantemente. 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 durante la giornata lavorativa.

Requisiti:

  1. L'espansione degli slot di disponibilità o delle ricorrenze NON deve creare slot identici. Se gli ID, startTime, duration e resources corrispondono, gli slot vengono considerati identici.
  2. NON combinare il formato di disponibilità standard e la ricorrenza all'interno degli slot di un singolo servizio. La ricorrenza avvantaggia i commercianti/servizi che offrono appuntamenti. Il formato standard è pensato per commercianti/servizi con lezioni programmate 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 inclusivo fino al quale si ripete la disponibilità.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

repeatEvery

string (Duration format)

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

Esempio: una disponibilità con una durata di 20 minuti, una ripetizione ogni 30 minuti, un'ora di inizio alle 9:00 e una ripetizione fino alle 11:00 genererà spazi 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)

Una durata in secondi con un massimo di nove cifre frazionarie, che 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 orari vengono prenotati, l'elenco delle eccezioni deve essere aggiornato per riflettere gli intervalli di tempo non disponibili. La ricorrenza stessa non deve essere modificata.

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

object (TimeRange)

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

Esempio: se la ricorrenza specifica una durata di 20 minuti, un valore repeatEvery di 30 minuti, un valore startTime di 9:00 e un valore repeatUntil di 11:00, un valore ScheduleException con un valore timeRange di 9:45-11:00 renderebbe non disponibili gli slot alle 9:30-9:50, alle 10-10:20 e alle 10:30-10:50.

Tieni presente che, poiché l'intervallo di tempo è chiuso-aperto, 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 del prezzo.

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 (per persona o fisso)

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

object (Price)

Il prezzo di un servizio o una tariffa.

priceRange

object (PriceRange)

Il limite superiore e/o inferiore di un servizio o una commissione.

PriceRange

Wrapper 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 maggiore di minPrice.

DurationRequirement

Questo enum indica i requisiti che l'utente deve soddisfare per riconoscere 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 possa essere fissato 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) che questo slot può essere prenotato. Questo timestamp deve essere precedente a startSec dello slot per essere rispettato (se gli utenti devono essere in grado di prenotare dopo l'ora di inizio, utilizza SchedulingRules.min_booking_before_end_time a livello di servizio). Se presente, esegue l'override di qualsiasi valore specificato in min_booking_buffer di SchedulingRules del servizio corrispondente.

firstBookableSec

string (int64 format)

La prima volta (in secondi) che questo slot può essere prenotato. Questo timestamp deve precedere startSec dello slot o lastBookableSec, se specificato.

lastOnlineCancellableSec

string (int64 format)

Se impostata, l'ultima volta (in secondi dall'epoca di Unix) in cui questo specifico spazio per appuntamenti può essere annullato tramite Prenota con Google. Questo campo sostituirà tutte le 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. Verrà presupposta la 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 essere prenotato.

Metodi

replace

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