Skip to content
GPLWP Guides

How to let customers book multiple services on a WordPress site

Booking & Events Time About 45 minutes 7 steps Updated 14 Oct 2026

BOOKING & EVENTS
The short answer

WordPress does not include a multi-service booking cart. You need a booking plugin that lets customers add separate services, dates and times to one cart, then pay once. A basic WooCommerce Bookings setup can work, but a dedicated cart add-on is quicker when you need combined appointments and deposits.

The route
  1. 01Decide how services combine
  2. 02Create each service separately
  3. 03Use the basic cart route
  4. 04Add a multi-service booking cart
  5. 05Configure payment and notifications
  6. 06Test the failure points
  7. 07Choose the faster route

What you need

  • WordPress administrator access
  • A booking or appointment plugin
  • Your services, prices, durations and availability
  • A payment method configured for checkout

Decide how services combine

First decide whether customers are booking separate appointments, such as a haircut at 10am and a massage at 11am, or adding extras to one appointment. Separate services need separate availability rules and booking records. Extras are better for optional upgrades that happen during the main service.

If two services must happen in the same slot, confirm that the same staff member, room or resource can handle both. Most booking systems do not automatically turn two services into one longer appointment unless you configure that behaviour.

Create each service separately

Add every bookable service with its own name, duration, price, staff assignment, location and availability. Keep the rules consistent where services share a resource, otherwise the calendar may offer two bookings that cannot actually happen together.

In WooCommerce Bookings, this means creating a bookable product for each service and configuring its duration, availability, pricing and booking rules. Customers can then choose a date and time before adding each booking to the cart.

Use the basic cart route

The manual route is to use a booking system with normal cart support. With WooCommerce Bookings, customers select a service, choose its slot, add it to the cart, return to another service, and repeat before paying once. This is fine when the services have independent schedules and you do not need a special combined booking screen.

The drawback is that customers may need to repeat the date, staff and time selection for every service. Bookings in the cart also hold availability temporarily, and inactive carts are cleared after 60 minutes. Services requiring admin confirmation have a different checkout flow and cannot be mixed with ordinary products in the usual way.

Add a multi-service booking cart

For a dedicated appointment workflow, install and activate a booking plugin that supports multiple services in one transaction. In BookingPress, the Cart Addon adds cart functionality to the BookingPress booking flow, allowing customers to add several appointments, review them and complete payment together. It requires the BookingPress Pro plugin.

After activation, place the BookingPress booking form on the page customers use for appointments. The customer can choose a service, date, time and staff member, add it to the cart, then repeat the process for another service.

Configure payment and notifications

Set the payment method, cancellation rules and deposit behaviour before sending customers to the new booking page. If you take deposits, check that the system calculates the deposit for every service rather than applying one deposit to the whole cart. BookingPress documents per-service deposit calculation for cart bookings.

Update confirmation emails so they list every appointment in the transaction. In BookingPress, the cart appointment list placeholder can be added to email templates, invoices and related notifications. Do not assume the default email shows every service until you confirm it.

Test the failure points

Place a test booking containing two different services, two different times and, if relevant, two different staff members. Confirm that the cart shows the correct duration, price, deposit and appointment details before payment.

Then test an unavailable slot, an abandoned cart, a failed payment, a cancellation and a booking with different staff or locations. The common Friday-afternoon failure is a cart that takes payment but sends an email showing only the first appointment, so check the customer, staff and admin notifications separately.

Choose the faster route

Use the basic WooCommerce cart route when separate bookable products and repeated date selections are acceptable. It avoids a custom multi-service interface, but customers may have to configure every service independently.

For a clearer appointment checkout with multiple services and per-service deposits, choose BookingPress Cart Addon. It is designed to combine services in one transaction while keeping the appointments manageable individually.

The fast route

Let BookingPress Cart Addon do it

Adds a booking cart for combining services and calculating per-service deposits in one transaction; choose it for multi-service appointment checkout.

Get BookingPress Cart Addon

Sources

  1. woocommerce.com /document/pdf-packing-slips-and-invoice-builder/?utm_source=…
  2. woocommerce.com /document/introduction-to-woocommerce-bookings/managing-wooc…
  3. bookingpressplugin.com /documents/cart-addon/?utm_source=openai

Questions

Can WordPress book multiple services without a plugin?
No, WordPress core does not provide appointment calendars, availability rules or a booking cart. You can publish service pages and collect enquiries with ordinary forms, but customers cannot reliably select time slots, prevent double bookings and pay for several appointments in one transaction without a booking or e-commerce booking plugin.
Can customers book two services at the same time?
Only if your booking setup allows the required staff, room or resource capacity. If both services use the same person or room, the system must treat that resource as unavailable for overlapping appointments. Otherwise customers may add both services to the cart even though you cannot deliver them simultaneously.
Should I use service extras or separate services?
Use service extras for optional additions that happen as part of the main appointment, such as a hair wash added to a haircut. Use separate services when each item needs its own duration, staff member, availability, price or appointment record. Separate services are also the better choice when customers may book them at different times.
Why is one service missing from the confirmation email?
The email template may be using single-appointment fields instead of the booking cart’s appointment-list field. Check the booking plugin’s notification settings and add its cart appointment list placeholder where supported. Also test the customer, staff and admin templates because they may use different versions of the notification content.
Does a multi-service cart automatically make one long appointment?
Usually not. A cart normally stores several appointment items, each with its own service, time, staff and price. If you want services to run back to back as one continuous visit, configure a package or combined service, or use a booking system that explicitly supports linked or consecutive appointments.