Points & rewards
The points ledger
Section titled “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.
Charm doesn’t store a separate cash value per point. Analytics prices your outstanding points at the fixed-value reward (an amount discount or store credit) that costs the fewest points, and when no reward has a fixed cash value it shows Unredeemed points instead of a money figure.
Ways to earn
Section titled “Ways to earn”Earning rules live under Program → Earning points. Besides points for purchases, you can add:
- Progress cards: punch cards that reward every few orders, Complete the set cards that reward buying from each of 2 to 8 collections, and subscription payment milestones.
- Yearly dates: a birthday bonus, a pet birthday reward, a name-day bonus and a membership anniversary reward, each issued automatically every year.
- Actions: a signup bonus, newsletter and SMS signups, reviews from a connected review app, purchases from a collection and custom actions.
Rewards
Section titled “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. Each code covers one item |
| Collection discount | A percentage off items from a specific collection. With Apply to one item only, the code covers one item, the most expensive eligible one in the cart |
Rewards support stack/exclusive flags, minimum-order requirements, expiry windows, and per-customer redemption caps. Require a minimum purchase works the same on a product discount and on a one-item collection discount: the discount applies only once the cart reaches the minimum. A one-item code covers at most 100 products and about 200 variants of a collection, and items beyond that get nothing from it, so keep those collections small and hand-picked. Each reward also carries a channel (redeemable everywhere by default, online only, or at the register only), so you can run in-store-exclusive rewards without extra apps.
When a customer spends points on a free product in the floating widget, on the landing page or in the cart, Charm puts the product straight into their cart. If the product has several variants, they pick one first. The reward code is still created and stays on the reward card as a fallback.
Layering on the other programs
Section titled “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
Section titled “Related how-tos”- Set up a signup bonus for new customers
- Reward customers who complete a set of collections
- Set up a pet birthday reward
- Set up a membership anniversary reward
- 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