OdooWiki OCA HUB

Sales Stock Picking Invoicing

sale_stock_picking_invoicing folder_open OCA/account-invoicing open_in_new
Warehouse Management License: AGPL-3

This module extends Stock Picking Invoicing implementation to Sale, you can define the 'Sale Invoicing Policy':

  • If set to Sale Order, keep native Odoo behaviour for creation of invoices from Sale Orders.
  • If set to Stock Picking, disallow creation of Invoices from Sale Orders for the cases where the Product Type is 'consu', in case of 'Service' still will be possible create from Sale Order.
  • If set to Sale Order and Stock Picking, invoices can be created from both the Sale Order and the Stock Picking. When invoicing from the Sale Order, the related picking is automatically marked as invoiced. The picking wizard also caps quantities to prevent double invoicing when some units were already invoiced from the Sale Order.

For stock.moves, override price calculation that is present in stock_picking_invoicing, with the native Sale Order Line price calculation, same for the partner_id and other informations used to create the Invoice from Sale Order as such Payment Terms, Down Payments, Incoterm, Client Ref,etc by using sale methods to get data in order to avoid the necessity of 'glue modules' (small modules made just to avoid indirect dependencies), so in the case of any module include a new field in Invoice created by Sale this field also be include when created by Picking, for example the modules Account Payment Sale and Sale Commission.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Lets you choose, per company, whether customer invoices are created from the Sale Order, from the Stock Picking, or from both, and keeps the two flows in sync so nothing is invoiced twice.

This module adds a company-level setting called Sale Invoicing Policy, available on the company form and in the Sales settings screen. It offers three choices:

  • Sale Order: keeps standard Odoo behaviour, invoices are created from the sale order.
  • Stock Picking: invoices for storable/goods products can only be created from the delivery (stock picking); service products can still be invoiced from the sale order. If someone tries to invoice goods from the sale order, Odoo blocks it with an error message telling them to use the stock picking or change the setting.
  • Sale Order and Stock Picking: invoices can be created from either place. When invoicing from the sale order, the related picking is automatically marked as invoiced, and the picking invoicing wizard limits quantities to what is still to invoice, preventing double invoicing.

When the policy is Stock Picking or Both, new deliveries are automatically flagged as 'to be invoiced'. The picking invoicing wizard also gains a 'Deduct down payments' option, shown only when the related sale orders contain down payments, and it reuses sale order data (payment terms, references, sections, notes, analytic distribution) on the created invoice. Prices and the invoicing partner are taken from the sale order line and the sale order's invoice address.

Depends on

Required by other modules

Models and fields (7)
  • sale.order · extends an existing model
  • stock.move · extends an existing model
  • res.company · extends an existing modelsale_invoicing_policy
  • stock.picking · extends an existing model
  • sale.order.line · extends an existing model
  • res.config.settings · extends an existing modelsale_invoicing_policy
  • stock.invoice.onshipping · extends an existing modelhas_down_payments (Has down payments), deduct_down_payments (Deduct down payments)

Text generated by AI (DeepSeek) from reading the Odoo 18.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: 4 confirmed, 5 with no information of 9 versions.

Sources · Odoo 18.0

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

terminal Installation and usage

OCA documentation · Odoo 18.0

This module depends on:

  • sale_management
  • sale_stock
  • stock_picking_invoicing
  • stock_picking_invoice_link

Define 'Sale Invoicing Policy', if the invoice should be created from Sale Order or from Stock Picking, go to:

Settings \> Users & Companies \> Companies

or

Sales \> Configuration \> Settings in Invoicing

If 'Stock Picking' is chosen as Policy, the creation of Invoice from Sale Order works only for Service lines. In the case of Sale Order with products and service lines, two Invoices will be created (one from the SO with services, one from the picking with products).

If 'Sale Order and Stock Picking' is chosen, invoices can be created from both the Sale Order and the Stock Picking. When invoicing from the Sale Order, the related picking invoice state is automatically synced. The picking wizard prevents double invoicing by capping quantities to what remains to invoice on the sale line.

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.