This module integrates Drupal Commerce with BAT (Booking and Availability Tools) to allow selling bookable products like rentals and timeslots online. It provides real-time availability calendars, capacity management, and admin tools for blocking out inventory.
Connects Drupal Commerce to BAT so you can sell rentals and timeslots with live availability calendars, capacity presets, and admin blockouts.
Features
- Adds a booking layer to Drupal Commerce using BAT (Booking and Availability Tools).
- Supports two modes: rentals (date ranges) and timeslots (lessons).
- Real‑time availability calendars on the add‑to‑cart form (FullCalendar or Flatpickr).
- Capacity presets (shared or separate) and shared capacity pools across variations.
- Admin blockout calendar to reserve inventory and see orders.
- Bulk order sync to rebuild BAT events when needed.
Use this module when you need a Commerce checkout for bookable inventory, plus a calendar‑driven UX for selecting dates or time slots.
I'm sure there were other ways to do the same thing this module does but it works for my needs.
Post-Installation
1. Enable Commerce BAT and its dependencies.
2. Go to `/admin/commerce/commerce-bat` (settings overview):
- Map variation types to rental or timeslot mode.
- Choose calendar plugins and defaults.
- Configure capacity defaults/presets.
3. Add/confirm the BAT Date/Time widget on the add‑to‑cart form display.
4. Create capacity presets (optional) at `/admin/commerce/commerce-bat/capacity-presets`.
5. Use the admin blockout calendar at `/admin/commerce/commerce-bat/blockout`.
6. If importing existing orders, run the bulk sync once.
Additional Requirements
- Drupal Commerce (commerce_product, commerce_order, commerce_cart, commerce_store, commerce_price).
- BAT modules: bat, bat_unit, bat_event.
- Core module: datetime_range.
- JS libraries: FullCalendar and Flatpickr (CDN fallback or local copies).
Recommended modules/libraries
- FullCalendar v6.1.11+(best UX for calendars and timeslots).
- Flatpickr v4.6.13+ (lighter date picker).
- Views (for custom order reporting).
Similar projects
- BAT alone provides booking entities but not Commerce checkout integration. For e.g You can look into BEE(Bookable Entities Everywhere)
- Commerce booking modules exist, but this module focuses on calendar UX, shared capacity pools, and admin blockouts tightly integrated with Commerce.
Supporting this Module
Please use the Drupal.org issue queue for support and feature requests.
Community Documentation
See the README docs included with the project for setup and validation steps.
DO NOT USE THESE VERSIONS:
1. 1.5.0
2. between 2.0.0 & 2.2.0-alpha2
These versions have a flaw that I missed that causes an error at checkout:
Root cause: `commerce_bat_checkout_submit()` called `Transaction::commitOrRelease()`, which exists in Drupal 11 but not Drupal 10. Drupal 10 commits when the transaction object is destroyed.
Depends on
Dependencies of the latest stable release
- bat Drupal core
- bat_event Drupal core
- bat_unit Drupal core
- commerce Drupal core
- commerce_cart Drupal core
- commerce_order Drupal core
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 2.2.0-alpha11 | Pre-release | 10–11 | Aug 17, 2026 | ||
| 2.2.0-alpha8 | Pre-release | 10–11 | Aug 15, 2026 | ||
| 2.2.0-alpha7 | Pre-release | 10–11 | Aug 14, 2026 | ||
| 1.5.1 | Stable | 10–11 | Aug 10, 2026 | ||
| 2.2.0-alpha3 | Pre-release | 10–11 | Aug 10, 2026 | ||
| 2.2.0-alpha2 | Pre-release | 10–11 | Commerce BAT 2.2.0-alpha2 improves booking reliability, migration safety, pricing consistency, calendar plugin compatibility, and admin blockout calendar usability. | Aug 9, 2026 | |
| 2.1.0-alpha2 | Pre-release | 10–11 | Aug 8, 2026 | ||
| 2.1.0-alpha1 | Pre-release | 10–11 | Aug 8, 2026 | ||
| 2.0.0 | Stable | 10–11 | Aug 8, 2026 | ||
| 1.5.0 | Stable | 10–11 | Connects Drupal Commerce to BAT for date-range and timeslot bookings with reusable Booking Types, availability profiles, capacity presets, calendars, and order synchronization. | Aug 8, 2026 | |
| 1.4.4 | Stable | 10–11 | Jan 23, 2026 | ||
| 1.4.3 | Stable | 10–11 | Add configurable order item titles for clearer bookings | Jan 21, 2026 | |
| 1.4.2 | Stable | 10–11 | Deprecation fixes + reoccurring logic fix | Jan 21, 2026 | |
| 1.4.1 | Stable | 10–11 | Jan 21, 2026 | ||
| 1.4.0 | Stable | 10–11 | Release 1.4.0: Health checks, unit mappings, shared pool fix | Jan 21, 2026 | |
| 1.3.1 | Stable | 10–11 | capacity preset grouping fix | Jan 21, 2026 | |
| 1.3.0 | Stable | 10–11 | Critical Fix: BAT State Table PRIMARY KEYs | Jan 19, 2026 | |
| 1.0.x-dev | Dev | 10–11 | dev release | Jan 18, 2026 | |
| 1.2.0 | Stable | 10–11 | Multi-value order references for merged events | Jan 18, 2026 | |
| 1.1.1 | Stable | 10–11 | New feature and minor patch | Jan 17, 2026 | |
| 1.0.0 | Stable | 10–11 | Initial release | Jan 16, 2026 |