Skip to content

Powered by Grav CMS + Helios Theme

Getting started: a dog groomer

Set up two groomers sharing one tub. The service will offer appointments only when a groomer and the tub are both free.

Run bin/plugin kahunacart-bookings seed groomer to create this example, then use the steps below to review it. You can also follow the steps to build it manually.

Before you begin

  • KahunaCart installed and working, and bin/plugin kahunacart migrate run once after this add-on went in.
  • Manage Bookings and Setup (kahunacart.bookings.manage), and kahunacart.products.manage for the product.

1. Set opening hours

Bookings → Schedules → New hours, called Grooming hours:

  • Tuesday to Friday, 09:00–17:00
  • Saturday, 09:00–13:00

Leave Monday and Sunday without hour blocks to keep them closed.

2. Add the grooming location

Under Bookings → Locations, create The grooming room, add its address and select Grooming hours.

3. Add the groomers

Under Bookings → People and places → Add somebody or something, create Ann and Bo as Person records. Assign both to the grooming room and Grooming hours, with distinct colours.

Put the preferred groomer first in the list for bookings where the customer does not choose.

4. Add the shared tub

Add an Equipment record called The tub. Set How many of them to 1 and assign the same schedule and location.

Requiring the tub prevents simultaneous appointments that would compete for the same equipment, even when both groomers are available.

5. Create the grooming service

Make the product — KahunaCart → Products → Add — called Full groom, type Booking, with two options: Small dog at $55 and Large dog at $80.

Bookings → Services, find it, Set it up:

Field What to put
How long it takes 60 minutes — that is the small dog, and it is the product's own rule
Start times every 30 minutes
Clean-up after 15 minutes, to clean the tub
Notice you want 2 hours
How far ahead 60 days
Cancelling shuts 24 hours
Hours to fall back on Grooming hours

A clean-up buffer after the service leaves fifteen minutes between consecutive grooms. No setup buffer is needed for this example.

Then two needs, in this order:

What to call it The customer picks which Pool
Groomer ticked Ann, Bo
Tub not ticked The tub

Put the groomer requirement first. It determines candidate times and whether customer choice displays separate groomer columns.

6. Add a longer option

Open Large dog under Services. Create a rule with a 90-minute duration and the same two requirements and other settings.

The Small dog option inherits the product’s sixty-minute rule.

7. Test availability

Open Full groom, choose Large dog and select a day. The offered times must fit both a groomer and the tub for ninety minutes plus clean-up.

Book a time, then check availability again. Both groomers should lose access to the occupied tub. Bookings → Troubleshoot identifies the restriction as Tub: booked.

8. Review customer messages

Paid customers receive an order receipt with the service, option, time and groomer. If enabled, they also receive a calendar invitation and reminders a day and an hour before the appointment.

Messages include Manage this booking, linking to /booking for rescheduling or cancellation up to the cutoff.

9. Take a telephone booking

Open Bookings → Bookings, search by customer name or reference, then open the appointment to manage it.

For counter staff, use the front desk on a tablet.

Continue setup

  • Products - the product, its options and its price
  • Payments - what a customer goes through when they pay