OdooWiki OCA HUB

Stock Picking Return Refund Option

stock_picking_return_refund_option folder_open OCA/account-invoicing open_in_new
Sales License: AGPL-3

This module extends the functionality of sales and purchase orders to support modify stock move field to_refund after it has been confirmed.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets you change the refund option on a confirmed return picking, so delivered or received quantities on the linked sales or purchase order are recalculated and you can invoice the refund correctly.

When a transfer is a return (it was created from an original delivery or receipt), a new "Refund Options" field appears on the transfer form. You can set it to "To Refund" or "No Refund".

  • Choosing "To Refund" marks every line of the transfer as refundable and recalculates the delivered quantities on the related sales order lines (or received quantities on purchase order lines).
  • Choosing "No Refund" clears that flag on all lines and recalculates those quantities again.
  • The field is only shown on returns; on normal transfers it stays hidden.

The same refund flag is also shown as a column in the Operations list of the transfer, so you can see and change it line by line. If only some lines are flagged, the header field shows no value, because the choice is mixed.

Any change to the refund flag on a line immediately triggers the recalculation of delivered and received quantities on the linked sales or purchase orders, which is what allows a correct refund invoice to be created afterwards. The module works on stock transfers (stock.picking) and their lines (stock.move) and touches the sales and purchase order quantity computations through the standard links already present in Odoo.

Depends on

stock_accountpurchase_stocksale_stock
Models and fields (2)
  • stock.move · extends an existing model
  • stock.picking · extends an existing modelis_return, to_refund_lines (Refund Options)

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 17.0

Confirmed on 2026-11-03 in branch 17.0 of OCA/account-invoicing.

terminal Installation and usage

OCA documentation · Odoo 19.0
  • This module requires the additional installation of sale_stock or purchase modules for enabling the features it contains.

To use this module, when some customer returns some refundable products to you after you created an invoice, you need to:

For a sale order:

  • Go to Sales \> Sales Orders \> Create.
  • Choose a customer and add a product whose Invoicing Policy is Delivered quantities, and input some quantity to sell.
  • Confirm the sale.
  • Go to Delivery \> Validate \> Apply.
  • Return to the sale order.
  • Press Create Invoice \> Regular invoice \> Create and View Invoices.
  • The created invoice's amount is the same you sold.
  • Return to the sale order.
  • Go to Delivery \> Return.
  • Set Quantity to a lower quantity than the sold one, and enable To Refund.
  • Press Return \> Validate.
  • Return to the sale order.
  • Press Create Invoice and View Invoices.
  • A refund is created for the quantity you returned before.

For allowing to refund quantities after the picking has been confirmed if you did not check 'to refund' in wizard, you can change the value of 'Refund Options' field.

To use this module, when you return some refundable products to your supplier after you created an invoice, you need to:

  • Go to Purchase \> Purchase Orders \> Create.
  • Choose a supplier and add a product whose Invoicing Policy is Delivered quantities, and input some quantity to buy.
  • Confirm the order.
  • Go to Delivery \> Validate.
  • Go to Invoices \> Vendors \> Bills and create one.
  • Select created purchase in Auto-complete and confirm bill.
  • The created invoice's amount is the same you sold.
  • Return to the purchase order.
  • Go to Delivery \> Return.
  • Set Quantity to a lower quantity than you bought, and enable To Refund.
  • Press Return \> Validate.
  • Return to the purchase order.

For allowing to refund quantities after the picking has been confirmed if you did not check 'to refund' in wizard, you can change the value of 'Refund Options' field.

No verified information in OCA: Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.