Getting started: a beach house
Set up a three-bedroom beach house that sleeps eight, with seasonal rates, cleaning and damage deposits, and a cancellation policy. Guests pay 30% at booking and the balance fourteen days before arrival.
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 rental
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) to do any of it, andkahunacart.products.managefor the product. - The worker running
bin/plugin kahunacart work, for the receipts and the two messages a stay sends.
1. Create an all-day schedule
Create a schedule under Bookings → Schedules → New hours.
| Field | What to put |
|---|---|
| Name | Always open |
| Days | All seven ticked |
| Each day | One block, 00:00 to 24:00 |
A property without applicable hours is closed. Use one all-day schedule for properties that share opening dates.
2. Add the location
Bookings → Locations.
| Field | What to put |
|---|---|
| Name | The beach house |
| Address | 118 Dune Road, Santa Rosa Beach, FL 32459 |
| Hours | Always open |
3. Add the property resource
Bookings → People and places → Add somebody or something, and pick Property.
| Field | What to put |
|---|---|
| Name | Beach house |
| How many | 1 |
| Hours | Always open |
| Location | The beach house |
| Colour | teal |
Set How many to 1 for the whole house. Use a higher count for interchangeable rooms; see For B&Bs.
Set the property’s local timezone when it differs from the store. Nightly dates are calculated in that zone.
4. Create the rental product
KahunaCart → Products → Add, and set its Type to Booking.
| Field | What to put |
|---|---|
| Title | The beach house |
| Slug | beach-house |
| Summary | Three bedrooms, a deck over the dunes and the sea at the end of the path. Sleeps eight. |
| Option | The beach house, $249.00, SKU BEACH-HOUSE |
The product price is per night. Rate bands override it or apply a percentage of it.
5. Enable nightly bookings
Find the product under Bookings → Services, press Set it up and select Nightly stay under How it is booked.
Then, on the same screen:
| Field | What to put |
|---|---|
| It sleeps | 8 |
| Notice you want | 24 hours |
| How far ahead | 540 days |
| New bookings | Confirm straight away |
| Paid for | Online |
| Hours to fall back on | Always open |
And press Add a need:
- What to call it: Property
- The pool: Beach house
- The customer picks which: off, because this service uses one property.
6. Set the stay rules
Complete the stay-rules panel on the same screen.
| Field | What to put |
|---|---|
| Check in from | 4:00pm |
| Check out by | 10:00am |
| Shortest stay | 2 nights |
| Longest stay | 28 nights |
| Arrivals on / Departures on | Nothing ticked — any day. August gets its own answer on the rate card |
| It sleeps | 8 |
| The nightly rate covers | 6 |
| Each guest after that | $25.00 a night |
| Cleaning fee | $140.00, once a stay |
| Damage deposit | $500.00 |
| Filling the gaps | on |
Check-out at 10:00am and check-in at 4:00pm allow same-day changeovers with six hours between guests.
The damage deposit appears on the listing, quote, receipt and arrival email. Collect it separately; the shop does not charge it.
Filling the gaps prevents unbookable gaps. With a two-night minimum, it rejects a stay that would leave one isolated free night and identifies that date.
7. Set payment terms
Enable deposits under KahunaCart → Settings → Commerce → Deposits and part payment. They are disabled by default. Without this setting, the property’s Deposit field has no effect and checkout collects the full stay price.
Then, in the Paying part of the same panel:
| Field | What to put |
|---|---|
| Deposit | 30% |
| The rest is due | 14 days before arrival |
| Cancelling | 30 days → 100%, 14 days → 50%, 0 → 0% |
Guests pay thirty per cent at checkout and the balance fourteen days before arrival. The order is Part paid, while the booking is confirmed and its dates reserved.
Cancellations release the dates and create a refund request for review. See Taking payment.
8. Add seasonal rates
Open the Rates tab and create these bands in order:
| Band | Dates | A night | At the weekend | Shortest stay | Arrivals |
|---|---|---|---|---|---|
| Standard rate | last year to three years out | $249.00 | $289.00 on Friday and Saturday nights | the property's | any day |
| High summer | 15 June to 7 September | $329.00 | — | 7 nights | Saturdays |
| Christmas week | 20 December to 2 January | $399.00 | — | 5 nights | any day |
The Standard band covers the full period. High summer and Christmas week override it at higher positions, leaving Standard in effect for other dates.
High summer has no weekend price, so every night in that band uses its $329 rate. The Standard weekend rate is not inherited.
Weekend rates use the night’s starting weekday.
9. Review the example stays
The seed creates three stays for testing occupied dates and gaps:
| Who | When | Guests |
|---|---|---|
| The Okonjos | 5 nights, nine days from today | 6 |
| The Brennans | 4 nights, starting the morning the Okonjos leave | 4 |
| The Lindqvists | 3 nights, from twenty-four days out | 8 |
The second stay starts on the first stay’s departure date. Check-out at 10:00am and check-in at 4:00pm allow both without overlap. The guest calendar shows a diagonal split, and the Stays view shows the bars meeting in the middle of that date.
10. Test the booking page
Open The beach house in the storefront and check the date-range picker.
Choose a Saturday-to-Saturday week in high summer for six guests. Review the rate groups, guest charges, cleaning fee, total and payment schedule. Press Hold these dates to reveal Add to cart.
Test a Tuesday arrival in high summer: it should report Arrivals on Saturdays. A five-night request should report 7 nights minimum. Troubleshoot uses the same reasons.
If no dates appear, check the property over a date range in Bookings → Troubleshoot. Confirm the schedule from step 1 is assigned.
11. Write arrival instructions
Enter directions, parking and access details in the arrival-instructions field at the bottom of the stay rules. The default email timing is three days before arrival.
Access instructions appear only in the arrival email. Keep door codes in that field, outside public descriptions. They are excluded from receipts, confirmations, calendar entries, the front desk and published feeds. The seed leaves the field empty.
12. Connect listing calendars
For each listing site, export the property’s channel link and import its feed under Block time from other calendars. See Channel sync for both directions.
Continue setup
- A stay's rules - what a night is, the calendar states and the gap rule
- Rates and seasons - bands, overlaps, weekend rates and why a percentage is a multiplier
- Taking payment - the deposit, the balance, cancelling and the damage deposit
- The two messages - the arrival note and the thank-you
- The owner's side - the Rates tab, the Stays view, Troubleshoot and the front desk