Skip to Content

Odoo Purchase: change a quantity without losing the agreed arrival date

October 9, 2026 by
Odoo Purchase: change a quantity without losing the agreed arrival date

Your vendor promised delivery on 20/11/2026 and you entered it on the confirmed order. A few days later, they can ship five more units: you change the quantity… and Odoo replaces the agreed date with its own, then splits the receipt in two. Here is why standard Odoo behaves this way, what it costs your logistics, and how our Keep PO Arrival Date module keeps the date in place.

1. Standard Odoo recomputes the date on every quantity change

On a purchase order line, Odoo computes the price and the Expected Arrival in one single computation. As soon as the product has a vendor pricelist, any change to the quantity (or the unit of measure) triggers it again, including on an order that is already confirmed. The Expected Arrival then reverts to order date + vendor lead time.

Take an example: order P00042 dated 05/10/2026, vendor lead time of 5 days, delivery agreed for 20/11/2026. You change the quantity from 10 to 15: the Expected Arrival jumps to 10/10/2026. The date negotiated with the vendor is lost, with no message or warning.

This is not a bug in one isolated version: the condition sits in the code of Odoo 18, 19 and 20, and was already there in 17.

💡 Key takeaway

In standard Odoo, a confirmed order does not protect its arrival date: changing the quantity is enough to replace it with “order date + vendor lead time”.

2. A receipt split in two, or an unexpected return

The damage does not stop at the date. To decide whether a quantity change can update the existing stock move, Odoo compares several criteria, including the date. Since the date has just changed, the two no longer match:

  • an increase creates a second move in the receipt: from 10 to 15, you get two lines, one of 10 at the old date and one of 5 at the new one;
  • a decrease creates a return to the vendor, even though nothing has been received yet.

In the warehouse, the receipt no longer reflects what the vendor will deliver, and the arrivals schedule shows a date nobody agreed to.

💡 Key takeaway

The date is part of what lets Odoo merge stock moves. A recomputed date means a split receipt or a return that should never exist.

3. Keep PO Arrival Date: the agreed date stays

Our module acts on confirmed order lines, and on those only:

  • the Expected Arrival keeps its value when you change the quantity;
  • the new quantity updates the existing move: from 10 to 15, the receipt shows a single line of 15, at the same date, and a decrease no longer creates a return;
  • prices and descriptions are still recomputed as before;
  • on Odoo 20, it also aligns the deadline of new moves with the promised date.

There is nothing to configure, no field added, nothing written to the database on installation. The module remembers the date before the standard computation and puts it back afterwards, in memory: no extra call, whether the order has three lines or three hundred.

💡 Key takeaway

Change the quantity, the agreed date stays, and the receipt keeps a single move.

4. What the module deliberately does not do

The freeze applies to confirmed lines only. This is a deliberate choice: while you are at the Request for Quotation stage, the standard recomputation is useful, for instance to follow a change of vendor and its own lead time. RFQs therefore keep Odoo’s behaviour.

The downside: if you edit an RFQ after entering a date on it, that date can still be recomputed. And a date you enter by hand always applies, on an RFQ as on a confirmed order: the module protects the agreed date, it does not stop you from changing it.

If this kind of default behaviour regularly catches you out in purchasing, it is often a sign that a setting or a team habit deserves a review. Targeted Odoo training on the purchase-to-receipt flow saves a great deal of manual correction.

💡 Key takeaway

RFQ: standard behaviour. Confirmed order: the date stays. Manual entry: always taken into account.

⚔️ The Match: standard Odoo vs Kameos module

Criterion Standard Odoo Keep PO Arrival Date
Quantity changed on a confirmed order Expected Arrival recomputed (order + lead time) The agreed date stays
Increase from 10 to 15 Two moves: 10 and 5 A single move of 15
Quantity decrease Return to vendor Existing move updated
Request for Quotation Date recomputed Date recomputed (unchanged)
Date entered by hand Applied Applied
Configuration — None

Behaviour checked by the module’s automated tests: product with a vendor pricelist, confirmed line, quantity raised from 10 to 15 then reduced. Module at €10, for Odoo 18, 19 and 20, Community and Enterprise, OPL-1 licence.

🛒 On the Odoo App Store

Keep PO Arrival Date is on sale on the official Odoo App Store, for 10 € (Odoo 18, 19 and 20): see the module page.

The Verdict: an agreed date should not change on its own

Automatic recomputation makes sense while the order is only a Request for Quotation. Once confirmed, the arrival date is a commitment from the vendor: Keep PO Arrival Date protects it, and the receipt stays true to what will actually arrive. For €10, on Odoo 18, 19 or 20.

Want to install the module, or find out which other automations in your purchasing flow are costing you time? Contact us, or start with an audit of your Odoo processes.

Request a Free Audit
Why Your Odoo Website Has a Bad PageSpeed Score (and the Only Real Fix)