Sales Stock Picking Invoicing

sale_stock_picking_invoicing
REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/18.0/sale_stock_picking_invoicing
VERSION
VERSION 2.1.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, Enric Tobella, Weblate, OCA-git-bot, Magno Costa, oca-ci, ppyczko, Ricard Calvo
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - stock_picking_invoicing
OCA/server-tools:
    - base_view_inheritance_extension
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - sale_stock
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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](https://github.com/OCA/bank-payment/tree/14.0/account_payment_sale)
and [Sale
Commission](https://github.com/OCA/commission/tree/14.0/sale_commission).

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_stock_picking_invocing_res_company_form sale_stock_picking_invocing.res.company.form res.company field Inherits base.view_company_form
sale_stock_picking_invoicing_res_config_settings_form sale_stock_picking_invoicing.res.config.settings.form res.config.settings xpath Inherits sale.res_config_settings_view_form
view_sale_stock_invoice_onshipping Sale Stock Invoice Onshipping stock.invoice.onshipping field Inherits stock_picking_invoicing.view_stock_invoice_onshipping
Models touched (7)

New fields (1)
  • sale_invoicing_policy Selection
    default=_default_sale_invoicing_policy help="If set to Sale Order, keep native Odoo behaviour for creation of invoices from Sale Orders.\nIf set to Stock Picking, disallow creation of Invoices from Sale Orders for the cases where Product Type are 'consu', in case of 'Service' still will be possible create from Sale Order.\nIf set to Sale Order and Stock Picking, invoices can be created from both the Sale Order and the Stock Picking. The picking invoice state is synced after Sale Order invoicing, and the picking wizard caps quantities to prevent double invoicing." selection=[('sale_order', 'Sale Order'), ('stock_picking', 'Stock Picking'), ('both', 'Sale Order and Stock Picking')]
Public methods (0)

No public methods.

New fields (1)
  • sale_invoicing_policy Selection
    readonly=False related='company_id.sale_invoicing_policy'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • deduct_down_payments Boolean
    default=True args: 'Deduct down payments'
  • has_down_payments Boolean
    default=_default_has_down_payment args: 'Has down payments'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/16.0/sale_stock_picking_invoicing
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:52
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - stock_picking_invoicing
OCA/server-tools:
    - base_view_inheritance_extension
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - sale_stock
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES astor
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_stock_picking_invocing_res_company_form sale_stock_picking_invocing.res.company.form res.company field Inherits base.view_company_form
sale_stock_picking_invoicing_res_config_settings_form sale_stock_picking_invoicing.res.config.settings.form res.config.settings xpath Inherits sale.res_config_settings_view_form
view_sale_stock_invoice_onshipping Sale Stock Invoice Onshipping stock.invoice.onshipping field Inherits stock_picking_invoicing.view_stock_invoice_onshipping
Models touched (7)

New fields (1)
  • sale_invoicing_policy Selection
    default=_default_sale_invoicing_policy help="If set to Sale Order, keep native Odoo behaviour for creation of invoices from Sale Orders.\nIf set to Stock Picking, disallow creation of Invoices from Sale Orders for the cases where Product Type are 'Product', in case of 'Service' still will be possible create from Sale Order." selection=[('sale_order', 'Sale Order'), ('stock_picking', 'Stock Picking')]
Public methods (0)

No public methods.

New fields (1)
  • sale_invoicing_policy Selection
    readonly=False related='company_id.sale_invoicing_policy'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • deduct_down_payments Boolean
    default=True args: 'Deduct down payments'
  • has_down_payments Boolean
    default=_default_has_down_payment readonly=True args: 'Has down payments'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/15.0/sale_stock_picking_invoicing
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSOCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:38
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - stock_picking_invoicing
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - sale_stock
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_stock_picking_invocing_res_company_form sale_stock_picking_invocing.res.company.form res.company field Inherits base.view_company_form
sale_stock_picking_invoicing_res_config_settings_form sale_stock_picking_invoicing.res.config.settings.form res.config.settings xpath Inherits sale.res_config_settings_view_form
view_sale_stock_invoice_onshipping Sale Stock Invoice Onshipping stock.invoice.onshipping field Inherits stock_picking_invoicing.view_stock_invoice_onshipping
Models touched (7)

New fields (1)
  • sale_invoicing_policy Selection
    default=_default_sale_invoicing_policy help="If set to Sale Order, keep native Odoo behaviour for creation of invoices from Sale Orders.\nIf set to Stock Picking, disallow creation of Invoices from Sale Orders for the cases where Product Type are 'Product', in case of 'Service' still will be possible create from Sale Order." selection=[('sale_order', 'Sale Order'), ('stock_picking', 'Stock Picking')]
Public methods (0)

No public methods.

New fields (1)
  • sale_invoicing_policy Selection
    readonly=False related='company_id.sale_invoicing_policy'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • deduct_down_payments Boolean
    default=True args: 'Deduct down payments'
  • has_down_payments Boolean
    default=_default_has_down_payment readonly=True args: 'Has down payments'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-invoicing
GIT
GIThttps://github.com/OCA/account-invoicing.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-invoicing/tree/14.0/sale_stock_picking_invoicing
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-invoicing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - stock_picking_invoicing
OCA/stock-logistics-workflow:
    - stock_picking_invoice_link
odoo/odoo:
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - sale_stock
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_stock_picking_invocing_res_company_form sale_stock_picking_invocing.res.company.form res.company field Inherits base.view_company_form
sale_stock_picking_invoicing_res_config_settings_form sale_stock_picking_invoicing.res.config.settings.form res.config.settings xpath Inherits sale.res_config_settings_view_form
view_sale_stock_invoice_onshipping Sale Stock Invoice Onshipping stock.invoice.onshipping field Inherits stock_picking_invoicing.view_stock_invoice_onshipping
Models touched (7)

New fields (1)
  • sale_invoicing_policy Selection
    default=_default_sale_invoicing_policy help="If set to Sale Order, keep native Odoo behaviour for creation of invoices from Sale Orders.\nIf set to Stock Picking, disallow creation of Invoices from Sale Orders for the cases where Product Type are 'Product', in case of 'Service' still will be possible create from Sale Order." selection=[('sale_order', 'Sale Order'), ('stock_picking', 'Stock Picking')] string='Sale Invoicing Policy'
Public methods (0)

No public methods.

New fields (1)
  • sale_invoicing_policy Selection
    readonly=False related='company_id.sale_invoicing_policy'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • deduct_down_payments Boolean
    default=True args: 'Deduct down payments'
  • has_down_payments Boolean
    default=_default_has_down_payment readonly=True args: 'Has down payments'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/account-invoicing
PULL REQUEST
PULL REQUEST[17.0][MIG] sale_stock_picking_invoicing: Migration to 17.0 (#2178)