Creating a Bookable Product

To accept bookings, you need to create a bookable product.

1. Go to: Products > Add Product. A familiar WooCommerce interface for product creation appears.

2. Enter a title and description for your product.

3. Select Bookable Product in the Product Data dropdown menu.

2013-12-02 at 12.074. Tick the Virtual checkbox, if your product does not require shipping. This omits the Shipping Costs tab from your product.

Fields will change to reflect bookable products.

General settings ↑ Back to top

The first settings are booking duration, calendar display and confirmation preferences.

Screenshot 2015-01-13 10.22.00

Booking duration ↑ Back to top

This determines how long a booking lasts. The duration can be admin defined (fixed block) or customer defined (they need to input on the front-end). Duration units can be Hours, Minutes, Days or Months.

Fixed blocks have a set duration that you define. The customer can only choose one block which will last the defined amount of time. For example hair dresser appointment lasts one hour and you can only book one at a time.

Customer-defined blocks have a set duration, but the customer can choose how many blocks they want. For example, the coworking space is rented out in hourly intervals, and the customer can defined how many 1 hour block they want to rent.

If you set your booking to be customer defined, you can include a minimum and maximum allowed value in the General tab. This allows for a more flexible starting schedule. You can define 30-minute blocks and set the minimum to 2 blocks. Your customers now need to book at least one hour, and can add increments of 30 minutes.

A booking can be set in blocks using minutes, hours, days, weeks and months. If using hours and minutes, you can specify what time the bookings start.

Calendar display mode ↑ Back to top

Select whether to always show the calendar or only when clicked.

Confirmation ↑ Back to top

If the booking needs to be reviewed by an Admin before confirmation, tick the Requires confirmation? checkox. Rather than take payment at checkout, the user inputs details and submits them for approval.

To learn more, see Manage Booking.

Bookings requiring approval will remove other items from the cart. They must be checked out alone, so payment gateways can be safely disabled.

Cancellation ↑ Back to top

You may choose whether you want the user to have the option to cancel their booking. After selecting the option Can be cancelled?, two fields appear that allow you to choose how many Minutes/Hours/Days/Months prior to the start date that customers can cancel a booking.

Availability settings

Availability (what slots can be booked) can be controlled via the Availability tab. The first options allow you define dates that can be booked:

bookings-availability-buf

Max bookings per block ↑ Back to top

This setting allows multiple bookings at the same time. With a fixed booking of 1 day and maximum bookings per block set to 2, then each day you can accept two bookings.

Minimum/Maximum block bookable into the future ↑ Back to top

If today is March 1 and you set minimum block bookable to 1 month into the future, then the first date a customer could book would be April 1. The same applies to the maximum date bookable.

Require a buffer period between bookings ↑ Back to top

Based on the unit of time set for the booking (minutes, hours, days, months), you can specify a period of time after a confirmed booking that is unavailable for anyone else to book. For example, if you sell appointments in 1-hour blocks and wish to have a break of 1 hour between them, you can specify a buffer period.

All dates are ↑ Back to top

Depending on how you want to set up availability, this option allows you to set available by default or not available by default.

Check rules against ↑ Back to top

You have two options:

  • All blocks being booked – This checks all available blocks within a duration. For example if a customer chooses to book for 5 days and 1 block is equal to 1 day, it will check availability for all 5 days.
  • Starting block only – This checks the first block the user selects. For example if a customer chooses to book for 5 days and 1 block is equal to 1 day, it will only check availability for the first day.

Custom Availability Range ↑ Back to top

You can set up specific availability rules, such as availability for:

  • Months
  • Day of the week
  • Time
  • Specific date

To add a rule, click the Add Range button:

Bookings - Add Range

A new row is created, where you can choose a range type, from/to, whether it’s bookable or not (yes or no) and a priority number.

Bookings - Ranges

The from/to values differ based on the range type:

  • Date range – from and to will show a datepicker field
  • Range of days – from and to will show a dropdown of days of the week (Monday to Sunday)
  • Range of months – from and to will show a dropdown of months (January to December)
  • Range of weeks – from and to will show a dropdown of weeks (1 to 52)
  • Time ranges – from and to will show time inputs
  • Date Range with time – a time range can be set based on a custom date range
WooCommerce Bookings - Date Range with Time
These rules make bookings available from 9:00 am-6:00 pm daily, except for the month of January when bookings cannot be made between 3:00-6:00 pm.

Note that the time range are not opening hours, but booking hours. If you offer 1-hour time blocks and your shop is open from 9:00 am to 6:00 pm, your last booking is at 5:00 pm, not 6:00 pm.

By default, Global availability rules take priority over product level availability rules and product availability rules take priority over resource priority rules. The order can be changed using the priority numbers. A lower priority, irrespective of context, overrides any other context with higher priority number. For example, a 9 will always override 10, even if 10 is on the Global level.

If multiple rows have the same priority, the rules higher on the list will take priority.

Rows can be removed by clicking the X on the far right, or dragged and dropped to sort using the handle on the far left.

Also be aware that availability options can be set up globally if all bookable products share some dates. To read more about Global availability, see Booking Settings.

Costs for Bookable Products ↑ Back to top

Costs for specific slots are controlled from the Booking Costs tab.

Screenshot 2015-01-15 14.55.51

The two main costs you can add are Base cost and Block cost.

  • Base cost is applied regardless of a customer’s choices on the booking form.
  • Block cost is the cost per block that was assigned in the General tab. If a customer books multiple blocks, this cost is multiplied by the number of blocks booked.

Display cost does not affect the actual cost of the product. In the example above, the product page displays 500 on the frontend. The cost is displayed to the user on the frontend. Leave blank to have it calculated for you. If a booking has varying costs, this is prefixed with the word “from:”

Beneath the display cost, you have an area where you can define extra costs. This works similar to availability. Click Add Range to begin:

Screenshot 2015-01-15 14.59.03

A row appears where you can input the range type, from/to and cost:

Screenshot 2015-01-15 14.59.56

The from/to values differ based on the range type:

  • Date range – from and to will show a datepicker field
  • Range of months – from and to will show a dropdown of months (January to December)
  • Range of weeks – from and to will show a dropdown of weeks (1 to 52)
  • Range of days – from and to will show a dropdown of days of the week (Monday to Sunday)
  • Time range – from and to will show time inputs
  • Date range with time – a time range can be set based on a custom date range
  • Persons count – from and to will show number inputs.
  • Block count – from and to will show number inputs.

Base cost and Block cost can be added, subtracted, multiplied or divided by the amount you enter.

Rows can be removed by clicking the X on the far right, or dragged and dropped to sort using the handle on the far left.

This configuration will charge a block cost of 100, but between Dec. 23 - Jan. 1, there is an extra fee of 20 if the bookings are between 5-9pm.
This configuration charges a block cost of 100, but between Dec. 23 – Jan. 1, there is an extra fee of 20 if bookings are between 5:00-9:00 pm.
If multiple rows match, all additional costs are used.

Persons ↑ Back to top

If the booking can be made for multiple persons at once, tick the Has persons checkbox. Once selected, a new tab appears:

Screen Shot 2014-11-20 at 11.21.05

You can set a min and maximum for persons. Similar to duration, the customer can input a value on the frontend booking form, if enabled.

Persons also impacts the following cost options:

  • If multiple costs by person count is enabled, all costs are multiplied by the number of persons the customer defines.
  • If count persons as bookings is enabled, the person count is used as the quantity against the block. Remember the max bookings per block setting above? That determines the upper limit for allowed persons per block. Once the limit is reached, more persons cannot book.

The Persons tab also allows you to define different prices depending on the person type. You might want to offer a different price for children or for teachers on a museum tour for example. To set up different person types, tick the Enable Persons Type checkbox in your Persons Tab:

person-type

Once you tick this checkbox, you have the option to add multiple types.

Give your Person type a name and define the cost for the type. Adding a description is optional.

You can define a minimum and a maximum number for each person type. For example, you could require at least one adult for each booking while making children optional (minimum 0). If you leave Max blank, there are no other restrictions than those of the bookable product itself.

different-prices

Resources

For added flexibility, WooCommerce Bookings supports Bookable Resources that can be booked independently within a bookable product. Tick the Has resources checkbox to enable a new tab:

Screen Shot 2014-11-20 at 11.24.28

There are two types of bookable resource:

  • Customer defined – A booking form shows a dropdown list of resources that the customer can select.
  • Automatically defined – A resource is automatically assigned to a customer booking if available.

An example use-case for a customer-defined resource would be a room type, such as single and twin rooms.

An example use-case for an automatically defined resource would be a hair salon where the resources are staff and someone is assigned a booking.

After enabling resources, choose that option and give your resource a label. This is shown on the frontend booking form.

Resources can be used globally across multiple products. For more information, see: Using Resources.

WooCommerce - the most customizable eCommerce platform for building your online business.

Back to the top