Most loyalty programs give the customer a decision to make. Six rungs, four tiers, a slider, a catalogue. The Body Shop's Love Your Body Club gives them one number. Five points per pound, five hundred points, five pounds off. That is the entire program, and a customer can hold it in their head after reading it once.
The single rung is the cheapest, clearest part of the whole thing. It costs 5% and it is the bit worth copying without changing a digit. The money leaks either side of it. Bolt on the 10% welcome offer and the birthday voucher, run a customer through their first year, and the real cost is closer to 7.7%. Nearly a third of that goes to the welcome offer, which is the one pound in the program paid to somebody who has not done anything yet.
So the decision this guide keeps coming back to is not the earn rate. It is what you put around the rung, and whether the most expensive thing in your program should be pointed at strangers or at the customers you already have.
What this guide covers: the complete build, step by step, in Mage Loyalty on Shopify. Real admin paths, real field labels, real numbers. It takes about twenty minutes end to end, and we will do the whole thing for you free if you would rather not. Examples use a demo store selling skincare: cleansers, serums, moisturisers, body butters and gift sets.
What is the Love Your Body Club?
Skip ahead to How the Love Your Body Club loyalty program works if you already know it.
The Love Your Body Club is The Body Shop's free rewards club for UK customers aged 16 and over, and it has been running for around fifteen years. There is no fee and no application. You join in any UK store or by registering online, and if the signup form does not appear when you try, that is because you already have one.
There are no tiers, no levels and no status. Every member earns at the same rate from their first order to their thousandth. Members collect points on purchases, online and in the brand's retail stores, and at 500 points they receive a £5 voucher.
The club's £5 voucher is a discount that needs a return visit, which is what makes it worth copying. The Body Shop's UK site lists other offers alongside it, such as 15% off a first order for email sign-ups and 20% off through its refer-a-friend offer.
The page leads with 10% off your first order, 5 points for every £1 spent, a £5 reward at 500 points and a birthday gift. Its perks section adds a £5 voucher on your birthday, an online account for your points and vouchers, and early access to launches and sales.
“Great app! User friendly and straightforward. The customer service team has been great and so helpful.”


Read the SKYNBIO case study →
How the Love Your Body Club loyalty program works
Love Your Body Club points, and the cashback percentage
A point is worth one penny. There is only one published redemption and it sets the rate: 500 points converts to a £5 voucher, so each point is £0.01.
The earn rate is 5 points for every £1 spent, in stores and online. Put the two together and the arithmetic falls out immediately:
cashback percentage = (reward value x points per pound) / points costFive points per pound, at 100 points to the pound, is five pence back on every pound. 5%, flat, on every member.
That is a generous core rate, and whether it is affordable depends on your gross margin. If you resell other people's products, read the pricing section below before you copy the number.
The Love Your Body Club voucher
There is one redemption and it is not a ladder:
- 500 points becomes a £5 voucher
- Online, you can use one voucher at a time
- In a retail store you can use up to five, so £25 in one go
- Points keep accumulating, so a customer can hold several vouchers at once, up to 10 on one account, and each one expires after 3 months if unspent
At 5 points per pound, 500 points is £100 of spending. That is the real barrier to first redemption, and on a skincare store with a £30 average order it is three and a bit orders. Not trivial, but reachable inside a season.
The birthday voucher and the welcome offer
Two things sit either side of the rung, and between them they cost more than people expect.
The birthday reward is £5, once a year, in the member's birthday month. Note the size: it is exactly one redemption. A member gets one complete voucher a year, provided they have saved their birthdate, opted in to email and bought something in the 12 months before it, and the voucher is valid for 30 days.
The welcome offer is 10% off your first order. It is an acquisition discount rather than a loyalty mechanic, and it is paid before the customer has bought anything, which makes it the only line in the program with no relationship to behaviour.
The three things that make the Body Shop Love Your Body Club work
1. One rung is the feature, not a shortcut
Most programs we take apart publish four to eight redemption rungs, and the rungs are usually bent so the top one is better value than the bottom. That is a real technique, and it buys patience from customers who are paying attention.
The Love Your Body Club publishes one rung, and it buys something else: legibility. Five, five hundred, five pounds. Every number in the program is a five, the conversion never changes, and there is no moment where a customer has to work out whether saving is better than spending.
The inflated currency does real work here too. At 5 points per pound, a £40 serum reads as 200 points on the product page, and 500 is a target you can see yourself reaching. The same program at 1 point per pound would show 40 points against a 100 point target, which is arithmetically identical and reads as nothing.
So the first decision in copying this program is whether you want one rung or several. We would keep the one for any store with a focused catalogue and a repeat purchase cycle under three months. Add rungs when your customers have very different basket sizes, not because a longer list looks more generous.
2. The welcome offer is a third of the cost and the least targeted pound in it
Take a customer who spends £300 in their first year, across ten £30 orders, and price everything they receive:
| What they get | Cost |
|---|---|
| 1,500 points earned, three £5 vouchers | £15.00 |
| Birthday voucher | £5.00 |
| 10% off their first £30 order | £3.00 |
| Total on £300 of revenue | £23.00, or 7.7% |
The rung you spent all your time pricing is 5%. The two things bolted around it add another 2.7 points, and that is before a single points promotion.
Now look at where the welcome offer lands. It is a percentage, so it scales with the basket, and the first order is often the largest one a beauty customer ever places. The Body Shop limits the exposure by excluding sale and archive items, gift cards, gift sets and collections from its 10%. Without exclusions like those, ten percent of a £400 gift set is £40, paid to someone who has no history with you and may never return.
This is where our build differs from the source. We would make the welcome offer a fixed £5 with a £25 minimum spend rather than a 10% that has no cap of its own. The Body Shop's 10% excludes sale and archive items, gift cards, gift sets and collections, so it is less exposed than a plain 10% would be. It reads almost identically in a signup form, it costs the same on a typical first order, and it cannot run away on the one order where you can least afford it. Step 6 builds it both ways so you can choose.
3. The birthday voucher is exactly one redemption
The birthday grant is £5. The redemption is £5. That is not a coincidence, it is the answer to a £100 first redemption barrier.
Every member gets one complete voucher a year, free, regardless of what they have spent. It turns a program that takes three orders to open into one that opens on your birthday, and for a lapsed customer it is a reason to come back that does not require them to spend anything first.
Copy the size, not just the idea. A birthday reward worth less than one full redemption is a coupon. A birthday reward worth exactly one redemption is a complete, usable thing, and customers can tell the difference.
The Body Shop loyalty program in numbers
Everything above, condensed into the numbers you need to price your own version. As it stands in 2026:
| Detail | Value |
|---|---|
| Value of one point | £0.01 |
| Earn rate | 5 points per £1 |
| Effective cashback | 5.0% |
| Points needed for a voucher | 500 |
| Spending needed to reach it | £100 |
| Voucher value | £5.00 |
| Vouchers per online order | 1 |
| Vouchers per in store transaction | Up to 5 |
| Welcome offer | 10% off your first order |
| Birthday reward | £5 voucher, once a year |
| Tiers | None |
| Join bonus in points | None published |
| Real first year cost, £300 customer | 7.7% |
The brand sets its expiry rules in the programme terms rather than on the club page: the whole points balance expires after 12 months with no earning or redeeming, and a £5 voucher expires after 3 months if unspent. Step 3 and Step 4 build the same two rules.
What you'll set up
| Love Your Body Club feature | What you build in Mage |
|---|---|
| 5 points for every £1 spent | Purchase earning rule |
| No points on delivery charges | Automatic, nothing to configure |
| 500 points becomes a £5 voucher | Fixed reward, set amount |
| One voucher per online order | Reward Combinations settings |
| Points expire after 12 months of inactivity | Points Expiry, customer's last purchase date |
| A warning before they expire | Points Expiry Soon email |
| A £5 voucher on your birthday | Birthday earning rule, 500 points |
| 10% off your first order | Entry reward on your default tier |
| Earning on in store purchases | Mage Loyalty POS extension, or Submit Receipt |
| A scannable membership card | Wallet Pass for Apple and Google Wallet |
| Points promotions during the year | Bonus Campaigns |
| Surprise rewards for members | Points Drops |
| Early access to launches and sales | Shopify customer segment, gated in your theme |
| Manage your points and vouchers online | Rewards Center and account sidebar |
| Returns take back the points they earned | Automatic, nothing to configure |
Step 1. Confirm your program currency
Go to Settings → Loyalty and check the Program Currency card reads Points. On a fresh install it already does, so this is a look rather than a change.
It is worth the look because switching later resets every balance to zero. The alternative mode denominates the whole program in money, which suits a cashback style program and is the wrong call here. This build depends on a balance that reads a hundred times larger than its pound value, and money mode would delete that effect along with the 500 point target you are about to set.
While you are on the settings pages, set your Default Prefix to something short and branded, GLOW- for our demo store, so every voucher reads as GLOW-X7K2P9 in your Shopify discounts list.
Then go to Settings → Test mode and switch it on, so test orders on your own store do not award real points while you configure. Turn it off before you launch.
Step 2. Set the earn rate
Go to Loyalty → Earning Points and open the Purchase rule. It already exists, so there is nothing to create.
| Field | Value |
|---|---|
| Earning rule name | Earn 5 points for every £1 spent |
| Earning points | 5 for every £1 spent |
| Exclude discounted products from earning points | Unchecked |
| Approval Time | 0 |
| Status | Active |
The Earning points card is two boxes with no labels on them, and you read it across as a sentence: "5 for every £1 spent". Type 5 in the first and 1 in the second.
Approval Time is 0 because this program has no waiting period anywhere in it. The whole customer story is pick a product, pocket points, and a member who checks their balance after ordering should find the points already there. If your store has a heavy return rate, setting it to 3 holds each award as pending for three days and gives you a buffer, at the cost of that immediacy. We would take the immediacy.
Leave the exclusion checkbox unchecked. This is the one setting merchants tick by instinct and regret. Ticked, any line carrying a discount stops earning altogether, which means a member redeeming their £5 voucher earns nothing on that entire order. In a program built around a welcome discount and repeat vouchers, that switches earning off on exactly the orders you most want to reward.
Three of the program's rules need no configuration at all, because the earning base is the merchandise subtotal after discounts and before tax and shipping. That gives you no points on tax, none on shipping, and none on the portion of an order paid for with a redeemed voucher. All three are free.
Step 3. Build the £5 voucher
This is the whole redemption side, and it is one reward.
Go to Loyalty → Redeeming Points → Add Reward → Discount → Fixed, and in the Redemption type card leave Set amount selected.
| Field | Value |
|---|---|
| Reward Name | £5 voucher |
| Redemption type | Set amount |
| Points Cost | 500 |
| Discount Amount | 5.00 |
| Applies to | All products |
| Combinations: Product discounts | Checked |
| Combinations: Order discounts | Unchecked |
| Combinations: Shipping discounts | Checked |
| Purchase type | One-time purchase |
| Minimum Spend | 0 |
| Expiry Days | 90 |
| Reactivate discount code on full refund | Checked |
Each redemption mints its own single use discount code, so a member holding three vouchers holds three codes, exactly as they would hold three paper ones.
Leaving Order discounts unchecked is how you build "one voucher at a time". Shopify only lets two code discounts stack when both permit that class of discount, and a fixed amount off the order is an order discount. Unchecked, a customer physically cannot apply two £5 vouchers to the same online order. The rule enforces itself at checkout rather than living on a terms page nobody reads.
Product and shipping combinations stay checked, so the voucher still works during a site wide sale and alongside free shipping. A beauty store that blocked its own November sale would spend November answering emails about it.
Expiry Days 90 is how long the issued code stays usable, not how long points last. The brand's vouchers expire after 3 months if unspent, and 90 days matches that. It is long enough that nobody feels cheated and short enough that you are not carrying every voucher ever issued on your books. Set it to 0 if you would rather they never expire.
Minimum Spend 0 matches the source. If you would rather the £5 never landed on an £8 basket, £20 is the number we would use, and a customer who spent £100 to earn the voucher will not notice it.
Reactivate discount code on full refund is checked. If a member returns an order they paid for partly with a voucher, the code goes back to being usable, so the value they spent is restored to them alongside the refund.
If you want the in store rule online too
The source lets a customer stack up to five vouchers in a shop. To offer the same £25 ceiling online, build the reward with Flexible amount selected instead:
| Field | Value |
|---|---|
| Conversion Rate | 500 points = £5.00 |
| Minimum redemption | 500 |
| Maximum redemption | 2500 |
The Conversion Rate card is two boxes reading across as "500 points = £5.00", and the increment becomes the step on the slider, so the only reachable amounts are £5, £10, £15, £20 and £25. A banner underneath confirms it.
We would ship the set amount version. Three separate £5 redemptions across three orders are worth considerably more to you than one £15 discount on a single basket, and the source only allows the stack in a shop where the visit is the point. Build the flexible version if your average order is high enough that a £5 discount reads as trivial.
Step 4. Set the expiry, and the warning that comes with it
The brand's terms set two expiry rules: the whole points balance expires after 12 months with no earning or redeeming, and a £5 voucher expires after 3 months if unspent. The voucher side is set in Step 3, so this step is about the points balance. It is also the step with the most leverage in the whole guide.
Go to Loyalty → Points Expiry, at the bottom of the Loyalty page.
| Field | Value |
|---|---|
| Enable points expiry | Checked |
| Expiry mode | Time after points are acquired |
| Points expire after | 365 |
| Expiry reminder | 30 |
| Reset Redeemable Loyalty Points Annually | No |
The expiry mode dropdown offers two behaviours and they produce very different programs. The Body Shop's rule, where any earning or redeeming keeps the whole balance alive for another 12 months, is closest to the second:
| Mode | What it does |
|---|---|
| Time after points are acquired | Each batch expires on its own clock, a year after it was earned |
| Customer's last purchase date | Every purchase resets the clock on the whole balance |
Check your average order value before you pick. This program has a 500 point redemption bar, which is £100 of spending, and the two settings interact:
| Your average order | Orders to a voucher | What to use |
|---|---|---|
| £20 | 5 | Customer's last purchase date |
| £30 | 3.3 | Time after points are acquired |
| £50 | 2 | Time after points are acquired |
| £75 | 1.3 | Time after points are acquired, and consider a 750 point rung |
On a small basket store, a one year batch clock can expire a customer's first points before they have ever earned enough to redeem, and a customer who never reaches a reward concludes the program does not work. The last purchase mode pushes the whole balance forward on every order, so an active customer never loses anything, and expiry becomes a lapse detector rather than a penalty.
The reminder is the most valuable field on this page. Thirty days before a batch expires it fires the Points Expiry Soon email with a specific number and a deadline attached.
On this program that email does something no other program's can. Because there is one rung at 500, a customer sitting on 430 expiring points receives a message that reads as both "use these" and "you are 70 points away", and 70 points is £14 of shopping. Expiry without a warning is a penalty your customers resent. Expiry with a warning is a reactivation campaign that runs itself.
Leave Reset Redeemable Loyalty Points Annually on No. It wipes every balance on 1 January, which would take everything from a customer who joined in December.
Step 5. Give a birthday voucher
Go to Loyalty → Earning Points → Add Earning Rule → Birthday.
| Field | Value |
|---|---|
| Amount earned | 500 |
| Date of Birth Eligibility Period | 30 |
| Status | Active |
That is the birthday reward built. It runs once per member per year, automatically, forever. The Body Shop also asks for an email opt-in and a purchase in the 12 months before the birthday before it pays the reward.
500 is the number that matters, and it is not 250. The rule pays in points, and 500 points is exactly one £5 voucher at this program's conversion, so the birthday grant buys precisely the thing the brand promises. Set it lower and you have given somebody most of a reward, which is a strictly worse gift than half the money and a clean number.
Date of Birth Eligibility Period is the required notice. At 30 days, a customer who adds their birthday a fortnight beforehand will not be paid this year. Without it, customers quickly work out that they can set their birthday to next Tuesday, collect, and change it back.
Give them the choice of a gift instead
The brand calls it a special gift, and in beauty a birthday gift is usually a product rather than money off. You can offer both from the same 500 points.
Go to Loyalty → Redeeming Points → Add Reward → Free Product, set Points Cost to 500, and point it at a travel size product. Turn on Enable seamless discount so the item drops into the cart with the discount applied when they redeem.
Now the birthday balance buys either the £5 voucher or the birthday gift, and the member picks. It costs you the same 500 points and it is a better story than the one you copied.
Step 6. Build the welcome offer
The 10% off the first order is delivered as an entry reward, which is issued automatically when a customer joins, once each, with no points spent.
Entry rewards live inside VIP tiers, so switch the module on with a single default tier and nothing above it. That is a supported setup: the default tier exists on every store at a threshold of zero and every member lands in it on joining, which is exactly what you want in a program with no status ladder.
Before you enable anything, go to VIP Tiers and set the program level options, because both lock once the feature is on:
| Field | Value |
|---|---|
| Entry Method | Amount spent |
| Tier Progress Expiry | Lifetime |
Neither does any work with one tier, and getting them wrong means turning the feature off and back on again later. Then rename the default tier to your club name, because that name shows on the member's account page.
Now go to VIP Tiers → your default tier → Entry Rewards → Add Reward → Percentage.
| Field | Value |
|---|---|
| Reward Name | 10% off your first order |
| Discount Amount | 10 |
| Points Cost | 0 |
| Applies to | All products |
| Combinations: Product discounts | Checked |
| Combinations: Order discounts | Unchecked |
| Combinations: Shipping discounts | Checked |
| Minimum Spend | 0 |
| Expiry Days | 30 |
The code is minted the moment they join and appears in their Rewards Center, their account sidebar and the checkout wallet.
Expiry Days 30 is doing more work than it looks. The offer is meant for the first order, and a 30 day life is what makes that true in practice. It also gives a new member a reason to buy this month rather than bookmarking you.
The version we would actually ship
Reread the arithmetic from earlier in this guide. A percentage welcome offer scales with the basket, and in beauty the first order is often the biggest one a customer ever places, when they buy a gift set. The Body Shop's 10% excludes gift sets, collections, gift cards, sale and archive items, so its worst case is smaller, but without exclusions like those ten percent of £400 is £40, handed to somebody with no history.
Build it as a Fixed entry reward instead:
| Field | Value |
|---|---|
| Reward Name | £5 off your first order |
| Points Cost | 0 |
| Discount Amount | 5.00 |
| Minimum Spend | 25 |
| Expiry Days | 30 |
On a £50 first order it is identical to the 10%. On a £400 order it is £35 cheaper. It reads the same in a signup form, and your worst case is a number you chose rather than a number your customer chose.
Use the percentage if your catalogue is tightly priced and a large basket is rare. Use the fixed amount if you sell gift sets, bundles or anything seasonal.
Skip the join bonus
While you are in the earning rules, open the Signup rule and leave Amount earned at 0 with the status inactive. The brand publishes no points bonus for joining, and the welcome offer is already the most generous line in the program. If you want one anyway, 100 points is what we would use: a fifth of a voucher, so it is a visible head start rather than a giveaway.
Step 7. Earn on in store purchases
If you run Shopify POS, install the Mage Loyalty POS extension from your POS app settings and add the tile to your home screen. Staff look a customer up at the till and see their balance next to the transaction.
Point of sale orders fire the same webhook as online orders, so an in store sale with a customer attached earns 5 points per pound automatically, at the identical rate, with nothing else to configure. That covers the source's promise that you earn in any retail store or online.
The Body Shop loyalty card, rebuilt as a wallet pass
Go to Wallet Pass and switch it on. An Apple or Google Wallet pass carrying the member's balance and a scannable code is the modern version of the plastic loyalty card, and it is what your staff scan at the till.
On a program where half the earning happens in a shop, this is not a nice to have. It is the membership card, and it is the difference between a customer who remembers they are a member and one who does not.
If your tills are not on Shopify
Use receipt uploads instead. Go to Loyalty → Earning Points → Add Earning Rule → Submit Receipt.
| Field | Value |
|---|---|
| Earning Method | Points per amount spent |
| Points per Amount Spent | 5 for every £1 spent |
| Only accept receipts from specific stores | Checked |
| Selected stores | Your store name and every trading name on your receipts |
| Maximum receipt age | 30 |
| Minimum purchase amount | 5 |
| Limit how often customers can earn points by submitting receipts | Checked |
| Maximum submissions | 10 |
| Time period | Per month |
| Send email reminders when there are pending receipts to review | Checked |
That gives in store and online purchases the same 5 points per pound, so a £40 purchase in a shop is worth the 200 points it would have been worth online.
Only accept receipts from specific stores is the setting that matters here. Without it, a customer uploads a supermarket receipt and earns points on their weekly shop. List every trading name that appears on your receipts, or the scanner will reject legitimate ones. Receipts are checked automatically and then approved by you at Loyalty → Receipt submissions, and points are awarded on approval.
Step 8. Run points promotions
The brand tells members to expect points promotions through the year, and it is one of two recurring mechanics it names, alongside early access to Sale and new products.
Go to Loyalty → Bonus Campaigns → Create.
| Field | Value |
|---|---|
| Campaign Name | Double points weekend |
| Start date | Your start date |
| End date | Your end date |
| Multiplier Rules: Purchase | 2 |
| Override VIP tier multipliers | Unchecked |
The Multiplier Rules card lists one row per earning rule with a box on the right suffixed with a times sign. Set the Purchase row to 2 and leave everything else at 1, because rules left at 1 are not included in the campaign.
Price the weekend before you run it. A 2x campaign turns 5 points per pound into 10, which halves the distance to a voucher from £100 to £50. On a program already paying 5%, a fortnight at double points is a fortnight at 10%, and it is worth deciding in advance whether that is an acquisition budget or an accident.
A campaign can be scoped to specific products or collections, which the purchase rule cannot. That makes it the tool for "5x points on all serums this week", and it is the cleanest way to push a category without discounting it.
The other campaign type sets spend thresholds with flat bonuses instead: spend £50 get 250 bonus points, spend £100 get 750. The highest matching bracket wins. The source does not do this, but it works well on skincare, where the second product is the natural upsell and 250 points reads as half a voucher, free.
Step 9. Send a surprise
The club promises special rewards and surprises through the year. That is a points drop, which grants points straight into an audience's balances with no purchase required.
Go to Loyalty → Points Drops → Create.
| Field | Value |
|---|---|
| Drop name | Spring skincare surprise |
| Points amount | 250 |
| Who receives this drop? | All loyalty members |
| Expires after | 21 Days |
| Status | Scheduled |
250 points is the right size for a surprise. It is half a voucher, so it moves a member meaningfully closer to redeeming without simply handing them one, and it is the amount most likely to produce an order rather than a shrug. Drop 500 and you have given away a voucher, so treat it as one in the budget.
Dropped points carry their own expiry clock, independent of the shop wide setting from Step 4, counting from the moment the drop lands. Twenty one days is what turns a gift into a visit this month.
You can also send a drop to a Shopify segment rather than everyone, which is how you build a win back: everybody who has not ordered in six months, 250 points, three weeks to use them.
Step 10. Open early access to members
Early access to launches and sales is a members benefit rather than a reward, and it costs no points, which is exactly right.
In your Shopify admin, build a customer segment filtered on customer_account_status = ENABLED. Every member of your club has a customer account and every account holder is a member, so that one filter is your membership list.
Then either publish the launch to a collection linked only from the member email, or gate the collection page in your theme on whether the visitor is logged in. Send the announcement to the same segment from your email platform, timed ahead of the public launch.
This is the cheapest benefit in the entire program and one of the most effective, because it is worth something to the customer and nothing to your margin.
Step 11. Give members something to do between orders
The source program earns on purchases and birthdays and nothing else. That is unusually narrow, and it means a member who is not buying this month has no reason to open your email.
Three additions, in the order we would add them to a skincare store:
Leave a review. Go to Loyalty → Earning Points → Add Earning Rule → Leave a review, connect Judge.me, Okendo, Yotpo or Stamped, and set Amount earned to
- There are separate fields for Photo review amount and Video review amount, and both are worth paying more for. Skincare is bought on other people's results.
A photo challenge. Go to Loyalty → Earning Points → Add Earning Rule → Photo Challenge, set the Points reward to 250 and, under How often can a customer earn this?, choose Custom with Days between uploads set to 30. A before and after challenge produces content you can use and gives a non buying month an interaction. Submissions come to you for approval before any points are awarded.
Referrals. Beauty is word of mouth, and a referral is the only earning route that brings a new customer with it rather than paying an existing one.
Keep the additions few and keep them repeatable. Two well chosen routes are better than eight nobody notices.
Step 12. Put it in front of people
A loyalty program nobody can see does not work. On this build the emphasis is specific, because there is exactly one thing a member wants to know.
Turn the floating rewards widget on. It is the only surface a customer sees without navigating anywhere, and on a one rung program it answers the whole question in a single line: you have 340 points, the voucher is at 500.
Turn the product points calculator on. At 5 points per pound a £40 serum reads as 200 points, which is visibly two fifths of the way to a voucher. This is the payoff for the inflated currency and it is the strongest merchandising asset the program has.
Turn on checkout points earned, for the same reason at the moment of highest intent, and the checkout wallet so an available voucher appears where it can be used.
Build your loyalty page under Loyalty Pages, with the How it works, Ways to earn, Ways to redeem and FAQ blocks. The brand's own three step explainer, join, earn, spend, maps straight onto the How it works block.
Set up the Rewards Center and the account sidebar. This is the source's "manage your points, vouchers and preferences anytime", and it is where a member finds the codes they have already minted.
Step 13. Turn the emails on
Go to Email Templates and enable at least these four:
| Fires when | Why it matters here | |
|---|---|---|
| Points Expiry Soon Email | 30 days before a batch expires | The highest value message in the build, and it often reaches a customer just short of the rung |
| Birthday Points Earned Email | The birthday rule pays out | The largest single award in the program. Announce it or it goes unused |
| Points Earned Email | Every order | Reinforces the one number that matters |
| Reward Redeemed Email | A member redeems | Delivers the voucher code |
Set the shared branding once under Email Templates → Settings → Design rather than styling each template.
If you ran a points drop in Step 9, it needs its own announcement in your email platform. A surprise nobody is told about is not a surprise, it is a rounding error in your liability.
Then go back to Settings → Test mode and switch it off.
You don't have to copy all of it
The full build is thirteen steps and most stores should not run all thirteen. Here is what to take, depending on what you sell.
If your margins are under 50%, do not copy 5%. Keep the customer facing "5 points per £1" and move the rung to 750 points instead. That is 3.3% back, the headline number never changes, and 750 is still a target a customer can hold. Changing the rate is what people notice. Changing the rung is what pays for the program.
If you sell gift sets or bundles, take the fixed £5 welcome offer from Step 6 rather than the percentage. It is the single most expensive decision in this guide and it takes one dropdown.
If your average order is under £25, use the last purchase expiry mode from Step 4, or your customers will lose points before they ever reach a voucher.
If you have physical stores, Step 7 is the build. The POS extension and the wallet pass together are worth more than everything else in this guide, because they are what make a member behave like a member somewhere your website is not.
If you are online only, take steps 1 to 6 and 12 to 13 and stop. That is a complete program: a 5% rate, one clean rung, a year long expiry with a warning, a birthday voucher and a welcome offer. It reads as a full program to a customer and it takes twenty minutes.
If you only do one thing, do Step 4. Expiry with a thirty day warning email is the highest return setting in this entire guide, and it works on any program, including one you have already built.
We'll set it up for you, free
We will build this whole thing for you at no cost, tuned to your catalogue and your margins rather than copied straight from a beauty retailer with better gross margins than most stores. That includes the earn rate priced against your actual average order value, the rung set where your customers will reach it rather than where somebody else set theirs, and the whole program branded across your widget, account sidebar and loyalty pages so it looks like your store rather than like an app.
If you are already running a program somewhere else, migrations are free of charge. Balances, tiers and history come across intact, from Smile.io, LoyaltyLion, Yotpo, Rivo, Stamped, Joy and Bubblehouse. Customers keep the balance they had, so nobody logs in to find their points gone.
You can see the full feature set on our Shopify loyalty program page, or talk to our team and we will get it live this week.
Frequently asked questions
How does The Body Shop loyalty program work?
You earn 5 points for every £1 you spend, and at 500 points you get a £5 voucher. Points are earned online and in retail stores at the same rate, there are no tiers and no status levels, and every member earns identically from their first order onwards. Members also get 10% off their first order when they join and a £5 voucher on their birthday.
What is the Love Your Body Club cashback percentage?
It is 5% back. Five points per pound, at 100 points to the pound, is five pence returned on every pound spent. Whether that is affordable depends on your gross margin. If you resell other brands, move the rung to 750 points and you are at a more typical 3.3%.
How many points do I need for a Love Your Body Club voucher?
500 points, which is £100 of spending at 5 points per pound. There is only one redemption and it is worth £5, so there is no ladder to work through and no decision about whether to save or spend. The birthday voucher is deliberately the same size, which hands every eligible member one complete redemption a year, provided they have opted in to email and bought something in the previous 12 months.
Does the Love Your Body Club have VIP tiers?
No. There are no tiers, levels or status of any kind. Every member earns the same 5 points per pound from their first order to their thousandth. That has a real commercial advantage worth copying: your cost per customer is a flat percentage that never rises, so you can write your total loyalty liability down before you launch.
How much does a program like this actually cost to run?
Around 7.7% of revenue in a customer's first year, not the 5% on the rung. On a £300 customer that is £15 of vouchers, a £5 birthday voucher and £3 of welcome offer. The rung is the cheap part. If you need to bring that number down, change the welcome offer to a fixed amount and move the rung to 750 points, and you land near 4.5% without touching the rate your customers see.
Can I use more than one voucher at a time?
One per online order, and the setting that enforces it takes a single checkbox. Leave Order discounts unchecked in the reward's combination settings and Shopify will not let two vouchers stack on the same order. If you would rather allow a stack, build the reward as a flexible amount with a 500 point increment and a 2,500 point maximum, and a customer can redeem up to £25 in one go.
How long do the points last?
The Body Shop's terms say the whole balance expires after 12 months with no earning or redeeming, and a £5 voucher expires after 3 months if unspent. The closest match in Mage is the last purchase mode set to 365 days, which resets the clock on every purchase, with a reminder email 30 days out. Stores with larger baskets can use one year from the date each batch is earned instead, but on a store with an average order under £25 use the last purchase mode, so an active customer never loses anything and expiry only ever catches someone who has already stopped shopping.
What happens to points when a customer returns something?
The points earned on that order are taken back automatically, in full or pro rata on a partial refund, and the balance never drops below zero. There is nothing to configure. If the customer paid for part of the order with a voucher, ticking Reactivate discount code on full refund gives them their code back alongside the refund, so the value they spent is restored.
Should I copy the 10% welcome offer?
Only if your baskets are tightly priced. A percentage scales with the order, and in beauty the first order is often the largest one a customer ever places, when they buy a gift set. The Body Shop's 10% excludes gift sets, collections, gift cards, sale and archive items, but without exclusions like those, ten percent of a £400 basket is £40 paid to somebody with no history with you. A fixed £5 with a £25 minimum reads almost the same in a signup form and cannot run away.
How long does this take to set up?
About twenty minutes for the online build, and an afternoon if you include the POS extension and the wallet pass. Every step in this guide is in the Mage admin and none of them need a developer. Or send us a message and we will build the whole thing for you at no cost.
Can I move my existing program over?
Yes, and we do the migration free. Balances, earning history and customer records come across intact from Smile.io, LoyaltyLion, Yotpo, Rivo, Stamped, Joy and Bubblehouse. Customers keep the balance they had, so nobody logs in to find their points gone.
Graeme is the co-founder at Mage Loyalty. He heads product development, from complex loyalty migrations and large-scale data handling to building the features shaping the future of loyalty on Shopify.


















