I’ve been wondering about the best way to handle memberships within a physical environment, such as a shop. I want to be able to allocate services to that membership and then when that person comes into the shop to redeem an allocated service, be able to record it and have it come off the total.

This creates a few head scratching problems.

1) People sign up to memberships on different days of the month, which means, simply re-allocating the services say, on the 1st of each month, wouldn’t work. Amending each by hand, would be a no-go. I want the memberships to be handled by GoCardless via Direct Debit but GoCardless can’t tell what we’re allocating it against, of course.

2) I want them to take away a physical thing i.e a card. The card can be linked to a barcode reader but probably better for it to just have an individual membership number that is printed, then linked through to a database against that number, rather than another piece of software?

3) Is it best to just build a database for these members and have staff tick off allocations as they happen and re-allocate, somehow, on a given date?

There are plenty of “loyalty-based” systems (handheld systems that read the cards themselves!), but they seem a bit over-engineered for what I’m looking for. Probably really easy to all you ROR devs out there. I’m left head scratching and looking to technology to answer it. Any help, greatly appreciated.