Skip to content

Points & rewards that respect margin.

Eleven earning rules, three reward types, and the controls (expiry, anti-fraud, redemption caps) to keep your loyalty liability honest. Native to every Shopify surface, none of it iframed.

What it is

A loyalty points program is a closed-loop economy: customers earn points by behaving the way you want (placing orders, leaving reviews, referring friends), then spend those points on rewards that cost you less than acquiring a brand-new customer would.

Charm's points engine ships with eleven pre-built earning rules and three redemption types out of the box. You define the math, Charm handles the bookkeeping — including expiry, anti-fraud cooldowns, and full per-customer adjustment history.

How it works

Four moving parts.

The configuration surface is small on purpose. Most stores set this up in one sitting.

  1. 1

    Pick your earning rules

    Earning rules are the levers that decide which behaviors get rewarded. Stack as many as fit your program — most stores use 3-5 in production.

    Available rule types: order placed (with optional minimum), signup bonus, birthday bonus, nth-order milestone, collection-specific multipliers, product-specific multipliers, subscription start, review submitted (via Judge.me / REVIEWS.io / Okendo / Yotpo / Stamped / Loox / Fera / Air Reviews), social follow (TikTok / Instagram / Facebook), email signup, and referral conversion.

    Each rule has its own caps and cooldowns. A birthday bonus can be capped to once per year. A review reward can require a verified purchase. A social follow can require the platform to confirm the action via OAuth.

  2. 2

    Choose how customers redeem

    Three reward types cover virtually every loyalty pattern: discount codes (fixed amount or percentage), store credit (applied at checkout), and free products (catalog-curated).

    Rewards can be stackable or exclusive, have minimum order requirements, and expire after configurable windows. Per-customer redemption caps prevent abuse.

    Customers redeem in three places: the floating widget on any storefront page, the customer account hub, or by applying a code at checkout. The latter is auto-generated and emailed when they redeem.

  3. 3

    Expiry and anti-fraud

    Points expire by inactivity (the default — 12 months since last activity), absolute date, or per-rule lifetime. The expiry policy applies retroactively to existing balances so you can tighten the screws without rebuilding the program.

    Anti-fraud cooldowns block double-dipping on review rewards (one per order), referral rewards (one per friend), and signup bonuses (one per device fingerprint). Manual review queues catch the rest.

  4. 4

    Bulk admin & ledger

    Adjust any customer's balance manually (with a required reason logged to the ledger). Bulk-import balances from a CSV during migration. Export the full per-customer history at any time.

    Every change is journaled: who, what, when, why. Restoration after uninstall + reinstall is a single click on the data-migration screen.

Examples

Three configurations to steal.

Ready-to-copy patterns we see in production. Tune the numbers to your margin and audience.

Pattern 1

Birthday bonus

500 pts on the customer's birthday, max once per year, requires a registered date of birth on the customer account.

Pattern 2

Reviewer bonus

Award 100 pts per Judge.me review (cap one per order). Add a 50 pt bonus if the review includes a photo.

Pattern 3

Subscription welcome

Award 1,000 pts when a customer starts a Recharge subscription. Deduct half if they cancel within 30 days.

Use cases

What it looks like in the wild.

Beauty

DTC beauty: signup-to-second-order

200 pt signup bonus + 5× points on second order. Designed to flip browsers into repeat buyers within 30 days. Typical lift: +35% second-order conversion.

Food & Beverage

Coffee subscription: birthday + review

Birthday bonus (500 pts) + review bonus (100 pts/photo). Quiet engagement program built around moments people already enjoy.

Apparel

Apparel: collection multipliers

2× points on full-price seasonal collections, 1× on basics. Lifts AOV on the lines you actually want to push.

FAQ

Common questions.

Can customers earn points on discounted orders?
Yes by default; you can exclude orders below a threshold or with specific discount codes via the earning-rule conditions.
Do points show up in Shopify customer-account pages?
Yes — Charm renders a native customer-account block showing balance, tier, recent activity, and earned rewards. No iframes.
Can I import a points balance from another loyalty app?
Yes. CSV import of balances, per-customer earned history, tier status, and outstanding redemption codes is available on every plan, with dedicated migration assistance on Pro and Plus.
Are points liability tracked anywhere?
Charm exposes a running liability report: total outstanding points × your configured point value = open liability. Export to CSV for your accounting team.
Can I retroactively change point values?
Yes — point values are a separate setting from earning rules, so changing the value updates the liability calculation without rewriting earn history.

When you're ready

Free up to 150 orders / mo.

Every feature on this page is included in Free. Upgrade only when your order volume crosses the threshold.