OpenCart returns portal
Returns as rows, not as email
A customer proves the order is theirs with an order number and the address the confirmation went to, picks the lines they are sending back with a reason for each, sees an estimated refund worked out from that order's own rows, and prints an RMA slip. You work a queue under Sales → Return Requests and accept or refuse line by line, including for the people who checked out as guests, whose returns OpenCart records where they can never see them again.
A guest proves the order is theirs
An order number and the address the confirmation went to, and nothing else: no account, no password, no link to lose. Every refusal is worded the same way whatever went wrong, and the counters behind it sit on the order and on the caller rather than on the email address, so nobody can lock a real customer out of their own return. OpenCart’s own form accepts an order number without checking either.
Every line, with the reason it cannot come back
The picker shows the whole order: the lines that may not be returned are greyed with the reason printed on them: window expired, product excluded, or already returned. What has gone back before is netted off, including returns filed through OpenCart’s own form before you installed this and returns you typed into Sale → Returns yourself, so nothing is returnable twice through two doors.
An estimate with its arithmetic on view
Per line, broken into subtotal, share of any order discount and tax, worked out from that order’s own recorded prices in that order’s own currency at the rate it was placed at, and frozen at submission. It is labelled an estimate everywhere, shipping is never in it, and a discount from a third-party extension suppresses the customer’s figure rather than guessing at it.
Accept half of it and refuse the rest
Refuse a line at review time and the screen shows what you are accepting now against the demoted request total; the customer is emailed the outcome line by line with your reason. The slip prints immediately, overprinted NOT YET APPROVED — DO NOT POST until you agree, which is what stops the parcel that arrives before anybody has said yes.
Your own systems can read it out
Returns Portal answers an HTTP API (v1 today), so the system that keeps your records can pull the requests that moved since it last asked, with their lines, their verdicts, their estimated refund and the photographs a customer attached, and settle them back: decided line by line, closed, or cancelled, into the same history the admin screen writes. It authenticates as an OpenCart API user you create yourself, answers only over HTTPS, and is off until you switch it on. What will not change about it, and for how long, is written down.
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.
We would rather you knew this before paying than after. Limits and guarantees says that it prints no carrier label and calls no carrier API, that it moves no money through your payment provider (store credit is the one payout it can make, and only for a customer with an account), that an exchange is recorded as requested and creates no order, that nothing restocks, and that while the module is enabled OpenCart's own return form is closed, with switching it off restoring OpenCart's own behaviour.
Questions people ask before buying
-
Can a guest start a return without an account?
- Yes. They prove the order is theirs with the order number and the address the confirmation went to, without logging in, then pick the lines they are sending back with a reason for each.
-
Can I accept part of a return and refuse the rest?
- Yes. You work a queue under Sales → Return Requests and accept or refuse line by line, rather than taking or rejecting a whole request.
-
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.
Also for OpenCart
Merchants who run this usually want one of these
Review Requests
Asks every customer for a review once their order has arrived, through a link that needs no account, and marks what comes back as a verified purchase.
What it does OpenCart 4.xDelivery Date
A delivery day and time window the customer picks at checkout, from the days you can actually do, with a cap per window and the day’s work on one printable sheet.
What it does