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 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 ScheduleException implica spotsTotal=1 e spotsOpen=0.
spotsOpen

string (int64 format)

Numero di posti disponibili.

availabilityTag

string

Una stringa opaca facoltativa per identificare questo intervallo di disponibilità. Se impostato, verrà incluso nelle richieste che prenotano/aggiornano/annullano gli 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 esempio, lo stesso corso di yoga con due insegnanti:

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 slot. Le opzioni di pagamento effettive sono definite a livello di commerciante e possono essere condivise anche tra più commercianti.

Questo campo sostituisce tutti gli ID payment_option specificati 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)

Le informazioni sulla ricorrenza della disponibilità, che rappresentano più di un'ora di inizio. Una ripetizione 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 scheduleException, 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)

È facoltativo pagare una penale per mancata presentazione per questa disponibilità. Sostituisce la tariffa 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 intervallo 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 intervallo di disponibilità. Se non è 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 principale. 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 spazio 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 una 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 linkout per questo slot. 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 intervallo di tempo possono coesistere se hanno risorse diverse.

Rappresentazione JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer,
  "roomDescription": {
    object (Text)
  }
}
Campi
staffId

string

ID facoltativo di 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 è presente staffId.

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) In sala da pranzo, il nome della sala deve essere utilizzato solo per le aree con posti a sedere, come il bar o il patio, e non per menu a prezzo fisso, attività speciali o qualsiasi altro valore non relativo alla camera (ad esempio prenotazione o cena). Ti consigliamo vivamente di non associare una sala all'area salotto 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ù fasce orarie per la stessa ora, ognuna delle quali specifica un numero di persone diverso, ad esempio se con una prenotazione possono essere servite 2, 3 o 4 persone.

roomDescription

object (Text)

Facoltativo. Descrizione della camera localizzata. 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 all'interno della giornata lavorativa.

Requisiti:

  1. L'espansione degli intervalli di disponibilità o delle ricorrenze NON deve creare intervalli identici. Se gli ID, startTime, duration e le risorse corrispondono, gli slot sono considerati identici.
  2. NON combinare il formato della 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 è rivolto a 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 le fasce orarie di disponibilità successive.

Esempio: una disponibilità con una durata di 20 minuti, un valore repeatEvery di 30 minuti, un valore startTime di 9:00 e un valore repeatUntil di 11:00 genererà slot alle ore 9:00-9:20, 9:30-9:50, 10:00-10:20, 10:30-10:50, 11:00-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 intervalli di tempo vengono prenotati, l'elenco delle eccezioni deve essere aggiornato in base agli intervalli di tempo di nuova disponibilità. La ripetizione stessa non deve essere modificata.

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

object (TimeRange)

L'intervallo di tempo dell'eccezione. Gli spazi descritti dalla ricorrenza che si sovrappongono a questo intervallo di tempo tra chiuso e aperto saranno considerati non disponibili.

Esempio: se la ricorrenza specifica una durata di 20 minuti, un intervallo di ripetizione di 30 minuti, un'ora di inizio di 9:00 e un'ora di ripetizione fino alle 11:00, un'eccezione di pianificazione con un intervallo di tempo compreso tra le 9:45 e le 11:00 renderebbe non disponibili gli slot dalle 9:30 alle 9:50, dalle 10:00 alle 10:20 e dalle 10:30 alle 10:50.

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 sui prezzi.

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 la modalità di applicazione del prezzo o della fascia di prezzo (per persona o fisso)

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

object (Price)

Il prezzo di un servizio o di una commissione.

priceRange

object (PriceRange)

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

PriceRange

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 ora (in secondi) in cui è possibile prenotare questo spazio. Questo timestamp deve precedere il valore startSec dello slot da rispettare (se gli utenti devono poter effettuare prenotazioni dopo l'ora di inizio, utilizza SchedulingRules.min_booking_before_end_time a livello di servizio). Se presente, sostituirà qualsiasi impostazione specificata in min_booking_buffer di SchedulingRules del servizio corrispondente.

firstBookableSec

string (int64 format)

La prima volta (in secondi) in cui è possibile prenotare questo intervallo. Questo timestamp deve precedere startSec della fascia oraria o lastBookableSec, se specificato.

lastOnlineCancellableSec

string (int64 format)

Se impostato, l'ultima ora (in secondi dall'epoca Unix) in cui è possibile annullare questo appuntamento specifico 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. Verrà applicata 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 Per prenotare uno slot è necessario effettuare un pagamento nella piattaforma del partner.

Metodi

replace

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