OpenCart loyalty points

Points on the ledger OpenCart already keeps

Loyalty writes into OpenCart's own reward table rather than keeping one of its own, so a customer's balance is the same figure on every screen and the points they already have carry on. What it adds are the rules core lacks: when an order earns, when a refund takes the points back, what a point is worth and when an unused balance runs out. It needs OpenCart 4.0.2.0 or newer, and on 4.1.0.4, whose own scheduler is broken, one line in your server's crontab runs expiry and the birthday bonus instead.

Get it on the marketplace Read the documentation

The Loyalty screen's right-hand column: earning switched on with the moment it started, what the programme costs as a share of every order, and what the store owes in points.
The column a merchant comes back to: since when the store has been awarding, what that costs as a share of every order, and what it owes in points.

Earning that starts when you say, and pays once

Only orders placed after you press Start awarding points can earn, so switching it on never pays for the past. An order earns a percentage of its goods, before or including tax as you choose, per customer group, rounded down once and awarded the first time it reaches a status you tick. Shipping never earns.

Refunds take the points back

Tick Canceled, Refunded and Chargeback and the whole award comes back, once, even when it was already spent. The points page names the order behind a balance below zero, so a customer can see why.

Spending on the cart, at the price quoted

A slider that steps one unit of currency at a time, a minimum balance and a cap on the share of an order points may pay. The discount comes off the goods, never the shipping, and each order keeps the exchange rate it was created at, including in the admin order editor.

Expiry only after a warning

Off until you switch it on. Only points this extension awarded, only after 12 to 120 months without any points movement, and never without a warning email sent at least 14 days before. Welcome and birthday bonuses are paid once per account and once a year.

What the store owes, on its own screen

Points outstanding, due to expire in the next 30 days, what moved in the last 30, and anything needing attention. A new exchange rate that makes the points outstanding buy less is named in money before it saves.

Translation published, not claimed

Which of our strings a named native speaker has actually read is published per extension and per language, and anything unreviewed ships as English rather than as a blank or a raw identifier.

Limits and guarantees is the page to read before paying. It says that OpenCart's own Reward Points total has to be switched off first, that nothing is awarded for orders placed before earning started, that a reversal is all of an order's points or none and can take a balance below zero, that points added by hand never expire, that guests earn nothing, and that there are no tiers or referrals.

Questions people ask before buying

Do my customers keep the reward points they already have?

Yes. Loyalty writes into OpenCart’s own reward table rather than keeping one of its own, so the points customers already have carry on unchanged, and a balance is the same figure on the customer screen, at checkout and on their account page.

Can points expire without the customer being told?

No. Expiry is off until you switch it on, touches only points Loyalty itself awarded, waits 12 to 120 months without any points movement, and never happens without a warning email sent at least 14 days before. A store whose mail is not sending expires nothing.

Does it work with OpenCart 4?

Every Kyvero extension is built for OpenCart 4.x. Each one declares the lowest release it will install on and refuses to install below it, and its documentation lists the releases a full install-and-upgrade pass was run against.

Do I get the source code?

Yes. An extension is PHP on your own server: readable, not obfuscated, and with no remote licence check to fail. Your copy is yours to modify and to keep backed up.

Who answers when something goes wrong?

A developer, usually the one who wrote the extension. There are two official routes, the support portal and the support address, and both arrive in the same place.