Points & rewards
The points ledger
Every customer has a points balance backed by an append-only ledger. Earning, redemption, manual adjustments, refunds, and migration imports are all ledger entries — so balance is always sum(signed entries) and every change is auditable (who, what, when, why).
- Earning is driven automatically by your earning rules — most commonly when an order is paid. The base earn rate reads as “N points per Y spent”, and Y doesn’t have to be 1: on the spending rule, set Points earned and For every amount spent (e.g. 1 point per 10 € spent). Any bonus tiers share the same denominator, and storefront surfaces spell out the full “points per amount spent” phrasing.
- Redemption deducts points and mints a discount code, store credit, or free product.
- Refunds / cancellations reverse the points awarded for the affected order.
- Manual adjustments require a logged reason and appear in the customer’s history.
Point value (e.g. 1 point = $0.05) is a separate setting from earning rules, so you can re-price loyalty liability without rewriting earn history. Outstanding liability = outstanding points × point value.
Rewards
Charm ships six reward types:
| Type | Behavior |
|---|---|
| Amount discount | A fixed amount off, auto-generated and emailed at redemption |
| Percentage discount | A percentage off (store-wide or scoped to a collection) |
| Store credit | Native Shopify store credit, applied at checkout (and at POS) |
| Free shipping | Free-shipping discount applied at checkout |
| Product discount | A free or discounted product, granted via a Shopify Function discount |
| Collection discount | A percentage off items from a specific collection |
Rewards support stack/exclusive flags, minimum-order requirements, expiry windows, and per-customer redemption caps. Each reward also carries a channel — redeemable everywhere (default), online only, or at the register only — so you can run in-store-exclusive rewards without extra apps.
Layering on the other programs
Points are the base layer. On top of them you can layer VIP tiers (earned cohorts with multipliers and perks), referrals, and paid memberships. They all resolve through the same checkout discount Function, so a customer can be in a tier and a paying member and get both — compounded — with no conflicts.
Related how-tos
- Set up a signup bonus for new customers
- Rename ‘Points’ (including per-language names)
- Control when an order earns points (paid vs authorized vs pending)
- Reward purchases from a specific collection
- Reward a custom action with Shopify Flow
- Combine reward codes with other product discounts (Plus)
- Launch (or pause) your loyalty program
- Audit loyalty activity in the Activity Log