Case study: a booking system for an art school

Case study: a booking system for an art school

SA Art Fair does two things that do not naturally share a shopping cart. It sells original artwork, which behaves like any other product, and it runs studio classes, workshops and full terms, which do not behave like products at all.

A seat in a class has a date, a start and end time, a capacity, an age range, and a specific person attending it. A full term is a dozen of those bought at once, and they have to stay together as one thing. Nothing in a standard product model expresses that.

Why the off-the-shelf route did not work

We looked at the existing booking apps first, because building is the expensive answer. Two problems ruled them out. Most run their own checkout, which would have split the business into two payment systems and two sets of numbers. And none of them could express a term properly, which is the single most valuable thing the studio sells.

So the booking layer went into the store instead.

What we built

Three ways to book. A single session, several hand-picked dates, or a full term, chosen with a segmented control on the product page. Multi-session bookings share a booking group so they arrive as one order rather than five unrelated ones.

Term pricing that argues for itself. When the dates someone picked add up to more than the full term costs, the widget says so and offers the switch. The upsell is arithmetic rather than a popup, which means nobody resents it.

Per-seat attendee details. Book three seats, get three name fields. The studio knows who is walking through the door, which matters more when the attendees are children.

Waitlists. A sold-out session captures an email instead of losing the visitor, and the studio can notify that list when a seat frees up.

Calendar invites. The booking generates a calendar file as soon as it is held, so the class lands in a diary rather than an inbox.

One admin. Bookings grouped by order, cancellation policy editable from a settings tab, waitlist notifications, and a live view of every class.

What came with it

Once the store was being rebuilt anyway, several things were cheaper to do at the same time than later: a wishlist that syncs across devices, display-currency switching for overseas buyers, a "shop by colour" browse, an "art under R5 000" collection that maintains its own membership as prices change, an artist directory with search and filtering, and a personality quiz that captures leads.

What we would tell someone considering the same thing

The hard part was never the calendar. It was modelling what a booking is for this particular business, and then keeping that model honest as features piled on. The booking logic carries just over a hundred automated tests, which sounds excessive until the first time someone books six seats across four dates and expects one invoice.

The same logic covers anything that sells time against capacity. Yoga studios, padel courts, salons, surf schools, tattoo studios, clinics. Art classes were simply the hardest version to build first, which was useful.

 

The system installs onto an existing Shopify store from R4,500 once-off plus R850 a month. See what it does, or book a demo through the app itself.

Back to blog