Bookings Use Case: Recording Studio

This scenario will walk through how to use WooCommerce, WooCommerce Bookings, and WooCommerce Product Add-Ons to create a bookable product that makes use of varying pricing(costs), resources, person types, and additional product add-ons to achieve the desired configuration.

Scenario

↑ Back to top

Alexi has a recording studio and needs a website where people can book his two studio rooms. When offering the rooms he has the following requirements:

  • The studio is open from 9:00 am to 1:00 pm and 5:00 pm to 11:00 pm, Monday to Saturday
  • The studio is closed on public holidays and Sundays
  • Alexi wants to rent rooms for a minimum of 1 hour and a maximum of 3 hours per booking
  • Alexi wants the price to be $7.00/hour but from 6:00 pm the rate must be $3.00/hr higher
  • The studio’s rooms are not large, so the maximum capacity is 5 people per room
  • Room #2 is not available on Saturday because Alexi and his friends use it
  • Alexi also rents instruments, speakers and cables at a $5.00 flat fee for each.

We’ll use WooCommerce, WooCommerce Bookings, and Product Add-Ons to achieve the above.

Setup and Configuration

↑ Back to top

The first step of setting this up for Alexi will be to navigate to Products > Add New and select “Bookable Product” from the dropdown menu next to “product data“. This will create a new bookable product for us. Because Alexi has a number of criteria for his studio, we’ll need to break the set-up process down into a number of different steps. The following is a list of different settings we’ll need to adjust to meet his needs:

  1. Configure the General settings – this is where we’ll set the booking duration (1 hour), min/max hours for booking duration, and set product data (virtual, has persons, has resources).
  2. Configure ResourcesWe’ll create and set availability for the two studios (Room #1 and Room #2) in the Resources tab.
  3. Configure AvailabilitySet the bookable product’s availability and the Store’s Global Availability.
  4. Configure CostsSet the costs before and after 6:00pm.
  5. Configure PersonsSet the min/max person settings for the bookable product.
  6. Configure Product Add-Ons – Creating and setting up the equipment (cables, instruments, speakers) that Alexi rents as options in the studio booking.

Each of the steps above is explained in more detail in the rest of this document.

Configure the General Tab

↑ Back to top

Once you create the bookable product, navigate to the General tab to set the 1 hour minimum and 3 hour maximum booking durations that Alexi wants set. We’ll also set some general product data in this step to add options for resources and persons, as well as marking the product as “virtual” so that shipping requirements are removed. Heres’ how we’ll do that:

  1. Tick the boxes for Virtual (removes shipping information), Has Persons, and Has Resources at the top of the screen.
  2. Select Customer defined blocks of in the dropdown menu next to Booking duration, enter 1 next field and select hours in the final dropdown menu in that row.
  3. Enter 1 in the Minimum duration field an 3 in the Maximum duration field. This ensures that customers can book no less than 1 hour of studio time and no more than 3 hours.
General settings for the recording studio’s booking duration

Configure the Resources Tab

↑ Back to top

Since Alexi offers two different bookable rooms (or studios), we’ll need to set those up as Resources. Follow these instructions to create and then configure the resources to meet the availability needs that we outlined at the beginning of this page:

  1. Navigate to the Resources tab
  2. Enter a label (name) for the resource(s) – in this case it will be “Room“.
  3. Select “Customer selected” in the “Resources are. . .” dropdown menu.
  4. Click the Add/link Resource button at the bottom of the screen to add a resource.
  5. Name your resource (e.g., Room 1 or Studio 1) when the window opens, and select OK.
  6. Repeat steps #2 and #3 to add another resource (e.g., Room 2 or Studio 2).

After completing the steps, this is what the Resources tab will look like:

Studio #1 and Studio #2 added as resources for the Recording studio.

Next, we’ll configure the studios to meet Alexi’s availability requirements. Here’s how:

  1. Click “Edit resource” next to the Studio #1. You’ll be taken to a new browser tab.
  2. Set the Available Quantity is set to 1 and click Update (on the right) to save.
  3. Return to the main Resources tab.
  4. Click “Edit resource” next to Studio #2. We’ll need to confirm the quantity again here (it should be set to 1) and add a custom availability range:
    • Click Add Range.
    • Select Range of Days under the Range type column.
    • Select Saturday (first field) to Sunday (second field) under the Range column.
    • Set Bookable to No.
    • Confirm Priority is set to 9 (this needs to supersede the product’s availability settings).

After following the steps, this is how Studio #2’s availability will look:

Studio #2’s availability settings make it unavailable for Saturday and Sunday.
  1. Click Update to save the changes.

Configure the Bookable Product’s Availability

↑ Back to top

Next, we’ll configure the general availability for the Recording Studio product based on Alexi’s needs. We’ll navigate to the Availability tab to configure these settings:

  1. Keep the Max bookings per block, Minimum block bookable, Maximum block bookable, and Require a buffer period of fields on their default settings as Alexi did not address an specific needs here.
  2. Select “not-available by default” in the “All dates are. . .” dropdown.
  3. Click the Add Range button at the bottom of the screen three times (as we need to add three custom availability ranges).
  4. Select Time Range (all week) in the Range type column for all three of the newly created ranges.
  5. Add the time ranges (range column) for when the studio will be available or unavailable:
    • First range09:00am to 1:00pm; availability set to Yes; and priority set to 10.
    • Second range05:00pm to 11:00pm; availability set to Yes; priority set to 10.
    • Third range01:00pm - 05:00pm; availability set to No; priority set to 10.

Here’s how those settings should look:

The recording studio product’s availability settings

Configure the Costs Tab

↑ Back to top

Now we’ll set up the costs for booking the studio. Alexi has specifications for the costs of booking the recording studios, before 06:00pm, the studio should cost $7.00/hr. After 06:00pm, bookings should increase by $3.00/hr.

Navigate to the Costs tab and follow these instructions to configure the costs for the recording studio:

  1. Set the Base Cost is set to 0 and the Block Cost to 7.
  2. Click the Add Range button at the bottom of the screen to create a custom cost range.
  3. Select Time Range (all week) in the Range type column.
  4. Enter 06:00 PM to 11:00 PM as the Range.
  5. Select + under Block cost and enter 3 in the field below it.

Here’s how the cost settings will look after following the steps:

Cost settings for recording studio

Configure the Persons Tab

↑ Back to top

Alexi also needed to address capacity needs for both of the studios. Both studios are small, so he wanted to limit the amount of people booked for each studio to 5.

Navigate to the Persons tab and follow these instructions to configure the min/max persons allowed on each booking:

  1. Set the Min Persons to 1 and the Max Persons to 5
  2. Confirm all the checkboxes below the min/max person fields are unticked/unchecked.
  3. Click Publish (upper right of screen) to save the bookable product and all the settings we’ve configured so far.

Here’s how the Persons settings will look after following the steps:

Persons settings to limit max number of persons per booking to 5

Configure Product Add Ons

↑ Back to top

After finishing the bookable product’s main resource, costs, and availability settings, we’ll add the Product Add Ons that Alexi wants to allow customers to rent along with their studio bookings. We’ll add the following: guitar, bass, drums, cables, and amplifiers.

Navigate to the Add Ons tab and follow these instructions:

  1. Click the Add Field dropdown and select Checkbox.
  2. Enter Do you need to rent instruments? in the Title box and select Label under the Title Format dropdown next to it.
  3. (Optional) Check/Tick the Add description box and enter a description. Leave other boxes unchecked/unticked.
  4. Click Add Option near the bottom of the page to add fields for each instrument type. You’ll click this button 3 times for since we have three instruments available for rent.
  5. Add the name of each piece of equipment in a separate field in the Option Title column.
  6. Select Flat Fee in the type column for all five pieces of equipment.
  7. Enter 5.00 in each field of the Price column to charge a $5.00 flat fee for each piece of equipment rented.
  8. Repeat steps #2 – #5 to add another section for equipment (cables and amplifiers).
  9. Click Update (top right of screen) to save the product’s settings.

Here’s how the Product Add-Ons will look once we’re done:

Product Add-Ons settings after adding options for rentable equipment/instruments for this use case

Note: Product Add-Ons does not have any inventory tracking options, so if you have a limited quantity of a product add-on you’ll need to make that clear to customers in the add-ons description (as we’ve done in the screenshot above).

Set the Store Global Availability

↑ Back to top

Now that we’ve finished setting up the bookable product’s settings and add-ons, we’ll finish the by configuring the global store availability for the recording studio and set priority for those rules in order for them to supersede other availabity settings that we’ve set.

Here’s how we’ll configure the studio’s global availability settings:

  1. Navigate to Bookings > Settings > Store Availability.
  2. Click Add Range near the bottom of the page.
  3. Select Range of Days for the Range type and…
    • Set availabiilty to No
    • Set priority to 9 (to supersede other availability rules)
  4. Click Add Range again.
  5. Select Date Range as the Range type, this will allow us to close the store on different public holidays.
  6. Enter the date(s) for the public holiday and set bookable to No and priority to 9
  7. Repeat the above steps 4-6 for each public holiday that the studio should close for.
  8. Click the Save changes button to save the configuration.

Here’s an example of what those settings might look like (varies depending on public holidays entered):

Global Store Availability settings to account for Sunday and public holiday closures.

Customer View

↑ Back to top

Once we’ve configured all of the above, customers will be able to book a studio within the parameters that Alexi set for his recording studio.

Here’s an example of what a booking calendar and form might look like for Studio #2, which is not available on Saturdays or Sundays, nor on public holidays (in this case October 31st – November 2nd):

Booking calendar and form for Studio #2 which follows all the availability, persons, and cost rules that we added throughout this process.

That’s it! This process was pretty detailed, but we hope you have a better understanding of how you can configure resources, persons, and availability (custom rules and priority) to work together to create a bookable product that works for your needs.

Questions and Support

↑ Back to top

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

  • Have a question about a specific extension or theme you’d like to purchase? Click here.
  • Already purchased and need some assistance? Get in touch with a Happiness Engineer via the WooCommerce.com Support page and choose this extension name from the “I need help with” dropdown.
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.