Building Customer Loyalty with Magento 2 Reward Points

Set up a reward points program on Magento 2 to boost repeat purchases. Covers earning rules, redemption, expiration, bonus points, and a full setup walkthrough.

Building Customer Loyalty with Magento 2 Reward Points

Acquiring a New Customer Costs 5x More Than Keeping One

You already know the number. It has been cited in Harvard Business Review, Forbes, and every marketing textbook published in the last two decades: acquiring a new customer costs five times more than retaining an existing one. But here is the number most store owners miss — repeat customers spend 67% more per order than first-time buyers, according to BIA/Kelsey research. And according to a Bain & Company study, increasing customer retention by just 5% can boost profits by 25% to 95%.

Most Magento 2 stores pour 90% of their marketing budget into acquisition and treat retention as an afterthought. The ratio should be closer to 50/50. When you flip that split, the math changes fast: a modest increase in repeat purchase rate can outperform doubling your ad spend. The question is not whether you should invest in retention — it is which tool gives you the highest return for the lowest effort.

A reward points program gives customers a concrete reason to come back. Every point they earn is money they do not want to leave on the table. It is not a discount — it is an investment your customers have already made in your store. And that psychological ownership is exactly what drives them to return. Behavioral economists call this the "endowment effect": people value things more once they feel they own them, even if those things are points in a digital wallet.

If you are running Magento 2, you already have the infrastructure to support a loyalty program. What you need is the right reward points system to make it work without adding complexity to your checkout or headaches to your admin workflow.

How Reward Points Work in Magento 2

Earning Points

Customers accumulate points through several channels:

  • Per-order earning: Customers earn X points for every $1 spent, or a flat number of points per order regardless of the total. Per-dollar earning scales naturally with order value, while flat-rate earning is simpler to communicate.
  • Per-product bonuses: Specific products can award extra points — useful for moving slow inventory or promoting new arrivals.
  • Bonus events: Registration, first purchase, writing a product review, referring a friend, or birthday purchases all trigger bonus point awards. These events activate points before the customer even completes a paid order, which creates immediate engagement.
  • Tiered earning rates: VIP customers or members of specific customer groups can earn points at a higher rate (for example, 2x points for customers with 10 or more completed orders).

The key principle: make earning visible. If a customer adds a $75 item to their cart and sees "Earn 75 points with this purchase," they start mentally banking those points before they even check out.

Redeeming Points

At checkout, customers apply accumulated points as a discount against their order total. You define the exchange rate — for example, 100 points equals $1 off. The system supports:

  • Minimum redemption thresholds: Require customers to use at least a set number of points per redemption (for example, 200 points minimum). This prevents micro-redemptions that create accounting noise without meaningful customer impact.
  • Maximum redemption caps: Limit points to cover a percentage of the order total (for example, no more than 50% off). This protects your margins while still giving customers a meaningful reward.
  • Partial redemption: Customers use some points and pay the remaining balance with their regular payment method. No all-or-nothing friction.

Expiration Rules

Points that sit in an account forever do not drive behavior. Expiration creates urgency. You can configure points to expire after a set number of days from when they were earned, or after a period of customer inactivity.

The best practice: give customers 6 to 12 months and send automated reminder emails when points are approaching expiration. This turns a passive balance into an active reason to return. A customer who receives a "Your 500 points expire in 7 days" email has a compelling reason to browse and buy today.

Admin Management

From the Magento admin panel, you can:

  • View every customer's point balance, full earning history, and redemption history
  • Manually adjust balances — add points for customer service recovery, deduct points for fraud or returns
  • Perform bulk adjustments to award bonus points to all customers in a segment for a promotion or seasonal campaign
  • Track transaction-level detail: which order earned which points, which redemption applied to which checkout

This level of visibility means you can audit the program, measure its ROI, and make adjustments based on real data rather than guesswork. You can also identify your most engaged loyalty customers — the ones actively earning and redeeming — and target them with exclusive offers or early access to new products.

Key Features of MageRa Reward Points for Magento 2

Admin Configuration

Screenshot of the MageRa Reward Points admin configuration panel in Magento 2, showing earning rates, redemption settings, and expiration rules.

MageRa Reward Points delivers the full feature set you need to run a loyalty program without patching together multiple extensions or writing custom code.

Configurable earning rates: Set points earned per $1 spent. Adjust the rate by customer group so your VIP shoppers earn faster than first-time buyers.

Redemption at checkout: Customers apply points directly in the checkout flow. No redirecting to a separate page, no confusing multi-step process. The discount appears instantly against the order total.

Minimum and maximum redemption limits: Define the minimum points required for redemption and the maximum discount percentage per order. Protect your margins while keeping the program attractive.

Expiration management: Configure expiration by days since earning or days since last activity. A built-in cron job handles automated expiration processing — no manual intervention required.

Bonus point triggers: Award points automatically for account registration, first order, and successful referrals. Each trigger has its own configurable point value in the admin panel.

Complete transaction history: Every earn, redeem, expire, and adjust action is logged. Customers see their history in their account dashboard. Admins see it in the customer management section.

Admin balance management: Add or deduct points for any customer from the admin panel. Add a comment to each manual adjustment for audit purposes.

Customer-facing pages: Point balance displays in the customer account dashboard, earning potential appears on product pages, and the redemption option surfaces at checkout. Customers always know where they stand.

REST API support: Integrate reward points with your email marketing platform (Klaviyo, Mailchimp), ERP system, or custom storefront. Full API coverage for balance queries, point additions, redemptions, and transaction history.

Feature Preview

Screenshot showing the reward points balance and redemption option displayed during Magento 2 checkout.

How to Set Up MageRa Reward Points in Magento 2

Step 1: Install the Extension

Run the following commands in your Magento 2 root directory:

composer require magera/module-rewardpoints
php bin/magento module:enable MageRa_RewardPoints
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush

MageRa Reward Points requires PHP 8.1+ and Magento 2.4.6 or higher. It depends on MageRa_Base and MageRa_AdminUi, which are installed automatically via Composer.

Step 2: Configure Earning Rules

Navigate to Stores > Configuration > Customers > Reward Points and set Enable Reward Points to Yes.

Set Points Earned per $1 Spent — how many points a customer accrues for every dollar of order value. A common starting point is 1 point per $1. If your average order value is $80, that customer earns 80 points per order. With a redemption rate of 100 points = $1, they accumulate $0.80 of reward value per order. The field is validated as a positive number, and the whole section is scoped per website and store view, so you can run a more generous program on one storefront than another.

Step 3: Set Redemption Rules

In the same section, define the four redemption guardrails. Together they govern the discount the customer can claim at checkout:

  • Points Redeemed per $1 Discount: The exchange rate for converting points to currency (for example, 100 points = $1 off). Validated as a number greater than zero.
  • Minimum Points to Redeem: The lowest balance a customer needs before the redeem option unlocks (for example, 200 points).
  • Maximum Points Redeemable per Order: A hard cap on how many points can be applied to a single order.
  • Maximum Discount Percentage: The highest share of the order total points may cover, validated to the 0–100 range. Set it to 50, for instance, and points can never wipe out more than half the order.

When a logged-in customer applies points on the cart page, the form posts to rewardpoints/frontend/applyPoints. The controller verifies the requested points do not exceed the customer's balance, stores reward_points_used on the quote, and re-collects totals so the discount appears as a dedicated order total line. Posting points=0 clears the discount again. The earn-then-redeem loop is therefore: spend money to earn points, accumulate to the minimum, then convert points back into a checkout discount on a later order — all within the limits above.

Step 4: Enable Expiration and Bonus Triggers

Set Points Expire After (Days); a value of 0 means points never expire. Start with 365 days. The extension registers a cron job, magera_rewardpoints_expire_points (class MageRa\RewardPoints\Cron\ExpirePoints), scheduled at 0 2 * — it runs daily at 2:00 AM to expire aged points, so all you need is a running Magento cron.

Configure the bonus point amounts (each validated as zero-or-greater):

  • Points on Registration: Awarded when a new customer creates an account.
  • Points on First Order: A one-time bonus when a customer completes their first purchase.
  • Points per Referral: Awarded to the referrer when their referred customer completes a first purchase.

Step 5: Design the Customer-Facing Experience

The extension exposes a customer balance page at /rewardpoints/frontend/balance (route frontName rewardpoints), titled "My Reward Points." It requires a logged-in customer — guests are redirected to customer/account/login. A companion rewardpoints/frontend/transactions page lists the customer's full earn/redeem history. Verify these display correctly along with the earning hint on product pages and the redeem input on the cart. These touchpoints keep customers aware of their balance, which is the single biggest factor in whether a loyalty program actually changes behavior.

Step 6: Test the Full Loop

Walk through the complete lifecycle: a new customer registers (earns the registration bonus), places an order (earns per-order points), returns for a second order, applies accumulated points on the cart page (confirm the discount line, the minimum/maximum/percentage caps, and that points=0 removes it), and confirm the daily 2:00 AM expiration cron clears points on a test account with a short window. Also test the admin manual adjustment flow and verify the API endpoints (/V1/rewardpoints/balance, /redeem, /transactions) return expected data.

MageRa Reward Points API Reference

The extension exposes four REST API endpoints for integration with external systems:

Get Customer Balance:

GET /rest/V1/rewardpoints/balance/:customerId

Returns the current point balance for a given customer. Use this to display points in a headless storefront, trigger email campaigns based on balance thresholds, or sync data to your CRM.

Add Points:

POST /rest/V1/rewardpoints/add
{
  "customerId": 1,
  "points": 100,
  "sourceType": "manual",
  "comment": "Customer service recovery bonus"
}

Manually award points to a customer. Source types include manual, order, registration, referral, and first_order.

Redeem Points:

POST /rest/V1/rewardpoints/redeem
{
  "customerId": 1,
  "points": 50,
  "sourceType": "checkout",
  "sourceId": 123
}

Redeem points from a customer's balance. Pass the quote or order ID in sourceId for traceability.

Get Transaction History:

GET /rest/V1/rewardpoints/transactions/:customerId

Returns the full transaction log for a customer, including earns, redemptions, expirations, and manual adjustments with timestamps and source information.

4 Reward Points Mistakes to Avoid

Mistake 1: Making the exchange rate too stingy. If customers earn 1 point per $100 spent and need 10,000 points for a $5 discount, nobody cares. The reward feels unreachable. Make rewards achievable within 2 to 3 purchases. A customer should be able to redeem something meaningful after spending $150 to $300 at your store.

Mistake 2: No expiration date. Points that never expire become a deferred liability on your books. They also create zero urgency to return. Set an expiration window — 6 to 12 months is the sweet spot. Too short feels punitive; too long defeats the purpose.

Mistake 3: Hiding the program. If customers do not know they are earning points, the program has zero effect. Show point balances in the header, display earning potential on product pages, send post-purchase emails summarizing points earned, and include point balances in transactional emails. Visibility is the difference between a program that works and one that exists.

Mistake 4: Overcomplicating the rules. If customers need a spreadsheet to understand how many points they will earn, simplify. A flat per-dollar rate with clear bonus events is more effective than a complex tiered system with multipliers, caps, and exclusions. Clear, simple rules drive more behavior than convoluted ones.

Conclusion

A reward points program is one of the highest-ROI retention tools available to Magento 2 store owners. It costs you margin on repeat purchases, but that margin generates revenue you would otherwise lose to competitors — customers who have points invested in your store have a tangible reason to choose you over an alternative.

The key to a successful program: make earning easy to understand, make redemption achievable within a few purchases, and use expiration to motivate without alienating. When customers can see their balance growing, understand what it is worth, and redeem it without friction, you have a retention engine that runs on every transaction.

MageRa Reward Points for Magento 2 gives you flexible earning rules, configurable bonus triggers, checkout redemption with rate controls, automated expiration, full admin management, and REST API integration — all configured from Stores > Configuration > Customers. Visit magera.ca/magento-2-reward-points.html for pricing and to get started.

FAQ

Q1: Can customers combine reward points with coupon codes at checkout?

Yes. MageRa Reward Points works alongside Magento 2's native coupon system. A customer can apply a coupon code for a percentage discount and use reward points for additional savings on the same order. You can configure whether points are calculated on the pre-discount or post-discount total, giving you full control over how stacking affects your margins. This flexibility means you do not have to choose between promotions and loyalty — both can work together.

Q2: How do referral rewards work?

A customer shares their unique referral link from their account dashboard. When a new visitor clicks that link, creates an account, and completes their first purchase, the referrer earns the configured referral bonus points automatically. You set the referral bonus amount in the admin panel under Stores > Configuration > Customers. The new customer can also receive a welcome point bonus for registration. Both actions are tracked in the transaction history, so you have full visibility into which referrals are driving results and which customers are your most effective advocates.

Q3: Can I import existing customer points from another platform?

MageRa Reward Points supports CSV import for bulk point adjustments. You can upload a file containing customer email addresses and point balances to migrate existing points from a previous platform, a different loyalty program, or a manual tracking system. The import validates email addresses against your Magento 2 customer database and prevents duplicates, so you can confidently migrate without inflating balances or creating orphan records. Use the admin balance management interface or the API endpoint to handle the import.

Internal Links

End of post

Comments (0)

Be the first to comment.

Ready to ship better Magento 2 stores?

64 premium extensions, one quality bar. Composer install, 30-day money-back guarantee.