Configurazione

Questa pagina descrive in dettaglio tutte le opzioni appConfig di BookingJs: referenziazione, visualizzazione, comportamento, identificazione del cliente e callback.

Panoramica

Le opzioni appConfig controllano direttamente il comportamento di timum e Le consentono di reagire a diversi eventi.

I tre argomenti di init()

init() accetta fino a tre argomenti in quest'ordine:

ArgomentoDescrizione
appConfigOggetto con tutte le opzioni di comportamento: riferimenti, callback, localizzazione, campi del modulo, ecc. (questa pagina)
muiThemeOggetto tema MUI per l'aspetto (PRO, vedi Styling)
fcConfigOpzioni FullCalendar – rilevanti solo se calendarFrontend è impostato su fullCalendar (vedi sotto)

Opzioni di referenziazione

OpzioneTipoDescrizione
refstring | string[]Riferimento della/delle risorsa/e. Campo obbligatorio (o tslRefs)
tslRefsstring | string[]Riferimenti di appuntamenti specifici
prdRefsstring | string[]Riferimenti di prodotti specifici, per il filtraggio
channelKeystringTipo di canale (RESOURCE_PUBLIC, RESOURCE_EXCLUSIVE, ecc.)
platformstringParte piattaforma del riferimento (hardcoded)
prvUuidstringParte UUID del provider del riferimento (hardcoded)

Opzioni di visualizzazione

OpzioneTipoDescrizione
heightstringAltezza del widget (predefinito: 500px)
calendarFrontendstringModalità di visualizzazione (vedi sotto)
culturestringLingua (de, en, fr, es, it)
allResourcesOptionbooleanOpzione "Tutte le risorse" per multi-risorsa

Valori di calendarFrontend

  • fullCalendar - Vista FullCalendar
  • detailsFullCalendar - FullCalendar con dettagli delle risorse
  • pureListView - Vista elenco pura
  • detailsListView - Vista elenco con dettagli
  • condensedView - Vista compatta
  • detailsCondensedView - Vista compatta con dettagli

Varianti «details»:

Le varianti details mostrano informazioni aggiuntive sulla risorsa, come descrizione, URL esterno e informazioni pubbliche del consulente (se il canale lo consente).

Opzioni di comportamento

OpzioneTipoDescrizione
hoststringURL del server (https://www.timum.de o https://staging.timum.de)
allowCloseOnBookingbooleanVista di conferma chiudibile dopo una prenotazione riuscita
allowCloseOnCancelbooleanVista di annullamento chiudibile
constrainDialogsToContainerbooleanLimitare le finestre di dialogo al contenitore (invece che a schermo intero)
hideTimumFooterbooleanNascondere "Powered by timum" (PRO)
hiddenForAnonymousbooleanNascondere il widget in assenza di ID cliente
sendCustomValuesInMessagebooleanInviare i campi personalizzati come messaggio

Identificazione del cliente

OpzioneTipoDescrizione
pDataobjectIdentificazione del cliente (platform, personId)

Opzioni avanzate

OpzioneTipoDescrizione
callbacksobjectCallback di eventi (vedi la pagina Callbacks)
postMessageTargetstringURL per gli eventi postMessage (scenario iframe)
fieldsobjectConfigurazione dei campi del modulo (PRO)
localizationobjectPersonalizzazioni del testo (PRO)

fcConfig: opzioni FullCalendar

Se utilizza fullCalendar o detailsFullCalendar come calendarFrontend, configuri FullCalendar tramite il terzo argomento di init(). Oltre alle opzioni ufficiali di FullCalendar, sono disponibili le seguenti opzioni specifiche di BookingJs:

OpzioneTipoDescrizione
largeViewstringVista per larghezze schermo superiori a 601px
smallViewstringVista per larghezze schermo inferiori a 601px
useCustomTimumCssbooleanImpostare su false per disattivare gli override CSS FullCalendar di timum
Configurare FullCalendar
timum.init(
  {
    ref: 'ihre-ressourcen-referenz',
    calendarFrontend: 'fullCalendar',
  },
  undefined,
  // Terzo argomento: opzioni FullCalendar
  {
    largeView: 'dayGridMonth',
    smallView: 'listWeek',
  }
);

Nota:

FullCalendar non è basato su MUI e pertanto ignora l'oggetto muiTheme.

Configurazione globale: window.timumBookingConfig

Oltre agli oggetti passati direttamente a init(), BookingJs legge una configurazione globale opzionale dalla pagina host: window.timumBookingConfig. Questo Le consente di personalizzare BookingJs senza modificare il codice di incorporamento stesso – ideale quando lo snippet viene generato da un plugin CMS o da un backend, ma Lei controlla l'HTML circostante.

Ordine di risoluzione

Le configurazioni vengono risolte in quest'ordine – le fonti successive sovrascrivono quelle precedenti, tramite un merge profondo a livello di chiave:

  1. Valori predefiniti di BookingJs
  2. appConfig / muiTheme / fcConfig, passati direttamente a init()
  3. window.timumBookingConfig.appConfig / .muiTheme / .fcConfig – si applica a tutte le istanze nella pagina
  4. window.timumBookingConfig[rootElId] – si applica solo all'istanza con l'appConfig.rootElId corrispondente
  5. Parametri URL (priorità massima)
Configurazione globale
window.timumBookingConfig = {
  // Si applica a ogni istanza di BookingJs nella pagina
  appConfig: { culture: 'de' },
  muiTheme: { palette: { primary: { main: '#337ab7' } } },

  // Solo per l'istanza con questo rootElId (ad es. uno snippet di provider channel)
  'bookingjs-dd8d32cc-b53b-4ab4-af52-41325000592b': {
    appConfig: { height: 700 },
    muiTheme: { palette: { primary: { main: '#ff5722' } } },
  },
};

Configurare in modo mirato gli snippet di provider channel

Ogni snippet generato nell'interfaccia timum rappresenta un provider channel e contiene già rootElId: "bookingjs-<provider-channel-uuid>" nella sua chiamata init(). Utilizzi esattamente questa chiave in window.timumBookingConfig per configurare un singolo snippet senza modificare il codice generato.

Tempistica:

window.timumBookingConfig deve essere impostato prima dell'inizializzazione di BookingJs – le modifiche successive non vengono applicate. Le chiavi appConfig, muiTheme e fcConfig sono riservate e non devono essere utilizzate come rootElId.

Componente React:

Il componente React TimumBooking ignora deliberatamente window.timumBookingConfig – gli utenti React passano appConfig, muiTheme e fcConfig direttamente come props.

Esempio completo

Configurazione estesa
timum.init({
  // Referenziazione
  ref: 'ihre-ressourcen-referenz',
  prdRefs: ['besichtigung', 'beratung'],
  channelKey: 'RESOURCE_PUBLIC',

  // Visualizzazione
  height: '600px',
  calendarFrontend: 'detailsListView',
  culture: 'de',

  // Comportamento
  allowCloseOnBooking: true,
  constrainDialogsToContainer: true,
  hideTimumFooter: true,

  // Identificazione del cliente
  pData: {
    platform: 'onoffice',
    personId: '12345'
  },

  // Callbacks
  callbacks: {
    createBookingSuccessful: ({ timeslot, data }) => {
      console.log('Buchung erfolgreich:', timeslot);
      // Analytics, redirect, ecc.
    },
    fetchingBookablesSucceeded: ({ bookables }) => {
      console.log('Termine geladen:', bookables);
    }
  }
});

Argomenti correlati