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)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
Champs
startTime

string (Timestamp format)

Heure de début du créneau horaire.

Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres fractionnaires. 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 places libres.

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.

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)

L'obligation d'afficher la durée des créneaux et/ou l'heure de fin Ce champ sera ignoré si l'emplacement n'est pas disponible. Non utilisé pour 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 créneaux de disponibilité dont le mode de confirmation est CONFIRMATION_MODE_ASYNCHRONOUS doivent être immédiatement refusées ou créées avec l'état PENDING.

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
}
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 défini) Pour la salle à manger, un nom de salle ne doit être utilisé que pour les coins salon, tels que le bar ou le patio, et non pour des menus à prix fixe, des activités spéciales ou toute autre valeur qui ne concerne pas la chambre (réservation ou dîner, par exemple). Il est vivement recommandé de ne pas associer de salle au coin salon 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.

Recurrence

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.

Code temporel au format RFC3339 UTC "Zulu", avec une résolution à la nanoseconde et jusqu'à neuf chiffres fractionnaires. 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é.

DurationRequirement

Cette énumération indique les exigences pour que l'utilisateur accuse réception ou affiche la durée et l'heure de fin des emplacements.

Enums
DURATION_REQUIREMENT_UNSPECIFIED Le traitement de l'heure de fin n'est pas spécifié. Il s'agit de la valeur par défaut.
DO_NOT_SHOW_DURATION L'utilisateur ne peut pas voir l'heure de fin.
MUST_SHOW_DURATION L'utilisateur doit voir l'heure de fin avant de pouvoir prendre un rendez-vous.

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)

Cette valeur indique la 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 les règles d'annulation définies au niveau du service. (facultatif)

ConfirmationMode

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

Enums
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.

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.