When customers are waiting for a product, Odoo can list every confirmed sales order still owed that product, with the customer, the ordered, delivered and remaining quantities, and the date more stock is expected. A custom report is usually not needed. This guide uses two standard reports together: the Sales Analysis report gives the quantities per customer and order, and the product's Forecasted report gives the expected availability date for each order. It is written for sales and operations managers who want that list without opening each order.
Before you start
- Version: verified on Odoo 19, and the menus and labels used here are the same in Odoo 20. Both reports are part of standard Odoo in the Community and Enterprise editions.
- Apps: Sales and Inventory must be installed. Expected dates come from purchase orders or manufacturing orders, so you also need Purchase, Manufacturing or both. A manufacturing order is Odoo's record for producing a quantity of a product in house.
- Access rights: the Sales reporting menu needs Administrator access for Sales. The Forecasted button needs at least User access for Inventory.
- Product setting: the product's Product Type must be Goods with Track Inventory ticked. Both are on the General Information tab of the product form.
- Terms: a delivery is the warehouse document Odoo creates to ship a confirmed order, and a variant is one version of a product, such as one size or color.
How the two reports split the work
The Sales Analysis report is built from sales order lines. For every line it shows the customer, the order reference, the quantity ordered, the quantity delivered, and Qty To Deliver, which is the ordered quantity minus the delivered quantity. Any confirmed order with a Qty To Deliver above zero is still waiting for the product.
Sales Analysis does not look at incoming stock, so it cannot give a date. When a sales order is confirmed, Odoo creates a delivery for it, and the Forecasted report lines up each open delivery against the stock you hold and the incoming receipts and manufacturing orders. Where incoming supply will cover a delivery, the report pairs the two and shows when that supply is due.
Get the quantities from Sales Analysis
- Open the Sales app, then go to Reporting > Sales. The report opens as a graph.
- In the search bar, type the product name and choose the Product option. Leave the Sales Orders filter in place. It is applied by default and keeps quotations and cancelled orders out.
- To include orders placed more than a year ago, remove the Order Date: Last 365 Days facet, one of the filter tags in the search bar. It is also applied by default and hides older orders even when they are still waiting.
- Switch to the pivot view, which shows the data as a table you can group by rows and columns. By default it groups rows by month and columns by sales team.
- Open the Measures menu, select Qty Ordered, Qty Delivered and Qty To Deliver, and clear any other measure.
- Click the Total header at the top of the rows to collapse the months, then click it again and choose Customer. Click the Total header above the columns once to collapse the sales teams.
- Click a customer's row header and choose Order Reference from the Custom Group list at the bottom of the menu. That customer's orders now appear as separate rows.
Click the Qty To Deliver column header to sort by it, so the orders still waiting move to the top. Rows showing zero have been delivered in full.
Find the expected date in the Forecasted report
- Open the Inventory app, then go to Products > Products, and open the product.
- Click the Forecasted smart button. Smart buttons are the shortcut buttons along the top of a form, and this one shows the forecasted quantity. The Forecasted report opens.
- If you run more than one warehouse, use the Warehouse selector at the top of the report to choose the warehouse that ships these orders. The report covers one warehouse at a time.
Four columns answer the question:
- Used by names the sales order behind each pending delivery, with a link that opens it.
- Outgoing is the quantity of that delivery the row covers.
- Available says where that quantity will come from. Stock To Reserve means stock you already hold covers it. A purchase order or manufacturing order reference followed by "expected on" and a date means that incoming order will cover it, and the date is the expected availability. Not Available means nothing on hand or incoming covers it yet.
- Delivery Date is the scheduled date of the delivery to the customer. It turns red once that date has passed and the delivery is still open.
One order can take more than one row. If part of an order is covered by stock and the rest is due on a receipt, the report shows a row for each part, each with its own quantity.
Check that it worked
- Pick a product with Track Inventory ticked, no stock on hand and no open purchase or manufacturing orders. In the Sales app, create a sales order for 5 units of it and click Confirm.
- In Sales Analysis, search for the product. The order appears with Qty Ordered 5, Qty Delivered 0 and Qty To Deliver 5.
- Open the product's Forecasted report. The order appears under Used by, with Not Available and the 5 units shown in red.
- In the Purchase app, create a purchase order to any vendor for 5 units of the product, set the Expected Arrival date, and click Confirm Order.
- Reload the Forecasted report. The same row now shows the purchase order reference and "expected on" with the Expected Arrival date.
If you test in a live database, cancel both test orders afterwards so they do not distort your real figures.
What the highlights are telling you
- Highlighted rows mean late supply. When the incoming order is expected after the customer's delivery date, the whole row is highlighted.
- A red quantity with Not Available means no supply yet. Odoo found neither stock nor an incoming order for that part, so a purchase order or manufacturing order still has to be created.
- Draft transfers are not matched to orders. Receipts and deliveries still in draft appear only as totals below the table, as Incoming Draft Transfer and Outgoing Draft Transfer, and they feed the Forecasted with Pending figure.
- Quotations do not appear in the forecast. Odoo creates the delivery only when the order is confirmed.
When the figures do not appear
- No Reporting menu in Sales. The user needs Administrator access for Sales.
- No Forecasted button. The product is not set to Goods with Track Inventory ticked, or the user has no Inventory access.
- A negative remaining quantity. Qty To Deliver is ordered minus delivered, so an order that shipped more than was ordered shows a figure below zero.
- Several variants in one total. Searching by Product includes every variant. Choose the Product Variant option in the search instead to narrow the analysis to one variant. The Forecasted report lists each variant under its own heading.
Steps verified on Odoo 19. Menus and labels can differ on other versions.
Common questions
Is there a standard Odoo report for sales orders waiting for a product?
Yes, two standard reports cover it together. Sales > Reporting > Sales in pivot view gives the ordered, delivered and remaining quantities per customer and order, and the product's Forecasted report gives the expected availability date for each waiting order.
What does Qty To Deliver mean in Odoo Sales Analysis?
Qty To Deliver is the quantity ordered minus the quantity delivered on each sales order line. A value above zero means part of that order has not been delivered yet.
Where does Odoo show when a backordered product will be available?
Open the product and click the Forecasted smart button. For each pending delivery, the Available column names the purchase order or manufacturing order that will cover it and the date that order is expected.
Why is the Forecasted button missing on a product in Odoo?
The Forecasted button appears only when the product's type is Goods with Track Inventory ticked, and the user has at least User access for Inventory.
Why do some open sales orders not appear in Odoo's Sales Analysis report?
Sales Analysis applies an Order Date: Last 365 Days filter by default, so older orders stay hidden until that filter is removed from the search bar. Quotations and cancelled orders are also excluded by the default Sales Orders filter.
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 →