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
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
/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.
/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.
/node/{node}/add-reservation
Crear una nueva reservación/reserva para un nodo reservable.
Permissions 6
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
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.
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.
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 necesitan el permiso 'create bee reservation'. Verifique que el permiso esté asignado a los roles apropiados.
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.
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'