Create a Hotel Booking site


Download and install the following modules

Configuring the hotel booking module

Visit Admin -> Store administration -> Hotel Booking -> Settings to choose your configuration options. Key choices are as follows:
  • Number of months to display (calendars)
  • Text to display on the room booking button
  • Whether or not to ask for the number of children or smoking preference
  • How to sort the search results
  • Whether to show calendars in search results
  • Whether to include teasers/full nodes in the search results (Drupal 6 only, Drupal 7 version includes a new node display mode for the search results so you can fine tune the format)
  • Whether or not to make rooms available by default, and if so for how long
  • When to consider rooms no longer available (relies on cron)
  • How to display the rooms in the cart

Setting up your rates

In order for your rooms to be booked, you need to set up rates. You can define multiple base rates, with prices set by date. So you may charge additional for the weekend etc. You may also define rate modifiers, making the task of administering the rates more simplified. In addition you may define occupancy modifiers, allowing you to charge an additional fee when the number of adults or children exceed a particular threshold.

Setting base rates

To set your base rates head to Adminstration -> Store Administration -> Hotel Booking -> Base Rates. Click on 'Add base rate' to add your base rate. The add base rate form is displayed. First you need to enter a name for the base rate, eg 'Standard Rate' Then you need to enter the nightly rate for each of the dates. There is a field to enable you to quickly set all dates in a month to a particular price. You may enter a different rate for weekends or peak periods. Save your base rate once done.

Adding rate modifiers

If you charge different rates for different room types but don't want to maintain two or more sets of base rates, you may enter a rate modifier. Rate modifiers add a fixed amount or percentage onto an existing base rate. To add a rate modifier visit Administration -> Store Administration -> Hotel Booking -> Rate modifiers and click the add modifier link. Complete the form by adding your modifier value, selecting the type of modifier and clicking save.

Occupancy modifiers

If you wish to charge extra for additional room occupants, you may create occupancy modifiers. To add an occupancy modifier, visit Administration -> Store Administration -> Hotel Booking -> Occupancy modifiers and click the add modifier link. To add a modifier, first nominate the type of occupant it applies to:
  • To have it apply to only adult occupants, choose Adults
  • To have it apply to only child occupants, choose Children
  • To have it apply to all occupants, choose Occupants
Enter a threshold and an adjustment amount. So for example, if your room price is $100 for 1-2 adults, $10 for each additional adult and $5 for each additional child - you need two occupancy modifiers as follows: One for adults with a threshold of 2 and an adjustment amount of $10. One for children with a threshold of 0 and an adjustment amount of $5.

Creating room types

To enter your stock of rooms, you need to create Hotel Room Type nodes. To create your first room visit Administration -> Content Management -> Create Content -> Hotel room Type. Give your room a title and description. You may optionally enter a room code or SKU. If you have configured other CCK fields such as images, provide the details as desired.

Setting the rate

Now you need to enter your rate settings. Under the base rate, choose your desired base rate you created earlier. Under the rate modifiers, choose a modifier if appropriate. If not, choose 'Base Rate' to just use the base rate. Under occupancy modifiers, choose all applicable modifiers. Continuing the previous example, you could choose your $10 for each additional adult over 2 and $5 for each additional child over 0 created earlier.

Other room attributes

Next you need to enter the default number of rooms available. Enter the number of rooms of this type you have. Entering the value here will save time later and failure to do so will prevent the use of the auto-availability setting (see above). If you don't use the auto-availability feature, the value you enter here will be used as the default number of rooms available when you first edit the availability of a room type - hence saving you a lot of time. You can enter a minimum occupancy requirement as well, for example if you enter 2 as the minimum occupancy, the room can't be checked out by a single occupant. You must also enter a maximum occupancy. This will alter the room type's visibility in the search results - based on the quantity of adults and children the users searches for. Finally, if applicable nominate the room types Smoking or Non smoking status. Next you may save the room type node.

Setting availability

If you have enabled the auto availability setting, you will notice that the room type created displays as available when you first save the node. If you didn't or you wish to edit the availability, you will find a small edit link in the top of each month in the availability calendar. (Note if you don't have adequate permissions you won't see the link). Clicking this link takes you to a form allowing you to override the number of rooms available for this room type on each day of the month and enter restrictions. Available restrictions for each day of the month include:
  • Minimum stay
  • Minimum occupants
  • No check in
  • No check out
Edit your availability and hit save.

Searching for rooms

The rooms can be searched from either /hotel-booking/search or by enabling the Hotel Booking Search Widget block. For the best experience it is recommended to disable the block on the search page by adding hotel-booking/search to the page visibility settings for the block.

Check out process

Once the user searches for rooms using the search form, they are able to click 'Book Now' next to any of the search results to add their booking to the cart. From there the standard Ubercart checkout process follows.