Bookings Use Case: Reserve All Resources with a Single Booking

Use one shared resource to sell a private tour that reserves an entire fleet and a group tour that reserves one vehicle per person. This guide sets up both products and shows how to check that their bookings draw from the same capacity.

Scenario

↑ Back to top

Arctic Adventures has 40 snowmobiles and offers two five-hour tours every day, starting at 6 am and 11 am:

  • Basic Group Snowmobile Tour: customers choose between 1 and 40 persons. Each person reserves one snowmobile at $80 per session.
  • Premium Private Snowmobile Tour: one booking reserves all 40 snowmobiles for $3,200 per session.

A Basic booking for even one person prevents a Premium booking for the same session, because Premium needs all 40 vehicles. A Premium booking leaves no vehicles for Basic. Other sessions remain available unless another booking or availability rule blocks them.

Before you begin

↑ Back to top

Install and activate WooCommerce and WooCommerce Bookings. You need administrator access to create products and resources. Use a test store to verify bookings before offering the tours to customers.

Check the store timezone under Settings > General and the currency and tax settings under WooCommerce > Settings. This example uses US dollars, prices before tax, and the store’s local time.

Set up the shared fleet

↑ Back to top

Create one Snowmobiles resource, then attach that same resource to both products. Its quantity represents the whole fleet. Do not create separate resources with identical names: separate resources have separate capacity.

Create the Snowmobiles resource

↑ Back to top
  1. Go to Bookings > Resources and select Add Resource.
  2. Name the resource Snowmobiles.
  3. Set Available Quantity to 40.
  4. Leave the resource’s availability rules empty for this example, then select Publish.

Create the Premium tour

↑ Back to top

Go to Products > Add new product. Enter Premium Private Snowmobile Tour as the title and select Bookable product in Product data.

Set the tour duration

↑ Back to top
  1. Enable Virtual, because this tour does not require shipping.
  2. Enable Has persons and Has resources.
  3. On General, set Booking duration to Fixed blocks of 5 Hours.

Attach the fleet and set the price

↑ Back to top
  1. On Resources, enter Snowmobiles as the label and set Resources are… to Automatically assigned.
  2. Select the existing Snowmobiles resource and select Add/link Resource.
  3. Expand the attached resource. Set its Base Cost to 0 and Block Cost to 80. This is $80 for one five-hour block, before the person multiplier.
  4. On Costs, leave the product’s base and block costs at 0 and add no cost rules.

Resource costs are set on each product’s Resources tab. Changing the Premium product’s resource cost does not automatically change the Basic product’s price.

Set the daily sessions

↑ Back to top
  1. On Availability, leave Share max bookings per block? unchecked. The Snowmobiles resource’s quantity of 40 supplies the shared limit; the product’s Max bookings per block does not add a separate limit in this configuration.
  2. Set Minimum block bookable to 0 Days and Maximum block bookable to 12 Months. Same-day start times must still be in the future.
  3. Set Buffer period to 0 Hours. This allows the second tour to start when the first ends. If you need preparation time between tours, allow for it in your schedule.
  4. Set All dates are… to not-available by default.
  5. Add a rule with Range type: Every day (Set time), from 06:00 to 16:00, Bookable: Yes, and Priority: 10.
  6. Set First block starts at… to 06:00.

A five-hour fixed duration inside this ten-hour window produces two sessions: 6–11 am and 11 am–4 pm. A 4 pm start is outside the window. Store-wide or resource availability restrictions can also affect these sessions.

Reserve all 40 vehicles

↑ Back to top
  1. On Persons, set both Min persons and Max persons to 40.
  2. Enable Multiply all costs by person count. With no other costs, Premium costs 40 × $80 = $3,200.
  3. Enable Count persons as bookings. This makes the booking consume 40 units of the shared resource.
  4. Leave Enable person types unchecked.

In this setup, the fixed person count represents the 40 vehicles being reserved. It is not an editable count of the private party’s actual riders. Even a smaller private party reserves and pays for the entire fleet.

Create the Basic tour

↑ Back to top

Create a second Bookable product named Basic Group Snowmobile Tour. Use the same Virtual, Has persons, Has resources, five-hour duration, and availability settings as Premium, with these differences:

  • On Resources, select the existing Snowmobiles resource and select Add/link Resource. Keep automatic assignment. Set this product’s resource Base Cost to 0 and Block Cost to 80.
  • On Persons, set Min persons to 1 and Max persons to 40. Keep both Multiply all costs by person count and Count persons as bookings enabled.
  • Leave the product’s costs at 0, person types disabled, and Share max bookings per block? unchecked.

The person count now controls both the price and the number of snowmobiles reserved. Three persons cost 3 × $80 = $240 and consume three vehicles. The maximum of 40 does not guarantee availability: existing bookings reduce the remaining fleet.

Publish both tours

↑ Back to top

Add descriptions and optional product images, then select Publish on each product. If you saved a draft earlier, publish it once all settings are complete.

Check the customer experience

↑ Back to top

Open each published product and choose a future date within the booking window. Before making a test booking, confirm that Basic quotes $240 for three persons and Premium quotes $3,200 with its person count fixed at 40.

On your test store, use Bookings > Add Booking with Don’t create an order to check capacity without taking payment. Confirm each test booking’s status and repeat these checks on the product pages:

  1. Create a confirmed Basic booking for three persons at 6 am. Basic should have 37 vehicles left for that session. Premium must not accept a booking there because fewer than 40 remain.
  2. Check the 11 am session. With no buffer or other bookings, Premium should still be bookable for $3,200.
  3. Create a confirmed Premium booking for that 11 am session. Basic must not accept even one person for the same session.
  4. Cancel both test bookings under Bookings > All bookings, save the changes, and confirm that all 40 vehicles are available again.

A partially filled session can still appear in a time list even when Premium cannot reserve all 40 vehicles. Selecting it must not produce a valid Premium booking; you may see This block cannot be booked. Check that another empty session still works.

If the result differs

↑ Back to top
  • Both products accept more than 40 vehicles together: confirm they use the same resource, that its Available Quantity is 40, and that Count persons as bookings is enabled on both products.
  • The price is too low or too high: check the $80 resource block cost on each product, the person multiplier, and any additional product costs, cost rules, or taxes. Premium’s total should be $3,200 before tax; Basic should be $80 per person.
  • No sessions appear: choose a future date within 12 months and check the store timezone, first block start, daily time rule, and any store-wide or resource closures. Review conflicting availability rules and their priorities.
  • Capacity stays reduced after testing: check for other active bookings, including bookings held in carts. Confirm the test bookings are saved as Cancelled.

Questions and support

↑ Back to top

Something missing from this documentation? Still have questions and need assistance?

  • If you have a question about a specific extension or theme you’d like to purchase, contact us to get answers.
  • If you already purchased this product and need some assistance, get in touch with a Happiness Engineer via our support page and select this product’s name from the Product dropdown.

Related Products

WooCommerce Subscriptions is a WooCommerce extension that lets customers subscribe to your products or...

Power your membership association, online magazine, elearning sites, and more with access control to...

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.