Technical Details

Reward points are added and removed from a customer's account when an order is saved or changes state. The code that manages this is in the com.konakart.bl.OrderIntegrationMgr and com.konakartadmin.bl.AdminOrderIntegrationMgr.

When an order is saved but hasn't been paid for, redeemed points are reserved so that they cannot be used twice. If the order is cancelled, these reserved points are returned to the customer, otherwise they are permanently removed once the order is paid for. If the order remains in a waiting for payment (or similar) state the reserved points are never freed up. There is a batch job called AdminOrderBatchMgr.freeReservedPointsBatch which will free the reserved points for all orders that have been in certain states for a programmable period of time. The batch job also allows you to automatically move the processed orders into another state.

If your business requires reward points to expire after a certain period, then you may run the AdminCustomerBatchMgr.expiredRewardPointBatch which will expire all unused points older than a specified number of days. Once the points have been expired, they are no longer available to be used by a customer.