Running an HVAC business with Odoo

How do I count van stock and make an inventory adjustment in Odoo?

Workflow overview: How do I count van stock and make an inventory adjustment in Odoo?
Workflow overview. Instructional screenshots show the actual demo interface.

Save a van inventory count, review its difference, then apply and inspect the Odoo movement history.

An inventory adjustment records a reviewed difference between physical stock and Odoo. Alex's fictional training count finds two filters where Odoo shows three; the example records a one-filter decrease.

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. Complete the van transfer. Start with three filters in WH/Demo Van 01 and three in WH/Stock. Use a clearly labeled synthetic count; reconcile overlapping receipts, transfers and deliveries before applying a real adjustment.

Step-by-step workflow

Stock Odoo 20 Community, owner role, untracked filter Units. Disclosed fictional count finds two filters in the van where Odoo records three. Save Counted first, review Difference minus one, then apply only this row once and inspect History. The reason is retained in the synthetic count record; native row Apply requests no reason/approval dialog. Warehouse remains three, company stock becomes five. Apply All, real inspection, other roles and concurrent/serial counts are untested.

Step 1. Select the exact product and van location

Open Inventory โ†’ Operations โ†’ Physical Inventory. Find the row for WH/Demo Van 01 and Demo Return-Air Filter H12. Check On Hand 3 and Units; the warehouse's separate filter row is not this count.

Action 1: Open the app menu. The actual target is highlighted in gold.
Open the app menu.
Action 2: Choose Inventory. The actual target is highlighted in gold.
Choose Inventory.
Action 3: Open Operations. The actual target is highlighted in gold.
Open Operations.
Action 4: Open Physical Inventory. The actual target is highlighted in gold.
Open Physical Inventory.
Action 5: Select the exact H12 filter row at WH/Demo Van 01. The actual target is highlighted in gold.
Select the exact H12 filter row at WH/Demo Van 01.
Action 6: The warehouse has its own separate three-filter balance. The actual target is highlighted in gold.
The warehouse has its own separate three-filter balance.

Step 2. Enter the counted quantity

Click the van row to edit it. Enter 2 in Counted, then use the list's Save button. The saved row shows On Hand 3, Counted 2, Difference โˆ’1. Saving the count has not yet changed on-hand stock.

Action 7: Edit Counted on the van row, keeping the warehouse row unchanged. The actual target is highlighted in gold.
Edit Counted on the van row, keeping the warehouse row unchanged.
Action 8: Use the disclosed fictional count: two filters. The actual target is highlighted in gold.
Use the disclosed fictional count: two filters.
Action 9: Save the counted quantity once; this has not applied the discrepancy. The actual target is highlighted in gold.
Save the counted quantity once; this has not applied the discrepancy.

Step 3. Review the discrepancy before applying

For the training example, record the reason as synthetic one-filter count discrepancy in the team's count record. For a real business, investigate missing movements first. The tested row-level Apply flow does not request a reason or approval dialog.

Action 10: Review On Hand three, Counted two and Difference minus one. The actual target is highlighted in gold.
Review On Hand three, Counted two and Difference minus one.
Action 11: The synthetic count reason is in the count record; investigate real missing movements first. The actual target is highlighted in gold.
The synthetic count reason is in the count record; investigate real missing movements first.

Step 4. Apply this reviewed row once

Choose the van row's Apply action, shown with the save icon. It applies immediately in this test: On Hand becomes 2, and the draft Counted/Difference cells clear. Use the individual row action so the reader can see which count is being applied.

Action 12: Apply only this reviewed van row once; the native action is immediate. The actual target is highlighted in gold.
Apply only this reviewed van row once; the native action is immediate.
Action 13: Van On Hand is now two; draft Counted and Difference clear. The actual target is highlighted in gold.
Van On Hand is now two; draft Counted and Difference clear.

Step 5. Reopen and inspect History

Reload Physical Inventory and confirm two van filters and three warehouse filters. Choose the van row's History. It shows one Done inventory-adjustment movement of one Unit from WH/Demo Van 01 to Inventory adjustment, with the automatic reference Product Quantity Updated (Demo Air Owner).

Action 14: Reopening keeps the same two van filters. The actual target is highlighted in gold.
Reopening keeps the same two van filters.
Action 15: Warehouse filters remain three, so company stock is five. The actual target is highlighted in gold.
Warehouse filters remain three, so company stock is five.
Action 16: Open History on this same van and product row. The actual target is highlighted in gold.
Open History on this same van and product row.
Action 17: Inspect the native Product Quantity Updated adjustment reference. The actual target is highlighted in gold.
Inspect the native Product Quantity Updated adjustment reference.
Action 18: The one-Unit Done move goes from the van to Inventory adjustment. The actual target is highlighted in gold.
The one-Unit Done move goes from the van to Inventory adjustment.

Check the result

The saved count retained On Hand three until Apply. Applying it created one Done adjustment movement and set the van balance to two. Warehouse filters stayed three, so company on-hand filters became five. History retained the date, user reference, product, source, destination and quantity.

If your screen differs

The row-level Apply did not present a reason dialog. Its automatic history reference is not an explanation of why a part was missing; keep the reviewed count reason in the business's count record. Apply All, other roles, tracked equipment and concurrent-stock changes were not tested. Do not use an adjustment to conceal an unrecorded customer delivery.

Frequently asked questions

How do I count van inventory in Odoo? In Physical Inventory, edit Counted on the exact product and van-location row, save it, review Difference and apply that row after investigating the discrepancy.
Does entering an Odoo count immediately change stock? In this test, saving Counted two left On Hand at three. The row's Apply action changed on-hand stock to two and created the adjustment movement.
How do I explain missing parts in Odoo inventory? Investigate receipts, transfers, deliveries and returns first. The tested Apply action recorded an automatic user/date movement reference without a reason dialog; keep the reviewed explanation with the count record.

Continue building the business

Follow a physical supplier return in How do I return a faulty part to a supplier in Odoo?.

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.