View Product Page

Step-by-step guides

General configuration

Bookable products with RESOURCES – use cases

How to enable the modules you need

For better plugin performance, you will find some features in our YITH Booking and Appoint plugin disabled by default. In the tab Modules, you can find all the modules you can enable to get additional options. Let’s briefly review each of them.

Modules tab

The available modules are:

People

With this module, you can create unlimited “people types” and set specific rules or prices for them (e.g.: Adults, Under 18, Children, Students, Over 60, Military Veterans, Members, etc.).

When enabled, the module allows you to manage additional options as described below:

  • Booking form – Check how to create people types here and how to show them in the booking form here.
  • Count people as separate bookings – If you have specific units for a bookable product/service that can’t be exceeded – for example, a mountain bike tour with limited bikes available for rent. Go here to learn how to configure the plugin.
  • Prices – You can create global or product price rules based on the people types. Go here for global price rules settings or here for product settings.
  • Search form – You can show the People field in the search form and allow users to enter the number of persons, even by people type. Go here to learn how.
  • Label – You can rename the default label by entering the text you prefer in the related field (People) available in the Customizations tab. Go here to see the option.
People

Services

With this module, you can create free or paid services to associate with your bookable products (e.g.: parking, breakfast, daily cleaning, chauffeur, insurance, etc.).

When enabled, the module allows you to manage additional options as described below:

  • Booking form – Check how to create services here and how to show them in the booking form here.
  • Costs – For every service you create, you can optionally set a cost as shown here.
  • Product price – You can decide whether to include the costs in the bookable product price shown on the shop page. To do it, you must enable the option that you find here.
  • Search form – You can show the Services field in the search form and allow users to select those they are interested in so only products with the selected services will show in the search results. Go here to learn how.
  • Label – You can rename the default label by entering the text you prefer in the related field (Additional services) available in the Customizations tab. Go here to see the option.
Services

Resources

With this module, you can create unlimited “resources” to associate with your bookable products (e.g.: equipment, staff, technology, software, etc.).

When enabled, the module allows you to manage additional options as described below:

  • Booking form – Check how to create your resources here and how to show them in the booking form here.
  • Bookable products – Resources can be added to your bookable products and configured as you need. Go here to learn how to add them.
  • Use of resources – Go to this page to see how to use resources.
Resources

Extra costs and discounts

With the ‘Extra costs and discounts’ module, you can create unlimited costs to apply to your bookings (e.g.: insurance, visitor’s tax, cleaning service, etc.) and set discounts for weekly or monthly bookings.

When enabled, the module allows you to manage additional options as described below:

  • Extra costs – Check here how to create the global costs for your bookable products.
  • Set prices – You must set the prices for the created global costs from the dedicated tab on the product edit page. You can optionally multiply the costs by duration and/or people. Check the settings here.
  • Discounts – Go here to learn how to create weekly, monthly, and last-minute discounts correctly.
Discount

Search forms

With the ‘Search form’ module, you can let your users search for specific bookable products and you can choose which filters to enable for each form (dates, people, services, etc.).

When enabled, the module allows you to manage additional options as described below:

  • Search forms – Check here how to create your search forms.
  • Shortcode – Go here to learn how to add a search form to your pages through the shortcode.
  • Widget – Go here to learn how to add a search form to your sidebars through the widget.
Search form

Google Maps

With the ‘Google Maps’ module, you can set the location for your bookable products, show a Google map on the product page, and allow your users to search for products by location.

Go here to see how to integrate Google Maps to show the location of your bookable products.

Google Maps

Google Calendar

With the “Google Calendar” module, you can synchronize your bookings with your Google Calendar.

Go here to see how to integrate Google Calendar and let the admin view the bookings also in their calendar based on what is configured in the one-way synchronization settings.

Admin Google calendar

External synchronization

With the module ‘External synchronization’ you can enable the auto-sync for the availability of your bookable products with external platforms like Booking, Airbnb, and HomeAway.

Go here to see how to iCal calendars of external services to prevent overbookings for your products thanks to a two-way synchronization.

External suhronization

How to set up the “people types” to assign to your bookable products

After you enable the “People” module in Modules, you will find the People subtab inside the plugin’s Configuration tab. Let’s review the steps to set up the people types as well as some examples.

  1. First, you need to go to YITH > Booking and Appointment > Configuration > People:
Create people types
  1. To create a new “people type” you simply need to enter the name, optionally, a short description, and click on the “Add new type” button. Then, it will appear in a table on the right:
Add new people type
  1. Now, following the previous steps, let’s create a new one. In this case, it will be for people over 60 years old. After entering the details and clicking save, it appears in the table:
People type - over 60
People type - over 60
  1. This module allows you to create unlimited “people types” so you can find below a few more examples of “people types” such as Student, Military, and Members:
People types - other examples
  1. Now you can configure people for every bookable product. You can read the “How to create a bookable product” section for further reference. Below you can find an example of how the different people types would appear inside the booking form:
People types in booking form

How to set up services

After you enable the “Services” module in Modules, you will find the Services subtab inside the plugin’s Configuration tab. Let’s review the steps to set up the services. 
 

  1. First, you need to go to YITH > Booking and Appointment > Configuration > Services:
Services subtab
  1. To create a new service the only required field is the name, however, there are some additional fields you can complete to provide more information regarding the service. Besides the name, you can also enter a slug:
Add new service - name and slug
  1. Next, you can decide if the service will have a parent booking service or not:
Add new service - parent booking service
  1. Optionally, you can write a description:
Add new service - description
  1. And finally, you can set a price for the service and choose how to manage it: Set as optional – Let customers choose to add it or not, Hide to customers, Hide in booking search forms, Multiply cost by units selected, Multiply cost by people and/or Show quantity selector:
Add new service - price
  1.  If you have enabled the “People” module, you can decide to multiply the cost by people, and you can additionally set a different price for each people type you have available:
Multiply cost by people
  1. If you decide to show a quantity selector you can set a minimum and maximum number:
Quantity selector
  1. Let’s create an example following these steps. A hostel wants to include a service to add breakfast for an additional fee of $5 per person, so we enter a name, and the price, we choose the option to multiply the cost by people and we click on ‘Add new booking service’. Then, we will find the service in the table on the right:
Service example
Service example
Service example
  1. Now you can configure services for every bookable product. You can read the “How to create a bookable product” section for further reference. Below you can find an example of how the services would appear inside the booking form; in our case, we can see the ‘Breakfast’ with the cost of $5, and as we selected the option to multiply the fee by the number of people, the total value for the service in this particular booking for 2 people would be $10:
Service in booking form

How to set extra costs to charge

After you enable the “Extra costs and discounts” module in Modules, you will find the Costs subtab inside the plugin’s Configuration tab. Let’s review the steps to set up the extra costs and discounts.

  1. First, you need to go to YITH > Booking and Appointment > Configuration > Costs:
Costs subtab
  1. These extra costs will be created globally and you will be able to later add them to your bookable products. To create a new “cost” simply enter the name and, optionally, a short description:
Add new cost
New cost added
  1. Once it has been created, if you want to add a specific cost to any of your bookable products, you will find them listed on the product edit page, inside Product Data > Booking Options > Costs > Extra Costs section:
Extra costs section  - product edit page
  1. Here, you can set the specific amount to charge for each cost and also decide if you want to multiply the cost by duration. If you leave the amount field empty, the cost will not be applied to the product:
Extra costs section  - set price
  1. Additionally, you can add specific ‘Extra costs’ that will apply only to this specific product:
Add new cost for specific product
  1. Besides the extra costs, a new ‘Discounts’ section will also appear inside Product Data > Booking Options > Costs:
Discounts section
  1. Here, you will be able to offer weekly, monthly, and/or last-minute discounts to encourage your users to book:
Discount types
  1. Now, let’s see an example of how the extra costs would appear inside the booking form. In this case, the amount of the ‘Cleaning fee’ has been set as a fixed price of $10:
Extra cost in the booking form

How to set up the “resources” to assign to your bookable products

After you enable the “Resources” module, you will find the Resources subtab inside the plugin’s Configuration tab:

Resource subtab

In this section, click on the “Add new resource” button to create unlimited resources: for each of them you can enter a name, upload an optional image (a photo or an icon to identify the resource), set the available quantity, and the default availability:  

Add new resource

Let’s see some examples:

  1. You rent out meeting rooms and workspaces and you only have three projectors available. Also, for some reason, you want to set some limits for this resource: the projector will be available only from 8 a.m. to 2 p.m. on Saturdays, and it will not be available on Sundays. 
  • Create the “projector” resource, and set the quantity to “3” 
  • Set the resource as “Bookable” “All days” for “All day” 
  • Click on “+ Add options for specific days”  
  • Set Saturdays as “Bookable” only from 8 a.m. to 2 p.m. 
  • Click again on “+ Add options for specific days” 
  • Set Sundays as “Not bookable” for “All day” 
Projector resource
  1. You have a hairdressing salon with five hairstylists employed. You want to give your customers the option to choose the hairstylist when they book a haircut appointment, and you need to manage the hairstylists’ availability in an advanced way.
  • Create a resource for each hairstylist. So, for example, let’s create the resource “Kelly”. Add a photo to identify her 
  • Set 1 as the available quantity 
  • Set Kelly’s availability, according to her work shifts. So, let’s say you set her availability to “All days” from 10 a.m. to 3 p.m., and then on Sundays and Mondays she is not available so you set those days as “Not bookable” 
Hairstylist resource

Click on the “Save” button to save the resource. 

Now you can configure resources for every bookable product. Read the “How to create a bookable product” section for reference. 

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” and also check the “Virtual” option if the product is not a physical product that will be shipped. Then you’ll see the “Booking Options” menu: 

Product data section with booking options

  Step 1 – Booking settings 

The first section in the Booking Options menu is Settings, it’s where you’ll start configuring the 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 option
  2. You can enable the calendar range picker so the calendar is shown in the booking form on this product’s page:
     Calendar range picker option
  3. You can also 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 option
  4. Then you can enable the “Full day booking” option. If you do, a booking from day 1 to day 2, will consider day 2 as fully booked and it will not be available for other customers to be chosen:
     Full day booking option 
  5. Below, you can 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 option 
  6. Then you’ll find the Booking Terms section where you can set the maximum number of bookings allowed per unit. For example, 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 option 
  7. 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 option 
  8. Optional: set a minimum/maximum advance reservation.
     Min/Max advanced reservation option 
  9. Optional: set check-in and check-out times. This info will be shown in the booking form:
     Check-in/Check-out time option 
  10. Optional: set a buffer time between bookings: this can be useful in case you need time between bookings for the cleaning service to clean the room or simply a pause before the next booking begins:
     Buffer time option 
  11. You can enable the “Require confirmation” option if you want to get booking requests and confirm each request manually:
     Require confirmation option 
  12. And you can also 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 cancellation option 
  13. The last section, Google Maps, allows you to enter an address for the bookable product after setting your Google Maps API key and only if the Google Maps module has been enabled. By doing this, you can add a map with the location on the product page using the related shortcode: 

Google Maps section

 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.  

  1. First, you have to enable the option to assign people to the product:
     Enable people option
  2. Once enabled, you can set a minimum and a maximum number of people per booking. For example, if you rent out an apartment with two rooms, you can set a minimum of 1 person and a maximum of 8 people:
       Min/Max number of people option 
  3. You can then 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 separate bookings option 
  4. You can also enable people types if you want to enable some for this specific product; keep in mind people types are created in the plugin configuration panel first:
       People types option 
  5. By enabling people types, a People Types section will appear where 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 can set 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 options

 Step 3 – Costs 

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

  1. First, you’ll see the Standard Prices options where you can set the base price for the product (per hour/day/week/month: 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:
     Base price option 
  2. If the “Multiply by the number of people” option is not checked, you can set an optional extra price for additional people. For example, you can set a fixed price of $100/day for the first two guests and then an extra $20/day for each additional guest:
     Base price and extra cost options
  3. You can also set an optional fee to charge and choose if you want to multiply that fee by the number of people or not. For example, you can create a $5 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, like this:
     Fixed base price option 
  4. In the Discounts section you can set a special last-minute discount for users booking a specific number of days before the booking start date:
     Last minute discount option 
  5. In the Extra Costs section, you can set a price for the global costs that were previously created in the plugin panel or create new costs for this specific product. For example, you can add a mandatory $10 cleaning fee to each booking or check the people and/or duration options in case you want to multiply the cost:
     Extra costs 
  6. The last section, Advanced Price Rules, allows you to create all kinds of rules to automatically change the price of the product’s base price or fee. For example, you can increase prices during the high season (e.g.: +10% during August and September) and decrease them during the low season. You can also increase the price on Sundays or during holidays, or even set a 35% discount on all bookings for this product during Black Friday:

Advanced Price Rules section
  Step 4 – Availability 

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

  1. First, you can 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:
      Availability option
     For example, if you have a doctor’s office you can set it as not available for appointments on Saturdays or Sundays. If you have an apartment that can be booked per day but you want to use it every Monday, you can set all Mondays as “Not bookable”:
     Not bookable option for availability 
  2. You can then create advanced availability rules: you can use the rules to enable/disable the booking availability on specific dates or months. For example, 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”:

Advanced availability rule

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

  1. In the Services section, you can add any service you created previously in the plugin panel. Since you set the services price and settings while creating them, here you only need to add them to the bookable product: 

Services

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

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

  1. To do that, first you need to enable the option to assign resources to the product:
     Resources option 
  2. Then, you can 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.
     Resource assignment option 
  3. Below, you can set your own label for the resources:
     Resources label 
  4. In case you selected the option to have customers select one resource, you can make that resource mandatory or not:
     Required option 
  5. In the section below, you can click on the “Add resource” button to choose which resources to assign to this product:
     Resource selection 
  6. And for each resource added, you can set the price and an optional fee:

Resource costResources will then be shown in the booking form like this:  

Resources available to select
 Final step 

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

How to insert the booking form into the bookable product page

You can insert the booking form into the product page by adding the “Bookable product form” block to the sidebar of the product page or inside the product page, if you are using a block theme. 

Bookable product form

On the right side, you can also find some options to customize the form: you can choose which elements to show or hide (product title, rating, meta, etc.), customize the style (border radius, padding, colors, etc.), and customize the “Book” button. 

Customize the form

Shortcode

If your theme doesn’t use Gutenberg blocks, like for example Avada, you can print the booking form on your product pages by using the shortcode [booking_form], specifying the bookable product ID in the parameter “id“. For example: [booking_form id=123]

How to insert the booking form of a specific bookable product into a custom page

It’s also possible to show the booking form of a specific bookable product on any page of your site. For example, if you want to create a landing page and add the booking form, or show the booking form in the header of your home page, you can use the “Booking Form” block: 

Booking form block

Insert the block and then, on the right side, associate the form with a specific bookable product: 

Booking form block

On the right side, you can also find some options to customize the form: you can choose which elements to show or hide (product title, rating, meta, etc.), customize the style (border radius, padding, colors, etc.), and customize the “Book” button.  

Customize booking form

This is an example of a custom page with a booking form that allows users to book a “physiotherapy session” without redirecting them to the bookable product page.  

Booking form on custom page

Shortcode

If your theme doesn’t use Gutenberg blocks, like for example Avada, you can print the booking form of a specific product by using the shortcode [booking_form id=123] specifying the bookable product ID in the parameter “id“.

How to set up the availability rules

In YITH > Booking and Appointment > Configuration > Availability rules, you can create global rules to apply to all your bookable products. These options are the same ones you can find on each product’s edit page but, from the Availability rules subtab, they will be applied by default to all products. For example, you can use the global availability rules to set all products as “Not bookable” on specific days (e.g. Sundays), during the Christmas holidays, or during the summer: 

Availability rule creation