Returns Management (RMA) for Odoo 19 Community documentation
A guide to the returns: the RMA from the sales order, the steps, the return receipt and the stock, the credit note and the replacement, the slip and the analysis.
Documents version 1.0.0Updated Oct 23, 2026
Start here
In plain words: A customer sends two of the thirty mice back: broken. Who authorised it? Where are they? Was the credit note made? Returns Management (RMA) follows the whole return in Odoo Community: the RMA made from the sales order, the return receipt in the warehouse, the stock back (or to scrap), then the credit note or a replacement, with the reason and an authorisation slip for the customer.
Tip: The quantities that can be returned come from what was really delivered, minus what other RMAs already took.
What you get
| Feature | What it does |
|---|---|
| An RMA from the order | The button Create a return on a sales order fills the lines with the delivered quantities not yet returned. |
| Checks | A line cannot return more than was delivered, all the RMAs of the order together. |
| Reason and resolution | A reason (defective, wrong item, changed mind...) and the resolution: a credit note or a replacement. |
| Condition | Each line goes back to stock or to scrap. |
| The return receipt | Authorising creates the receipt in the warehouse; receiving it brings the stock back, or sends it to scrap. |
| Credit note | A draft credit note with the prices, the discounts and the taxes of the order, linked to the order lines. |
| Replacement | A delivery of the same products, from your stock to the customer. |
| Follow-up | Smart buttons on the order and the RMA for the receipt, the credit note and the replacement; the chatter keeps the history. |
| The slip | A PDF authorisation with your return terms, to send to the customer. |
| Analysis | The value of the returns by reason, customer and month. |
| Arabic | Everything is translated and works right to left. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Sales and Inventory (sale_stock) and Invoicing (account) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_rma.zip; unzip it to get the foldertaqnix_rma. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- Remove the “Apps” filter, search Returns Management (RMA) and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_rma --stop-after-init
Create an RMA
In plain words: Open a delivered sales order and click Create a return. The RMA opens with a line for each product that can still be returned, with the delivered quantity. Change the quantities, remove what stays with the customer, choose the reason and the resolution, and the condition of each line.
| Field | Meaning |
|---|---|
| Reason | Why the goods come back. Configure the list in Returns → Reasons of Return. |
| Resolution | Credit note (a refund) or Replacement (the same goods sent again). |
| To return | The quantity of the line. At most the delivered quantity not already in another RMA. |
| Condition | Back to stock (resell) or To scrap (damaged). |
Tip: You can also create an RMA from Returns → Returns (RMA) for a customer and products that are not on a sales order.
The steps of an RMA
| Button | What happens |
|---|---|
| Authorise the return | The RMA is authorised and the return receipt is created in the warehouse (from the customer location). |
| Receive the goods | The receipt is validated: the stock comes back to the warehouse, or goes to the scrap location for the damaged lines. |
| Resolve | A draft credit note is created for the returned quantities, or a replacement delivery. |
| Print the slip | The authorisation as a PDF. |
| Cancel | Before the goods are received: the receipt is cancelled. |
In plain words: If the warehouse validates the return receipt on its own screen, the RMA moves to Received by itself.
The authorisation slip
In plain words: Print the slip gives the customer the RMA number, the products and the quantities, the reason, where to send the goods and your return terms (set them in Settings → Companies → Returns).
Analysis
In plain words: Returns → Returns (RMA) opens the list, with a pivot and a graph of the value of the returns by reason and month.
Who can do what
| Who | Can |
|---|---|
| Returns users | Create and follow the RMAs, receive and resolve them. |
| Returns managers | Also configure the reasons, and delete. |
| Other users | No access to the RMAs. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Credit note in draft | You check and post it: nothing is posted for you. |
| Lots and serial numbers | Not tracked on the return: the stock comes back without its lot. |
| Price of the replacement | A replacement is a free delivery. |
| Repair | Not part of the resolutions. |
For developers
In plain words: Skip this chapter if you only use the module.
rma = env['taqnix.rma'].create(env['taqnix.rma']._from_sale_order(order)) rma.action_confirm() rma.action_receive() rma.action_resolve() rma.credit_note_id
Troubleshooting
| Problem | What to do |
|---|---|
| Nothing was delivered on this order | Deliver the order first: only delivered quantities can be returned. |
| The quantity to return is too high | The rest was returned in another RMA; cancel it, or lower the quantity. |
| The receipt cannot be validated | Open it from the Return receipt button and validate it in the warehouse. |
| The Create a return button is missing | It shows on confirmed sales orders, for returns users. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_rma. Your RMAs, reasons and terms are kept.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.