Well the intention is clear. But the expiration is not the same. If I implement it (what I plan now), every customer will have ONE expire_date of his coins. If he doesn't order something before this date ALL his coins will be lost. But if he orders, ALL his left coins will still remain.
Also I don't get your point, that you can't accumulate more coins than you spend. Imagine you order for 100000$ and receive a lot of coins. Next order you buy something for 15$. Maybe you can pay this completly with coins and still have some left. Or not?