Aller à l'article
Aniq-UI

HollinaDisponibilité et calendrier

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), écrit YYYY-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

RefusQuandL'API répond
pastLe jour d'arrivée est passé« Choose a check-in date that has not passed. »
min_nightsMoins de nuits que le minimum du séjour« This stay has a minimum number of nights. »
capacityPlus de voyageurs que le séjour ne peut en loger« This stay does not sleep that many guests. »
takenUne 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 :

ÉtatSignification
DisponibleLibre au choix
IndisponibleDans le passé, ou un départ qui tomberait dans le minimum du séjour
PrisRetenu par une réservation ou un blocage, barré
SélectionnéL'arrivée et le départ choisis
Dans la plageLes 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/calendar montre 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

PermissionAutorise
calendar.viewVoir le mois et les blocages
calendar.blockAjouter, 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, et GET /api/stays/:slug/quote?checkIn=&checkOut=&guests= avec ses nuits, son sous-total, ses frais de ménage et son total, avec available et le motif du refus.
  • GET /api/calendar?month=YYYY-MM&stay= est la vue mensuelle du tableau de bord.
  • /api/availability/blocks liste, ajoute (stay_id, from, to, reason et note facultatifs), modifie et retire des blocages. Un conflit répond 409 avec code: "dates_taken", details: { "held_by": "booking", "reference": "B0021" } (ou "block" et une référence K) et le message traduit « Booking B0021 already holds some of these nights. »

Bloqué sur une étape ?

Trouvez une solution avant de tout recommencer.

Dépannage

Préférences des Cookies

Nous utilisons des cookies pour améliorer votre expérience de navigation, analyser le trafic du site et personnaliser le contenu. En cliquant sur "Accepter Tout", vous consentez à notre utilisation des cookies pour l'analyse et la publicité personnalisée.