Prevent Adding Unwanted Products or Over-Delivering Quantities on Sales Order Transfers in Odoo

Prevent on sales order transfers

Steersman added a new control to Odoo: A toggleable setting that prevents warehouse users from adding products or shipping quantities on a delivery that were not in the original Sales Order. It builds on our existing Prevent Negative Quantities logic and closes a gap that allows accidental additions to picks/deliveries that break traceability, inventory counts, and customer invoicing.


The problem we solved

Warehouse users sometimes click “Add a line” on a picking and either:

  • Add a product that wasn’t on the Sales Order, or
  • Increase quantities so that the delivery ships more than the Sales Order requested.

Both situations cause incorrect stock, mismatched invoices/POs, and audit issues


What the feature does

When enabled, Odoo will:

  • Blocks adding products to a pick/delivery that are not on the related Sales Order.
  • Blocks shipping more units of a product than the Sales Order requires.
  • Limits the Add a line product selector to only the products present on the Sales Order.
  • Keeps the existing behavior untouched for transfers that are not linked to a Sales Order (no impact to generic transfers).

Where to enable it

  1. Settings → Inventory → Operations
  2. Enable the new option:
    • Block Picking Extra Items and Quantities on Transfers linked to Sales Orders

How it works

  • Warehouse user opens a Delivery Order that was created by a Sales Order.
  • If they click “Add a line”, the product dropdown will only show products that exist on the Sales Order. (If no products are found, no entries are selectable.)
  • When the user enters a quantity and validates the picking, Odoo checks:
    • already_moved_qty + intended_move_qty = total_sales_order_qty
    • If this condition fails, Odoo raises a user error: “You cannot ship more than ordered” and prevents validation.
  • To increase demand, a Sales user must update the Sales Order (so changes are deliberate and auditable).