Update a Purchase Order Expected Arrival Date in Odoo · Calibre Consulting

Reschedule a purchase order without touching received lines.

How Expected Arrival, receipt Scheduled Date and Deadline connect in Odoo 19, and how to reschedule only the quantity still to come.

This guide explains how to push back the arrival date of a purchase order in Odoo 19 when part of the order has already been delivered, without rewriting the dates on the lines you have received. The short answer: the Expected Arrival date at the top of a purchase order is always the earliest date among its product lines, received or not, and typing a new value there copies it onto every line. To reschedule only what is still to come, change the date on the open lines and on the backorder receipt that holds the remaining quantity, then measure lateness from the receipts rather than from the order.

It is written for buyers and warehouse leads. The behavior was verified in the Odoo 19 source code, with a note on Odoo 20 at the end.

Before you start

How the three dates fit together

Each product line carries its own Expected Arrival. The column is hidden by default: on the order's Products tab, open the optional columns toggle at the right end of the column headers and tick Expected Arrival.

The Expected Arrival in the order header is recalculated as the earliest date across all product lines, without looking at received quantities. A line received last week keeps the header pointing at last week, even when everything outstanding is due next month.

When the order is confirmed, each line's date becomes both the scheduled date and the deadline of the matching line on the receipt. The receipt's Scheduled Date is then the earliest scheduled date among its lines that are not yet done, and its Deadline is the earliest deadline among its lines. Received lines stop counting toward the Scheduled Date as soon as they are processed.

What editing each date actually changes

So in Odoo 19, rescheduling outstanding goods takes two edits: the line dates, which drive the Deadline, and the Scheduled Date on the receipt holding the open quantity.

How to reschedule only the open quantity

  1. Open the Purchase app and open the order. Click the Receipt button at the top right of the form to open its receipt.
  2. Enter the quantities that actually arrived and click Validate. Because less than the ordered quantity was received, Odoo opens a confirmation window. Click Create Backorder. The missing quantity moves to a new receipt, the backorder.
  3. Open the backorder and set its Scheduled Date to the vendor's new date. Save. Only the outstanding lines are on this receipt, so nothing already received is affected.
  4. Return to the purchase order. On the Products tab, show the Expected Arrival column as described above.
  5. Change the Expected Arrival on each line that still has goods to come, using the same new date, and leave the received lines as they are. Save. The backorder's Deadline now shows the new date.

The header still shows the earliest line date, which may belong to a received line. Making it show the next outstanding date would mean moving the received lines' dates forward too, rewriting what the order records about goods already delivered.

Track lateness from the receipts list

Open the Inventory app and go to Operations > Transfers > Receipts. The Late filter lists open receipts whose Scheduled Date or Deadline is before today, or whose Deadline falls before its Scheduled Date. The Backorders filter shows open backorders. Received lines have left the open receipts, so this list reflects only what is still expected.

The Purchase app has a Late Receipts filter in Purchase > Orders > Requests for Quotation. It shows confirmed orders whose header Expected Arrival has passed, with at least one line not fully received and a receipt still open. Because it reads the header date, a part-received order appears there once its earliest received line's date has passed.

Check that it worked

  1. Open the backorder. The Scheduled Date shows the new date, and the Deadline shows the date you entered on the order lines.
  2. In Operations > Transfers > Receipts, apply the Late filter. The backorder no longer appears, provided both its dates are today or later.
  3. Open the first receipt. It is in the Done state with its original dates, and the received lines on the order still show the quantities received.

Common mistakes to avoid

What changes in Odoo 20

Odoo 20 adds a Promised Date to confirmed orders and their lines, filled from Expected Arrival at confirmation. Changing a line's Expected Arrival there moves the scheduled date of that line's open receipt lines, while changing the Promised Date moves their Deadline. The header Expected Arrival is still the earliest line date, and editing it still copies the date onto every line.

Steps verified on Odoo 19. Menus and labels can differ on other versions.

Common questions

Why does the Expected Arrival on an Odoo purchase order not move forward after a partial receipt?

In Odoo 19 the order-level Expected Arrival is the earliest Expected Arrival among all product lines, and received lines are not excluded. A received line with an early date keeps the header at that date.

Does changing the Expected Arrival on an Odoo purchase order change the receipt?

In Odoo 19 it updates the Deadline of the receipt lines that are still open, not their Scheduled Date. Validated receipts are left as they are.

How do I reschedule only the remaining quantity of a purchase order in Odoo?

Validate the partial receipt and choose Create Backorder, then set the new Scheduled Date on the backorder. Also update the Expected Arrival on the open order lines so the backorder's Deadline matches.

Why does editing the order Expected Arrival overwrite all the line dates?

Odoo copies a date typed in the order header onto every product line, received or not. To change one product's date, edit the Expected Arrival column on that line instead.

Where can I see late vendor deliveries in Odoo 19?

In the Inventory app, open Operations > Transfers > Receipts and apply the Late filter. It lists open receipts whose Scheduled Date or Deadline has passed, or whose Deadline is earlier than the Scheduled Date.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →