Skip to content

Powered by Grav CMS + Helios Theme

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-bookings plugin installed and enabled, and bin/plugin kahunacart migrate run once afterwards.
  • Manage Bookings and Setup (kahunacart.bookings.manage) permission for the person configuring bookings.
  • A scheduled worker running bin/plugin kahunacart work to 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.