Hotel Booking System for Ubercart
This module was developed to allow hotel bookings to be placed through a drupal website, leveraging ubercart for billing & payment information handling. Built to handle the needs of both the Water Park of America and Grand Hotel Minneapolis, this module provides flexible and highly configurable pricing and availability, allows for restrictions on any room type by date, and allows any other product to be configured as an add on or upgrade item. While primarily developed for in-house use, the module was released with a GPL license to leverage the power of the drupal community to aid in testing during the development process in an effort to speed the product to market. In the process, it has been put into use on a number of websites throughout the community in usage scenarios ranging from a motor lodge in Australia, to a collection of rental properties in Scotland, and several people are even making great strides toward using it for booking portal sites allowing individual hoteliers to manage availability of their own properties! Here's an overview of some of the more interesting features and functionality of the module:
- Any number of room types can be created
- Any number of base rates can be created
-
Any number of rate modifiers can be created
- Rate modifiers adjust a base rate by a value or percentage
-
Any number of occupancy modifiers can be created
- Occupancy modifiers are established for adults or children, and adjust the price of a room each night of a stay by a value when the total number of adults or children exceed the modifier's threshold.
- Occupancy modifiers are applied from the highest threshold downward. Example, you have one adult modifier with a threshold of 2 that adds $10, and one adult modifier with a threshold of 4 that adds $15; If a search is run for 6 adults (and there is a room that will hold that many) adults 5 & 6 each increase the room rate by $15/night, and adults 3 & 4 each increase the room rate by $10/night. So what may normally be a $100/night room would be $150/night for 6 adults with these modifiers.
-
Each room type can be assigned:
- 1 base rate
- 1 rate modifier
- any number of available occupancy modifiers
- Rooms can have a default number to make available, and a default minimum occupancy requirement set
-
Each night for any room type can have any of (none of, or all of) the following restrictions:
- Minimum Night Stay
- Minimum Occupancy
- No Check-In's
- No Check-Out's
-
Products of any product class (except other room types) can be configured as addon/upgrade items
- List of products available to be configured as addon/upgrade items can be unfiltered and show all product nodes (other than hotel room type nodes) or filtered to any product class. If the list is filtered then generic product nodes are not available. are not available in the list of available products when configuring a new addon/upgrade. Previously configured ones will continue to work.
- Products already configured as addon/upgrade items will not display in the list when configuring a new addon/upgrade option. Should make life easier if you have a lot of products.
- Attributes are not currently supported, just the base product.
-
Addon/Upgrade items can be configured to offer a maximum quantity of one of the following:
- One per stay
- One per guest per stay
- One per day (including or not including Check-In and/or Check-Out)
- One per guest per day (including or not including Check-In and/or Check-Out)
-
Addon/Upgrade items can have availability limited by days of the week and/or months of the year
- This is not as specific as saying this item is only available October 15th - 27th in 2011, but if you had something that was only available Monday, Wednesday, and Friday From September thru November that's no problem.
-
Addon/Upgrade items appear in the cart like normal products
- They have a modified name specifying which room they are tied to, and link back to the upgrade/addon page to modify quantities.
- Removing the Room Booking item from the cart will remove all associated addon/upgrade items.
- Addon/Upgrade items, therefore do not have a delete checkbox or modifiable quantity field in the cart.
- Additionally this means that standard taxes, discounts, etc that apply to these products continues to function as expected.
-
Room Bookings appear in the cart as a normal product
- Their name is modified to include the number of nights, adults, and children
- They show as a single quantity (non-editable) as it represents a single booking of that room type for the specified dates
- Price displays as the total for all the nights with all modifiers applied in the cart
- Number of calendars to display on a Room Type node page are configurable
-
Where to redirect when a Book This Room button is pressed on one of the search results is configurable:
- Cart page
- Addon/Upgrade page
- Any other page on the site
- Page title of Upgrade/Addon page is configurable
- Header text displayed above the list of available upgrades and addons on the Upgrade/Addon page is configurable
- A Room Type can be selected from a drop-down list to add a View Availability of Best Room Rate link to the top of the search widget block (once room type nodes have been created) or no selection prevents the link from appearing in the block.
- Search result sort order can be specified from lowest price to highest price, or highest price to lowest price
- Choose whether or not to display the teaser of the room type node in the cart
- A prompt can be specified that will collect a rewards membership number during checkout, leaving this blank will prevent the reward membership checkout pane from being displayed
- Room Search Block (obviously)