Storefront & customer account
How to use it
Give customers a place to see and spend rewards:
- Add the loyalty block to your theme — a dedicated "/rewards" page plus a header balance chip work well. (Theme editor → Add block)
- Enable the Customer Account extension so returning, logged-in customers see loyalty in their account. (Loyalty → Storefront)
- Wire the tier metafield into your theme for tier badges. (Theme editor)
⏱ ~10 min · 💳 Starter+ · 🎯 Logged-in shoppers are enrolled on their first visit
The storefront widget
The widget is the customer's window into the programme. For a logged-in shopper it renders:
- Balance and its cash value at your redeem rate
- Tier and progress to the next tier ("200 points to Gold")
- The reward catalogue — what they can redeem right now
- Any running campaign banner ("Double points this weekend")
- Entry points for check-in, birthday capture, and reviews where enabled
For a logged-out visitor it degrades to a friendly "start earning" state rather than an error.
Enroll-on-login
Shopify emits no "customer logged in" event, so the widget's first
authenticated load is the only login-time signal the programme gets. It uses
that to provision a loyalty profile for a logged-in customer who doesn't
have one yet. The practical effect: a customer can earn (daily check-in, hold a
balance, redeem) the moment they log in — they don't have to place an order
first. A later customers/create / customers/update webhook enriches the
same profile (email, marketing consent) rather than creating a duplicate.
The widget talks to the platform through the Shopify App Proxy, and every
request is verified against the proxy signature before it's trusted. The
programme never provisions or reads a profile from a client-supplied customer
id — only from the signed logged_in_customer_id.
The Customer Account extension Beta
Beyond the theme widget, a Customer Account extension surfaces loyalty inside Shopify's native customer account area — the logged-in "My account" experience — so balance, tier, and rewards are available where customers already manage orders and addresses. It's an imperative Shopify UI extension (kept lean to fit Shopify's extension bundle budget) that reads the same config and ledger as the storefront widget.
| Surface | Where it lives | Best for |
|---|---|---|
| Storefront widget | Your theme (product page, cart, dedicated page) | Discovery + in-session redemption |
| Customer Account extension | Shopify's native account area | Returning customers managing their status |
Installing
- Configure the programme first (earn rate, tiers, rewards) — the customer surfaces render straight from that config, so there's nothing to re-enter.
- Add the widget block to your theme where it fits your funnel — a common pattern is a dedicated "/rewards" page plus a compact balance chip in the header.
- Enable the Customer Account extension to cover returning, logged-in customers.
- Wire the tier metafield into your theme (see Tiers & VIP) so tier badges and perks show up.
Best practices
✅ Give loyalty a permanent home (a "/rewards" page) and an ambient touch (a header balance chip). Discovery is the hardest part of loyalty adoption.
✅ Show progress, not just balance. "200 points to Gold" converts far better than "1,800 points."
✅ Enable both surfaces. The theme widget catches in-session shoppers; the account extension catches returning customers who arrive logged in.
❌ Don't hide redemption behind a wall. If customers can't see and spend their points easily, you carry the liability without the retention benefit.