Sale Partner Sale Contact - Website Sale
This module is the glue between Sale Partner Sale Contact and the eCommerce (website_sale).
When a portal user who is a contact person of a company places an order on the website, the order is created with the contact person as customer (partner_id). The auto-switch logic of Sale Partner Sale Contact is implemented as an onchange and therefore never runs for website orders.
This module applies the switch when the website order is confirmed:
- partner_id is replaced by the commercial partner (the company);
- the contact person who placed the order is stored in the Sale Contact field (sale_contact_partner_id);
- the invoice and delivery addresses chosen during checkout, the fiscal position and the payment terms are preserved.
The switch is deliberately not applied while the order is still a cart: website_sale resets the cart customer to the logged-in user's partner on every request and looks up abandoned carts by that partner, so an earlier switch would be reverted and would break cart recovery.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0When a contact person of a company confirms a website order, the order is automatically reassigned to the company, while the person who ordered is kept as the sale contact and the chosen addresses, fiscal position and payment terms are preserved.
This module connects the eCommerce checkout with the sale contact logic used in the back office. Normally, when a contact person of a company orders through the website, the order stays in that person's name because the automatic switch to the company only happens when someone edits the order by hand in the backend.
With this module, the switch happens automatically at the moment the website order is confirmed:
- The customer on the order is replaced by the company (the commercial partner).
- The contact person who actually placed the order is saved in the sale contact field, so the origin of the order is not lost.
- The invoice address, delivery address, fiscal position and payment terms chosen during checkout are kept as they were.
The switch is deliberately not done while the order is still a shopping cart, because the website keeps resetting the cart's customer to the logged-in user. Confirmation is the first stable moment to do it.
The switch is applied after the normal confirmation steps, so the confirmation email still goes to the person who placed the order, delivery documents are created with the addresses chosen at checkout, and the pricelist is not recalculated.
It only affects orders that come from the website and only extends the sales order model (sale.order); no new menus or screens are added. It installs automatically when both the sale contact and eCommerce modules are present.
Depends on
Models and fields (1)
- sale.order · extends an existing model
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-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/sale-workflow.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0No specific configuration is needed; the module is installed automatically when both Sale Partner Sale Contact and eCommerce are installed.
- As a portal user that is a contact person of a company, place an order on the website and complete the checkout.
- Once the order is confirmed, open it in the backend: the Customer is the company and the Sale Contact is the person who placed the order.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.