Finished subscription reminders for the Job Scheduler tonight.  It's not live-tested, but I've walked through the code enough times that it looks solid.  It shouldn't take long to work out any minor bugs that appear – the code isn't all that complex just "bulky".  I could rewrite it twice more and probably still not be happy with it – always a good sign it's time to move on.

Now for abandoned basket reminders.  The design model is probably going to be very similar.  Give the site admin the opportunity to schedule a specific number of generic reminders with a single final reminder.  The icing on the cake will be the ability to assign a coupon code to the whole process so that if/when the final message is sent, the user is automatically added to a security group and the coupon code goes into effect.  This'll allow the site admin to toss a hail-mary teaser coupon to save the basket sale.  Hopefully the coupon code will work out to be anything coupon-able i.e. discount, free shipping or whatever.

The configuration page is getting too large – going to have to break it up into multiple pages (not ideal) or clean it up.  More options mean more flexibility but coding for all this stuff is slowing down everything.  I'll have a better product in the end, but it's difficult to see the end with so much extra coding involved.  Guess time will tell.