Skip to content
GPLWP Guides

How to sell service packages on a WordPress booking site

Booking & Events Time About 30–60 minutes 6 steps Updated 3 Sep 2026

BOOKING & EVENTS
The short answer

A normal WordPress product can collect payment for a service bundle, but it will not automatically track remaining sessions or apply package credits to future bookings. For that workflow, use a booking plugin or addon with package creation, customer redemption, expiry and usage tracking.

The route
  1. 01Define the package rules
  2. 02Create the services first
  3. 03Choose the manual route if it is small
  4. 04Create the package in your system
  5. 05Publish and test the customer flow
  6. 06Use the fast package-addon route

What you need

  • A WordPress booking system with customer accounts or a WooCommerce store
  • At least two bookable services already configured
  • Admin access to WordPress
  • A payment gateway tested in sandbox or test mode

Define the package rules

Decide exactly what the customer is buying before you create anything. Specify the included services, number of appointments, package price, expiry period, whether sessions can be shared, and whether the customer chooses dates at checkout or books each session later.

Keep the wording visible on the sales page. A package that says “five appointments” is ambiguous if customers can use those appointments across different services, staff members or locations.

Create the services first

Set up each service as a normal bookable service before building the package. Check its duration, staff assignment, availability, buffer time, location and capacity. Package systems generally select from existing services rather than creating independent services inside the package.

Book one test appointment for every included service. If a service has no usable availability on its own, adding it to a package will not fix the underlying schedule.

Choose the manual route if it is small

For a small offer, create a normal WooCommerce product or payment item called something such as “Five coaching sessions”. After payment, send the customer instructions for booking and record the number of sessions in a customer note, spreadsheet or CRM.

This route is acceptable when sales are infrequent and one person can check every booking. Its drawback is important: WordPress will not automatically deduct credits, prevent over-redemption, enforce expiry or connect a later appointment to the original purchase. A Friday booking can therefore be accepted even when the customer has already used the package unless you check it manually.

Create the package in your system

If your booking system supports packages, open its package management area and create a new package. Add a name, description, price, expiry or duration rule and any per-customer limit. Then add either individual services with separate appointment allowances or a service group with a shared allowance, depending on how customers should redeem the package.

For example, add “Massage” with five appointments when all five credits must be used for massage. Use a service group when customers should be able to spend the total allowance across several services.

Publish and test the customer flow

Put the package purchase form on a public page and add that page to your navigation. Check the complete path in a separate customer account: register or sign in, purchase the package, receive the confirmation email, open the normal booking form, select an eligible service and redeem one package appointment. Some systems provide a package shortcode or automatically create a package page.

Test the edge cases before advertising it: the last remaining credit, an expired package, a cancelled appointment, a failed payment and an attempt to book a service that is not included. Do not assume a cancelled booking restores a credit until you verify the setting or order workflow.

Use the fast package-addon route

The quickest route is BookingPress Service Package Addon if BookingPress already powers your appointments. Activate the addon, go to BookingPress > Package, select Add New, add the existing services or a service group, set the package price and limits, and publish the package booking form. Customers can then purchase the package and apply it when booking eligible appointments.

Before committing to this setup, check its constraints against your offer. The documentation says package appointments do not support custom-duration services, waiting slots, deposits or recurring appointments, and on-site payment gateways do not work for package purchases. Package orders can be reviewed and managed from the package order area.

The fast route

Let BookingPress Service Package Addon do it

Bundles multiple bookable services at a custom price, ideal when customers need to purchase several services in one transaction.

Get BookingPress Service Package Addon

Sources

  1. bookingpressplugin.com /documents/service-package/?utm_source=openai

Questions

Can WooCommerce sell a package of appointments by itself?
WooCommerce can sell a product and take payment, but it does not by itself know how many future appointments a customer has left. You need a booking extension or separate tracking process to connect the purchase with appointments, deduct credits and enforce expiry. A normal product is suitable only when you are prepared to manage redemption manually.
Should customers choose all package dates during checkout?
Not always. Let customers choose dates during checkout when the sessions must occur together or availability must be reserved immediately. Let them buy first and book later when the package represents repeat visits, because customers may not know their future dates. Confirm that your booking system supports the timing you want before publishing the offer.
Can one package include different services?
Yes, if your booking system supports service groups or bundled services. You can make every credit apply to one service, or let a shared allowance apply across several eligible services. State the rule clearly, because “five sessions” could otherwise mean five uses of one service or five uses spread across the whole group.
What happens when a customer cancels a package appointment?
The result depends on the booking system’s cancellation and credit rules. Some systems return the package credit when a cancellation is made within the allowed window, while others leave the appointment consumed or require an administrator to restore it. Test this with a customer account before launch and explain the cancellation deadline in your package terms.
Can service packages use deposits or recurring bookings?
Only if the package feature explicitly supports them. Package workflows often use a separate payment and redemption process, so deposits, recurring appointments, custom durations and some payment methods may be unavailable. For example, the BookingPress Service Package documentation lists deposits and recurring appointments among unsupported package features.