Running an HVAC business with Odoo

How do I reserve and deliver parts for a customer job in Odoo?

Workflow overview: How do I reserve and deliver parts for a customer job in Odoo?
Workflow overview. Instructional screenshots show the actual demo interface.

Reserve parts from an Odoo sales order, deliver the actual quantity and retain the remaining demand on a linked backorder.

Alex has promised three replacement filters for an HVAC customer job. Only two are available in the delivery's source location, and he is handing over one today. This guide separates the sales order, stock reservation, completed delivery and outstanding parts.

Alex Rivera and Demo Air HVAC are fictional training examples. Prices, dates, quantities and business situations in this guide are illustrative.

Before you begin

Tested in stock Odoo 20.0-20260926 Community as the demo owner administrator, with official modules and standard configuration. Use the official Sales and Inventory modules, the stock-tracked filter from H12, received stock from H32, and the customer acceptance procedure from H26. Later stock lessons have left this checkpoint with two filters in WH/Stock and two in WH/Demo Van 01. Read your current balances before following the example. Use a separate goods quotation; the signed service-only S00001 has no stock delivery. The local mail sink remains the destination for training messages. Our delivery operation reserves available source stock when the order is confirmed.

Step-by-step workflow

96 highlighted video actions with a white pointer, gold border and English captions, without narration. Each written step groups its smaller video actions. Stock Odoo 20 Community. One fictional three-filter goods quotation, genuine local received-link acceptance, partial warehouse reservation, one-unit delivery and native backorder. Manual project reference; no installed-material consumption or automated Project link.

Step 1. Prepare the separate parts quotation

In Sales, open New โ†’ New Quotation, select Demo Property H08, and add the actual Demo Return-Air Filter H12 product from its dropdown. Enter 3 Units at the saved training price of $21 each. The total is $66.78, including the illustrative $3.78 tax. Under Other Info, put the job reference in Customer Reference; ours is H36 / Demo Service Job H40 / task 5. Add a scope note allowing partial delivery and identifying Service Site H08, then Save manually. This typed reference does not create a Project link.

Video action 1: Open the app menu. The actual target is highlighted in gold.
Open the app menu.
Video action 2: Choose Sales. The actual target is highlighted in gold.
Choose Sales.
Video action 3: Open New for a separate goods quotation. The actual target is highlighted in gold.
Open New for a separate goods quotation.
Video action 4: Choose New Quotation without the service template. The actual target is highlighted in gold.
Choose New Quotation without the service template.
Video action 5: Find the existing Demo Property customer. The actual target is highlighted in gold.
Find the existing Demo Property customer.
Video action 6: Select Demo Property H08. The actual target is highlighted in gold.
Select Demo Property H08.
Video action 7: Add the filter line. The actual target is highlighted in gold.
Add the filter line.
Video action 8: Find the existing return-air filter product. The actual target is highlighted in gold.
Find the existing return-air filter product.
Video action 9: Select the actual filter product from the picker. The actual target is highlighted in gold.
Select the actual filter product from the picker.
Video action 10: Request three filters for this separate job order. The actual target is highlighted in gold.
Request three filters for this separate job order.
Video action 11: Keep the Unit as Units. The actual target is highlighted in gold.
Keep the Unit as Units.
Video action 12: Review the training unit price 21.00. The actual target is highlighted in gold.
Review the training unit price 21.00.
Video action 13: Commit the line on the quotation heading. The actual target is highlighted in gold.
Commit the line on the quotation heading.
Video action 14: Review three filters and the 66.78 training total. The actual target is highlighted in gold.
Review three filters and the 66.78 training total.
Video action 15: Open Other Info for the manual job reference. The actual target is highlighted in gold.
Open Other Info for the manual job reference.
Video action 16: Add the existing job and task reference as text. The actual target is highlighted in gold.
Add the existing job and task reference as text.
Video action 17: Return to Order Lines. The actual target is highlighted in gold.
Return to Order Lines.
Video action 18: Record the fictional parts scope and partial-delivery agreement. The actual target is highlighted in gold.
Record the fictional parts scope and partial-delivery agreement.
Video action 19: Commit the scope on the quotation heading. The actual target is highlighted in gold.
Commit the scope on the quotation heading.
Video action 20: Review the complete manual scope before saving. The actual target is highlighted in gold.
Review the complete manual scope before saving.
Video action 21: Save this new parts quotation once and wait. The actual target is highlighted in gold.
Save this new parts quotation once and wait.
Video action 22: The saved quotation is S00007. The actual target is highlighted in gold.
The saved quotation is S00007.
Video action 23: The saved line retains three Units at 21.00. The actual target is highlighted in gold.
The saved line retains three Units at 21.00.
Video action 24: The saved total is 66.78 before customer acceptance. The actual target is highlighted in gold.
The saved total is 66.78 before customer acceptance.

Step 2. Confirm the reviewed goods order

Check the goods, quantity, price and copied billing/service addresses using the quotation review from H23. Follow H26's received-email View Quotation โ†’ Accept & Sign โ†’ Validate Order procedure with the fictional customer. Our new S00007 became Sales Order at $66.78 and gained 1 Delivery. Preserve S00001 and its earlier service scope. Confirmation created a delivery; it did not hand over any parts.

Video action 25: Open Send for this one local quotation email. The actual target is highlighted in gold.
Open Send for this one local quotation email.
Video action 26: Review the fictional local recipient. The actual target is highlighted in gold.
Review the fictional local recipient.
Video action 27: Use a unique local-only H36 subject. The actual target is highlighted in gold.
Use a unique local-only H36 subject.
Video action 28: Review the attached quotation PDF. The actual target is highlighted in gold.
Review the attached quotation PDF.
Video action 29: Send this quotation once to the isolated local inbox. The actual target is highlighted in gold.
Send this quotation once to the isolated local inbox.
Video action 30: The same quotation is now Quotation Sent. The actual target is highlighted in gold.
The same quotation is now Quotation Sent.
Video action 31: Open the actual received H36 parts quotation. The actual target is highlighted in gold.
Open the actual received H36 parts quotation.
Video action 32: Open its genuine View Quotation link. The actual target is highlighted in gold.
Open its genuine View Quotation link.
Video action 33: Review S00007 for the fictional customer while signed out. The actual target is highlighted in gold.
Review S00007 for the fictional customer while signed out.
Video action 34: Review three actual filter Units at 21.00. The actual target is highlighted in gold.
Review three actual filter Units at 21.00.
Video action 35: Review the 63 plus 3.78 demo-tax total 66.78. The actual target is highlighted in gold.
Review the 63 plus 3.78 demo-tax total 66.78.
Video action 36: Check the copied Billing Office address. The actual target is highlighted in gold.
Check the copied Billing Office address.
Video action 37: Check the copied Service Site delivery address. The actual target is highlighted in gold.
Check the copied Service Site delivery address.
Video action 38: Read the manual job reference and partial-delivery scope. The actual target is highlighted in gold.
Read the manual job reference and partial-delivery scope.
Video action 39: Choose Accept & Sign after reviewing the goods order. The actual target is highlighted in gold.
Choose Accept & Sign after reviewing the goods order.
Video action 40: Validate Order identifies this separate 66.78 quotation. The actual target is highlighted in gold.
Validate Order identifies this separate 66.78 quotation.
Video action 41: Enter the fictional representative for this example. The actual target is highlighted in gold.
Enter the fictional representative for this example.
Video action 42: Use Auto for the fictional training signature. The actual target is highlighted in gold.
Use Auto for the fictional training signature.
Video action 43: Review the generated signature before confirming. The actual target is highlighted in gold.
Review the generated signature before confirming.
Video action 44: Accept & Sign this goods order once. The actual target is highlighted in gold.
Accept & Sign this goods order once.
Video action 45: The same goods order is confirmed without handing over stock. The actual target is highlighted in gold.
The same goods order is confirmed without handing over stock.
Video action 46: S00007 retains the same customer, three filters and total. The actual target is highlighted in gold.
S00007 retains the same customer, three filters and total.
Video action 47: Return to the same confirmed S00007 sales order. The actual target is highlighted in gold.
Return to the same confirmed S00007 sales order.
Video action 48: Confirmation created one Delivery without handing over parts. The actual target is highlighted in gold.
Confirmation created one Delivery without handing over parts.

Step 3. Open the delivery and compare demand with quantity

On S00007, click Delivery and open WH/OUT/00002. Check Delivery Address: Service Site H08, Source Location: WH/Stock, and Source Document: S00007. Under Operations, the filter has Demand: 3.00 and Quantity: 2.00. This form shows Ready and Available even though only two of the three requested filters are reserved. Read the quantities before treating the whole order as available.

Video action 49: Open the native Delivery from S00007. The actual target is highlighted in gold.
Open the native Delivery from S00007.
Video action 50: This is WH/OUT/00002. The actual target is highlighted in gold.
This is WH/OUT/00002.
Video action 51: Check Delivery Address: Service Site H08. The actual target is highlighted in gold.
Check Delivery Address: Service Site H08.
Video action 52: Check Source Location: WH/Stock. The actual target is highlighted in gold.
Check Source Location: WH/Stock.
Video action 53: Check Source Document: S00007. The actual target is highlighted in gold.
Check Source Document: S00007.
Video action 54: Ready alone does not establish all three units are reserved. The actual target is highlighted in gold.
Ready alone does not establish all three units are reserved.
Video action 55: Available is shown despite the short reservation. The actual target is highlighted in gold.
Available is shown despite the short reservation.
Video action 56: Compare Demand three with Quantity two reserved. The actual target is highlighted in gold.
Compare Demand three with Quantity two reserved.

Step 4. Check what reservation actually did

Click Reserve once to recheck availability. Our quantity stayed at two because the same two WH/Stock filters were already reserved at confirmation. The van's two filters were not reserved by this WH/Stock delivery. Total internal stock remained four and the sales line's Delivered quantity remained zero. Reserve did not manufacture the missing unit or reduce stock on hand.

Video action 57: Click Reserve once to recheck the same source stock. The actual target is highlighted in gold.
Click Reserve once to recheck the same source stock.
Video action 58: Quantity remains two; the van stock is separate. The actual target is highlighted in gold.
Quantity remains two; the van stock is separate.

Step 5. Enter the quantity actually being delivered

For today's one-filter handover, click the filter row's Quantity cell and replace 2.00 with 1.00. Leave the original three-unit sales order unchanged. Click outside the row and use Save manually. At this saved stage, WH/Stock still held two filters, one reserved, and the order still showed Delivered zero. Saving the prepared quantity is separate from validating the delivery.

Video action 59: Edit only the actual delivery Quantity cell. The actual target is highlighted in gold.
Edit only the actual delivery Quantity cell.
Video action 60: Prepare one filter for this fictional handover. The actual target is highlighted in gold.
Prepare one filter for this fictional handover.
Video action 61: Click the delivery heading to commit the cell. The actual target is highlighted in gold.
Click the delivery heading to commit the cell.
Video action 62: Save the prepared one-unit quantity once and wait. The actual target is highlighted in gold.
Save the prepared one-unit quantity once and wait.
Video action 63: Demand stays three while prepared Quantity is one. The actual target is highlighted in gold.
Demand stays three while prepared Quantity is one.

Step 6. Validate and keep the remaining demand

Click Validate. The Create Backorder? dialog says fewer products were processed than initially demanded. Click Create Backorder to retain the remaining two filters. WH/OUT/00002 becomes Done with Demand and Quantity both 1.00. Its chatter records the initial-demand change and links the new WH/OUT/00003. That split changes this transfer's demand; the sales order still requests three.

Video action 64: Validate the actual one-unit handover once. The actual target is highlighted in gold.
Validate the actual one-unit handover once.
Video action 65: Create Backorder retains the products not processed. The actual target is highlighted in gold.
Create Backorder retains the products not processed.
Video action 66: Create one backorder for the remaining two filters. The actual target is highlighted in gold.
Create one backorder for the remaining two filters.
Video action 67: The original delivery now shows Done. The actual target is highlighted in gold.
The original delivery now shows Done.
Video action 68: This completed transfer has Demand one and Quantity one. The actual target is highlighted in gold.
This completed transfer has Demand one and Quantity one.

Step 7. Reopen the backorder and sales order

Open WH/OUT/00003 from the completed delivery's chatter and reload it. Check Back Order of: WH/OUT/00002, Source Document: S00007, the same service address and Demand: 2.00 / Quantity: 1.00. One remaining warehouse filter is reserved; the other requested unit is still unavailable from that source. Leave this backorder unvalidated. Reopen S00007: it shows Partially Delivered, 2 Delivery, ordered three, Delivered one and Invoiced zero.

Video action 69: Open WH/OUT/00003 from the native chatter link. The actual target is highlighted in gold.
Open WH/OUT/00003 from the native chatter link.
Video action 70: Reopen the saved backorder and keep it unvalidated. The actual target is highlighted in gold.
Reopen the saved backorder and keep it unvalidated.
Video action 71: Back Order of identifies WH/OUT/00002. The actual target is highlighted in gold.
Back Order of identifies WH/OUT/00002.
Video action 72: The backorder still references S00007. The actual target is highlighted in gold.
The backorder still references S00007.
Video action 73: The backorder retains the same service address. The actual target is highlighted in gold.
The backorder retains the same service address.
Video action 74: Backorder Demand is two with only one reserved. The actual target is highlighted in gold.
Backorder Demand is two with only one reserved.
Video action 75: Keep this Ready backorder unvalidated until actual handover. The actual target is highlighted in gold.
Keep this Ready backorder unvalidated until actual handover.
Video action 76: Open the app menu to review the same sales order. The actual target is highlighted in gold.
Open the app menu to review the same sales order.
Video action 77: Return to Sales. The actual target is highlighted in gold.
Return to Sales.
Video action 78: Open Orders. The actual target is highlighted in gold.
Open Orders.
Video action 79: Choose Orders. The actual target is highlighted in gold.
Choose Orders.
Video action 80: Reopen the same S00007. The actual target is highlighted in gold.
Reopen the same S00007.
Video action 81: The order is Partially Delivered. The actual target is highlighted in gold.
The order is Partially Delivered.
Video action 82: The same order links two Deliveries. The actual target is highlighted in gold.
The same order links two Deliveries.
Video action 83: Ordered three, Delivered one and Invoiced zero remain distinct. The actual target is highlighted in gold.
Ordered three, Delivered one and Invoiced zero remain distinct.
Video action 84: The commercial order total remains 66.78. The actual target is highlighted in gold.
The commercial order total remains 66.78.

Step 8. Check physical stock by location

Open Inventory โ†’ Products โ†’ Products, then Demo Return-Air Filter H12. The card now shows 3 Units On Hand. On the product form, click the 3.00 quantity link to open Stock by Location. With Internal Locations selected, check WH/Stock: Inventoried Quantity 1.00 / Reserved Quantity 1.00 and WH/Demo Van 01: 2.00 / 0.00. Total internal stock is three, with one reserved. The separate Forecasted figure includes future movements and is not the number physically on hand.

Video action 85: Open the app menu to check physical stock. The actual target is highlighted in gold.
Open the app menu to check physical stock.
Video action 86: Choose Inventory. The actual target is highlighted in gold.
Choose Inventory.
Video action 87: Open Products. The actual target is highlighted in gold.
Open Products.
Video action 88: Choose Products. The actual target is highlighted in gold.
Choose Products.
Video action 89: The filter card now shows three Units On Hand. The actual target is highlighted in gold.
The filter card now shows three Units On Hand.
Video action 90: Open the existing return-air filter product. The actual target is highlighted in gold.
Open the existing return-air filter product.
Video action 91: Physical Quantity On Hand is three; Forecasted is separate. The actual target is highlighted in gold.
Physical Quantity On Hand is three; Forecasted is separate.
Video action 92: Click the native 3.00 link for Stock by Location. The actual target is highlighted in gold.
Click the native 3.00 link for Stock by Location.
Video action 93: Keep the native Internal Locations filter selected. The actual target is highlighted in gold.
Keep the native Internal Locations filter selected.
Video action 94: WH/Stock has one physical filter and one reserved. The actual target is highlighted in gold.
WH/Stock has one physical filter and one reserved.
Video action 95: The van retains two physical filters and zero reserved. The actual target is highlighted in gold.
The van retains two physical filters and zero reserved.
Video action 96: Total internal stock is three with one reserved. The actual target is highlighted in gold.
Total internal stock is three with one reserved.

Check the result

S00007 still requests three filters at $66.78. WH/OUT/00002 is Done for one, and linked backorder WH/OUT/00003 retains demand for two, with one source unit reserved. The order shows Delivered one and Invoiced zero. Internal physical stock changed from four to three: warehouse one and van two. S00001's signed service scope is preserved. The existing Project task remains in Office Review with In Progress status, and no new task, customer invoice or payment was created.

If your screen differs

Our delivery was Ready/Available with a partially reserved line; those labels did not establish that all three units were available. Read Demand, Quantity and source-location stock. A WH/Stock reservation did not automatically use the van location, and a forecast that includes pending receipts was not on-hand stock. This example retained a backorder; the No Backorder branch was observed but not exercised. Do not validate the remaining transfer until its actual handover is known. Job references here are typed text, with Project left unlinked; no automatic job update or installed-equipment history was demonstrated.

Frequently asked questions

How do I reserve parts for an Odoo sales order?

Open the confirmed order's Delivery and compare the product's Demand and Quantity with the source-location stock. This delivery operation reserved two WH/Stock filters automatically at confirmation. Clicking Reserve again kept the same two reserved units against demand for three. The van stock was separate, and Ready did not mean the full demand was reserved.

Does reserved inventory reduce Odoo stock on hand?

Reservation left our four internal filters physically on hand. After entering one actual unit and saving, stock still remained four. Validate โ†’ Create Backorder completed the one-unit delivery and reduced internal stock to three. The backorder retained demand for two, with one remaining warehouse unit reserved.

Does an Odoo delivery automatically update a Project job? The tested delivery updated the sales line's Delivered quantity and stock. Its job name in Customer Reference and the scope note were manual text; Project was unlinked. The existing task's Office Review stage and In Progress status stayed unchanged, and no task was created. Use the separate Project workflow for the job handoff.

Continue building the business

Continue with H40: How do I manage HVAC service jobs with Odoo Project?. Keep the manual job reference with the delivery handoff; a stock movement did not complete the service task.

Talk to an Odoo partner

Bring your current process and the result you need to Onward to plan your Odoo workflow. Talk to an Odoo partner.