2 min readAug 11, 2026by jakub

Reward Points

A loyalty program is only as good as the number a customer sees next to "your balance". Most Magento points extensions keep that number in a single mutable field and adjust it in place — so a failed checkout, a concurrent refund, or a crash mid-order leaves it silently wrong, and nobody can say why. Qoliber Reward Points keeps an append-only ledger instead: every credit and debit is its own immutable row, the balance is the sum of the rows, and a reconcile command can prove the two agree at any moment.

Latest version: 1.0.0 — changelog

The "Earn 34 Reward Points" label on a product page

Why it matters

  • Balances you can defend. Because every movement is a ledger row, a disputed balance is answerable from history, not a guess — and a built-in reconcile command re-derives each balance from its rows and reports any drift.
  • A failed checkout never ships a free order. Points are reserved at payment time; if placement fails the reservation is released, and if the customer retries the order is charged exactly once — never zero, never twice.
  • Refunds cannot be gamed. Revoking points on a refund survives a zero balance as recorded debt, so a customer cannot spend, refund, and keep the points.
  • Points expire on your terms, and customers are warned first. Optional FIFO expiry with a configurable reminder email means unused liability comes off the books without surprising loyal shoppers.
  • Earning that fits your margins. Reward orders, registration, newsletter sign-up, approved reviews, birthdays, referrals and first orders — each switched on independently and scoped per website.

Features

FeatureWhat it lets you do
Append-only transaction ledgerAudit every point movement and reconcile balances on demand instead of trusting a single mutable counter
Earning rules (per website / customer group / SKU / category)Reward exactly the products and shoppers you want, at the rate you choose, with date windows
Registration, newsletter, review, birthday & first-order bonusesDrive the sign-up and engagement actions you care about, each toggled on its own
Referral program with attribution cookieTurn existing customers into advocates and award both sides when a referral converts
Checkout redemption with capsLet customers spend points against order total, shipping and tax — bounded by min/max and a percentage cap you set
VIP tiers with earn multipliersReward lifetime loyalty with a higher earn rate as customers cross thresholds you define
Storefront earn labels & cart previewShow shoppers what they will earn on the product page and in the cart to nudge the sale
Balance import / export (CLI + admin)Migrate balances in from another platform, all-or-nothing, and re-run a file safely
Transaction reminder & spend notification emailsKeep customers informed with balance-update, points-spent and expiry-reminder emails
REST & GraphQL APIsRead balances and history, apply points to a cart, and preview earnings from any headless or integration front end

What sets it apart

  • API-first. A full REST surface plus GraphQL mutations and customer/cart/ product fields — headless storefronts get the same points behavior as Luma.
  • No SaaS, no per-order fees. The ledger lives in your database and runs inside your store. Nothing is billed per transaction and no customer data leaves the store to a third-party loyalty service.

The Reward Points transaction ledger in the admin

Supported versions

PHP8.1 – 8.5
Magento / Mage-OSmagento/framework ^103.0.7 (Magento 2.4.6+, Mage-OS equivalents)

Next steps

Reward Points — Marketing — Extensions | qoliber Docs