Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Usage Milestone: Time Field for Drupal 8+ Module time_field crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Commerce BAT Availability

6 sites No security coverage Drupal 10–11 Commerce ecosystem
View on drupal.org

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).

- 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

Tracked releases
21
Tracked since
Jan 2026
Latest release
2 weeks ago
Releases (12 mo)
21 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core 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 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 Aug 8, 2026
1.4.4 Stable 10–11 Jan 23, 2026
1.4.3 Stable 10–11 Jan 21, 2026
1.4.2 Stable 10–11 Jan 21, 2026
1.4.1 Stable 10–11 Jan 21, 2026
1.4.0 Stable 10–11 Jan 21, 2026
1.3.1 Stable 10–11 Jan 21, 2026
1.3.0 Stable 10–11 Jan 19, 2026
1.0.x-dev Dev 10–11 Jan 18, 2026
1.2.0 Stable 10–11 Jan 18, 2026
1.1.1 Stable 10–11 Jan 17, 2026
1.0.0 Stable 10–11 Jan 16, 2026