Getting started: a bed and breakfast
Set up four identical double rooms with a two-night minimum and optional breakfast. This guide adapts the whole-property setup to rooms sold from a shared pool.
Run the following command to create this example, or follow the steps to build it manually. Running the command again skips records that already exist.
bin/plugin kahunacart-rentals seed bnb
Before you begin
- KahunaCart 1.2.11 or later, KahunaCart Bookings 1.0.0 or later, and
bin/plugin kahunacart migraterun once after this add-on went in. - Manage Bookings and Setup (
kahunacart.bookings.manage), andkahunacart.products.managefor the product.
1. Create an all-day schedule
Bookings → Schedules → New hours.
| Field | What to put |
|---|---|
| Name | Harbour rooms, always open |
| Days | All seven ticked |
| Each day | One block, 00:00 to 24:00 |
Assign an all-day schedule to the room resource. Without applicable hours, every night is Closed. Multiple room records can share the schedule.
2. Add the location
Bookings → Locations.
| Field | What to put |
|---|---|
| Name | The harbour rooms |
| Address | 4 Quay Street, Kinsale, Co. Cork |
| Hours | Harbour rooms, always open |
3. Add a pool of four rooms
Bookings → People and places → Add somebody or something, pick Property.
| Field | What to put |
|---|---|
| Name | Double room |
| How many | 4 |
| Hours | Harbour rooms, always open |
| Location | The harbour rooms |
| Colour | violet |
The capacity of four lets guests book an interchangeable double room without selecting a room number. The calendar shows the remaining capacity for each night.
A shared pool needs one booking calendar and one set of rules for these identical rooms.
Use separate records when rooms have different features or prices, need individual selection, or are listed separately on other sites. An imported calendar blocks every unit on its record. See Booking.com calendar setup.
4. Create room and breakfast options
Under KahunaCart → Products → Add, create one product with Type set to Booking and two options.
| Field | What to put |
|---|---|
| Title | Double room |
| Slug | harbour-double-room |
| Summary | A double overlooking the harbour. Four of them, all the same. |
| Option | Room only, $139.00, SKU HARBOUR-ROOM |
| Option | With breakfast, $159.00, SKU HARBOUR-BB |
Both options share one booking rule and rate card. The quote uses the selected option’s nightly price.
Breakfast is an option because the guest chooses it and it changes the nightly price.
Give an option its own booking rule only when its booking requirements differ. It then has a separate rate card. Otherwise, it inherits the product rule.
5. Enable nightly bookings
Bookings → Services, find the product, press Set it up, and set How it is booked to Nightly stay.
| Field | What to put |
|---|---|
| It sleeps | 2 |
| Notice you want | 4 hours |
| How far ahead | 365 days |
| New bookings | Confirm straight away |
| Paid for | Online |
| Hours to fall back on | Harbour rooms, always open |
Add a need:
- What to call it: Room
- The pool: Double room
- The customer picks which: off
Notice is measured in hours. Choose a short notice period if you accept same-day arrivals.
6. Set the stay rules
| Field | What to put |
|---|---|
| Check in from | 3:00pm |
| Check out by | 11:00am |
| Shortest stay | 2 nights |
| Longest stay | 14 nights |
| Arrivals on / Departures on | Nothing ticked — any day |
| It sleeps | 2 |
| The nightly rate covers | 2 |
| Each guest after that | none |
| Cleaning fee | none |
| Damage deposit | none |
| Filling the gaps | off |
Check-in at 3:00pm and check-out at 11:00am allow same-day changeovers.
It sleeps and The nightly rate covers are both two, so this setup has no extra-guest charge.
Leave Cleaning fee empty for this example’s inclusive nightly price.
Untick Do not take a stay that would leave a gap too short to sell for this example. The gap rule treats the property as available while any room is free, so it is less useful for a pool of interchangeable rooms.
7. Set payment terms
| Field | What to put |
|---|---|
| Deposit | none — the whole amount at checkout |
| The rest is due | not used |
| Cancelling | no policy |
This example collects full payment at checkout. Its cancellation policy creates requests with no refund due under the configured rules. To offer deposits, see Taking payment.
8. Use the standard nightly rate
No rate bands are needed for year-round option prices. The Rates tab shows a flat rate. Add a band for dates requiring a seasonal price.
Dates outside any band use the selected option’s price.
9. Review the example stays
The seed adds two overlapping stays to demonstrate shared capacity:
| Who | When | Guests |
|---|---|---|
| Ms Farrow | 3 nights, five days from today | 2 |
| The Adeyemis | 3 nights, six days from today | 2 |
With arrivals on the fifth and sixth days, availability changes from four rooms to three, then two, and returns to three after the first departure.
10. Test the booking page
Open Double room, choose Room only or With breakfast, and select three nights. Check that the quote uses $139 or $159 per night without additional fees.
A one-night request should report 2 nights minimum. Dates covered by both example stays should still show two rooms available.
11. Write arrival instructions
Enter access details, parking and breakfast times under What to tell them before they arrive. These instructions appear only in the arrival email, sent three days ahead by default. See The two messages.
Room selection limitation
Recurring weekend-only minimums are unsupported. Minimum stays apply to the whole property or a dated rate band, rather than selected weekdays throughout the year.
The example therefore uses a two-night minimum for all arrivals.
Continue setup
- For holiday lets - the whole-property walkthrough, for the steps this page did differently
- A stay's rules - what a night is, the calendar states and the gap rule
- Guests and fees - who the rate covers, and what the extras cost
- Channel sync - connect feeds to the appropriate room records
Related
- Products - the product, its two options and their prices
- People and places - the record, its units and its hours