POS Returns with no surprises at the counter
An enhancement layer on Odoo's native Point of Sale refund flow that shows eligibility up front, captures a reason for every return, and flags abuse — all without leaving the POS screen.
The problem
Cashiers processing returns find out a product is non-returnable, out of its return window, or already fully refunded only after they start the transaction — holding up the queue. Refund amounts stay implicit until the payment screen, reasons are never captured, and nothing flags a customer who returns items repeatedly, leaving managers with no traceable record for reconciliation or loss prevention.
The solution
This module extends Odoo's native POS refund engine with eligibility gating (non-returnable flag, configurable return window, per-shop toggle), structured reason codes, an at-a-glance return-status badge on every order, an abuse-pattern flag for repeat returners, and a returns analytics dashboard — enforced server-side so the rule is authoritative, and surfaced in the POS UI so the cashier never guesses.
Everything a shop needs to control returns
Every capability below is implemented in the module.
Eligibility Gating
Mark products as non-returnable, set a global or per-product return window, and toggle returns on or off per shop. Enforced on the server, not just the screen.
In-POS Eligibility Check
The Ticket Screen blocks an ineligible return the moment the cashier tries to raise the refund quantity, with a clear on-screen message instead of a failed sync later.
Structured Reason Codes
Five ready-to-use return reasons ship out of the box (Defective, Wrong Size, Changed Mind, Not as Described, Damaged in Transit), fully editable, with an optional required-reason setting.
Return Status Tracking
Every order shows a Not / Partially / Fully Returned badge, computed automatically and visible in the order list and search filters.
Return-Abuse Flag
Set a threshold and trailing window, and any customer whose completed returns reach that count is flagged on the refund order for manager attention — a warning signal, never a hard block.
Returns Analytics Dashboard
A dedicated reporting view breaks down returned quantity and refunded amount by product, category, reason and customer, so managers can spot the drivers behind returns.
Reason on the Refund Receipt
Refund receipts print a clear RETURN / REFUND banner along with the chosen reason and the original order reference.
Per-Product Return Window
Override the shop-wide return window for individual products — a seasonal item can carry a tighter window than the rest of the catalog.
Built On the Native Refund Engine
No parallel return model to maintain — the module enhances Odoo's own partial/full refund flow, so inventory sync and refund receipts keep working exactly as your team already knows.
How it works
Configure the rules
Set the return window, reason requirement and abuse threshold in POS Settings, and flag any non-returnable products.
Open the Ticket Screen
The cashier finds the original order and raises the return quantity on the line to send back.
Pick a reason, confirm
Ineligible lines are blocked on the spot; eligible ones prompt for a reason and settle on the normal payment screen.
Track and review
The order picks up its return-status badge, and the return shows up in the Returns dashboard with its reason and amount.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
No. It builds directly on top of it. Partial and full refunds, inventory sync and refund receipts still work exactly as they do in stock Odoo — this module adds eligibility rules, reasons, status tracking and analytics around that same flow.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
POS Order Return & Exchange
Eligibility and per-product return windows checked before the refund starts, with structured reason codes, return status tracking, a return-abuse flag and a returns analytics dashboard.
Buy on Odoo App Store