Warn (or Block) Users from Editing Contacts Used in Odoo Orders

We’ve added a new feature that protects your order history from accidental changes. Now, if a user attempts to edit a contact that has been used on sales orders, deliveries, invoices, or payments, Odoo will either alert them or block the edit entirely, depending on their permissions.
This ensures users don’t unintentionally change delivery addresses or billing details on important historical records.
Why It Matters
In Odoo, contacts are shared — editing a contact used on a sales order can update the delivery address or billing details on all related documents, including past ones. This can lead to confusion, incorrect shipments, or audit issues.
This new feature:
- Warns users when they’re about to edit a contact that’s used on orders or other documents
- Optionally blocks the edit unless the user has manager-level permissions
- Logs all edits to the chatter with a warning message
How It Works
When editing a contact, the following fields are monitored:
- Name, company, type
- Address lines, city, state, zip, country
- Email, phone
- Related delivery address fields like
address_location_code
If any of these are changed and the contact is linked to existing documents, Odoo will show a warning or prevent the edit based on the user’s role.
Exception
When users are editing a contact directly from a sales order, and the contact is only used on that order, no warning is shown.
This keeps the process efficient by allowing changes to be safely isolated.
Supported Documents
The system checks for links to the contact in:
- Sales Orders
- Purchase Orders
- Invoices
- Payments
- Payment Tokens
- Payment Transactions
- Stock Pickings
What Users See
If the contact has been used in any of the above documents:
- Users in the “Contact Edit Warning Only” group will see a popup warning before saving
- Other users will be blocked from saving edits unless they have override access
- A message is logged in the contact’s chatter with a note about the warning
How To Configure
- Go to the Contacts section in the settings app and enable the “Prevent editing used contacts” setting.
- Once you enable the feature, two additional settings will appear.
- Restricted Partner Fields: Here, you add the specific fields you want to be restricted.
- Related Fields To Check: Here, you add the open document types you want Odoo to check for.
User Permissions
Two new groups control the behavior:
- Contact Edit Override Group: Can bypass the block but still see the warning
- Users outside this group will be prevented from saving edits to shared contacts
Admins can assign users to these groups in the system settings:
Who Benefits
This feature is helpful for:
- Sales teams working with shared customer addresses
- Clients managing recurring customers or accounts
- Businesses that need to preserve historical contact records for compliance or tracking
It prevents costly mistakes, like accidentally overwriting the shipping address for hundreds of past orders, while still allowing authorized users to make necessary updates.
Related posts

Carrier Billing on Sub-Contacts Inherits from Parent in Odoo
We’ve added support for a new option in the "Carrier Billing" field on contacts: "Inherit from Parent". This feature helps prevent mismatches in shipping account and billing type logic between parent accounts and their sub-contacts. Now, when entering orders for sub-contacts, users can rely on consistent carrier billing behavior — even if the sub-contact has no billing details set.

How to configure Email Address Mappings in Odoo
User Guide to configuring email address mappings in Odoo.

Odoo User Permissions
Understanding the Basics of Assigning User Permissions in Odoo

Show Procurement Group on Receipts and Transfers In Odoo
We’ve added a feature to help warehouse teams easily identify whether incoming inventory is being received for a Sales Order or as general stock. This is done by making the Procurement Group visible on transfers, both in the Odoo interface and on printed labels. This helps receiving teams know how to sort, label, and stage items based on where they’re headed next.