BEE Entidades Reservables en Todas Partes

Un módulo de gestión de reservas y disponibilidad basado en BAT que permite que cualquier tipo de nodo sea reservable con capacidades de reserva diaria u horaria.

bee
257 sites
68
drupal.org

Overview

Bookable Entities Everywhere (BEE) es un potente módulo de Drupal que extiende el framework BAT (Booking and Availability Tools) para proporcionar funcionalidad de reservas y disponibilidad a cualquier tipo de contenido. El módulo permite a los constructores de sitios hacer cualquier tipo de nodo reservable sin necesidad de desarrollo personalizado.

BEE soporta dos modos de granularidad de reservas: reservas diarias para reservaciones de días completos (ideal para alquileres vacacionales, alquiler de equipos) y reservas horarias flexibles para reservaciones basadas en tiempo (ideal para salas de reuniones, citas). Cada nodo reservable puede tener una o múltiples unidades para manejar recursos idénticos (por ejemplo, múltiples copias del mismo equipo o múltiples asientos).

El módulo proporciona un calendario de disponibilidad mostrado en cada nodo habilitado, un formulario de reservación completo y la capacidad de establecer horarios de apertura para reservables por hora. Cuando se integra con Drupal Commerce, BEE permite el procesamiento de pagos para reservaciones con precios configurables por día o por hora/minuto.

BEE también soporta reservas recurrentes con frecuencias diarias, semanales o mensuales, lo que lo hace adecuado para eventos recurrentes o asignaciones regulares de recursos.

Features

  • Hacer cualquier tipo de nodo reservable a través de la configuración del tipo de contenido sin código personalizado
  • Soporte para reservas diarias (días completos) y reservas horarias flexibles (cualquier duración)
  • Múltiples unidades por nodo para manejar recursos idénticos (por ejemplo, 10 salas de reuniones idénticas)
  • Calendario visual de disponibilidad usando FullCalendar para cada nodo reservable
  • Horarios de apertura configurables para tipos de reserva por hora usando el campo Office Hours
  • Integración con Commerce para procesamiento de pagos con precios configurables por día/hora/minuto
  • Soporte de reservas recurrentes con frecuencias diarias, semanales o mensuales
  • Formulario de gestión de disponibilidad para actualizar estados de disponibilidad de unidades
  • Permisos dinámicos por tipo de contenido para gestionar disponibilidad
  • Soporte de series de eventos para reservaciones recurrentes
  • Creación automática de unidades BAT cuando se crean nodos
  • Hook de alteración de precios para lógica de precios personalizada

Use Cases

Sistema de Reserva de Salas de Reuniones

Configure un tipo de contenido 'Sala de Reuniones' con reservas por hora. Cada nodo de sala obtiene un calendario de disponibilidad. Los usuarios pueden reservar salas para franjas horarias específicas. Establezca horarios de apertura (por ejemplo, 8 AM - 6 PM días laborables) para restringir los tiempos de reserva. Múltiples salas idénticas pueden manejarse con múltiples unidades por nodo.

Propiedad de Alquiler Vacacional

Cree un tipo de contenido 'Propiedad' con reservas diarias configuradas como 'generalmente disponible'. Cada propiedad tiene una unidad por defecto. Habilite pagos de Commerce para cobrar por noche. Los propietarios con permiso 'gestionar disponibilidad para nodos de propiedad propios' pueden marcar fechas como no disponibles para mantenimiento.

Servicio de Alquiler de Equipos

Configure un tipo de contenido 'Equipo' con reservas diarias. Para artículos con múltiples copias (por ejemplo, 5 laptops idénticas), agregue unidades adicionales a través del formulario de edición del nodo. El calendario muestra disponibilidad a través de todas las unidades y asigna automáticamente una unidad disponible a cada reservación.

Programación de Citas

Cree un tipo de contenido 'Servicio' con reservas flexibles por hora. Configure horarios de apertura por nodo de servicio. Integre con Commerce para citas de pago. Use reservas recurrentes para citas regulares (por ejemplo, sesiones semanales de terapia).

Reserva de Tours o Eventos

Use el modo 'periódicamente disponible' para un tipo de contenido 'Tour'. Los tours no están disponibles por defecto y solo se hacen disponibles para fechas/horas específicas a través del formulario de gestión de disponibilidad. Habilite capacidad para permitir múltiples participantes por franja de tour.

Reservaciones Basadas en Webform

Use el submódulo bee_webform para incrustar formularios de reservación en webforms. Los usuarios seleccionan fechas y ven nodos disponibles, luego envían el formulario para crear reservas. Útil para flujos de trabajo de reserva complejos que requieren recolección de datos adicional.

Tips

  • Use el modo 'generalmente disponible' para recursos que típicamente están disponibles (salas de reuniones, equipos) y 'periódicamente disponible' para recursos que necesitan ventanas de disponibilidad explícitas (tours, eventos especiales)
  • Agregue múltiples unidades a un nodo cuando tenga recursos idénticos - el sistema asigna automáticamente unidades disponibles a las reservaciones
  • La configuración de duración de reserva (diaria vs por hora) no puede cambiarse después de la configuración inicial, así que planifique en consecuencia
  • Use el hook hook_bee_reservation_price_alter para implementar precios dinámicos basados en temporadas, duración u otros factores
  • Para flujos de trabajo de reserva complejos que requieren datos adicionales, considere usar el submódulo bee_webform para crear formularios de reserva personalizados
  • El campo de capacidad en las reservaciones permite reservar múltiples unidades a la vez, útil para reservas grupales o reservaciones de múltiples recursos

Technical Details

Admin Pages 3
Configuración BEE del Tipo de Contenido /admin/structure/types/manage/{node_type}

Configure los ajustes de reserva BEE para un tipo de contenido específico. Aquí es donde habilita la reservabilidad y configura los parámetros de reserva para el tipo de contenido.

Gestión de Disponibilidad /node/{node}/availability

Gestione la disponibilidad de las unidades de un nodo reservable. Vea y actualice los estados de disponibilidad a través de una interfaz de calendario.

Agregar Reservación /node/{node}/add-reservation

Crear una nueva reservación/reserva para un nodo reservable.

Permissions 6
Administrar configuración de bee

Permite a los usuarios configurar los ajustes de BEE en tipos de contenido

Crear reservación bee

Permite a los usuarios crear reservaciones en nodos reservables

Ver datos del calendario para cualquier evento availability_daily

Permite ver datos del calendario de disponibilidad diaria

Ver datos del calendario para cualquier evento availability_hourly

Permite ver datos del calendario de disponibilidad por hora

Gestionar disponibilidad para todos los nodos {bundle}

Generado dinámicamente por tipo de contenido - permite gestionar la disponibilidad para todos los nodos de este tipo

Gestionar disponibilidad para nodos {bundle} propios

Generado dinámicamente por tipo de contenido - permite gestionar la disponibilidad solo para nodos propiedad del usuario

Hooks 3
hook_bee_reservation_price_alter

Permite a los módulos alterar el precio calculado para una reservación BEE

hook_form_node_type_edit_form_alter

BEE agrega configuraciones al formulario de edición de tipo de nodo a través de este hook

hook_bat_api_events_index_calendar_alter

BEE altera eventos de calendario BAT para personalizar colores de visualización y etiquetas basadas en estados de disponibilidad

Troubleshooting 6
El calendario de disponibilidad no se muestra en el nodo

Asegúrese de que el tipo de contenido tenga BEE habilitado en su configuración. Verifique que el campo 'field_availability_daily' o 'field_availability_hourly' esté configurado para mostrarse en la configuración de visualización del nodo con el modo de vista de calendario apropiado.

No se puede habilitar la opción de pago para reservas

Los módulos de checkout y pago de Commerce deben estar instalados y habilitados. Además, al menos una Commerce Store debe estar configurada antes de que se puedan habilitar los pagos.

Las reservaciones no se crean después del checkout

Asegúrese de que el evento commerce_order.place.pre_transition se esté disparando. Verifique que el tipo de artículo de pedido BEE exista y que el campo de referencia de entidad de reserva esté correctamente configurado.

Los usuarios no pueden acceder al formulario Agregar Reservación

Los usuarios necesitan el permiso 'create bee reservation'. Verifique que el permiso esté asignado a los roles apropiados.

La pestaña de Disponibilidad no se muestra en los nodos

Los usuarios necesitan el permiso 'manage availability for all {type} nodes' o 'manage availability for own {type} nodes' para el tipo de contenido específico.

Los horarios de apertura no se respetan

Para tipos reservables por hora, asegúrese de que la casilla 'Establecer Horarios de Apertura' esté habilitada en el formulario de edición del nodo y que el campo de Open Hours tenga valores configurados.

Security Notes 4
  • BEE implementa permisos por tipo de contenido permitiendo control de acceso granular para gestión de disponibilidad
  • El permiso 'gestionar disponibilidad para nodos propios' restringe a los usuarios solo a su propio contenido, proporcionando capacidad multi-inquilino
  • La integración con Commerce sigue las prácticas de seguridad estándar de Drupal Commerce para procesamiento de pagos
  • El acceso a formularios de reservación está controlado por el permiso 'create bee reservation'