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

Ressource : Availability

Un créneau de disponibilité du service du marchand, indiquant l'heure et le nombre de créneaux.

Représentation 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)
}
Champs
startTime

string (Timestamp format)

Heure de début du créneau horaire.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Durée du créneau horaire

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

spotsTotal

string (int64 format)

Nombre total de créneaux et de créneaux disponibles pour cette disponibilité. Exemples :

  • Un cours de yoga comprenant 10 créneaux dont 3 réservés : availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Une séance de massage sur chaise qui est déjà complètement réservée : availability {spotsTotal: 1, spotsOpen: 0 ...}

Remarque : Si vous envoyez des requêtes à l'aide du format de compression applicable au flux de disponibilité défini ci-dessous, le système infère la valeur de ces deux champs.

  • Définissez spotsTotal=1 et spotsOpen=1 en cas de "Recurrence".
  • Définissez spotsTotal=1 et spotsOpen=0 en cas de "ScheduleException".
spotsOpen

string (int64 format)

Nombre de créneaux disponibles.

availabilityTag

string

Chaîne opaque facultative permettant d'identifier ce créneau de disponibilité. Si la valeur est définie, elle est incluse dans les demandes de réservation/de mise à jour/d'annulation de rendez-vous.

resources

object (Resources)

Ressources facultatives permettant de faire la distinction entre ce créneau de disponibilité et d'autres créneaux, lorsque plusieurs membres du personnel ou salles ont été définis pour le service.

Par exemple, le même cours de yoga avec deux enseignants :

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

string

Liste d'ID faisant référence aux options de paiement pouvant être utilisées pour le paiement de ce créneau. Les options de paiement réelles sont définies au niveau du marchand et peuvent également s'appliquer à plusieurs marchands.

Ce champ remplace tout ID payment_option_ids éventuellement spécifié dans le message du service. De même, les identifiants payment_option_ids spécifiés ici ne doivent PAS OBLIGATOIREMENT être inclus dans le message du service, mais doivent l'être au niveau du marchand.

recurrence

object (Recurrence)

Informations de récurrence sur la disponibilité, représentant plusieurs heures de début. Une récurrence doit contenir des rendez-vous sur un jour ouvré.

scheduleException[]

object (ScheduleException)

Nombre de fois où ce service ne peut pas être planifié. Pour limiter le nombre de messages scheduleException, envisagez d'agréger les exceptions adjacentes.

deposit

object (Deposit)

Acompte facultatif à verser pour ce créneau de disponibilité. Remplace l'acompte éventuellement défini au niveau du service.

noShowFee

object (NoShowFee)

Frais de non-présentation facultatifs pour cette disponibilité. Remplace les frais de non-présentation éventuellement définis au niveau du service.

prepayment

object (Prepayment)

Facultatif. Informations facultatives sur le prépaiement pour cette disponibilité.

requireCreditCard

enum (RequireCreditCard)

Indique si une carte de crédit est requise pour réserver ce créneau de disponibilité. Si la valeur n'est pas définie, elle est héritée le cas échéant du niveau service. (facultatif)

ticketTypeId[]

string

Indique la liste des types de billets acceptés pour ce créneau de disponibilité. Si ce paramètre n'est pas défini, tous les types de demandes du service parent sont disponibles pour ce créneau. Notez que les valeurs de ce champ doivent être définies dans le service parent. Exemples :

  • Service avec quatre types de billets : TicketType {ticketTypeId: "adulte_1" shortDescription: "Adulte en semaine"} TicketType {ticketTypeId: "adulte_2" shortDescription: "Adulte le week-end"} TicketType {ticketTypeId: "jeune_1" shortDescription: "Jeune en semaine"} TicketType {ticketTypeId: "jeune_2" shortDescription: "Jeune le week-end"}

Pour représenter l'inventaire en semaine : availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Pour représenter l'inventaire les jours non ouvrés : availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Service avec trois types de billets : TicketType {ticketTypeId: "adulte" shortDescription: "Adulte"} TicketType {ticketTypeId: "jeune" shortDescription: "Jeune"} TicketType {ticketTypeId: "retraité" shortDescription: "Retraité"}

Pour indiquer que les trois types de billets sont disponibles pour ce créneau horaire, utilisez soit availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...}, soit "availability {...}" (ne définissez pas la valeur ticketTypeId pour ce créneau).

(facultatif)

durationRequirement

enum (DurationRequirement)

Obligation d'afficher la durée et/ou l'heure de fin des créneaux. Ce champ sera ignoré si l'emplacement n'est pas disponible. Non utilisé dans le secteur des activités à découvrir. (facultatif)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Règles de planification des créneaux de disponibilité. Si des champs sont renseignés, ils remplacent toutes les règles de planification correspondantes dans SchedulingRules au niveau du service.

confirmationMode

enum (ConfirmationMode)

Mode de confirmation utilisé lors de la réservation de cette disponibilité. Les tentatives de création de réservations pour des disponibilités avec un mode de confirmation CONFIRMATION_MODE_SYNCHRONOUS doivent être immédiatement confirmées ou refusées. Les tentatives de création de réservations pour des disponibilités dont le mode de confirmation est CONFIRMATION_MODE_ASYNCHRONOUS doivent être refusées immédiatement ou créées avec l'état PENDING.

linkoutRequiredReason

enum (LinkoutRequiredReason)

Facultatif. Motif pour lequel un lien externe est requis pour cet emplacement. Si cet attribut est défini, la ressource "Merchant" de cet emplacement doit comporter un attribut LinkoutTemplate valide. (facultatif)

Ressources

Une ressource permet de faire la distinction entre différents créneaux de disponibilité lorsque plusieurs membres du personnel ou salles ont été définis pour le service. Plusieurs créneaux pour le même service et le même intervalle de temps peuvent coexister, si leurs ressources sont différentes.

Représentation JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer,
  "roomDescription": {
    object (Text)
  }
}
Champs
staffId

string

ID facultatif d'un membre du personnel fournissant le service. Ce champ identifie le membre du personnel pour tous les marchands, services et enregistrements de disponibilité. La valeur doit rester la même au fil du temps afin de pouvoir établir des corrélations avec les réservations passées. Si le champ staffName est défini, celui-ci doit l'être aussi.

staffName

string

Nom facultatif d'un membre du personnel fournissant le service. La valeur de ce champ est présentée aux utilisateurs qui effectuent une réservation. Elle doit être lisible (et ne doit donc pas être un identifiant opaque). Si le champ staffId est défini, celui-ci doit l'être aussi.

roomId

string

ID facultatif de la salle dans laquelle le service est fourni. Ce champ identifie la salle pour tous les marchands, services et enregistrements de disponibilité. La valeur doit rester la même au fil du temps afin de pouvoir établir des corrélations avec les réservations passées. Si le champ roomName est défini, celui-ci doit l'être aussi.

roomName

string

Nom facultatif de la salle dans laquelle est fourni le service. Ce champ sera présenté aux utilisateurs effectuant une réservation. Il doit être lisible et ne pas être un identifiant opaque. (facultatif, mais obligatoire si roomId est présent) Dans la section "Dining" (Repas), le nom de la salle ne doit être utilisé que pour les espaces de réception tels que le bar ou la terrasse. Il ne doit pas être utilisé pour les menus à prix fixe, les activités spéciales ni toute autre valeur qui ne correspond pas à une salle (réservation ou dîner, par exemple). Nous vous recommandons vivement de ne pas associer de salle à l'espace de réception par défaut.

partySize

integer

Applicable uniquement au secteur de la restauration : nombre de personnes pouvant être incluses dans la réservation de ce créneau. Un restaurant peut être associé à plusieurs Slots pour le même créneau horaire, chacun spécifiant un nombre de personnes (partySize) différent, si par exemple 2, 3 ou 4 personnes peuvent réserver une table.

roomDescription

object (Text)

Facultatif. Description localisée de la chambre. Si ce paramètre est défini, une valeur par défaut doit être fournie. Il est préférable de fournir également les langues courantes pour la langue locale du marchand. (facultatif)

Récurrence

Les messages de récurrence sont facultatifs, mais ils permettent de représenter de façon plus compacte les créneaux de disponibilité qui se réitèrent. Ces messages correspondent généralement au planning d'une journée ouvrée. Les messages ScheduleException sont ensuite utilisés pour représenter des périodes réservées/non disponibles pendant la journée ouvrée.

Conditions requises :

  1. Veillez à ce qu'une fois développés, les créneaux de disponibilité ou les récurrences ne génèrent pas des créneaux identiques. Si l'ID, la valeur startTime, la durée et les ressources sont les mêmes, les créneaux sont considérés comme identiques.
  2. N'utilisez pas en même temps le format de disponibilité standard et la récurrence pour les créneaux du même service. La fonctionnalité de récurrence est particulièrement adaptée aux marchands/services qui proposent des rendez-vous. Le format standard est conçu pour les marchands/services dont les séances suivent un planning régulier.
  3. Les récurrences ne doivent pas durer plus de 24 heures.
Représentation JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Champs
repeatUntil

string (Timestamp format)

Horodatage au format UTC maximal et inclusif jusqu'auquel ce créneau de disponibilité se répète.

Horodatage au format RFC3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux. Exemples : "2014-10-02T15:01:23Z" et "2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Définit l'intervalle entre des créneaux de disponibilité successifs.

Exemple : Un créneau de disponibilité d'une durée de 20 min, une valeur repeatEvery de 30 min, une valeur startTime de 9h00 et une valeur repeatUntil de 11h00 généreront des créneaux à 9h-9h20, 9h30-9h50, 10h-10h20, 10h30-10h50 et à 11h-11h20. (obligatoire)

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

ScheduleException

Les messages ScheduleException représentent des périodes réservées/indisponibles au cours de la journée ouvrée, qui constituent des exceptions à la récurrence décrite ci-dessus. À mesure que les créneaux horaires sont réservés, la liste des exceptions doit être mise à jour afin de prendre en compte les créneaux qui ne sont désormais plus disponibles. La récurrence elle-même ne doit pas être modifiée.

Représentation JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Champs
timeRange

object (TimeRange)

Période à laquelle l'exception s'applique. Tous les créneaux décrits par la récurrence qui chevauchent cette période ouvert-fermé seront considérés comme non disponibles.

Exemple : Une récurrence spécifiant une durée de 20 min, une valeur repeatEvery de 30 min, une valeur startTime de 9h00 et une valeur repeatUntil de 11h00, puis une exception ScheduleException dont la valeur timeRange est de 9h45-11h00 rendraient les créneaux 9h30-9h50, 10h-10h20 et 10h30-10h50 non disponibles.

Notez que, comme la période est de type ouvert-fermé, le créneau commençant à 11h n'est pas affecté.

Paiement d'avance

Paiement susceptible d'être facturé à l'utilisateur dans le cadre de sa réservation.

Représentation JSON
{
  "priceInfo": {
    object (PriceInfo)
  }
}
Champs
priceInfo

object (PriceInfo)

Conteneur pour les détails des tarifs.

PriceInfo

Conteneur pour les informations sur les tarifs.

Représentation 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.
}
Champs
priceType

enum (PriceType)

Définit la manière dont le prix ou la gamme de prix est appliqué (par personne ou fixe)

Champ d'union price_options. Les options de prix permettent de spécifier un prix exact ou une gamme. price_options ne peut être qu'un des éléments suivants :
price

object (Price)

Prix d'un service ou un montant de frais.

priceRange

object (PriceRange)

Limite supérieure et/ou inférieure d'un service ou de frais.

PriceRange

Encapsule une plage de montants monétaires traités comme illimités, sauf si les deux valeurs sont définies. Vous devez indiquer au moins l'une des valeurs minAmount et maxAmount.

Représentation JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
Champs
minPrice

object (Price)

Montant minimal.

maxPrice

object (Price)

Montant maximal. Doit toujours être supérieur à "minPrice".

DurationRequirement

Cette énumération indique les exigences à respecter pour que l'utilisateur confirme ou affiche la durée/l'heure de fin des créneaux horaires demandés.

Enums
DURATION_REQUIREMENT_UNSPECIFIED La gestion de l'heure de fin n'est pas spécifiée. Il s'agit de la valeur par défaut.
DO_NOT_SHOW_DURATION L'heure de fin n'est pas visible par l'utilisateur.
MUST_SHOW_DURATION L'heure de fin doit être affichée à l'utilisateur avant qu'un rendez-vous puisse être pris.

SchedulingRuleOverrides

Règles de planification au niveau du créneau de disponibilité.

Représentation JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Champs
lastBookableSec

string (int64 format)

Dernière heure (en secondes) à laquelle ce créneau peut être réservé. Cet horodatage doit être situé avant la valeur startSec du créneau (si les utilisateurs ont la possibilité de réserver après l'heure de début, utilisez le niveau de service SchedulingRules.min_booking_before_end_time). Lorsque cette valeur est définie, elle remplace toute valeur spécifiée dans le champ min_booking_buffer des règles SchedulingRules correspondantes définies au niveau du service.

firstBookableSec

string (int64 format)

Première heure (en secondes) à laquelle ce créneau peut être réservé. Cet horodatage doit être situé avant la valeur startSec du créneau (ou avant la valeur lastBookableSec si elle est spécifiée).

lastOnlineCancellableSec

string (int64 format)

Si défini, dernière heure (en secondes depuis l'epoch Unix) à laquelle ce créneau horaire spécifique peut être annulé via Réserver avec Google. Ce champ remplace toutes les règles d'annulation au niveau du service. (facultatif)

ConfirmationMode

Modes de confirmation utilisés lors de la réservation de créneaux de disponibilité.

Énumérations
CONFIRMATION_MODE_UNSPECIFIED Le mode de confirmation n'a pas été spécifié. La confirmation synchrone sera utilisée.
CONFIRMATION_MODE_SYNCHRONOUS Les réservations pour ce créneau de disponibilité seront confirmées de manière synchrone.
CONFIRMATION_MODE_ASYNCHRONOUS Les réservations pour ce créneau de disponibilité seront confirmées de manière asynchrone.

LinkoutRequiredReason

Raison pour laquelle un emplacement comporte une expérience de lien externe.

Enums
LINKOUT_REQUIRED_REASON_UNSPECIFIED Valeur par défaut: ne pas utiliser, équivaut à "inconnu".
PAYMENT_REQUIRED Pour réserver un créneau, vous devez payer sur la plate-forme du partenaire.

Méthodes

replace

Remplace la valeur Availability d'un Service existant associé à un marchand géré par l'agrégateur spécifié, puis renvoie cette valeur.