Courses
Courses let you run multi-session, cohort-based programs — climbing clubs, weekly lessons, camps — where a customer enrols once and attends a recurring series of sessions, rather than booking a single slot.
Overview
A course is a scheduled cohort of a product. Each course:
- Belongs to a product at a site (e.g. "Kids Climbing Club" at Irti Maasta Helsinki)
- Has a set of sessions — the individual dated meetings the cohort attends
- Has a capacity — the maximum number of enrolled participants
- Can carry a skill label and cohort time (used to group and pick cohorts, e.g. Beginners · Mon 17:00)
Enrolment is a booking: a customer enrolling in a course creates a booking linked to that course. There is no separate enrolment record to manage — the roster is the set of bookings attached to the course.
Where Courses Appear
| Surface | What it shows |
|---|---|
| Admin → Courses | Management list, grouped by product, with a course filter |
Portal /courses | Customer-facing two-level drill-down: pick a product, then a cohort |
| WordPress widget | Grouped course grid with a skill · time cohort picker ([sessiq_courses] and friends) |
Club catalog courses are typically hidden from the normal booking grid and are enrolled into exclusively through /courses.
Creating a Course
Open the Courses section of the admin panel and click Create Course.
- Site & Product — choose the site and product the cohort runs under. On create these are editable (including otherwise-hidden products); on edit they are immutable — the product/site a course runs under cannot be changed after creation.
- Name / skill label / cohort time — used for display and for the customer cohort picker.
- Capacity — maximum enrolled participants; enrolment is blocked once the course is full.
- Sessions — the dated meetings (see below).
Sessions
The Sessions panel lists the course's meetings. Sessions are generated from the course's schedule; use Regenerate Sessions to rebuild them after changing the schedule.
Constraints to be aware of:
- No per-session editing — individual sessions are managed as a set via regeneration, not edited one by one.
- Sessions are shared by cohorts that run at the identical time under the same product.
Roster & Attendance
Open a course to see its roster — every enrolled participant (the bookings linked to the course).
- Attendance grid — mark attendance per participant per session. Attendance is recorded in a dedicated store and gated by the
course-attendancepermission. - Resend confirmation — re-send the enrolment confirmation email to a participant from the roster.
- Attendance records are append/update only — there is no attendance delete.
Consolidation Tools
When a program is spread across too many small cohorts, use the consolidation tools on the Courses list and roster.
Group by Product + Filter
The admin Courses list is grouped by product and offers a course filter, so a program with many cohorts of the same product stays readable.
Bulk Archive
Select multiple courses from the list and archive them in one action. Courses are never hard-deleted — archive is the only removal — so history and past enrolments are preserved.
Move an Enrolment
From a course roster, use Move to… to transfer a participant's enrolment to another cohort. The transfer is guarded and runs in a single transaction:
- The target course must be the same product
- The participant must have no recorded attendance yet
- The target cohort must have available capacity
On success the enrolment (booking) is re-pointed to the target course and the customer can be sent a fresh confirmation.
Limitations
- No course delete — archive only.
- No per-session edit — regenerate the session set instead.
- Product/site are immutable after creation — create a new course to run the same content elsewhere.
Next Steps
- Review Catalog Management for the products courses are built on
- See Scheduling for how sessions/slots are generated
- Check Booking Management for handling individual enrolment bookings