Bookings
Bookings lets you sell appointments, classes and access to shared rooms or equipment through your KahunaCart shop. This chapter covers setup and daily use.
Install the kahunacart-bookings add-on beside the base plugin to enable bookings.
Create a service as a product. Add its name, price, picture, description and category, then set its Type to Booking. This adds a calendar to the product page. KahunaCart still handles tax, translations and purchase restrictions. See Products.
Book all the resources a service needs. A groom can require both a groomer and a tub. The shop offers a time only when both are free.
Manage payments through orders. Paid bookings use your cart, checkout, payment provider and receipts. View charges and issue refunds from the order screen; Bookings does not issue refunds automatically.
Before you begin
- KahunaCart 1.2.11 or later, on a store that can already take an order.
- The
kahunacart-bookingsplugin installed and enabled, andbin/plugin kahunacart migraterun once afterwards. - Manage Bookings and Setup (
kahunacart.bookings.manage) permission for the person configuring bookings. - A scheduled worker running
bin/plugin kahunacart workto process receipts, reminders, thank-you messages and waiting-list offers. See CLI.
What it adds
| Where | What appears |
|---|---|
| KahunaCart → Bookings | Nine screens for the diary, booking list, class registers, setup, troubleshooting and settings. |
| A product | A Booking type. Set it and the product page draws a calendar instead of a plain Add to cart button. |
| An order | An Appointment panel beside the details, with the time, who it is with and a link to the booking. |
| A customer | A Bookings panel on their record, with their next appointment and how many they have had. |
| The storefront | A product-page picker, appointment details on receipts, an account Bookings tab, and a /booking page for rescheduling and cancellation. |
| Your own site | A staff app at /desk with diary access and a brief payment summary. |
The plugin serves /booking and /desk automatically. You do not need to create these pages.
Chapter guide
| Page | What it covers |
|---|---|
| Getting started | Create and test your first bookable service. |
| Services | Which products can be booked, how long each one takes, and what it needs. |
| People and places | Configure staff, resources, schedules and time off. |
| Opening hours | Named weekly hours, lunch breaks, bank holidays and which hours win. |
| Classes and waiting lists | A time you pick rather than one the customer picks: recurrence, places, the register and the queue. |
| Taking payment | In the basket, on the day, or free — plus holds, approval, deposits and what a refund does. |
| Emails and reminders | The eleven messages a customer gets, the seven you get, and the calendar invitation. |
| Calendar sync | A link each person subscribes to, and blocking time from calendars you do not own. |
| The front desk | The staff tablet: turning it on, who can use it, and what it will not show them. |
| Bookings and Troubleshoot | Manage bookings and diagnose unavailable times. |
| Settings reference | Every config key with its default and what changing it does. |
| Selling in more than one currency | Pricing a service in each currency, what Not available in EUR means, and a booking staying in the currency it was paid in. |
| Developers | The model, the endpoints, the jobs, the templates and the events. |
The following guides walk through a complete setup for a specific business:
| Page | The shop |
|---|---|
| For salons | Three stylists on three different weeks, a cut, a colour that waits for a yes, an evening workshop. |
| For dog groomers | Two groomers, one tub, and a groom that needs both. |
| For personal trainers | Personal training appointments and an eight-week bootcamp. |
| For massage therapists | The client picks the therapist, the clinic picks the room, and a deposit on the long one. |
| For ranges | Ten lanes as one record, hire on the hour, and a Saturday course. |
Permissions
| Permission | What it allows |
|---|---|
kahunacart.bookings.view |
Read every screen in the Bookings section and change nothing. |
kahunacart.bookings.manage |
Every change: the services, the people, the hours, and anything done to a booking. |
kahunacart.bookings.desk |
The front desk, whole diary. This is reception. |
kahunacart.bookings.desk.own |
The front desk, one column. A stylist sees her own day. |
The view permission allows reading; manage allows changes. Desk permissions open /desk without granting admin access. Front desk accounts also need Grav’s API access permission.
kahunacart.bookings.manage also grants full front desk access.
Limitations
- Counter payment processing. The front desk shows what to collect. Staff take payment separately.
- Per-person pricing. Prices apply per booking. Four people sharing one lane pay the lane price.
- Nightly stays require Rentals. It adds date-range booking, seasonal rates, rental deposits and channel calendar sync. Without it, nightly services cannot be booked.
- Revenue reporting within Bookings. View payments on the order and totals under Reports.
Related
- Getting started
- Products - the product, its options, its price, its picture and who may buy it
- Payments - the cart, the checkout and every provider a paid booking goes through
- Orders and the admin - manage orders linked to paid bookings
- Customer accounts - the account area and its Bookings tab