Disponibilité et calendrier
Comment le produit décide quelles nuits sont libres, comment le calendrier du site et celui du tableau de bord les montrent, les dates bloquées, les retenues et le fuseau horaire de la société.
Pour le pack Full Stack
Des nuits, pas des jours
Chaque réservation et chaque plage bloquée occupe l'intervalle semi-ouvert [check-in, check-out) : le jour d'arrivée est pris, le jour de départ est libre. Un voyageur qui part le 10 libère le 10 pour l'arrivée suivante, et une réservation de trois nuits couvre trois nuits.
- Un seul service de l'API répond à la question des nuits libres, à partir des réservations qui retiennent des nuits plus les plages bloquées. Le calendrier du site, la carte de réservation, le paiement, le calendrier du tableau de bord et l'assistant IA le consultent tous, donc ils ne peuvent pas se contredire.
- Les réservations en attente, confirmées, en cours de séjour et terminées retiennent leurs nuits. Une réservation annulée ne retient rien, elle ne gêne donc jamais une nouvelle.
- Chaque date est un jour calendaire dans le fuseau horaire de la société, le paramètre
timezone(America/New_York), écritYYYY-MM-DD, jamais un instant. C'est ce que signifie « aujourd'hui » pour les arrivées, le calendrier, la fenêtre d'annulation et les retenues, de part et d'autre d'un changement d'heure.
Ce qu'accepte un séjour
| Refus | Quand | L'API répond |
|---|---|---|
past | Le jour d'arrivée est passé | « Choose a check-in date that has not passed. » |
min_nights | Moins de nuits que le minimum du séjour | « This stay has a minimum number of nights. » |
capacity | Plus de voyageurs que le séjour ne peut en loger | « This stay does not sleep that many guests. » |
taken | Une réservation ou un blocage retient déjà l'une des nuits | « Those nights are already taken. » |
Le devis et le paiement vérifient les mêmes quatre points, et le paiement les vérifie une nouvelle fois quand la réservation est écrite, si bien que deux voyageurs ne peuvent jamais payer la même nuit.
Retenues
- Une réservation par carte ou PayPal retient ses nuits dès qu'elle est faite, avant que le voyageur soit envoyé au processeur, pendant 30 minutes. Si le paiement n'est pas réglé d'ici là, un nettoyage qui tourne chaque minute annule la réservation et libère les nuits.
- Une réservation à payer à l'arrivée qui attend l'hôte n'a pas de retenue : elle garde ses nuits jusqu'à ce que l'hôte la confirme ou l'annule.
- Une réservation payée retient ses nuits jusqu'à son annulation.
Le calendrier du site
La page d'un séjour montre deux mois et marque cinq états, chacun avec sa propre pastille de légende :
| État | Signification |
|---|---|
| Disponible | Libre au choix |
| Indisponible | Dans le passé, ou un départ qui tomberait dans le minimum du séjour |
| Pris | Retenu par une réservation ou un blocage, barré |
| Sélectionné | L'arrivée et le départ choisis |
| Dans la plage | Les nuits entre les deux, sur un fond plus clair qu'une nuit prise |
La carte de réservation à côté calcule le prix des nuits choisies dès que les deux jours sont sélectionnés.
Le calendrier du tableau de bord
/en/dashboard/calendarmontre un mois de nuits, une ligne par séjour. La barre d'une réservation couvre ses nuits, s'arrête avant le jour de départ et ouvre le détail de la réservation.- La boîte de dialogue des dates bloquées retire des nuits d'un séjour du calendrier, d'une première nuit à un jour de départ, avec un motif (Maintenance, Company use ou Other) et une note facultative. Elle est refusée quand une réservation ou un autre blocage retient déjà l'une de ces nuits, et la boîte de dialogue le nomme : « Booking B0021 already holds some of these nights. Choose other dates. », ou la même chose pour un blocage comme
K003. - Les champs de date gardent le jour que vous choisissez quel que soit le fuseau horaire de l'ordinateur, si bien qu'un blocage ou un filtre ne tombe jamais la veille.
- Chaque blocage est listé sous le calendrier, le plus proche d'abord, à modifier ou à retirer.
- Si un séjour est aussi listé sur un autre site, bloquez à la main les nuits réservées là-bas : le produit n'a ni gestionnaire de canaux, ni import ni export iCal.
Qui peut faire quoi
| Permission | Autorise |
|---|---|
calendar.view | Voir le mois et les blocages |
calendar.block | Ajouter, modifier et retirer des blocages |
Les deux rôles du seed, Super Admin et Manager, détiennent les deux.
Les routes derrière
GET /api/stays/:slug/availability?from=&to=répond avec les nuits prises d'un séjour publié sur 92 jours au plus à la fois, etGET /api/stays/:slug/quote?checkIn=&checkOut=&guests=avec ses nuits, son sous-total, ses frais de ménage et son total, avecavailableet le motif du refus.GET /api/calendar?month=YYYY-MM&stay=est la vue mensuelle du tableau de bord./api/availability/blocksliste, ajoute (stay_id,from,to,reasonetnotefacultatifs), modifie et retire des blocages. Un conflit répond409aveccode: "dates_taken",details: { "held_by": "booking", "reference": "B0021" }(ou"block"et une référenceK) et lemessagetraduit « Booking B0021 already holds some of these nights. »