Configuración

Esta página describe en detalle todas las opciones appConfig de BookingJs: referenciación, visualización, comportamiento, identificación del cliente y callbacks.

Resumen

Las opciones appConfig controlan directamente el comportamiento de timum y le permiten reaccionar a distintos eventos.

Los tres argumentos de init()

init() acepta hasta tres argumentos en este orden:

ArgumentoDescripción
appConfigObjeto con todas las opciones de comportamiento: referencias, callbacks, localización, campos de formulario, etc. (esta página)
muiThemeObjeto de tema MUI para la apariencia (PRO, ver Styling)
fcConfigOpciones de FullCalendar – relevantes solo cuando calendarFrontend está establecido en fullCalendar (ver más abajo)

Opciones de referenciación

OpciónTipoDescripción
refstring | string[]Referencia del recurso o recursos. Campo obligatorio (o tslRefs)
tslRefsstring | string[]Referencias de citas específicas
prdRefsstring | string[]Referencias de productos específicos, para el filtrado
channelKeystringTipo de canal (RESOURCE_PUBLIC, RESOURCE_EXCLUSIVE, etc.)
platformstringParte de plataforma de la referencia (hardcodeada)
prvUuidstringParte UUID del provider de la referencia (hardcodeada)

Opciones de visualización

OpciónTipoDescripción
heightstringAltura del widget (por defecto: 500px)
calendarFrontendstringModo de visualización (ver más abajo)
culturestringIdioma (de, en, fr, es, it)
allResourcesOptionbooleanOpción "Todos los recursos" en multi-recurso

Valores de calendarFrontend

  • fullCalendar - Vista FullCalendar
  • detailsFullCalendar - FullCalendar con detalles de recursos
  • pureListView - Vista de lista pura
  • detailsListView - Vista de lista con detalles
  • condensedView - Vista compacta
  • detailsCondensedView - Vista compacta con detalles

Variantes «details»:

Las variantes details muestran información adicional sobre el recurso, como la descripción, la URL externa y la información pública del asesor (si el canal lo permite).

Opciones de comportamiento

OpciónTipoDescripción
hoststringURL del servidor (https://www.timum.de o https://staging.timum.de)
allowCloseOnBookingbooleanSe puede cerrar la vista de confirmación tras una reserva exitosa
allowCloseOnCancelbooleanSe puede cerrar la vista de cancelación
constrainDialogsToContainerbooleanLimitar los diálogos al contenedor (en lugar de pantalla completa)
hideTimumFooterbooleanOcultar "Powered by timum" (PRO)
hiddenForAnonymousbooleanOcultar el widget si no hay ID de cliente
sendCustomValuesInMessagebooleanEnviar campos personalizados como mensaje

Identificación del cliente

OpciónTipoDescripción
pDataobjectIdentificación del cliente (platform, personId)

Opciones avanzadas

OpciónTipoDescripción
callbacksobjectCallbacks de eventos (ver la página Callbacks)
postMessageTargetstringURL para eventos postMessage (escenario iframe)
fieldsobjectConfiguración de campos de formulario (PRO)
localizationobjectPersonalizaciones de texto (PRO)

fcConfig: opciones de FullCalendar

Si utiliza fullCalendar o detailsFullCalendar como calendarFrontend, configure FullCalendar a través del tercer argumento de init(). Además de las opciones oficiales de FullCalendar, están disponibles las siguientes opciones específicas de BookingJs:

OpciónTipoDescripción
largeViewstringVista para anchos de pantalla superiores a 601px
smallViewstringVista para anchos de pantalla inferiores a 601px
useCustomTimumCssbooleanEstablecer en false para desactivar las sobrescrituras CSS de FullCalendar de timum
Configurar FullCalendar
timum.init(
  {
    ref: 'ihre-ressourcen-referenz',
    calendarFrontend: 'fullCalendar',
  },
  undefined,
  // Tercer argumento: opciones de FullCalendar
  {
    largeView: 'dayGridMonth',
    smallView: 'listWeek',
  }
);

Nota:

FullCalendar no se basa en MUI y, por lo tanto, ignora el objeto muiTheme.

Configuración global: window.timumBookingConfig

Además de los objetos que se pasan directamente a init(), BookingJs lee una configuración global opcional desde la página anfitriona: window.timumBookingConfig. Esto le permite adaptar BookingJs sin modificar el propio código de inserción – ideal cuando el snippet es generado por un plugin de CMS o un backend, pero usted controla el HTML circundante.

Orden de resolución

Las configuraciones se resuelven en este orden – las fuentes posteriores sobrescriben a las anteriores, mediante una fusión profunda a nivel de clave:

  1. Valores predeterminados de BookingJs
  2. appConfig / muiTheme / fcConfig, pasados directamente a init()
  3. window.timumBookingConfig.appConfig / .muiTheme / .fcConfig – se aplica a todas las instancias de la página
  4. window.timumBookingConfig[rootElId] – se aplica únicamente a la instancia con el appConfig.rootElId correspondiente
  5. Parámetros de URL (máxima prioridad)
Configuración global
window.timumBookingConfig = {
  // Se aplica a cada instancia de BookingJs en la página
  appConfig: { culture: 'de' },
  muiTheme: { palette: { primary: { main: '#337ab7' } } },

  // Solo para la instancia con este rootElId (p. ej., un snippet de provider channel)
  'bookingjs-dd8d32cc-b53b-4ab4-af52-41325000592b': {
    appConfig: { height: 700 },
    muiTheme: { palette: { primary: { main: '#ff5722' } } },
  },
};

Configurar snippets de provider channel de forma específica

Cada snippet generado en la interfaz de timum representa un provider channel y ya contiene rootElId: "bookingjs-<provider-channel-uuid>" en su llamada a init(). Utilice exactamente esta clave en window.timumBookingConfig para configurar un único snippet sin modificar el código generado.

Momento:

window.timumBookingConfig debe estar definido antes de que se inicialice BookingJs – los cambios posteriores no se tienen en cuenta. Las claves appConfig, muiTheme y fcConfig están reservadas y no deben utilizarse como rootElId.

Componente React:

El componente React TimumBooking ignora deliberadamente window.timumBookingConfig – los usuarios de React pasan appConfig, muiTheme y fcConfig directamente como props.

Ejemplo completo

Configuración extensa
timum.init({
  // Referenciación
  ref: 'ihre-ressourcen-referenz',
  prdRefs: ['besichtigung', 'beratung'],
  channelKey: 'RESOURCE_PUBLIC',

  // Visualización
  height: '600px',
  calendarFrontend: 'detailsListView',
  culture: 'de',

  // Comportamiento
  allowCloseOnBooking: true,
  constrainDialogsToContainer: true,
  hideTimumFooter: true,

  // Identificación del cliente
  pData: {
    platform: 'onoffice',
    personId: '12345'
  },

  // Callbacks
  callbacks: {
    createBookingSuccessful: ({ timeslot, data }) => {
      console.log('Buchung erfolgreich:', timeslot);
      // Analítica, redirección, etc.
    },
    fetchingBookablesSucceeded: ({ bookables }) => {
      console.log('Termine geladen:', bookables);
    }
  }
});

Temas relacionados