Skip to main content

Booking

This plugin adds a booking and capacity management system to HikaShop. It allows you to limit the number of orders or product purchases per combination of custom field values such as time slots, dates, room types, or any other custom field. It supports both order-level booking (checkout fields shared across the whole order) and item-level booking (per-product fields on the product page).

Features
  • Order-level booking: limit the number of orders per combination of order custom field values (e.g. delivery time slots at checkout).
  • Item-level booking: limit the number of purchases per product per combination of item custom field values (e.g. event dates, room types).
  • Configurable default capacity per field combination, with the option to take product quantities into account.
  • Capacity overrides: define specific capacities for individual field value combinations, products, weekday patterns (e.g. "friday-sunday"), or date wildcards (e.g. "25/12/*" for every Christmas).
  • Date range support: works with the datepicker field type's range mode for hotel-style check-in / check-out bookings with per-night capacity tracking.
  • Frontend availability display: color-coded datepicker calendars (green/orange/red), option indicators on dropdowns, radio buttons, and checkboxes, with configurable exact spot count or generic message.
  • Real-time AJAX availability checks on both the product page and checkout, preventing customers from selecting fully booked combinations.
  • Stock validation on add-to-cart and order creation, with clear error messages when capacity is reached.
  • Automatic stock release on order cancellation/refund, and re-consumption on un-cancellation.
  • Backend bookings listing with per-column filters: order number, type, product, field values, date period, and order status. Sortable columns and pagination.
  • Backend capacity overrides management with add/edit form, product selector, and field-type-specific inputs (multi-select for dropdowns, textarea with date patterns for datepickers).
  • Capacity override popup accessible directly from the product edit page for quick per-product configuration.
  • Product listing filter integration: when a datepicker or range datepicker filter is configured on a booking item field, the product listing automatically filters by availability, hiding products that are fully booked for the selected date(s). Works with single dates, date ranges, and margin days.
  • Filter-to-product pre-fill: when a customer selects dates in the listing filter and clicks on a product, the booking date field on the product page is automatically pre-filled with the selected dates.
  • CSV export of bookings, respecting all active filters.
  • Booking settings block on the product edit form with enable toggle, item fields multi-select, and default capacity.
  • Product copy copies capacity overrides, product delete cleans up overrides and bookings.
  • Hotel/lodging structured data: automatically enrich the product page JSON-LD with schema.org Hotel, HotelRoom, LodgingBusiness, or other accommodation types, including check-in/check-out times, occupancy, amenities, star rating, and bed details. Configurable via plugin settings with custom product field mappings or hardcoded values, and per-product schema type override.
  • Price per night and per season: a room can be priced per night, so a stay costs the sum of its nights. Seasons (high season, weekends, Christmas) are a short list in the plugin's settings, repeat every year and either add a percentage to the price, give a night price, or give a night price per traveller category (with the Price per category plugin). The total follows the dates picked on the product page, in the cart and in the order.
  • Compatible with Joomla and WordPress.
Date range booking on the product page with availability colors

Date range mode on the product page, with per-night availability colors guiding the customer's check-in / check-out selection.

Installation
  • 1) Download the plugin on our website via the download link provided to you after the purchase.
  • 2) Install it on your Joomla website via the extension manager and via the "Install plugin" button of System>Plugins on WordPress.
  • 3) Enable the plugin in Extensions > Plugins.
  • 4) In the plugin settings, select the order custom fields you want to use for booking capacity (e.g. delivery date, time slot).
  • 5) Set the default capacity (number of bookings allowed per field combination).
  • 6) For per-product booking, edit a product, enable booking in the Booking settings block, and select the item custom fields to track.
  • 7) Optionally, create capacity overrides via Orders > Bookings > Capacity Overrides to define specific limits for certain field value combinations.
Configuration
  • Order fields: select the order custom fields to track for booking capacity at checkout.
  • Default capacity: the default number of bookings allowed per combination of field values, when no specific capacity override is defined.
  • Take into account product quantity: when enabled, the stock reserved is based on the product quantities in the cart. When disabled, each order line counts as 1 regardless of quantity.
  • Show availability: display availability indicators (spot count, color-coding) on the frontend next to field options.
  • Show exact count: show the exact number of remaining spots. When disabled, a generic message is shown instead.
  • Seasons (tab Seasons): one row per season, used by the products where "Price is per night" is on. Nights covered: one line per period, every year: 07-01..08-31 (month-day to month-day, 12-20..01-05 runs over the new year), 12-25 (one day), 2026-12-24..2027-01-02 (this period only), friday-saturday (weekdays). Price of a night: +40% or -15% over the product's price, a price such as 140, or a price per traveller category such as adult=140, child=70; prices are without tax, in the shop's main currency. A night outside every season costs the product's price; when two seasons cover a night, the one lower in the list wins.
  • Price is per night (in the Booking block of the product): the price of the product is the price of one night, and a stay costs the sum of its nights (the check-out day is not a night).
Microdata settings

These settings control the structured data (JSON-LD) output on product pages for booking-enabled products. Each field mapping can be either a product custom field name (the value will be read from the product) or a hardcoded value.

  • Schema type: the schema.org type to use (Hotel, HotelRoom, LodgingBusiness, BedAndBreakfast, Hostel, Resort). Leave empty to keep the default Product type. Can be overridden per product.
  • Check-in time: check-in time (e.g. "14:00" or a custom product field name).
  • Check-out time: check-out time (e.g. "11:00" or a custom product field name).
  • Occupancy: maximum number of guests.
  • Amenities: comma-separated list of amenities (e.g. "WiFi, Air Conditioning, Minibar").
  • Star rating: hotel star rating (1-5).
  • Bed type: type of bed (e.g. King, Queen, Twin).
  • Number of beds: number of beds in the room.
  • Number of rooms: number of rooms available.
Use cases
  • Bakery / restaurant: limit the number of orders per delivery time slot (e.g. 10 orders for the 11 AM slot).
  • Event / workshop: limit the number of registrations per event date and session.
  • Hotel / rental: limit the number of rooms available per night using the datepicker range mode for check-in / check-out selection.
  • Appointment / service: limit the number of bookings per time slot per service provider.
  • Subscription box: limit the number of subscriptions starting on a given date.
Use
  • Requires HikaShop 6.4.1 or later
  • Requires the HikaShop Business edition (the plugin relies on custom item and order fields)
  • Compatible with PHP 7.4 minimum
  • Compatible with Joomla and WordPress
  • No limit of time
  • No limit of use
Changelog

1.2.0 on the 12th of October 2026

  • A product sold as an option of a room can now be charged once, per night, per traveller or per traveller and night, with the new "Charged as an extra" setting of the Booking block of the product. The price of the option follows the nights and the travellers of its room: on the total of the room's page, in the cart and in the order, where its name says how many (for example "Breakfast (3 travellers × 3 nights)"). Before, an option was charged once whatever the stay. It needs the "Group options" setting of HikaShop on, so that the options stay with their room in the cart.
  • In a search over all the rooms (a dates filter on the booking field), the nights on which every room is fully booked are now shown as booked and can not be picked. Before, the calendar of the filter offered them.
  • When an administrator confirms again an order that was cancelled and some of its nights were booked by other orders meanwhile, a warning now lists those nights (the order is booked anyway, as before). Before, nothing told the administrator that a room could be sold twice.
  • An order that was cancelled and is confirmed again (by the administrator, or by a payment notification) now books its nights again, one row per night as when it was placed. Before, the nights were not booked again when a customer's payment confirmed the order, or were booked as one row for the whole stay which did not take any night from the room, so the same nights could be sold twice.
  • A room priced per night now shows "From" its lowest night in the listings when the seasons change the price of a night (the word needs HikaShop 6.7.1 or later), and the product page shows the price of the stay picked ("4 nights: 418,00 €") under the price of a room which has no Price per category.
  • A room can now be priced per night: with "Price is per night" on its Booking block, a stay costs the sum of its nights, with seasons (a percentage, a night price or a night price per traveller category, repeating every year) set in a new Seasons tab of the plugin. The total follows the dates on the product page, in the cart and in the order. Before, a stay of five nights cost the same as one night.
  • Filtering the product listing by dates no longer ends on a "Failed opening required booking_filter.php" error: the file was missing from the plugin package, so the date filter only worked on a site where the plugin had been copied from the source.
  • The checkbox which selects every row of the bookings and of the capacities listing now has a name, so that a screen reader announces what it does instead of reading an unlabelled checkbox.

1.1.1 - 06 August 2026

  • Added the update system so the plugin now detects and offers its own new versions in the Joomla updater.

1.1.0 - 07 July 2026

  • The plugin interface is now available in 20 languages: English, German (Germany, Austria, Switzerland), French, Dutch, Japanese, Spanish, Italian, Portuguese (Portugal and Brazil), Polish, Swedish, Danish, Norwegian, Finnish, Russian, Chinese, Arabic and Turkish.

1.0.0 - 17 April 2026

  • Initial release of the plugin.
€ 50,00
logo_10962237
The add to cart button will appear once you select the values above
Type
Integration

Access to updates included for 4 years

A tax rate (between 17% and 27% based on your country) will be added if your address is in the European Union and that you don't provide a valid VAT number or if your address is in France as per the European Union law.