Tallystick
Customers earn points on orders, sign-ups and reviews and use them for money off. Every change is in a ledger, and a health check proves the balances are right.
Tallystick is a loyalty program for WooCommerce that keeps its own books.



Inside Tallystick
Earn
points for every $1 spent (a product can carry its own rate, a category can earn nothing - gift cards, say), a welcome bonus, and a review bonus once per product for people who bought it.
Spend
one button in the cart and at checkout - "Use 1,200 points for $12.00 off" - capped at the share of an order you choose, with a smallest amount to use at once.
Points come off the moment the order exists, on the classic checkout and the block checkout alike. Cancelled or failed orders give used points back and take earned points away; a refund, whole or part, does the same share.
Expiry, first in first out, with an email a month before any points expire.
A ledger, not a number
every change is a row - earned, used, given back, taken back, bonus, expired, adjusted - and customers see theirs under My Account.
A health check of every order and balance: points used but never taken off, points due but never given, points given on what earns nothing, refunds that kept their points, balances below zero, review bonuses paid twice, points past expiry, and a program that gives back more than you set as your limit. Each one with a "Put it right" button that writes the row that fixes it.
The orders screen gets a points column: earned and used, at a glance.
Past orders
one button gives points for completed orders from before you installed it.
Before you start
Asked first
How much does a points program cost me?
The health check says it in one line: at 1 point a $1 and 100 points for $1 off, every sale gives back 1%. Set the limit you are happy with and it warns you when the rates go over it.
What happens when someone returns an order?
The share of the order that was refunded takes back the same share of the points it earned, and gives back the same share of the points used on it.
Do points work on the block checkout?
Yes: points come off when the order is created on either checkout. On a block cart page, add the [tallystick] shortcode for the "Use points" button.
More for the storefront

Addendum
Extra product fields with prices, and a customer artwork upload - checked by what the file really is, kept private.

Admittance
Sell event tickets as WooCommerce products, email a named ticket with a QR code per seat, and check people in at the door from a phone.

Chit
One store-credit balance per customer - no codes. Refund as credit, give credit with a reason, spend it at checkout.