Selling an activity
An activity is sold as an ordinary product. Nothing in the activities module handles money: it holds the operation — the day, the instructor, the seat — and the sale stays where every other sale lives, on the booking or on the till receipt.
The link between the two is one field on the product: Default activity type. Set it, and every sale of that product becomes something the day board knows about.
From a booking
Add the product to the booking exactly as you would add a dive package or a bottle of wine — see The booking detail page. The line prices, taxes and appears on the folio like any other product line.
What is different is what happens next: the line shows up on the day board as an unscheduled sale, and stays there until somebody puts the guest on a session. Once scheduled, the booking line and the session point at each other, so the booking screen can tell a scheduled activity from one nobody has arranged yet.
Warning: A booking line that is already on a session cannot be removed from the booking: "That invoice line is used by an activity session and cannot be removed." Take the guest off the session first, then remove the line. This is deliberate — silently deleting the line would leave a guest on a roster with nothing behind them.
From your website
Activity products sell through your existing booking widget with no extra setup — the guest buys the product, the sale arrives as an ordinary booking line, and it lands on the day board as an unscheduled sale for your staff to place on a session.
There is no online seat picker and no live availability for activities. Guests buy the activity; you decide which session they go on. See Booking widgets.
At the POS counter
Selling an activity product at the till asks for the session before the sale can be finished.
A single session
Pick a session lists what is sellable over the next 30 days with its seat state. Full sessions are not offered at all, so the picker never shows something the sale would refuse.
If nothing is open: "No sessions to sell in the next 30 days — nothing scheduled is still open for this activity. Create a session on the day board first, then sell it."
A course
For a course product the cashier picks a start date, not individual sessions: "This is a course. Pick the start date — every session of the run is created and booked in one step." The run is created if it does not exist, the guest is enrolled, and every session's seat is taken in a single step.
Selling the same start date twice puts both guests on the same run, "so the instructor sees one group".
Warning: A receipt with no guest on it cannot sell an activity — "No guest on this receipt yet. Assign one before selling an activity." The seat has to belong to somebody.
When the counter refuses
Capacity at the till is absolute. There is no override:
Open Water 1 is full at 8 of 8. — That seat has gone. Pick another session — this cannot be overridden.
For a course, the refusal names the full session and confirms that nothing was created — no half-made run is left behind.
If the full session is at a property the cashier cannot see, they are still told: "A session in this course is full, on a location you can't see."
What happens when things change
| Event | Effect on the activity |
|---|---|
| Booking cancelled | Participations and enrolments are cancelled, seats are freed. The sale is untouched. |
| Booking deleted | Participations and enrolments from that booking are removed and their seats freed. |
| Booking line removed | Blocked while the line is on a session — take the guest off first. |
| Booking split | Blocked while an activity line on it is scheduled. Remove the participation first. |
| Guest marked no-show at check-in | That guest's participations are cancelled and their seats freed. |
| No-show reversed | Seats are not restored — the seat may have been resold. Re-add the guest through the normal path and capacity is re-checked. |
| Till receipt voided or refunded | A single-session sale's roster row is cancelled and the seat freed; a course sale's enrolment is withdrawn and every live session's seat freed. A completed session's attendance record is left alone. |
| Bill split, merged or a line moved | Nothing happens — these are not removals and the participation stays. |
| Session cancelled | Every participant is cancelled and every seat freed. |
| Run cancelled | All sessions cancelled, all enrolments withdrawn, all seats freed. |
Warning: None of these touch money. Not one of them creates a refund, removes a charge or voids an invoice. Every one of the confirmations says the same thing — "Invoices are not touched — refunds are handled in Folio." If the guest is owed something, do it in Folio.
Gear is never a charge
Ticking rental gear on a guest's roster row records what they need, not what they pay. It creates no product line. If you charge for rental gear, sell it as an ordinary product exactly as you do today — most course prices include the kit, so automatic charging would double-bill by default. See Gear and equipment.
Who can access this: selling from a booking requires the usual booking permissions; selling at the counter requires the POS permissions and the slot picker appears only for products with a Default activity type. Scheduling the resulting sale requires Activities (update).
