Bookings Use Case: Fitness Center

This scenario will walk you through using WooCommerce and WooCommerce Bookings to create multiple bookable products with shared resources and a buffer period, where customers can choose from two different locations and select from several resources that can be booked for either.


↑ Back to top

You own a fitness center that offers personal training sessions with a trainer. You also have two locations, one Downtown and one Uptown. You also have several trainers who can train at either of these locations. You would like for your customers to be able to schedule the trainer they prefer at the location they prefer.

The two locations are about 30 minutes apart. So for example, if a trainer was to be scheduled at the Downtown location at 5:00 AM and then at the Uptown location at 6:00 AM, that would not work. So you also need a way to allow your trainers time to clean up, travel, and then set up for the session.

Products Used

↑ Back to top

Setup and Configuration

↑ Back to top

Creating a Bookable Product

↑ Back to top

First, we must create two Bookable Products, one for each location. We will call ours Uptown and Downtown. Follow these steps to do so:

  1. In the sidebar of your WordPress Admin dashboard, click on Products.
  2. Click on the Add New button on the top of the page.
  3. Under Product data select Bookable product.
  4. To the side of the Product data box you will then tick the checkboxes for Virtual and Has Resources.
"Add New Product" page that displays the Uptown Bookable Product with the Virtual and Has Resources checkboxes ticked.

You’ve created a basic Bookable Product that we can use for our two locations. Now it’s time to configure the booking product. There are primarily three tabs that we are concerned with.

Configuring the General Tab

↑ Back to top

In the General tab, keep everything as-is except for the Booking duration field. For that, ensure that the booking product is set to Fixed blocks of 1 hour.

"General" settings tab that highlights the Booking duration setting.

Configuring the Resources Tab

↑ Back to top

The Resources tab is where you configure how your resources will be used (we will talk about how to create a resource later in this guide). We want our resources to be selectable by our customers, instead of being automatically assigned. Follow these steps to configure the bookable product’s resources:

  1. Change the Label field to “Trainer”.
  2. Ensure that the Resources are… field has the value Customer selected.
  3. Add resources by clicking on the Add/link Resources button.
  4. Set individual prices for each resource created.
Resources tab settings that highlights the "Label", "Resources are...", and "Block Cost" fields, as well as the "Add/link resource" button.

Configuring the Availability Tab

↑ Back to top

The Availability tab is where you configure which times are available for this bookable product in your store. Follow these steps to configure the bookable product’s availability:

  1. Since we have resources, the Max bookings per block field will be configured separately for each individual resource.
  2. Set the Require a buffer period of field to 1 hours between bookings.
  3. Set the All dates are… field to not-available by default.
Availability tab settings for Bookable Product that highlights the "Require a buffer period of" and "All dates are..." fields.

Setting the All dates are… to not-available by default is often the best approach when creating complex availability rules. It’s easier to add what is available than to add what is and what is not. The buffer period we set here allows our trainers time to travel between locations.

Creating and Configuring Resources

↑ Back to top

For our example, we are giving each trainer a name as well as setting the quantity of this resource to just 1. That means that this resource can only be used for one bookable slot. Follow these steps to create and configure the individual resources.

  1. From your WordPress Admin Dashboard, navigate to the Bookings > Resources page and click on the Add Resource button to create a resource.
  2. You will be on the page to create and edit a resource. Start by setting the Title of the resource to the name of the trainer.
  3. Set the Available Quantity field to 1.
  4. Click the Add Range button to add the Availability Ranges for this resource as desired.
  5. Rinse and repeat for all other resources.
Edit Resource page that shows an example trainer resource configuration

Once you’ve published the bookable products, then create the second location remembering to attach the resources there as well, and you’re set!

Questions and Support

↑ Back to top

Something missing from this documentation? Do you still have questions and need assistance?

  • Have a question before you buy this extension? Please fill out this pre-sales form – please include the name of this extension in your query.
  • Already purchased and need some assistance? Get in touch with a Happiness Engineer via the Support page and choose this extension name from the “I need help with” dropdown