Skip to content

Powered by Grav CMS + Helios Theme

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.

BASH
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 migrate run once after this add-on went in.
  • Manage Bookings and Setup (kahunacart.bookings.manage) to do any of it, and kahunacart.products.manage for 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

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