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

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
| Feature | What it lets you do |
|---|---|
| Append-only transaction ledger | Audit 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 bonuses | Drive the sign-up and engagement actions you care about, each toggled on its own |
| Referral program with attribution cookie | Turn existing customers into advocates and award both sides when a referral converts |
| Checkout redemption with caps | Let customers spend points against order total, shipping and tax — bounded by min/max and a percentage cap you set |
| VIP tiers with earn multipliers | Reward lifetime loyalty with a higher earn rate as customers cross thresholds you define |
| Storefront earn labels & cart preview | Show 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 emails | Keep customers informed with balance-update, points-spent and expiry-reminder emails |
| REST & GraphQL APIs | Read 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.

Supported versions
| PHP | 8.1 – 8.5 |
| Magento / Mage-OS | magento/framework ^103.0.7 (Magento 2.4.6+, Mage-OS equivalents) |