Reward Points

(Reward Points)
30-day money back guarantee

30-day money back guarantee

Reward Points for Magento 2 & Mage-OS is a complete loyalty platform with flexible earning rules, action bonuses, VIP tiers, referrals, checkout redemption, FIFO expiry, migration tools, REST and GraphQL.
SKU Reward Points

Gitlab access is only given to Agencies and Freelancers after
approval process.

Please note: we do not provide installation or implementation services for our extensions.

Installation should be handled by the developer or agency managing your store. This approach ensures:

  • Compatibility with your current setup
  • Proper configuration based on your specific version
  • Implementation by someone familiar with your codebase

Although we don’t offer installation, we maintain a curated list of recommended development agencies experienced with our solutions.

If you'd like to receive this list, please contact us at [email protected].

Partnership Inquiries

Reward Points for Magento 2 & Mage-OS — Loyalty Points You Can Reconcile | qoliber

Magento 2 & Mage-OS Reward Points Extension

Reward Points for Magento 2 & Mage-OS — Loyalty Points You Can Reconcile

qoliber Reward Points gives Magento Open Source and Mage-OS a complete loyalty-points system built around an append-only transaction ledger rather than a single editable balance.

Customers can earn points from purchases, registrations, newsletter subscriptions, approved reviews, birthdays, referrals and other configured actions. They can redeem points at checkout within the limits you define, while VIP tiers, earning rules, expiration policies and customer-group targeting let merchants shape the loyalty program around real margins and customer value.

Underneath the loyalty features sits the part agencies usually end up debugging: reservations before payment, database-enforced idempotency, recorded points debt, FIFO expiry, cancellation compensation and a reconciliation command that can re-prove every balance from its history.

Platform
Magento 2.4.6+
Mage-OS
Supported
PHP
8.1 – 8.5
APIs
REST + GraphQL
One customer · balance derived from history

Transaction ledger · append-only

Order #4181 earned+340
Review approved+50
Order #4207 redeemed−200
Refund #4181 revoked−340
Points debt recorded150
Spendable balance 0never negative

The refund revoked more than the customer still held. Instead of pushing the balance to −150, the shortfall becomes recorded debt and the spendable balance stops at zero — future earnings settle the debt first, and reconciliation can re-prove every line above.

Why Reward Points

Turn Repeat Purchases Into a Loyalty Program You Can Control

Reward programs only create value when customers understand them, merchants can shape them around margins, and the balance remains trustworthy through the entire order lifecycle.

Increase Repeat Purchases

Give customers a reason to return by turning previous purchases and engagement into value they can redeem on future orders.

Reward the Behaviour You Want

Award points for purchases, registration, newsletter signup, reviews, birthdays, first orders and referrals rather than limiting loyalty to spend alone.

Protect Your Margins

Control earning rates, redemption minimums, per-order limits and the percentage of an order that points may cover.

Keep Balances Explainable

Every credit and debit has a ledger entry, giving support and finance teams a transaction history behind the number customers see.

Loyalty accounting

A Loyalty Balance You Cannot Explain Is a Liability

If reward points are stored as one mutable number, every checkout, refund, cancellation and asynchronous process becomes another opportunity for that number to drift away from reality.

Points Quietly Disappear

An interrupted operation or concurrent update can lose a credit or debit, leaving the problem invisible until a customer questions the balance.

Balances Go Negative

Revoking earned points after a refund can exceed the customer's current balance if those points have already been spent elsewhere.

Orders Escape Without Paying the Points

If points are deducted too late in checkout, failures and retries can leave an order using the discount without the corresponding loyalty debit.

Ledger-first architecture

A Ledger, Not a Counter

qoliber Reward Points records every loyalty movement as a transaction and derives the customer's balance from that history. The summary balance is therefore something the system can verify rather than an isolated number it has to trust.

Append-Only Ledger

Credits, debits, reservations and adjustments create new transaction rows. Corrections use compensating transactions rather than rewriting existing history.

Reconcile on Demand

A CLI reconciliation process recalculates balances from the ledger under a row lock and reports drift, including FIFO remainder issues and canceled orders whose points were not restored correctly.

Recorded Points Debt

If a refund requires more points to be revoked than the customer currently owns, the difference becomes recorded debt instead of pushing the visible balance below zero. Future earnings settle that debt first.

Database-Enforced Idempotency

Business postings carry idempotency keys protected by a unique database index, preventing a retried or concurrent event from posting the same loyalty movement twice.

64-Bit Point Values

Point balances and lifetime totals use 64-bit integers, avoiding artificial accumulation limits as programs and customer histories grow.

Compensation After Commit

Cancelled orders restore spent points and cancel pending earnings only after the cancellation itself has committed successfully, preventing loyalty state from getting ahead of Magento's order state.

Magento loyalty earning rules

Reward Customers Where It Makes Business Sense

Not every product, customer segment or behaviour needs the same reward. Earning controls are configurable per website and can be activated independently.

Targeted Earning Rules

Define earning rules by website, customer group, SKU and category, with configurable points-per-money steps and active date windows.

When no specific rule matches, the store can fall back to a configurable default earning rate.

Action Bonuses

Award configurable points for customer registration, newsletter signup, approved product reviews, birthdays and first orders.

VIP Loyalty Tiers

Create tiers based on lifetime earned points and assign an earning multiplier to each tier, allowing your best customers to accumulate rewards faster.

Tier membership is recalculated nightly.

Magento reward point redemption

Let Customers Spend Points Without Creating Free Orders

Redemption controls how much loyalty value a customer may use and when the points are actually committed to the order.

Reserved Before Payment

Points are reserved before Magento calls the payment service. If the requested redemption cannot be funded, checkout stops before payment is charged.

Failed order placement releases the reservation, while retry protection ensures a successful order is debited once.

Redemption Caps

Configure a minimum number of points per redemption, a maximum per order and the maximum percentage of the order value that reward points are allowed to cover.

Shipping & Tax Control

Choose whether loyalty points can offset shipping and tax so redemption behaviour matches the merchant's commercial rules.

Loyalty program toolkit

Referrals, Expiry, Migration and APIs Included

Referrals With Guardrails

Referral attribution can reward advocates while enforcing a per-advocate daily cap under a lock.

Once-per-product review rewards are protected atomically with a unique database constraint, reducing duplicate reward abuse.

FIFO Point Expiry

Optional expiration removes overdue point remainders using FIFO allocation under the balance lock rather than applying a simplistic date-based balance reduction.

Customers can receive reminder emails a configurable number of days before points expire.

Import, Export & Reconcile

Migrate loyalty balances through CSV import with all-or-nothing prevalidation and dry-run support, export current balances and run reconciliation from CLI.

An administrative import interface is included as well.

REST & GraphQL

Integrations and headless storefronts can read balances and history, apply points to carts and preview future earnings over REST, with GraphQL fields and mutations provided through the companion module.

Loyalty points in production

Where Magento Reward Points Usually Go Wrong

01

Checkout Fails After Points Are Applied

Without reservation logic: the balance and order can disagree.

Points are reserved before payment and released when order placement fails, keeping the available balance aligned with the actual checkout outcome.

02

The Same Event Runs Twice

Without idempotency: customers earn or lose the same points twice.

Database-backed idempotency ensures each business posting is accepted once, including when asynchronous processing or integrations retry an operation.

03

Refund Revocation Exceeds the Balance

Without debt handling: loyalty balances become negative.

The shortfall becomes recorded points debt and future earnings repay it before becoming available for redemption.

04

A Canceled Order Never Restores Points

Without reconciliation: customers can permanently lose loyalty value.

Cancellation compensation is linked to committed order state, while reconciliation can identify canceled orders whose expected restoration did not happen.

05

Old Points Expire Twice

Simple expiry logic can remove value that has already been consumed.

FIFO remainder tracking expires only the outstanding value associated with the relevant earning lots.

06

A Customer Disputes Their Balance

“The database says 400” is not an explanation.

The append-only transaction history shows how the current balance was created, while reconciliation verifies that the summary still equals the ledger.

Built for agencies

A Loyalty Platform You Can Put Into Long-Term Magento Projects

Loyalty programs tend to grow. A simple earn-and-spend requirement becomes tiers, promotions, migrations, referrals, expiry, headless storefronts and accounting questions.

Reward Points is designed so agencies start with one defined loyalty architecture instead of accumulating project-specific patches around an editable customer balance.

Full Source Access

The full module source is delivered through qoliber's GitLab so agency teams can inspect the implementation they deploy for clients.

Headless-Ready

REST and GraphQL expose the loyalty data and cart operations required by PWA storefronts and external commerce applications.

Migration Tooling

CSV dry runs and prevalidation help agencies move existing customer balances into the new ledger without accepting a partially imported dataset.

Auditable Financial Logic

Transactions, debt, expiry and reconciliation provide support teams with concrete evidence when a customer or merchant questions a balance.

Automated Test Coverage

End-to-end, unit and integration suites cover the storefront, Magento Admin, configuration and GraphQL paths.

Modern PHP Support

PHP 8.1 through 8.5 support covers current Magento and Mage-OS project stacks.

Magento reward points comparison

qoliber Reward Points vs Typical Magento Loyalty Extensions

Earning and spending points is a common feature in Magento loyalty extensions. The larger technical differences appear in how balances behave during concurrency, refunds, failed checkouts, expiration and migration.

qoliber Reward Points compared with typical Magento reward points extensions
Capability qoliber Reward Points Competing modules
Balance modelAppend-only ledger + derived balanceArchitecture varies
Balance reconciliationBuilt-in CLI reconciliationNot commonly documented
Checkout protectionPoints reserved before paymentImplementation varies
Duplicate event protectionDatabase-enforced idempotencyRarely documented publicly
Refund beyond available balanceRecorded debt, no negative spendable balanceBehaviour varies
ExpiryFIFO remainder expiry under balance lockExpiry commonly available; implementation varies
VIP tiersLifetime-earned thresholds + earning multipliersCommon in advanced products
Referral protectionLocked daily caps + atomic duplicate protectionImplementation varies
MigrationCSV import with dry run and all-or-nothing validationVaries by vendor
HeadlessREST + optional GraphQLSupport varies
Published automated testing20 E2E tests + PHPUnit unit/integration suitesUsually not published

“Typical Magento Loyalty Extension” describes common market characteristics rather than any individual vendor. Capabilities and implementations vary between products. “Not commonly documented” means the architecture is not generally described on public product pages, not that no other implementation supports it.

Engineering quality

Verified, Not Asserted

20 / 20
Playwright end-to-end tests passing across 14 spec files
Unit + Integration
PHPUnit suites including GraphQL coverage
Reconcile
Every balance can be re-proved against its ledger
Technical specifications

Built for Modern Magento & Mage-OS Loyalty Projects

Platform

Magento 2.4.6+ and Mage-OS.

PHP

PHP 8.1 – 8.5.

REST

Balance, history, cart redemption and earning preview.

GraphQL

Optional companion module for headless and PWA storefronts.

In the box

  • Append-only reward point transaction ledger
  • Reconciliation command
  • Database-enforced idempotency
  • Recorded points debt
  • 64-bit point balances and lifetime totals
  • Safe cancellation compensation
  • Website and customer-group earning rules
  • SKU and category targeting
  • Time-limited earning campaigns
  • Registration bonus
  • Newsletter signup bonus
  • Approved review rewards
  • Birthday bonus
  • First-order bonus
  • VIP loyalty tiers and earning multipliers
  • Checkout reward point reservations
  • Minimum and maximum redemption limits
  • Percentage-of-order redemption cap
  • Shipping and tax redemption controls
  • Referral rewards
  • Referral abuse safeguards
  • FIFO reward point expiry
  • Points expiration reminder emails
  • CSV balance import with dry run
  • Balance export
  • Admin balance import
  • REST API
  • Optional GraphQL module
Magento Reward Points FAQ

Questions

How do customers earn reward points in Magento?

Reward Points can award points from purchase-based earning rules and configured customer actions including registration, newsletter signup, approved reviews, birthdays and first orders. Purchase rules can target websites, customer groups, SKUs, categories and active date ranges.

Can customers redeem reward points at checkout?

Yes. Customers can apply points to the cart within merchant-defined minimums, maximums and percentage limits. The merchant can also configure whether points may offset shipping and tax.

Can two checkouts spend the same reward points?

Points are reserved before the payment call. If the available balance cannot support the requested redemption, checkout is stopped before payment is charged. Failed placement releases the reservation and successful posting is protected against duplicate execution.

What happens if a refund requires more points to be revoked than the customer has?

The customer's spendable balance is not pushed below zero. The outstanding amount is recorded as points debt, and future earned points settle that debt before they become available to spend.

Can Magento reward points expire?

Yes. Expiry is optional and uses FIFO allocation to retire overdue remaining balances. Customers can receive a reminder a configurable number of days before points expire.

Does Reward Points support VIP loyalty tiers?

Yes. Tiers can be defined using lifetime earned-point thresholds and each tier can apply its own earning multiplier. Tier assignments are recalculated nightly.

Can I migrate existing loyalty balances?

Yes. Balances can be imported from CSV using CLI tools with dry-run support and all-or-nothing prevalidation. An administrative import screen and balance-export tooling are also included.

Does Reward Points support headless Magento?

Yes. REST endpoints expose balances, transaction history, cart redemption and earning previews. An optional GraphQL companion provides fields and mutations for PWA and headless storefronts.

Can I verify a customer's reward point balance?

Yes. Every balance movement is recorded in the transaction ledger, and the reconciliation command recalculates balances from that history and reports inconsistencies rather than relying solely on the stored summary balance.

Is Reward Points tested?

The supplied test suite includes 20 passing Playwright end-to-end tests across 14 spec files, together with PHPUnit unit and Magento integration suites, including GraphQL coverage.

Build Customer Loyalty Without Losing Control of the Balance

Reward purchases, engagement and referrals, create VIP tiers and flexible expiration rules, and let customers redeem points safely at checkout — backed by a ledger that gives your team a complete history behind every balance.