← Blog

How to set up a Shopify loyalty program (without guessing)

August 26, 2026

Most loyalty setups fail in the config screen, not in the code. Here's the order to make decisions in, the numbers that actually work, and how to avoid the bookkeeping mess that shows up in month two.

1. Decide what a point is worth before anything else

Every other decision depends on this one. Pick the redemption value first, then work backwards to the earn rate. A clean, boring standard: 100 points = $1 off. It's easy to explain, easy to do mentally, and it gives you room to run bonus campaigns without the numbers looking silly.

Then set your earn rate as a percentage of revenue you're willing to give back. Most DTC stores land between 2% and 5%. At 100 points = $1, that means:

  • 2 points per $1 spent = 2% back — safe for thin-margin categories.
  • 3 points per $1 spent = 3% back — the common default.
  • 5 points per $1 spent = 5% back — aggressive, for high-margin or high-repeat products.

Sanity check it against your average order value. If your AOV is $70 and you're at 3 points per $1, a customer earns 210 points per order. That number should feel meaningful on the product page, not like a rounding error.

2. Choose points, tiers, or both

Points reward every purchase. VIP tiers reward the customers who keep coming back. They solve different problems, so pick based on your repeat behaviour:

  • Points only — you're launching, you have under a few thousand customers, or your repeat rate is still low. Start simple; you can layer tiers on later.
  • Points + tiers — you have a visible cohort of customers buying 3+ times a year and you want to give them a reason to consolidate spend with you.
  • Tiers only — rare, and usually a mistake. Without points, most customers have no feedback between purchases.

If you do run tiers, two or three is plenty. In Habit you set spend or order thresholds and an earn multiplier per tier — for example Member at 1x, Insider at 1.25x after $250 spent, and Inner Circle at 1.5x after $600. More than three tiers and nobody can remember where they stand.

3. Set a redemption threshold customers can actually reach

This is the single most common setup error. If your first reward sits at 1,000 points and a typical order earns 210, a customer needs five purchases before anything happens. They'll forget you first.

Aim for the first redemption to be reachable in one to two orders. With our example numbers, a $5 reward at 500 points is hit on the second order. Then offer larger rewards above it so the ambitious customers still have something to save toward. First reward reachable, top reward aspirational.

4. Connect refunds so points reverse automatically

Here's the part everyone skips and then pays for. A customer orders, earns 300 points, spends them, and then refunds the original order. Now you've paid out a discount on revenue you never kept — and if your app doesn't handle it, you're left with a negative balance and an awkward support conversation.

Your loyalty app should listen to Shopify's refund events and reverse the points earned on that order, without you touching a spreadsheet. Habit does this automatically: refund an order in Shopify admin and the matching ledger entry is written back the same way it was earned, with both entries visible in the customer's history so support can explain it in one sentence.

Whatever app you use, test it before launch: place a test order, confirm points are earned, refund it, and confirm the points come back off. If they don't, you now know what your month-two support queue looks like.

5. Add referrals — and treat them as a fraud surface

Referral programs are the cheapest acquisition channel you'll run, and the easiest to abuse. Someone will generate codes in bulk, self-refer with fresh email addresses, or share a code on a coupon site.

Set rate limits on how many referrals one customer can convert in a window, give codes an expiry, and get an alert when volume on a single code spikes. In Habit those protections are on by default and included in the plan — you don't buy a second app for it. Reward both sides (referrer and friend) and pay the referrer only after the friend's order clears the refund window.

6. Install it on the storefront

On Shopify, use a Theme App Extension rather than pasting Liquid into your theme. It's added through the theme editor as an app block, it survives theme updates, and it removes cleanly if you uninstall. Habit installs this way — enable the block, drop the widget where you want it, publish. Minutes, not a developer ticket.

Place the balance somewhere customers already look: the account page, the cart drawer, and the product page. If they can't see their points without hunting, the program doesn't exist to them.

7. Tell people, repeatedly

A loyalty program isn't a launch, it's a habit. On day one: an announcement email to your whole list, a site banner, and a line in your post-purchase email showing the points just earned. After that, keep it in rotation — points balance in order confirmations, a "you're 120 points from a reward" email, and a mention in your welcome flow.

Most programs that "don't work" were never promoted past week one. That's the first of five mistakes we see over and over.

A worked example you can copy

  • 100 points = $1 off.
  • 3 points per $1 spent (3% back).
  • Rewards at 500 pts ($5), 1,200 pts ($15), 2,500 pts ($35).
  • Tiers: 1x base, 1.25x after $250 spent, 1.5x after $600 spent.
  • Referral: 500 points to the friend, 500 to the referrer after the refund window.
  • Refund clawback: on, automatic.

Launch with that, watch redemption rate for 60 days, and adjust the earn rate — not the threshold — if the economics feel off.

Run all of this on one flat plan

Points, VIP tiers, referrals with fraud protection, and automatic refund clawback — $49/month, every feature included. See the pricing.

Install on Shopify

30-day free trial · One-click cancel