Aller à l'article
Aniq-UI

HollinaLe site des séjours

Le site des séjours

Ce que fait le site de réservation : la page d'accueil, les séjours et leurs filtres, la page d'un séjour avec son calendrier et sa carte de réservation, le paiement, la page de réservation du voyageur, les séjours enregistrés, les questions, les moteurs de recherche et les balises marketing.

Pour le pack Full Stack

Pages

Chaque page existe en anglais sous /en et en arabe sous /ar. Le site n'a ni comptes ni connexion. L'en-tête reste en haut de la fenêtre quand la page défile, chaque champ de formulaire montre un exemple de ce qu'il attend, et le texte arabe sur une page anglaise, comme l'entrée arabe du menu des langues, est dessiné avec la police arabe.

PageCheminCe qu'elle affiche
Accueil/enUne recherche attachée au hero (destination, arrivée, départ, voyageurs), les photographies du séjour du hero à côté des premières destinations, chaque destination, les séjours en vedette que l'hôte choisit dans le tableau de bord, les six types de lieux, le fonctionnement d'une réservation, un long week-end et un mois comme deux recherches prêtes à l'emploi, pourquoi réserver en direct, les questions que posent les voyageurs, et un moyen de nous contacter.
Séjours/en/stays, par exemple /en/stays?destination=marisol-coast&guests=2Les séjours publiés, avec filtres, tri et pages.
Un séjour/en/stays/cedar-houseLes photographies, les informations, la carte de réservation, la description, les équipements, les horaires et le règlement intérieur, le calendrier de disponibilité, les avis, la zone sur une carte, des séjours similaires et une boîte de dialogue de question.
Paiement/en/book/cedar-house?checkIn=…&checkOut=…&guests=2Ouverte depuis le bouton Reserve d'un séjour : les coordonnées du voyageur, le moyen de paiement, la politique d'annulation et le récapitulatif.
Une réservation/en/bookings/<reference>La réservation du voyageur, ouverte depuis le lien après le paiement ou retrouvée avec la référence et l'e-mail.
Find my booking/en/bookings/findUne référence de réservation et l'e-mail utilisé pour la faire.
Destinations/en/destinations, /en/destinations/marisol-coastChaque destination, et une destination avec ses séjours.
Séjours enregistrés/en/savedLes séjours que le visiteur a enregistrés, gardés dans son navigateur.
À propos, contact, confidentialité/en/about, /en/contact, /en/privacyL'histoire de la société, ses coordonnées et le formulaire de contact, et un texte de confidentialité de template à réécrire avant la mise en ligne.

Trouver un séjour

  • Des filtres de destination, de dates, de voyageurs et de type de séjour (villa, apartment, cabin, chalet, loft, cottage), gardés dans l'adresse, si bien qu'une recherche peut être partagée, rechargée et parcourue avec précédent et suivant. Les filtres appliqués s'affichent en pastilles, et sur téléphone les mêmes filtres s'ouvrent dans une feuille, fermée avec son bouton Close.
  • Avec des dates, seuls les séjours libres chaque nuit de [check-in, check-out) sont listés ; avec des voyageurs, seuls ceux qui peuvent en loger autant.
  • Tri selon l'ordre propre à la société, prix croissant ou décroissant, ou note, six séjours par page.
  • Seuls les séjours publiés apparaissent. Chaque prix est le code de la devise suivi du montant, par exemple USD 240 / night.

La page d'un séjour

  • Une galerie d'une grande photographie et de ses miniatures, une bande à faire glisser sur téléphone, et les informations : voyageurs, chambres, lits, salles de bain et surface.
  • La carte de réservation calcule le prix des nuits au fur et à mesure du choix : le tarif par nuit fois le nombre de nuits, les frais de ménage une fois, et le total, d'après le devis de l'API. Sur téléphone, le total et le bouton Reserve restent fixés en bas de l'écran.
  • Le calendrier de disponibilité montre deux mois avec cinq états : disponible, indisponible (passé, ou en deçà du minimum du séjour), pris, l'arrivée et le départ choisis, et les nuits entre les deux.
  • La description, les équipements, les horaires d'arrivée et de départ et le règlement intérieur, les avis publiés avec la moyenne du séjour, la zone approximative sur une carte (jamais l'adresse exacte), jusqu'à trois séjours similaires, et une boîte de dialogue de question.

Le paiement

  • Le prénom et le nom du voyageur, l'e-mail, le téléphone et des demandes spéciales facultatives, un seul nombre de voyageurs (adultes et enfants ne sont pas séparés), et le moyen de paiement parmi ceux que propose l'API : carte, PayPal ou paiement à l'arrivée.
  • Le voyageur confirme la politique d'annulation, que la société modifie dans ses paramètres. Un voyageur annule gratuitement en ligne jusqu'à sept jours avant l'heure locale d'arrivée.
  • Une réservation par carte ou PayPal se termine sur la page de Stripe ou de PayPal, donc aucun numéro de carte n'atteint le site ni l'API. Le webhook est ce qui la confirme, jamais le retour du voyageur ; tant qu'il n'est pas arrivé, la page de réservation indique que le paiement est en cours de confirmation.
  • Tant qu'aucun processeur n'est configuré, le simulateur fourni recueille une carte sur la page elle-même, sous la note « Test mode: no card is charged. », et la règle aussitôt ; un numéro se terminant par 0 est refusé. Une fois Stripe ou PayPal configuré, le paiement ne propose que les moyens qu'ils acceptent, plus le paiement à l'arrivée tant qu'il est activé.

Une réservation ensuite

  • La page après le paiement ouvre la réservation avec un jeton privé dans son adresse. Plus tard, un voyageur la retrouve dans Find my booking avec sa référence (comme B0021) et l'e-mail utilisé ; une paire erronée répond qu'aucune réservation n'a été trouvée.
  • Elle montre le séjour, les dates et les nuits, les voyageurs, le prix et le paiement, et ce qui se passe ensuite.
  • Le voyageur l'annule là tant qu'elle est en attente ou confirmée et que l'arrivée est dans au moins sept jours ; après, la page dit de contacter l'hôte.
  • Une fois le séjour terminé, le voyageur peut le noter depuis la même page, une fois par réservation, avec une note et un commentaire de 10 à 2000 caractères. Les avis apparaissent aussitôt sur la page du séjour, et l'équipe peut en masquer un depuis le tableau de bord.

Questions à l'hôte

La page de contact et la boîte de dialogue de question de la page d'un séjour envoient toutes deux une question à l'hôte : un nom, un e-mail, un téléphone facultatif et un message de 10 à 4000 caractères, et depuis la page d'un séjour, ce séjour avec les dates et les voyageurs choisis. Chacune devient une demande dans le tableau de bord, avec une notification. Aucun e-mail n'est envoyé : le voyageur voit une confirmation sur la page, et l'équipe répond depuis sa propre messagerie.

Le paiement et les deux formulaires portent un champ caché qui attrape les robots et un jeton à usage unique, si bien qu'un même envoi n'est enregistré qu'une fois, et chaque adresse peut envoyer cinq réservations, cinq questions et cinq avis en dix minutes.

Séjours enregistrés

Un visiteur enregistre jusqu'à 12 séjours sans compte. La liste est gardée dans le navigateur du visiteur et n'atteint jamais l'API, hormis la lecture des cartes des séjours enregistrés.

Moteurs de recherche

  • Chaque page définit son propre titre, sa description, son adresse canonique et l'alternative de langue, construits à partir de NEXT_PUBLIC_SITE_URL. La page d'un séjour utilise le titre et la description SEO du séjour et sa photographie de couverture pour le partage, et la page d'une destination son propre nom et sa couverture.
  • /sitemap.xml liste chaque page publique dans les deux langues, chaque séjour publié et chaque destination ; /robots.txt y renvoie. Une réservation, la page de paiement annulé et les séjours enregistrés sont marqués noindex.

Balises d'analyse et de suivi

Six réseaux sont branchés. Activez-en un en mettant son identifiant dans .env (avec Docker Compose, dans le .env à côté de docker-compose.yml) puis reconstruisez ; un identifiant laissé vide ne charge aucun script.

VariableRéseau
NEXT_PUBLIC_GTM_IDGoogle Tag Manager
NEXT_PUBLIC_GA4_MEASUREMENT_IDGoogle Analytics 4
NEXT_PUBLIC_META_PIXEL_IDFacebook et Instagram
NEXT_PUBLIC_TIKTOK_PIXEL_IDTikTok
NEXT_PUBLIC_SNAPCHAT_PIXEL_IDSnapchat
NEXT_PUBLIC_PINTEREST_TAG_IDPinterest

Le site envoie page_view et cinq événements :

ÉvénementQuand
page_viewChaque changement de route
view_stayLa page d'un séjour est affichée
save_stayUn séjour est enregistré
booking_startedLe paiement est envoyé
booking_paidUn voyageur arrivé depuis le paiement voit la réservation comme payée, une fois par réservation
inquiry_submitUne question est envoyée
  • booking_paid attend que le paiement soit réglé, donc une réservation par carte ou PayPal compte une fois que le webhook ou le simulateur l'a marquée payée. La même page de réservation ouverte plus tard avec la référence et l'e-mail n'est pas comptée, un rechargement ne la signale jamais deux fois, et une réservation payée à l'arrivée n'est pas signalée comme un achat.
  • Si GA4 tourne dans votre conteneur Tag Manager, laissez l'identifiant GA4 vide, sinon chaque session est comptée deux fois.
  • NEXT_PUBLIC_ANALYTICS_CURRENCY (USD par défaut) est envoyé avec chaque prix suivi, et NEXT_PUBLIC_ANALYTICS_DEBUG=true journalise chaque événement dans la console du navigateur.
  • Les balises se chargent dès que la page se charge. Si vous servez des visiteurs dans l'UE ou au Royaume-Uni, placez d'abord devant eux une bannière de consentement.

Comment s'organise le code du site

Inclus avec votre achat. Connectez-vous pour le lire, ou ouvrez-le dans votre téléchargement.

La structure du code et les conventions à respecter quand vous le modifiez.

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.