How to create a bookable product

Each product or service you want to offer to your customers through a booking system is managed on WooCommerce as a “bookable product”. So, no matter if you want to get bookings for a room, a hotel, guitar lessons, or a medical appointment: the first step is always to create a bookable product.

  • Create a new product in Products > Add New
  • In the Product Data section, select “Bookable Product” (9) and check also the option “Virtual” if the product is not a physical product that will be shipped. Then you will be able to see the “Booking Options” menu (10)
bookable product

Step 1 – Booking settings

In the Booking Settings panel you can start configuring your bookable product.

  1. Set the Booking duration: here you can set if your customers can book for minutes, hours, days or months (e.g.: for an appointment, users usually book for hours or minutes; for a hotel room, they usually book for days, etc.)
booking duration
  1. Enable the calendar range picker: by doing so, the calendar will be shown in the booking form on this product’s page.
enable calendar range picker
  1. Choose the default day to show in the booking form: you can choose to leave the field empty, show the current day, the current day + 1, the first date available, or set a custom date.
default start date
  1. Enable the “Full day booking” option: if this option is enabled, for a booking from day 1 to day 2, day 2 will be considered as fully booked and it will not be available for other customers to choose.
full day booking
  1. Set the allowed start day (e.g.: bookings can only start on Mondays) or leave empty if customers can start the booking any day of the week.
allowed start days
  1. Set the maximum number of bookings allowed per unit (e.g.: if you rent out three rooms in the same house, you can set “3”. If you rent out the entire house in a single booking and you need to prevent multiple bookings in the same period, you should set it as “1”).
max bookings per unit
  1. Optional: set a minimum/maximum booking duration (e.g.: you can decide customers need to book the hotel rooms for a minimum of three days). Leave these fields empty if you don’t need to set any limits.
min/max booking duration
  1. Optional: set a minimum/maximum advance reservation.
Min/Max advance reservation
  1. Set optional check-in and check-out times. This info will be shown in the booking form.
  1. Set an optional buffer time between bookings: this can be useful in case you need time between bookings for the cleaning service to take care of the room or simply a pause before the next booking begins.
  1. Enable the “Require confirmation” option if you want to get booking requests and confirm each request manually.
require booking confirmation
  1. Enable the “Allow cancellation” option if you want to allow customers to cancel their bookings. If this option is enabled, you can set a time limit, e.g.: the user can cancel a booking up to 3 days before the booking start date.
allow booking cancellation

Step 2 – People settings (available only if the “People” module is enabled)

In the People section you can set all the options related to the people types.

  • Enable the option to assign people to the product.
enable people option
  • Set a minimum and a maximum number of people per booking (e.g.: if you rent out an apartment with two rooms, you can set, for example, a minimum of 1 person and a maximum of 8 people).
Min/Max number of people
  • Enable the “Count people as separated bookings” option if you need to have only a fixed number of people per booking and count each person as a separate booking. This option is useful if you have limited availability for the bookable product, for example, you only have 10 bikes and you need to update the available quantity according to the bookings received.
Count people as separated bookings
  • Enable the “people types” option if you want to set the people types created in the plugin configuration panel for this specific product. By enabling this option, you will see a table below with a list of all the people types available.
Enable product people types
  • In the section below, you can enable the people types you want to show in this product and, for each of them, you can set the min/max number of people per booking (e.g.: you only want to allow a maximum of 2 children per booking). You can also set the price for each person, this will override the base price set for the product (e.g.: the base price is $100/day per person but you can override this just for students and give them a special price of $50/day).
People types configuration

Step 3 – Costs

In the Costs section you can set all the options related to the bookable product’s costs.

  • Set the base price (per hour/day/week: this depends on the booking duration you set before) and decide if you want to multiply the base price by the number of people or not. For example, you can rent out an apartment with a fixed price of $100/day, no matter how many guests are included in the booking, or set a price of $100/day to be multiplied by the number of guests.
Booking base price
  • If the option “Multiply by the number of people” is not checked, you can set an optional extra price for additional people (e.g.: you set a fixed price of $100/day for the first two guests and then an extra $20/day for each additional guest.
Extra price for every person added
  • Set an optional fee to charge and choose if you want to multiply the fee by the number of people or not (e.g.: an “individual tax fee” that all guests must pay or just a single fee to charge for the entire booking, no matter how many guests are included in the booking).
Fixed base fee
  • Create advanced price rules: you can use the rules to automatically increase prices during the high season (e.g.: +10% during July and August) and decrease them during the low season. You can also increase the price on Sundays or during holidays, or even set a discount on all bookings during Black Friday.
Advanced price rules

Step 4 – Availability

In the Availability section you can set all the options related to the bookable product’s availability.

  • Set the default availability: you can just leave the product as available all days and for the entire day or set a specific availability for days or hours.
Set the default availability

For example, a doctor’s office will be not available for appointments on Saturdays or Sundays; or you have an apartment that can be booked per day but you want to use it every Monday, so you need to set all Mondays as “Not bookable”.

  • Create advanced availability rules: you can use the rules to enable/disable the booking availability on specific dates or months (e.g.: a doctor’s office will be closed for holidays for the whole month of August, so you can create a rule to set August as “Not bookable”).

Step 5 – Resources (available only if the “Resources” module is enabled)

In the Resources section you can set all the options related to the resources.

  • Enable the option to assign resources to the product.
Enable product resources
  • Choose how to assign the resources: you can have customers select only one resource or multiple resources, or you can automatically assign one available resource or all resources.
  • Choose the resources layout: you can choose to show the resources either in a dropdown menu or as a list in the booking form. The “default” the resource layout will be the layout set in the plugin settings.
Resources layout on a product level
  • Set the label for the resources.
Resource labels
  • Choose the field placeholder for the resources (if you select a dropdown menu layout)
Field placeholder
  • In the section below, you can click on the “Add resource” button to choose which resources to assign to this product.
Add and remove resources
  • For each resource added, you can set the price and an optional fee.
Resource base price and fixed base fee

Resources will be shown in the booking form like this:

Resources example in the booking form

Final step

Now you can finish setting up the product by adding a short description and an image to identify the product, and publish it. This is the same process used to create a simple product on WooCommerce!