Bookings Use Case: Boat Cruise with Cabin Types, Occupancy Rates and Discounts

This use case will walk you through using WooCommerce and WooCommerce Bookings to create a bookable product with varying resource types, costs, and available occupancy. We utilize the Boat Cruise bookable product template to configure this use case more quickly and efficiently.

Scenario

↑ Back to top

You’re selling tickets for a cruise and want to allow passengers to book their cabins. Costs will vary depending on what type of room customers book, how many people are in their room, and what dates they book. The following requirements need to be implemented:

  • Different cabin types and rates: rooms with and without windows have different rates (i.e. rooms with a window are $100 more per person)
  • Occupancy rates (number of passengers per room): per person rates are different based on single or double occupancy. Doubles get $50 discount per person
  • Different dates have discounts: holidays have higher costs per person (i.e. July 4th, November 1st, and January 1st, are an extra $45 per person)
  • Advanced booking – Customers can book up to ten (10) days in advance of their cruise date.

Here is an example fee table taking into consideration all of the requirements above:

DateCabinOccupancyPrice
Normal DatesNo WindowSingle$250/person
Normal DatesNo WindowDouble$200/person
Normal DatesWindowSingle$350/person
Normal DatesWindowDouble$300/person
HolidaysNo WindowSingle$295/person
HolidaysNo WindowDouble$245/person
HolidaysWindowSingle$395/person
HolidaysWindowDouble$345/person

Each one of these requirements and their specific configuration steps are explained in detail in the next section, Setup and Configuration.

Setup and Configuration

↑ Back to top

WooCommerce Bookings comes with default product templates that can help make setting up more complex bookable products easier. When creating a booking product for something like a cruise or similar offerings where pricing will depend on resource types and how many people are booking, the Boat Cruise template can be used and modified to simplify the process. We’ll start configuring our cruise requirements by selecting the template and then modifying a few of the preset configurations in the General tab, the Availability tab, and the Resources tab.

Start by selecting the Boat Cruise template:

  1. Navigate to Products > Add New Product.
  2. Select the Boat Cruise template from the Templates tab:
The Boat Cruise template in the Templates tab.
  1. Name the product Boat Cruise.
  2. Tick/Check the Virtual box next to the product data dropdown. This will remove shipping requirements. The other checkboxes for Has persons and Has resources are set correctly by the template.

Next, we’ll confirm and review the Boat Cruise template’s preset configuration in the General Tab to ensure it matches our requirements. Click the General tab and review the following:

  • Booking duration – This field is preset to Customer defined blocks of (first field), 1 (second field), Day(s) third field. This meets our requirements, as customers can select the number of days they wish to book for the cruise.
  • Minimum duration – This field is set to 1. This meets our requirements.
  • Maximum duration – This field is set to 10. This meets our requirements that allow customers to book up to ten (10) days on the cruise.

The Boat Cruise’s general tab should look like this:

Boat Cruise General Tab settings

Now, we’ll confirm the presets in the Resource tab and make some minor adjustments to the meet our needs. Click the Resources tab and review the following:

  • Label (name) – Enter the name of the resource as Cabin type, as the preset configuration leaves this blank.
  • Resources are . . . – This is preset to Customer selected. This meets our requirement of customers being able to select their cabin type (with or without windows).
  • Resource section – Two resources are already configured, Cabin – With Window and Cabin – No Window. The Cabin -With Window has a block cost of$100, this meets are requirement to charge $100 per person (we’ll set up the per person calculations later). However, we need to make a few adjustments to these resources. Click Edit resource next to one of the resources and follow these steps:
    1. Remove the Sample Resource text from the name of the resource.
    2. Increase the number of cabins available to 50 (as we have 50 cabins of each type).
    3. Click the Update button at the top of the screen to save.
    4. Navigate back to the main product edit screen and repeat steps 1,2, and 3 for the other cabin type.

Here’s how the Resource tab looks after making these adjustments (note: you won’t see the changes we made to the name of each resource until we publish the product at the end):

Resource tab

Next, we click on the Costs tab and review the preset configuration. There will be a few changes that we’ll need to make here:

  • Base Cost, Block Cost, and Display Cost – Base and block costs are 0 and Display Cost is blank. This is correct.
  • Preset Cost Ranges: There are five (5) preset custom cost ranges in this template. Let’s look at each one:
    • Range of days (Monday to Sunday) – the Block cost is set to + 250 . This is correct, as we charge $250 on a regular day.
    • Person count (2 to 2) – the Block cost is set to - 50. This is correct, as we give a $50 discount for double occupancy (2 people in a cabin).
    • Date Range(s)– The block cost is set to + 45 for the remaining three ranges, which is correct for our holiday pricing. However, the dates are wrong. Use the date selectors to set the dates to July 4th to July 4th (first range), November 1st to November 1st (second range), and January 1st to January 1st (third range).

Here’s what the Boat Cruise’s Costs settings should look like after these adjustments(note – dates will reflect the current year):

Costs settings for Boat Cruise

Finally, we’ll confirm the Persons tab settings to make sure they meet our requirements:

  • Min persons – Set to 1. This is correct as we offer single occupancy cabins.
  • Min persons – Set to 2. This is correct as we offer double occupancy cabins.
  • Multiple all costs by person count, count persons as bookings, and enable person types – All boxes are ticked/checked. This is correct as bookings charges are per person.
  • Person types section – person type name and description are set, and max field is set to 2. This information is all correct and reflects the information we confirmed previously.

Now we can publish the booking:

We’ve confirmed all the information in the preset template is correct, we can click the Publish button at the top of the product settings.

Customer Experience

↑ Back to top

After the Boat Cruise’s configuration is complete and we publish the product, customers will be able to book a cruise on our site.

Here’s an example of what the booking calendar and pricing will look like when a customer chooses a 2-day cruise for 2 people in a cabin with windows, for November 1st (holiday pricing) – November 2nd (standard pricing):

Boat cruise bookings calendar and pricing for selected cruise

Let’s go over those calculations to make sure they follow the requirements we set at the beginning of the use case:

  • The costs per day are $200 per person, since double occupancy decreases the cost by $50. That means the duration costs will be $800 total for 2 days.
  • The cost for a cabin with windows is $100 per day, per person. That is $400 total for 2 days.
  • November 1st is a holiday, so we charge $45 extra that day, per person. That is $90 total.
  • November 2nd is standard pricing, so there is not additional charge.

That means our total price is : $800 + $400 + $90 = $1290 , exactly what our bookings calendar reflects in the image above. We know we’ve correctly set-up our use case.

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.