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 :

ArgumentDescription
appConfigObjet contenant toutes les options de comportement : références, callbacks, localisation, champs de formulaire, etc. (cette page)
muiThemeObjet de thème MUI pour l'apparence (PRO, voir Styling)
fcConfigOptions FullCalendar – pertinentes uniquement si calendarFrontend est défini sur fullCalendar (voir ci-dessous)

Options de référencement

OptionTypeDescription
refstring | string[]Référence de la ou des ressource(s). Champ obligatoire (ou tslRefs)
tslRefsstring | string[]Références de rendez-vous spécifiques
prdRefsstring | string[]Références de produits spécifiques, pour le filtrage
channelKeystringType de canal (RESOURCE_PUBLIC, RESOURCE_EXCLUSIVE, etc.)
platformstringPartie plateforme de la référence (codée en dur)
prvUuidstringPartie UUID du provider de la référence (codée en dur)

Options d'affichage

OptionTypeDescription
heightstringHauteur du widget (par défaut : 500px)
calendarFrontendstringMode d'affichage (voir ci-dessous)
culturestringLangue (de, en, fr, es, it)
allResourcesOptionbooleanOption "Toutes les ressources" en cas de multi-ressource

Valeurs de calendarFrontend

  • fullCalendar - Vue FullCalendar
  • detailsFullCalendar - FullCalendar avec détails des ressources
  • pureListView - Vue liste pure
  • detailsListView - Vue liste avec détails
  • condensedView - Vue compacte
  • detailsCondensedView - Vue compacte avec détails

Variantes « details » :

Les variantes details affichent des informations supplémentaires sur la ressource, telles que la description, l'URL externe et les informations publiques du conseiller (si le canal l'autorise).

Options de comportement

OptionTypeDescription
hoststringURL du serveur (https://www.timum.de ou https://staging.timum.de)
allowCloseOnBookingbooleanVue de confirmation fermable après une réservation réussie
allowCloseOnCancelbooleanVue d'annulation fermable
constrainDialogsToContainerbooleanLimiter les boîtes de dialogue au conteneur (au lieu du plein écran)
hideTimumFooterbooleanMasquer "Powered by timum" (PRO)
hiddenForAnonymousbooleanMasquer le widget en l'absence d'ID client
sendCustomValuesInMessagebooleanEnvoyer les champs personnalisés en tant que message

Identification du client

OptionTypeDescription
pDataobjectIdentification du client (platform, personId)

Options avancées

OptionTypeDescription
callbacksobjectCallbacks d'événements (voir la page Callbacks)
postMessageTargetstringURL pour les événements postMessage (scénario iframe)
fieldsobjectConfiguration des champs de formulaire (PRO)
localizationobjectPersonnalisations 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 :

OptionTypeDescription
largeViewstringVue pour les largeurs d'écran supérieures à 601px
smallViewstringVue pour les largeurs d'écran inférieures à 601px
useCustomTimumCssbooleanDéfinir sur false pour désactiver les surcharges CSS FullCalendar de timum
Configurer FullCalendar
timum.init(
  {
    ref: 'ihre-ressourcen-referenz',
    calendarFrontend: 'fullCalendar',
  },
  undefined,
  // Troisième argument : options FullCalendar
  {
    largeView: 'dayGridMonth',
    smallView: 'listWeek',
  }
);

Remarque :

FullCalendar ne repose pas sur MUI et ignore donc l'objet muiTheme.

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 :

  1. Valeurs par défaut de BookingJs
  2. appConfig / muiTheme / fcConfig, transmis directement à init()
  3. window.timumBookingConfig.appConfig / .muiTheme / .fcConfig – s'applique à toutes les instances de la page
  4. window.timumBookingConfig[rootElId] – s'applique uniquement à l'instance avec l'appConfig.rootElId correspondant
  5. Paramètres d'URL (priorité la plus élevée)
Configuration globale
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 :

window.timumBookingConfig doit être défini avant l'initialisation de BookingJs – les modifications ultérieures ne sont pas prises en compte. Les clés appConfig, muiTheme et fcConfig sont réservées et ne doivent pas être utilisées comme rootElId.

Composant React :

Le composant React TimumBooking ignore délibérément window.timumBookingConfig – les utilisateurs de React transmettent appConfig, muiTheme et fcConfig directement en tant que props.

Exemple complet

Configuration étendue
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);
    }
  }
});

Sujets connexes