The order and the invoice stopped agreeing
A registration site and an accounting system that had drifted apart, leaving the owner to reconcile them by hand every week. The fix was one mapping decision.
No More Excuses sells every class through a WooCommerce registration site we built for them in 2018 and have maintained since. Members pay by cheque, so the invoice isn’t a receipt. It is how the studio knows who still owes money.
The connector between the store and the accounting system had stopped producing invoices that matched the orders. Discounts went missing, tax was charged twice, and line items arrived named as bare dates.
The cost was the owner’s time
None of it ever reached a customer, because the owner was correcting every invoice by hand before sending it. That is what a broken integration costs: somebody spending part of every week being the integration.
One decision instead of a rebuild
It came down to a single question: what should a class become inside the accounting system? The site carries 2,308 product variations, so the obvious answer was one generic service, because anything else looked like thousands of junk entries.
Then we found that variations inherit their parent’s code, and eighteen parent classes covered all of them. The choice was one item against one per class, never one against thousands. One per class lets the studio see which classes earn.
We automated exactly one thing: an order goes in, one correct invoice comes out. Recording payments and sending them stayed manual, because that is the part she wants to keep.