Getting started: a shooting range
Set up ten interchangeable lanes for hourly hire, a classroom and a Saturday safety course. This example books equipment and space without assigning staff.
Run bin/plugin kahunacart-bookings seed range 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 migraterun once after this add-on went in. - Manage Bookings and Setup (
kahunacart.bookings.manage), andkahunacart.products.managefor the two products.
1. Set opening hours
Bookings → Schedules → New hours, called Range hours:
| Day | Hours |
|---|---|
| Monday to Thursday | 10:00–21:00 |
| Friday | 10:00–22:00 |
| Saturday | 09:00–22:00 |
| Sunday | 11:00–18:00 |
2. Add the range location
Under Bookings → Locations, create The range, add its address and select Range hours.
3. Add a pool of ten lanes
Bookings → People and places → Add somebody or something, set What kind to Equipment, call it Lanes, and set How many of them to 10.
Use one record with a capacity of ten for interchangeable lanes. Use separate records only when customers or staff need to select a specific named lane.
Ten units allow ten simultaneous lane reservations.
4. Add the classroom
Add somebody or something again, this time a Room or space, called The classroom, How many rooms 1.
The safety course reserves the classroom. Keeping it separate from the lanes leaves lane capacity available during the course.
5. Create the lane hire service
Make the product — KahunaCart → Products → Add — called Lane hire, type Booking, with two options: One hour at $25 and Two hours at $45.
Bookings → Services, Set it up:
| Field | What to put |
|---|---|
| How long it takes | 60 minutes |
| Start times every | 60 minutes — a range books on the hour |
| How many at once | 1 |
| Party size up to | 4 |
| Notice you want | 0 |
| How far ahead | 30 days |
| Cancelling shuts | 2 hours |
| Paying | On the day |
| Hours to fall back on | Range hours |
Set Notice you want to 0 to allow short-notice bookings.
Add a Lane requirement containing Lanes, with customer choice disabled.
Give the Two hours option its own rule with a 120-minute duration. Keep the same requirement, party size and other settings.
Take payment on the day
With payment set to On the day, the customer enters a name and email to confirm the booking. There is no cart, checkout or order. Collect payment when they arrive.
Set party size and lane capacity
Configure booking capacity separately from the number of people sharing a lane.
How many at once counts simultaneous bookings, not people. Leave it at 1 for this setup, where each booking uses one lane. Use Party size up to for the group size.
Set Party size up to to 4. The storefront asks How many people before the customer chooses a time. The booking, receipt, email and counter view record that number, while the booking still reserves one lane from the pool of ten.
Party size does not change the lane price. Per-person appointment pricing is not supported.
6. Create the safety course
Make a product called Saturday safety course at $60, type Booking.
Set it up, and change How it is booked to It runs on a timetable:
| Field | What to put |
|---|---|
| The first one | The next Saturday, at 09:00 |
| How it repeats | FREQ=WEEKLY;BYDAY=SA — every Saturday, for ever |
| Registration shuts | 12 hours before |
| One purchase buys | One date |
| A full date takes names | on |
| Places on each date | 12 |
| How long it takes | 120 minutes |
| Cancelling shuts | 24 hours |
| Paying | In the basket — you want this one paid for before they turn up |
Then one need: Room, pool of The classroom, no choice.
Use Dates that are different for exceptions. Mark a date is off to cancel that occurrence, or use runs at to change its local start time. Exceptions follow local time through clock changes.
7. Test availability
Test Lane hire by making ten bookings for the same Saturday afternoon slot. The eleventh should be unavailable.
Add [kahunacart-sessions /] to a page to display upcoming Saturdays, remaining places and booking links. The timetable remains visible without JavaScript.
8. Manage the waiting list
After twelve places are booked, the course offers its free waiting list. Joining reserves no place.
When a place opens, the next customer receives a twelve-hour offer to pay for it. The place remains held during that period.
Customers can pay through the offer link. If you collect payment separately, use Give them the place on the register. See Classes and waiting lists.
9. Use the front desk
Use the front desk on a counter tablet to view lane bookings, create walk-ins, check customers in and mark appointments complete.
Walk-ins bypass notice and booking-window limits. Lane availability is still checked.
Continue setup
- Classes and waiting lists - the timetable, the register, and calling a date off
- The front desk - the tablet at the counter, and who can use it
- Taking payment - what "on the day" really means, and what happens when somebody cancels
- Services - the two boxes again, in full
Related
- Products - the product, its options and its price
- Payments - the cart and the providers, for the course
- Shortcodes - the other blocks a page's Markdown can carry