POS Return by Receipt · Odoo 19.0
What the module guarantees and why
Return by Receipt keeps a few rules whatever the cashier, the scanner or two tills at once do. Below is what is guaranteed and why it was decided this way.
Finding the sale
A scan opens only the sales the till can already see
A scan looks up the sale by its exact number in the same places as the till’s standard orders screen: the till itself and its trusted tills, in the same company and currency, leaving out drafts and cancelled sales. A receipt from someone else’s till or another company will not open. This was chosen because the administrator already manages these limits in Odoo, and the module adds no new permissions to look after separately.
Ordinary barcodes work as before
If the scanned code is not an order number, the till handles it as if the module were not there: it adds the product, selects the customer or cashier, applies the coupon. Even a code that looks like an order number stays with its own rule when one is set for it.
Refunds
You cannot refund more than was sold
The till sees how much of a sale has already been refunded on all tills, and checks this when scanning and again before payment. The module does not bypass Odoo’s standard checks. If two tills refund the same product beyond what was sold at the same moment, the second refund is not refused but recorded in the refund’s history for review.
Refusing it on the server was rejected on purpose: a till order reaches the server already paid, so a refused order would get stuck on the till while the money has already been handed to the customer.
A refund line is not paid without a reason
With “Require Return Reason” on, every refunded line needs a reason, plus a comment when the reason is marked “Comment Required”. This also covers a line added after the reasons window and a negative quantity typed in by hand: the till checks everything again before payment. Different products come back for different reasons, so the reason is set per line, not once for the whole receipt.
Seller and receipt
A sale of another seller is not refunded
With “Block Refunds of Another Seller” on, the till will not refund a sale made by a seller who is not among its own sellers. Otherwise the refund would be issued by a seller who never received that money. If either side’s seller is unknown, nothing is blocked.
Only a barcode is added to the receipt
The module adds just the order number as a barcode to the receipt. Amounts, lines and other receipt data stay as they were, and without a server connection the barcode image is simply not shown.
How this is checked
Every guarantee on this page has automated tests that check it — including as a cashier of another company, without a server connection, and with two tills at once.