All posts
Functional4 min read

Locking Prices at Quotation Confirmation in Odoo Sales

Configure Odoo to lock product prices when a quotation is confirmed - preventing price changes from affecting already-committed sale orders and protecting margin on confirmed deals.

Price Locking in Odoo Sales#

Without price locking, a product price update in Odoo can inadvertently change the price on already-confirmed sale orders - repricing deals the customer has already agreed to. Price locking prevents this.

How Odoo Handles Prices on Confirmed Orders#

By default, sale order lines store the price at the time the order is created. If you update the product's sales price later, existing confirmed orders are not affected - the stored price remains.

However, if you manually edit a confirmed sale order or if an automated repricing script is applied, prices can change. This is what locking prevents.

Locking Sale Orders After Confirmation#

Sales → Configuration → Settings → enable Lock Confirmed Sales:

  • Once a sale order is confirmed, all fields (including price) are locked
  • Changes require clicking Unlock (generates a log entry with the user and reason)

This is the primary protection mechanism.

Audit Trail for Price Changes#

When unlock is used:

  • The action is logged in the order chatter: "Order unlocked by [User] at [Time]"
  • Finance teams can monitor unlocks via:

Settings → Technical → Logging → Audit Log (if audit trail module is installed)

Price Validity Periods on Quotations#

Control how long a quotation price is valid:

Sales → Configuration → SettingsQuotation Validity: 30 days.

After 30 days, the quotation expires:

  • Customer cannot confirm it after expiry (portal prevents it)
  • Salesperson must send a revised quotation at current prices
  • This prevents customers from holding old quotes to lock in past prices

Pricelist Price Locks#

If pricelists are used and a pricelist changes after a quotation is sent:

  • The quotation stores the price at the time it was created
  • Confirming the order locks in that stored price
  • The pricelist change does not retroactively update confirmed orders

Volume Discounts on Confirmed Orders#

If the customer orders more than originally quoted (e.g., adds more units to the order):

  1. Manager unlocks the order
  2. Adjusts the quantity
  3. The system may offer to recalculate the price at the new quantity (volume discount)
  4. Manager approves or overrides the new price
  5. Re-locks the order

All changes are captured in the chatter for full audit visibility.

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free