I am a former shopkeeper who used "loyalty cards."
I would use them again, if I owned a shop again.
Shops operate on a set margin. This margin has a little wiggle room, but not much. The shopkeeper pays for inventory, insurance, heating, lighting, advertising, wages, air conditioning, carpet cleaning, broken windows, window washers, the significant costs associated with accepting returns, wages, building maintenance, furniture, fixtures, cleaning supplies, toiletries, and many other expenses.
One of the keys to running a successful business is keeping your store "sticky." In other words, convincing customers to return to your store versus your competitor's.
An honest storekeeper only stays open through volume and cost. For myself, I would prefer to sell a lot of merchandise at reasonable cost than less merchandise at exorbitant cost.
I reward my loyal customers by providing them a slight discount. I do this by shaving part of my profit, whatever is allowed by my "wiggle room."
I am penalizing no one.
Think of it as a bulk-purchase discount. You buy 50 apples, so I negotiate a discount with you. The difference is that you bought the 50 apples over four visits.