Configuration des réservations externes: Difference between revisions
Line 10: | Line 10: | ||
*Pour chaque ligne du tableau ci-dessous : | *Pour chaque ligne du tableau ci-dessous : | ||
**Tout en bas du tableau, sur la dernière ligne renseigner les champs avec les valeurs indiquées dans la ligne correspondante | **Tout en bas du tableau, sur la dernière ligne renseigner les champs avec les valeurs indiquées dans la ligne correspondante | ||
**Cliquer sur le bouton '''Ajouter''' | **Cliquer sur le bouton '''Ajouter''' | ||
Revision as of 11:49, 25 September 2024
Présentation
Cette page présente le paramétrage du module de réservations externes.
Voir la page Utilisation des réservations externes pour la présentation et l'utilisation du module.
Configurer
Créer les champs métiers, les profils, le type d'activité et le type de validité
- Ajouter les champs métiers pour les réservations externes
- Aller dans Admin > Structure › Variables › Champs métiers
- Pour chaque ligne du tableau ci-dessous :
- Tout en bas du tableau, sur la dernière ligne renseigner les champs avec les valeurs indiquées dans la ligne correspondante
- Cliquer sur le bouton Ajouter
Ce tableau présente la liste des champs métiers à créer obligatoirement, en suivant la procédure en-dessous du tableau, pour éviter tout problème lors de l'utilisation du module de réservations externes.
Nom de variable | Intitulé | Catégorie | Type de valeur | Remplissage obligatoire | Catégorie liée | Champ à lier |
---|---|---|---|---|---|---|
externalLastName | Nom | Réservation externe | Chaîne textuelle | OUI | Utilisateur | last_name |
externalFirstName | Prénom | Réservation externe | Chaîne textuelle | OUI | Utilisateur | first_name |
externalCellPhone | Téléphone portable | Réservation externe | Chaîne textuelle | OUI | Utilisateur | cell_phone |
externalEmail | Réservation externe | Chaîne textuelle | OUI | Utilisateur |
Il est possible d'ajouter d'autres champs métiers selon les besoins afin d'enrichir le formulaire de réservation externe et de collecter ainsi davantage d'informations auprès des utilisateurs effectuant les réservations.
- Créer un profil pour les utilisateurs effectuant les activités liées aux réservations externes
- Aller dans Admin > Utilisateurs > Profils
- Cliquer sur le bouton Ajouter un profil
- Renseigner le champ Nom du profil avec le nom souhaité (exemple : "Pilote baptême")
- Cliquer sur le bouton Enregistrer
- Cliquer sur l'onglet Réservations
- Cliquer sur la case à cocher Planning personnel pour ce profil
- Cliquer sur la case à cocher Planning individuel visible pour les autres pour ce profil
- Aller dans Admin > Utilisateurs > Profils plus
Pour les profils qui doivent pouvoir voir les lignes de réservations de ces utilisateurs ou modifier les disponibilités de ces utilisateurs :
- colonne Profils visibles, cocher le profil précédemment créé
- Créer un profil pour les clients externes
- Aller dans Admin > Utilisateurs > Profils
- Cliquer sur le bouton Ajouter un profil
- Renseigner le champ Nom du profil avec le nom souhaité (exemple : "Client baptême")
- Cliquer sur le bouton Enregistrer
Note : Le profil ne doit avoir aucun droit
- Créer un type d'activité
Si nécessaire, il faut créer un type d'activité dédié aux réservations externes :
- Aller dans Admin > Types d'activités > Actifs
- Cliquer sur le bouton "+" en haut à droite du tableau Liste des types d'activités
- Renseigner le champ Nom avec le nom du type d'activité souhaité (exemple : "Baptême")
- Cliquer sur le bouton Enregistrer
Attention : le nom du type d'activité apparait sur l'interface de réservation externe. Afin qu'il s'intègre correctement, sans créer de faute d'orthographe, il doit être un groupe nominal masculin.
Exemples :
- Baptême de l'air
- Vol découverte
Déconseillé :
- Balade découverte
- Créer un type de validité pour stocker une preuve d'achat
Il est possible de donner la possibilité aux clients de fournir un document permettant d'attester d'une commande effectuée par ailleurs et donnant le droit d'effectuer une réservation. Ce document est alors stocké dans une validité. Pour ce faire :
- Aller dans Admin > Utilisateurs > Types de validités.
- Cliquer sur le bouton Ajouter un type de validité.
- Lui donner un nom comme "Bon d'achat" et cocher Associer un document.
- Valider en cliquant sur Enregistrer.
- Aller dans Admin > Utilisateurs > Profils plus.
- Vérifier que les profils pouvant gérer cette validité ont bien la validité en question dans la liste Types de validités que l'utilisateur peut gérer et certifier.
Paramétrer le module de réservations externes
- Activer et paramétrer le module des réservations externes
- Aller dans Admin > Structure > Paramétrage > Réservations externes
- Activer l'interrupteur Réservations externes
Renseigner les champs suivants avec les paramètres souhaités :
- Synchronisation avec une API REST tierce (facultatif, voir Interfacer les réservations externes avec un service web de gestion des codes de référence de vente)
- Heure de début (fuseau X)
- Heure de fin (fuseau X)
- Durée d'une réservation externes
- Permettre de choisir la durée d'activité
- Utiliser la couleur de la 1ère ressource disponible pour chaque créneau: permet d'activer Colorisation des créneaux disponibles en fonction de la 1ère ressource disponible
- Interdire d'effectuer une réservation débutant dans moins de (la valeur minimale ne peut être inférieure à la valeur définie dans le Interdire d'effectuer une réservation débutant dans moins de du formulaire de configuration des réservations internes
- Interdire d'effectuer une réservation se terminant dans plus de
- Interdire d'annuler une réservation débutant dans moins de
- Limitation du nombre de réservations
- Autoriser uniquement les emails des utilisateurs actifs: lorsque activé, permet de n'envoyer un email de demande de confirmation qu'aux adresses emails d'un utilisateur actif, c'est à dire pour une adresse email présente en base de données.
- Profil utilisateur partie prenante : sélectionner le profil créé précédemment ("Pilote baptême" dans l'exemple)
Note : Si Aucun est sélectionné, les périodes disponibles pour une réservation externe sont déterminées uniquement en fonction de la disponibilité des ressources
- Filtrer les utilisateurs avec le champ métier et Filtrer les ressources avec le champ métier (voir Filtrer les utilisateurs/ressources prises en compte pour les créneaux horaires disponibles)
- Profil à affecter aux clients : sélectionner le profil créé par précédemment ("Client baptême" dans l'exemple)
- Type d'activité à affecter aux réservations : sélectionner le type d'activité à affecter aux réservations externes. Exemple : "Baptême".
- Demander une pièce jointe et l'enregistrer dans le type de validité suivant : si un type de validité pour stocker une preuve d'achat a été créé dans le paramétrage préliminaire, sélectionner la validité correspondante. Sinon, laisser vide
- Modifier le label associé au champ d'importation de la pièce jointe qui apparait dans l'interface de la saisie des coordonnées en éditant le champ Nom du champ pour la pièce jointe.
- Préciser si l'import de la pièce jointe est obligatoire ou facultative en sélectionnant l'une des deux options du champ Pièce jointe.
- Enregistrer la référence transmise en paramètre GET en tant que (voir Affecter la référence du bon d'achat à la réservation externes)
- Template de l'e-mail de confirmation de réservation (voir l'exemple Template e-mail de confirmation de réservation)
- Personnaliser l'objet de l'e-mail d'annulation de réservation (voir l'exemple Template e-mail d'annulation de réservation)
- Cliquer sur le bouton Enregistrer
- Template de l'e-mail d'annulation de réservation (voir l'exemple Template e-mail d'annulation de réservation
- Cliquer sur le bouton Enregistrer
L'interface des réservations externes (Planning > Planning > Réservations externes). Devrait désormais afficher un calendrier (vide)
Associer les ressources et les utilisateurs
- Ajouter des ressources pouvant être utilisées pour les réservations externes
- Aller dans Gestion > Ressources > Actives.
- Choisir la ressource à ajouter et cliquer sur l'icône modifier.
- Cocher Peut être utilisé pour les réservations externes dans la colonne Champs métier.
- Valider en appuyant sur le bouton Enregistrer.
- Ajouter des utilisateurs pouvant être affectés à des réservations externes
- Aller dans Gestion > Utilisateurs > Utilisateurs > Actifs
- Choisir un utilisateur à ajouter et cliquer sur l'icône modifier
- Dans la liste profil sélectionner le profil indiquant que l'utilisateur peut être sur des réservations externes
- Valider en appuyant sur le bouton Enregistrer
- Aller dans Planning > Données > (In)disponibilités et indiquer les disponibilités de l'utilisateur
- Gérer les places
Aller dans Admin > Utilisateurs > Profils plus, dans la colonne Attribution de place :
- S'assurer que le profil des clients externes puisse s'attribuer une place de pilote (place de gauche) sur les types de ressources concernés par les baptêmes de l'air.
- S'assurer que le profil des pilotes pouvant effectuer un baptême puisse s'attribuer une place d'instructeur (place de droite) sur les types de ressources concernés par les baptêmes de l'air.
Paramétrages facultatifs
Affecter la référence du bon d'achat à la réservation externe
Il est possible d'affecter le code de la référence du bon d'achat à la réservation externe en fonction de paramètre attribué dans un champ métier réservation.
Voici un exemple de paramétrage permettant d'ajouter le champ métier dédié au stockage de la référence du bon d'achat :
- Aller dans Admin > Structure > Variables > Champs métiers
Sur la dernier ligne :
- Colonne Nom de variable, renseigner "reference"
- Colonne Intitulé, renseigner "Référence d'achat"
- Colonne Catégorie, sélectionner Réservation
- Colonne Type de valeur, sélectionner Chaîne textuelle
- Cliquer sur le bouton Ajouter
- Aller dans Admin > Structure > Paramétrage > Réservations externes
- Champ Enregistrer la référence transmise en paramètre GET en tant que : sélectionner le champ préalablement créé Référence d'achat (reference)
- Cliquer sur le bouton Enregistrer
Cela permet de capturer le code associé au paramètre GET reference passé dans l'URL permettant d'afficher l'interface de réservations externes et de le stocker dans le champ métier Référence d'achat lors de l'enregistrement de la réservation.
Exemple :
https://localhost/4.0/externalBooking.php?reference=AZERTY
Permet d'attribuer le code de référence d'achat AZERTY à la réservation en cours.
Ajouter les champs métiers optionnels
Il est possible d’ajouter d’autres champs métiers lors de l’utilisation du module de réservations externes, à condition de respecter les exigences suivantes lors de leur création :
- Nom du champ : Ajouter le préfixe external au début du nom pour indiquer qu'il s'agit d'un champ métier externe.
- Catégorie : Sélectionner Réservation externe comme catégorie.
- Remplissage obligatoire : Cocher cette case si le champ doit être complété par l’utilisateur.
- Catégorie liée : Associer le champ métier à la catégorie correspondante (Utilisateur / Réservation).
- Champ à lier : Associer le champ au champ métier (si celui-ci n'existe pas, il faut le créer) ou bien au champ original de la catégorie liée, ce champ lié indique l’endroit où la valeur saisie par le client externe est enregistrée.
Ajouter une règle pour les réservations externes
Aller dans Admin > Structure > Paramétrage > Réservations internes.
Dans Régles de saisie XML ajouter une règle de la forme suivante :
<xml><rule>
<activityTypeList> <activityType></activityType> </activityTypeList> <resourceTypeList minQty="1" maxQty="1"> <resourceType>*</resourceType> </resourceTypeList> <placeList> <place index="0" minQty="1" maxQty="1" status="4"> <profile></profile> </place> <place index="1" minQty="1" maxQty="1" status="4"> <profile></profile> </place> </placeList>
</rule></xml>
Coloriser les créneaux disponibles en fonction de la 1ère ressource disponible
Le paramètrage suivant permet de définir la couleur de fond en fonction de la couleur de la première ressource disponible dans le tableau des créneaux disponibles des réservations externes:
- Changer la couleur de la ligne du planing de la ressource
- Aller dans Admin > Structure > Paramétrage > Réservations externes
- Champ Utiliser la couleur de la 1ère ressource disponible pour chaque créneau : activer l'interrupteur
Configurer la vente des produits externes
- prérequis
- procédure
Pour fournir des produits externes à vendre via l'interface de réservation externe, suivre les étapes suivantes :
- Configurer des produits externes
- Aller dans Admin > Ventes > Produits > Produits
- Cocher la case dans la colonne intitulée Produit externe pour les produits concernés
- Configurer les règles de facturations
- Aller dans Admin > Ventes > Facturation > Produits
- Modifier/Ajouter une ligne de facturation
- Cocher le produit externe désiré dans la liste située dans la quatrième colonne intitulée Produits externes
- Cliquer sur Enregistrer
- Configurer imputé pour les ventes externes
- Aller dans Admin > Structure > Paramétrage > Comptes
- Activer l'interrupteur Ventes externes situé dans la 3ème colonne
- Sélectionner le compte par défaut pour la facturation externe dans le champ Compte imputé pour les ventes externes
- Sélectionner le type de paiement dans le champ Type d'encaissement par internet
- Sélectionner la comptabilité dans le champ Comptabilité pour le format monétaire
- Cliquer sur Enregistrer
- Ajouter les champs métiers requis pour le processus de paiement
- Aller dans Admin > Structure > Variables > Champs métiers
Ce tableau présente la liste des champs métiers à créer obligatoirement pour éviter tout problème lors de l'utilisation du module de réservations externes avec les ventes externes.
Nom de variable | Intitulé | Catégorie | Type de valeur | Remplissage obligatoire | Catégorie liée | Champ à lier |
---|---|---|---|---|---|---|
externalAdresse | adresse | Réservation externe | Chaîne textuelle | OUI | Utilisateur | adress |
externalCity | Ville | Réservation externe | Chaîne textuelle | OUI | Utilisateur | city |
externalZipCode | code postal | Réservation externe | Chaîne textuelle | OUI | Utilisateur | zipcode |
externalCountry | pays | Réservation externe | Chaîne textuelle | OUI | Utilisateur | country |
Filtrer les utilisateurs/ressources prises en compte pour les créneaux horaires disponibles
Il est possible de restreindre les utilisateurs et/ou les ressources en fonction de paramètres attribués dans un champ métier utilisateur/ressource
Voici un exemple de paramétrage permettant de prendre en compte les utilisateurs en fonction de leur base géographique d'affectation :
- Aller dans Admin > Structure > Variables > Champs métiers
Sur la dernier ligne :
- Colonne Nom de variable, renseigner "locationPerson"
- Colonne Intitulé, renseigner "Base géographique"
- Colonne Catégorie, sélectionner Utilisateur
- Colonne Type de valeur, sélectionner dbObject:Location
- Cliquer sur le bouton Ajouter
- Aller dans Admin > Structure > Paramétrage > Réservations externes
- Champ Filtrer les utilisateurs avec le champ métier : sélectionner le champ préalablement créé Base géographique (locationPerson)
- Cliquer sur le bouton Enregistrer
Cela permet de ne prendre en compte que les utilisateurs pour lesquels le champ métier Base géographique correspond au paramètre GET locationPerson passé dans l'URL permettant d'afficher l'interface de réservations externes.
Exemple :
https://localhost/4.0/externalBooking.php?locationPerson=LFBD
Permet de ne prendre en compte que les utilisateurs disponibles ayant dans le champ Base géographique la valeur LFBD (BORDEAUX MERIGNAC).
Interfacer les réservations externes avec un service web de gestion des codes de référence de vente
OpenFlyers implémente un interfaçage vers une API REST tierce de gestion des codes qui permet de vérifier si le code de référence renseigné par l'utilisateur ou transmis via l'URL est valide ou non.
Les échanges se font au format JSON.
OpenFlyers renvoie à l'API la date de la réservation, le type de ressource et les coordonnées de la personne en charge de l'activité lors de la prise de réservation externe ou lors de son annulation.
Pour interfacer OpenFlyers avec l'API, il faut :
- Aller dans Admin > Structure > Paramétrage > Réservations externes
- Champ Synchronisation avec une API REST tierce : activer le toggle switch.
Renseigner les champs suivants avec les paramètres souhaités :
- URL de l'API REST tierce : Assigner le lien de base de l'API
- Jeton d'authentification : Assigner le Jeton d'authentification de l'API
Une fois que la configuration est faite par OpenFlyers, les opérations suivantes s'effectuent systématiquement :
- Vérification de la validité du code de référence via le lien externalBookingWebServiceURL/{code} avec la méthode GET, auquel l'API doit répondre en transmettant un JSON sous le format suivant :
<javascript>{
"validity": true, "code": "Code_De_Référence", "buyer_name": "Nom_Agence_web", "validity_date": "YYYY-MM-DD", "video": "true", "cancellable": "true", "activity_type": 4, "booking_duration": "45"
}</javascript>
NB:Le code est valide si la valeur de validity est true.
- Si la variable booking_duration est définie et contient une valeur multiple de 15, elle sera utilisée à la place du paramètre Durée d'une réservation externe.
- Si la variable activity_type est définie et correspond à l'id d'un type d'activité actif, la valeur sera utilisée à la place du paramètre Type d'activité à affecter aux réservations.
- Notification à l'API tierce d'une nouvelle réservation via le lien externalBookingWebServiceURL/{code}/activate avec la méthode PUT, en passant les données de requête suivantes :
<javascript>{
"date" : "2022-04-05T06:00:00Z", //date de la réservation en format ISO UTC "resource_type" : "le type de la ressource utilisée dans la réservation", "structure_person_name" : "le nom du pilote", "structure_person_email" : "l'email du pilote", "structure_person_phone" : "le numéro de téléphone du pilote"
}</javascript> - En retour l'API doit répondre en cas de succès : <javascript>{
"status": true
}</javascript> - En retour l'API doit répondre en cas d'échec : <javascript>{
"status": false, "error_msg": "le message d'erreur"
}</javascript>
- Notification à l'API tierce de l'annulation d'une réservation via le lien externalBookingWebServiceURL/{code}/release avec la méthode PUT
- En cas de la réussite de la notification, l'API répond : <javascript>{
"status": true
}</javascript>
- En cas d'échec l'API répond : <javascript>{
"status": false, "error_msg": "le message d'erreur"
}</javascript>
Exemple de la communication en PHP avec l'API:
<php>
// Prepare data to send by request
$requestData = array(
'date' => "2022-04-05T06:00:00Z", //date de la réservation en format ISO UTC 'resource_type' => 'resource_type', 'structure_person_name' => 'pilot_full_name', 'structure_person_email' => 'pilot_email', 'structure_person_phone' => 'pilot_cell_phone',
); // Initialize a curl session $curl = curl_init(); // Set options curl_setopt_array($curl, array(
CURLOPT_URL => 'externalBookingWebServiceURL/42E390B0D843561F/activate', CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_HTTPHEADER => array('Content-Type: application/json', 'Authorization: Bearer uqpsildfqtw5o2qq9o45guz3ydfceehb'), CURLOPT_SSL_VERIFYPEER => false, CURLOPT_POSTFIELDS => json_encode($requestData),
)); // Execute the curl session curl_exec($curl); // Close curl session curl_close($curl); </php>
Templates d'email
Template e-mail d'annulation de réservation
- Définir la template de l'e-mail dans le champ Template de l'e-mail d'annulation de réservation dans l'interface de paramétrage Réservations externes.
Exemple de template d'e-mail par défaut:
Madame, Monsieur %CLIENT_FULL_NAME, Nous sommes au regret de vous informer de l'annulation de votre réservation sur l'appareil %RESOURCE_NAME le %DATE, de %START_TIME à %END_TIME avec comme pilote %PILOT_FULL_NAME. Cette opération a été effectuée par %AUTHENTICATION_LOGIN Vous pouvez nous contacter par téléphone pour trouver un nouveau créneau disponible. Annuler la réservation : %%BOOKING_CANCEL_URL En vous remerciant par avance pour votre compréhension, Cordialement,
- Personnaliser l'objet de l'e-mail dans le champ Personnaliser l'objet de l'e-mail d'annulation de réservation dans l'interface de paramétrage Réservations externes.
Exemple de l'objet d'e-mail par défaut:
Annulation de votre réservation %STRUCTURE_NAME
- L'e-mail est envoyé immédiatement après l'annulation de la réservation.
Template e-mail de confirmation de réservation
- Définir la template de l'e-mail dans le champ Template de l'e-mail de confirmation de réservation dans l'interface de paramétrage Réservations externes.
Exemple de template d'e-mail par défaut:
Votre %ACTIVITY_TYPE_NAME a été réservé avec succès. Numéro du bon de réservation: %BOOKING_ID Réservé au nom de: %CLIENT_FULL_NAME Date: %DATE, de %START_TIME à %END_TIME Votre pilote: %PILOT_FULL_NAME Son adresse e-mail: %PILOT_EMAIL Son numéro de téléphone portable: %PILOT_CELL_PHONE Votre appareil: %RESOURCE_NAME Vous recevrez un email de confirmation ou d'annulation de la demande au plus tard %CANCEL_BOOKING_MIN_TIME avant le vol projeté. Annuler la réservation: Afin d'annuler votre réservation, veuillez cliquer sur le lien ci-dessous. <a href="%BOOKING_CANCEL_URL" >Cliquez ici pour annuler.</a> À bientôt!
- L'e-mail est envoyé immédiatement après l'enregistrement de la réservation
Variables
Nom de la variable | Valeur de la variable |
---|---|
%ACTIVITY_TYPE_NAME | Le nom du type d'activité affecté aux réservations. |
%AUTHENTICATION_LOGIN | Le nom + prénom d'utilisateur connecté |
%BOOKING_CANCEL_URL | Lien pour annuler la réservation |
%BOOKING_ID | Le numéro de commande. / L'identifiant de la réservation. |
%CLIENT_FULL_NAME | Le nom + prénom du client. |
%CANCEL_BOOKING_MIN_TIME | Le délai minimum avant la réservation pour l'annuler. |
%DATE | La date de la réservation. |
%END_TIME | L'heure de fin de la réservation. |
%EXTRAFIELDxx | Permet de récupérer le contenu d'un champ métier. xx = numéro d'identifiant du champ métier. Exemple : %EXTRAFIELD35 |
%PILOT_EMAIL | L'adresse email du pilote. |
%PILOT_HOME_PHONE | Le numéro de téléphone personnel du pilote. |
%PILOT_WORK_PHONE | Le numéro de téléphone professionnel du pilote. |
%PILOT_CELL_PHONE | Le numéro de téléphone portable du pilote. |
%PILOT_FULL_NAME | Le nom + prénom du pilote. |
%RESOURCE_NAME | Le nom de la ressource réservée. |
%START_TIME | L'heure de début de la réservation. |
%STRUCTURE_NAME | Le nom de la structure |