Skip to content
GPLWP Guides

How to sell tour bookings in WooCommerce

Booking & Events Time About 45 minutes for a basic setup 7 steps Updated 24 Oct 2026

BOOKING & EVENTS
The short answer

You can sell a small number of fixed tour dates with WooCommerce variable products, using each date as a variation with its own price and stock. For live availability calendars, group capacity, customer reservations and date rules, you need a booking plugin because WooCommerce products do not provide those booking features by themselves.

The route
  1. 01Choose your booking model
  2. 02Use variations for fixed dates
  3. 03Install a booking extension
  4. 04Create the tour product
  5. 05Set dates, capacity and prices
  6. 06Test checkout and reservations
  7. 07Take the fast route

What you need

  • A WooCommerce store on WordPress 6.0 or later
  • Admin access to WordPress
  • Your tour dates, prices and capacity
  • A payment gateway and confirmation email settings

Choose your booking model

Decide whether customers are buying a place on a scheduled departure or selecting a date and time from live availability. For a handful of fixed departures, WooCommerce can work with a variable product. For recurring tours, shared capacity, time slots or customer-selected dates, use a booking extension.

Write down the tour duration, departure times, adult and child limits, cancellation rules, meeting instructions and the maximum number of people per departure before you build the product.

Use variations for fixed dates

The manual route is to create a variable product and add an attribute such as Tour date or Date and time. Create one variation for each departure, then set its price and stock quantity. WooCommerce supports different prices and stock for each variation, so selling a variation reduces the remaining places for that particular departure.

This is fine for a small list of departures. It becomes awkward when dates change regularly: you must add variations manually, customers do not get a proper availability calendar, and WooCommerce does not automatically prevent conflicts with guides, vehicles or other shared resources. Keep the product virtual if no shipping is required.

Install a booking extension

For a proper tour booking system, install and activate a booking extension that adds bookable products, date selection, availability rules and reservation records. A booking product is different from a normal WooCommerce product because it can accept bookings for specific dates or durations.

Do this on a staging site first if the shop is live. Check that the extension supports the booking pattern you need before entering all of your tour dates.

Create the tour product

Go to Products > Add New, enter the tour name and description, then choose the extension's bookable product type. Set the duration as a fixed block for a scheduled tour, or allow customers to choose from the permitted duration and time options when the tour is more flexible.

Add clear information about the meeting point, what is included, accessibility, minimum age, required equipment, cancellation terms and what happens after payment. If you charge different rates for adults and children, configure person types or separate attendee pricing rather than asking customers to explain the group in an order note.

Set dates, capacity and prices

Configure the tour's available days and departure times, then set the maximum bookings for each block. If several tours share one guide, vehicle or room, create a shared resource and link it to the relevant bookable products so one reservation reduces availability across those products. Resources can have their own quantity and availability rules.

Set the base cost, block cost and any per-person or person-type costs. Check the timezone, minimum notice period, disabled dates and booking cut-off time. Conflicting availability rules can make the calendar show no available slots, so start with one simple rule and add exceptions carefully.

Test checkout and reservations

Place a test booking for one adult, then test a group booking, the final available place and a fully booked departure. Confirm that the selected date, time, guest count and total appear in the cart, checkout, order email and admin booking record.

Also test payment failure, cancellation, refunds and mobile checkout. Do not rely on a calendar looking correct: an incorrect person-capacity setting can let separate orders exceed the tour limit, while an overly broad availability rule can make closed dates bookable.

Take the fast route

If you want tour packages, an availability calendar, customer reservations and WooCommerce payments without building the booking logic yourself, use WooTour. Install the plugin ZIP from Plugins > Add New > Upload Plugin, activate it, then create your tour packages, configure their dates and availability, add pricing and connect the WooCommerce payment methods you use.

WooTour is the better fit when you sell scheduled trips rather than a few one-off dates. Still run the same checkout and capacity tests before accepting real bookings, especially if you use multiple currencies, guest types or several tours sharing the same resource.

The fast route

Let WooTour do it

Tour packages, availability calendars, customer reservations, and WooCommerce payments for travel operators selling scheduled trips.

Get WooTour

Sources

  1. woocommerce.com /document/variable-product/?utm_source=openai
  2. woocommerce.com /document/introduction-to-woocommerce-bookings/woocommerce-b…
  3. woocommerce.com /document/introduction-to-woocommerce-bookings/woocommerce-b…
  4. woocommerce.com /document/introduction-to-woocommerce-bookings/woocommerce-b…
  5. woocommerce.com /document/introduction-to-woocommerce-bookings/woocommerce-b…
  6. woocommerce.com /document/introduction-to-woocommerce-bookings/troubleshooti…

Questions

Can WooCommerce sell tour bookings without a plugin?
Yes, but only in a limited way. Create a variable product with one variation per tour date or departure, then assign each variation its own price and stock. This works for a small number of fixed departures, but WooCommerce does not provide a real booking calendar, shared resource availability or proper reservation rules by itself.
How do I limit the number of people on a tour?
Use the booking extension's capacity or person settings for a bookable product. Decide whether each person consumes one place, then test separate orders until the departure is full. A maximum number of people on one order is not always the same as total capacity across all orders, so check the setting that counts people against availability.
Can several tours share one guide or vehicle?
Yes, if your booking system supports shared resources. Create the guide, vehicle or other asset as a resource, set its available quantity, and link it to the relevant tour products. A booking can then reduce the shared availability across those products instead of tracking each tour in isolation.
Why does my tour calendar show no available dates?
The usual causes are conflicting availability rules, a resource with no remaining quantity, a booking duration that does not fit the available time range, a disabled date rule or a booking cut-off that has already passed. Temporarily simplify the rules, check the product and resource settings, and test the calendar again before adding exceptions.
Should I use product variations or a booking plugin for tours?
Use variations when you sell a short, fixed list of departures and can maintain the stock manually. Use a booking plugin when customers choose dates, tours repeat, capacity is shared, prices vary by guest type or you need reservations and availability management. For most active tour businesses, the booking plugin route creates less manual work and fewer overselling risks.