Configuration
Cette page décrit en détail toutes les options appConfig de BookingJs : référencement, affichage, comportement, identification du client et callbacks.
Aperçu
Les options appConfig contrôlent directement le comportement de timum et vous permettent de réagir à différents événements.
Les trois arguments de init()
init() accepte jusqu'à trois arguments dans cet ordre :
| Argument | Description |
|---|---|
appConfig | Objet contenant toutes les options de comportement : références, callbacks, localisation, champs de formulaire, etc. (cette page) |
muiTheme | Objet de thème MUI pour l'apparence (PRO, voir Styling) |
fcConfig | Options FullCalendar – pertinentes uniquement si calendarFrontend est défini sur fullCalendar (voir ci-dessous) |
Options de référencement
| Option | Type | Description |
|---|---|---|
ref | string | string[] | Référence de la ou des ressource(s). Champ obligatoire (ou tslRefs) |
tslRefs | string | string[] | Références de rendez-vous spécifiques |
prdRefs | string | string[] | Références de produits spécifiques, pour le filtrage |
channelKey | string | Type de canal (RESOURCE_PUBLIC, RESOURCE_EXCLUSIVE, etc.) |
platform | string | Partie plateforme de la référence (codée en dur) |
prvUuid | string | Partie UUID du provider de la référence (codée en dur) |
Options d'affichage
| Option | Type | Description |
|---|---|---|
height | string | Hauteur du widget (par défaut : 500px) |
calendarFrontend | string | Mode d'affichage (voir ci-dessous) |
culture | string | Langue (de, en, fr, es, it) |
allResourcesOption | boolean | Option "Toutes les ressources" en cas de multi-ressource |
Valeurs de calendarFrontend
fullCalendar- Vue FullCalendardetailsFullCalendar- FullCalendar avec détails des ressourcespureListView- Vue liste puredetailsListView- Vue liste avec détailscondensedView- Vue compactedetailsCondensedView- Vue compacte avec détails
Variantes « details » :
Options de comportement
| Option | Type | Description |
|---|---|---|
host | string | URL du serveur (https://www.timum.de ou https://staging.timum.de) |
allowCloseOnBooking | boolean | Vue de confirmation fermable après une réservation réussie |
allowCloseOnCancel | boolean | Vue d'annulation fermable |
constrainDialogsToContainer | boolean | Limiter les boîtes de dialogue au conteneur (au lieu du plein écran) |
hideTimumFooter | boolean | Masquer "Powered by timum" (PRO) |
hiddenForAnonymous | boolean | Masquer le widget en l'absence d'ID client |
sendCustomValuesInMessage | boolean | Envoyer les champs personnalisés en tant que message |
Identification du client
| Option | Type | Description |
|---|---|---|
pData | object | Identification du client (platform, personId) |
Options avancées
| Option | Type | Description |
|---|---|---|
callbacks | object | Callbacks d'événements (voir la page Callbacks) |
postMessageTarget | string | URL pour les événements postMessage (scénario iframe) |
fields | object | Configuration des champs de formulaire (PRO) |
localization | object | Personnalisations de texte (PRO) |
fcConfig : options FullCalendar
Si vous utilisez fullCalendar ou detailsFullCalendar comme calendarFrontend, configurez FullCalendar via le troisième argument de init(). En plus des options officielles de FullCalendar, les options suivantes, spécifiques à BookingJs, sont disponibles :
| Option | Type | Description |
|---|---|---|
largeView | string | Vue pour les largeurs d'écran supérieures à 601px |
smallView | string | Vue pour les largeurs d'écran inférieures à 601px |
useCustomTimumCss | boolean | Définir sur false pour désactiver les surcharges CSS FullCalendar de timum |
timum.init(
{
ref: 'ihre-ressourcen-referenz',
calendarFrontend: 'fullCalendar',
},
undefined,
// Troisième argument : options FullCalendar
{
largeView: 'dayGridMonth',
smallView: 'listWeek',
}
);
Remarque :
Configuration globale : window.timumBookingConfig
En plus des objets transmis directement à init(), BookingJs lit une configuration globale optionnelle depuis la page hôte : window.timumBookingConfig. Cela vous permet d'adapter BookingJs sans modifier le code d'intégration lui-même – idéal lorsque le snippet est généré par un plugin CMS ou un backend, mais que vous contrôlez le HTML environnant.
Ordre de résolution
Les configurations sont résolues dans cet ordre – les sources ultérieures écrasent les précédentes, via une fusion profonde au niveau des clés :
- Valeurs par défaut de BookingJs
- appConfig / muiTheme / fcConfig, transmis directement à init()
- window.timumBookingConfig.appConfig / .muiTheme / .fcConfig – s'applique à toutes les instances de la page
- window.timumBookingConfig[rootElId] – s'applique uniquement à l'instance avec l'appConfig.rootElId correspondant
- Paramètres d'URL (priorité la plus élevée)
window.timumBookingConfig = {
// S'applique à chaque instance de BookingJs sur la page
appConfig: { culture: 'de' },
muiTheme: { palette: { primary: { main: '#337ab7' } } },
// Uniquement pour l'instance avec ce rootElId (par ex. un snippet de provider channel)
'bookingjs-dd8d32cc-b53b-4ab4-af52-41325000592b': {
appConfig: { height: 700 },
muiTheme: { palette: { primary: { main: '#ff5722' } } },
},
};
Configurer spécifiquement les snippets de provider channel
Chaque snippet généré dans l'interface timum représente un provider channel et porte déjà rootElId: "bookingjs-<provider-channel-uuid>" dans son appel init(). Utilisez exactement cette clé dans window.timumBookingConfig pour configurer un snippet individuel sans modifier le code généré.
Moment :
Composant React :
Exemple complet
timum.init({
// Référencement
ref: 'ihre-ressourcen-referenz',
prdRefs: ['besichtigung', 'beratung'],
channelKey: 'RESOURCE_PUBLIC',
// Affichage
height: '600px',
calendarFrontend: 'detailsListView',
culture: 'de',
// Comportement
allowCloseOnBooking: true,
constrainDialogsToContainer: true,
hideTimumFooter: true,
// Identification du client
pData: {
platform: 'onoffice',
personId: '12345'
},
// Callbacks
callbacks: {
createBookingSuccessful: ({ timeslot, data }) => {
console.log('Buchung erfolgreich:', timeslot);
// Analytics, redirection, etc.
},
fetchingBookablesSucceeded: ({ bookables }) => {
console.log('Termine geladen:', bookables);
}
}
});
