Odoo Community Association

Sale Partner Sale Contact

Beta License: LGPL-3 OCA/sale-workflow Translate me on Weblate Try me on Runboat

This module adds a Sale Contact field to quotations, sale orders, and invoices.

Key concept — keep the company as customer, name the person who drives the deal

In standard Odoo, partner_id is the commercial/legal counterpart of the document: it drives the fiscal position, pricelist, payment terms, receivable account and the invoice/shipping addresses. While it can technically hold a child contact, using it to store the “contact person” forces an individual into a field that is meant to represent the invoiced/contracted entity — polluting analytic accounting and reporting.

This module addresses a different need: tracking a named commercial contact person (e.g. procurement manager, project lead, key account contact) who is the day-to-day point of contact for a deal, while keeping the company as the commercial entity in partner_id. That person travels consistently across the sale order, its invoices, and (with the companion module) any generated projects — something partner_id cannot guarantee, since each document computes its own partner_id.

Billing and shipping addresses remain independent and unaffected.

This distinction is also fully compatible with B2C: when the customer is an individual without child contacts, the field simply remains empty and the ordinary Odoo workflow is unchanged.

The sale contact field allows you to:

The contact must be a child contact (person) of the selected customer.

Table of contents

Configuration

To configure the module:

  1. Go to Settings > Sales > Quotations & Orders
  2. Enable/disable Display sale contact on reports
  3. This option is enabled by default
  4. When enabled, the sale contact will appear on PDF reports for sale orders and invoices

Usage

To use this module, follow these steps:

  1. Go to Settings > Sales > Quotations & Orders
  2. Enable the Display sale contact on reports option to show the sale contact on PDF reports (enabled by default)
  3. Go to Sales > Orders > Quotations or Sales > Orders > Orders
  4. Create or open a sale order
  5. After selecting a customer, you can select a Sale Contact from the customer’s child contacts
  6. If the configuration option is enabled, the sale contact will appear on the printed quotation/order PDF
  7. When you create an invoice from the sale order, the sale contact will be automatically copied to the invoice
  8. If the configuration option is enabled, the sale contact will also appear on the printed invoice PDF

Note: Only contacts that are people (not companies) and are direct children of the selected customer will be available for selection.

Auto-switch behavior: If you select a contact person in the customer field and that person has a parent company, the system will automatically:

  • Set the customer field to the parent company
  • Set the sale contact field to the person you selected

This behavior only applies when the restriction modules (*_partner_id_company_only) are not installed.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • OpenStudio SAS

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

maisim

This module is part of the OCA/sale-workflow project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.