Web project Part VI - Content Management Challenges

Image: OCRA web site activities booking page
Our 'simple' small charity web project went through a number of issues - changing web host, developing the sites in the portfolio, agreeing scope, working to a non-existent budget...

In the later stages, it was a series of content management challenges that proved most difficult.

The charity runs a number of children's' holiday activity schemes; there's a large Gym and Trampoline Club collecting termly fees, also special events and short courses like Active Mums Cycling, 5-a-side tournaments and the like. The e-commerce solution was intended to cater for all of these.

In January 2018, the main OCRA site was e-commerce enabled with a shopping cart using Woo Commerce and Stripe payment gateway. The new ticketing and registration process served by Events Calendar and Event Ticket Plus plugins saves considerable staff time and effort by reducing the overheads of cash handling, banking and reconciliation.

However, the layered plugin architecture isn't the easiest or quickest to work in:


+ Woo-Commerce + Stripe

    + Events Calendar Pro for Events

       + Event Tickets Plus for Tickets

Why is that an issue?
The capture of buyer and child attendee info in Event Tickets Plus doesn't follow the ideal data structure, either for bookers or administrators:

We want:
   1 parent : child 1 : activity 1, activity 2, activity 3

We have
   1 parent: child1: activity1, child 1: activity 2, child 1: activity 3

The data structure makes no sense to a parent who wants to enter one child and select a bunch of activities. Instead they have to re-enter each child for each activity. The ideal one-to-many relationship isn't supported because of the way the plugins stack under WordPress.

There are no plugins and few booking solutions (including paid pro versions!) which handle this in the ideal data structure. Also consider:
  • Sibling/bulk discounts
  • Coupons for discounts/refunds by ticket type
These are applied in Woo-Commerce Products, not in the Tickets plugin. So the administrator has to go three places to complete ticketing; you can only have one ticket open at a time per event (stacking, again) and this serial process is annoyingly slow because of the number of database writes to multiple tables, in serial.

This Summer holiday scheme had 31 options for 'Sport and Art' and 14 for the other activity camps; add 27 Gym Club sessions for the Autumn term; add discounts for sibling bookings; add refund codes for cancelled sessions last term.
What do you get? TICKET SPAGHETTI!

Fortunately it all works, you just wouldn't build it this way given a clean sheet and a bigger budget! RC