Turn every return into a resale in one tap.
POS Product Exchange unifies return and resell into a single POS transaction, with a live net-settlement tally, out-of-stock lockout, and an exchange-aware receipt — so cashiers never juggle two orders again.
The problem
Swapping a product for a different size or item usually means two separate transactions: refund the original, close it out, then start a brand-new sale for the replacement. Cashiers work out the price difference by hand, the counter queue backs up, and reporting ends up with two disconnected orders for what was really one customer visit.
The solution
POS Product Exchange adds a one-tap Exchange flow right on the product screen. Cashiers find the original order, return what is coming back and add the replacement, and a live banner shows exactly what the customer owes or is due back — all inside a single order, settled with Odoo's own native refund plumbing.
Everything a busy counter needs
Every capability below is implemented in the module.
One-Tap Exchange
Flag any order for exchange straight from the product screen — no need to close the sale and start a new one.
Live Net-Settlement Banner
"Customer pays X", "Refund X due", or "Even exchange" — the banner updates live as items are returned and added.
Configurable History Scope
Choose whether cashiers can exchange against the current session only or any validated order, tuning scope and performance.
Out-of-Stock Lockout
Replacement products with no stock on hand are blocked at selection time, so staff never promise an item the store can't fulfil.
Category Eligibility Rules
Restrict exchanges to chosen POS categories, or leave the list empty to allow every product to be exchanged.
Exchange-Aware Receipt
Printed receipts carry an EXCHANGE header and a clear net due or refundable line, so the customer leaves with one clean record.
Backoffice Return-Status Badge
Every POS order shows Not Returned, Partially Returned, or Fully Returned, derived automatically from refunded quantities.
Filter & Group by Return Status
Find and group POS orders by their return status straight from the backoffice order list, no extra reporting needed.
Built on Native Refund Plumbing
No parallel exchange ledger to maintain — the flow runs on Odoo's own POS refund engine, so stock and accounting stay accurate.
How it works
Enable & configure
Turn on exchanges in POS settings and set the history scope, out-of-stock lockout, and eligible categories.
Tap Exchange
The cashier finds the original order and taps the Exchange control button on the product screen.
Swap the items
Return the old item and add the replacement; the live banner keeps the running settlement in view.
Settle & print
Collect the balance due or issue the refund, then print the exchange-aware receipt.
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 Odoo's own POS refund plumbing and guides the cashier through a combined return-and-resell in a single transaction instead of two separate ones.
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 Product Exchange
Turn a return and its replacement into one POS transaction, with a live net-settlement banner, category eligibility rules, out-of-stock lockout and an exchange-aware receipt.
Buy on Odoo App Store