This guide explains how Odoo Inventory connects with the Accounting, Manufacturing, Sales, and Purchase modules in Odoo 19. You will learn what each integration does, which automatic triggers fire behind the scenes, and which configuration choices determine whether your stock data flows correctly into the general ledger. The article is for finance teams, operations leads, and Odoo administrators who want a clear reference for setting up cross module integration the right way.
📋 Key Takeaways
- Odoo 19 replaced the old Anglo Saxon and Continental terminology with Perpetual and Periodic valuation. The underlying logic changed significantly.
- Perpetual valuation in Odoo Inventory now posts accounting entries at the invoice level, not at every stock move. The result is fewer journal items and a cleaner ledger.
- Periodic valuation posts vendor bills as expenses. Stock valuation is updated through a cumulative closing entry generated from the Inventory Valuation screen.
- Interim accounts such as Stock Interim Received and Stock Interim Delivered no longer exist in Odoo 19. Valuation layers have been eliminated.
- Most inventory to accounting mismatches are caused by missing valuation accounts on product categories or inconsistent costing methods, not by software bugs.
📑 Table of Contents
- How Odoo Inventory Connects to Accounting in Odoo 19
- Perpetual vs Periodic Valuation in Odoo 19
- How Odoo Inventory Connects to Manufacturing
- How Odoo Inventory Connects to Sales
- How Odoo Inventory Connects to Purchase
- Setup Decisions That Enable or Break Integration
- What Breaks When Integration Is Misconfigured
- Frequently Asked Questions
How Odoo Inventory Connects to Accounting in Odoo 19
Odoo 19 fundamentally changed how Odoo Inventory valuation creates accounting entries. Valuation layers are gone. Interim accounts are gone. The system is simpler, but the configuration decisions are more critical.
What Changed in Odoo 19
- The Anglo Saxon and Continental terminology has been replaced with Perpetual and Periodic valuation
- Valuation layers have been eliminated. Valuation is now stored directly on stock moves.
- Stock Interim Received and Stock Interim Delivered accounts no longer exist
- Perpetual valuation posts entries at the invoice level, not at every stock move
- The result is significantly fewer journal items, a cleaner general ledger, and better auditability
In perpetual mode, four actions trigger accounting entries.
1 Vendor Bill Posted (Purchase)
- Debit: Stock Valuation, since the asset increases
- Credit: Accounts Payable
- The receipt itself updates inventory quantities but does not post an accounting entry
- The bill is what triggers the valuation entry. No interim accounts are involved.
2 Customer Invoice Posted (Sale)
- Debit: Cost of Goods Sold, which is an expense
- Credit: Stock Valuation, since the asset decreases
- The delivery updates stock quantities. The invoice triggers the accounting entry.
- Sales revenue and COGS are both posted at invoice confirmation
3 Inventory Adjustment
- A stock count reveals a discrepancy and an adjustment is posted
- Debit or Credit: Inventory Loss or Gain account against Stock Valuation
- The entry directly affects the profit and loss statement and the balance sheet
- In perpetual mode, adjustment entries post automatically. In periodic mode, they are included in the closing entry.
4 Manufacturing Order Completion
- Raw material value is removed from Stock Valuation
- Finished goods value is added to Stock Valuation
- Any variance posts to the Cost of Production account
- The Bill of Materials must be priced correctly and the costing method must be consistent across categories
Perpetual vs Periodic Valuation in Odoo 19
This is the most important configuration decision for Odoo Inventory integration. The setting is found in Accounting, then Settings, then Inventory Valuation.
- Accounting entries are created when invoices and bills are posted
- Stock Valuation reflects live inventory value
- COGS is posted at customer invoice confirmation
- Adjustments and manufacturing post entries automatically
- Best for businesses needing live margin reporting, investor facing financials, or audit ready books
- Vendor bills are posted as expenses by nature using purchase expense accounts
- Stock changes accumulate in the Stock Variation account
- A cumulative closing entry is generated from the Inventory Valuation review screen
- The frequency can be manual, daily, or monthly
- Best for businesses where finance operates on monthly close cycles and does not need daily inventory to ledger matching
What Perpetual Valuation Requires
- The Accounting module is installed and configured
- A costing method is selected per product category, either Standard Price, AVCO, or FIFO
- A Stock Valuation account is assigned on each product category
- A COGS expense account is assigned on each product category
- A Stock Variation account is assigned to capture differences between invoiced and received or delivered quantities
What Periodic Valuation Requires
- A Stock Valuation account is assigned on product categories
- A Stock Variation account is assigned to accumulate all uninvoiced value changes
- The closing entry frequency is decided as manual, daily, or monthly
- The finance team is trained to generate the closing entry from the Inventory Valuation review screen. The Odoo accounting configuration checklist covers every account that must be in place before the first close.
How Odoo Inventory Connects to Manufacturing
Manufacturing depends on Odoo Inventory for component availability, stock reservation, and cost tracking.
When a Manufacturing Order Is Confirmed
- Odoo checks component stock against the Bill of Materials
- If components are in a location not covered by the manufacturing route, Odoo issues a warning even when physical stock exists elsewhere
- Components are reserved against the manufacturing order
When a Manufacturing Order Is Completed
- Raw material value is removed from Stock Valuation
- Finished goods value is added to Stock Valuation
- Any variance posts to the Cost of Production account configured on the production location
- The WIP account must be assigned on the product category. A missing WIP account causes entries to fail silently.
- The scheduler runs daily and evaluates confirmed manufacturing orders against stock and lead times
- It auto generates purchase orders for missing components when reordering rules and vendor pricelists exist
- Without reordering rules and vendors, the scheduler runs but produces no output
- The Make To Order route connects sales directly to manufacturing, so a confirmed sales order auto creates a manufacturing order
How Odoo Inventory Connects to Sales
When a customer orders a product, Odoo Inventory works alongside the Sales and Accounting modules to reserve stock, ship goods, and post the financial entries in sequence.
Order to Delivery to Invoice Flow
- When a sales order is confirmed, a delivery order is created based on the outgoing route
- Stock is reserved at confirmation. Insufficient stock creates a Waiting state.
- When the delivery is validated, stock quantities decrease
- When the invoice is posted in perpetual mode, the COGS entry is created and revenue is recognised
- In periodic mode, the cost impact is captured in the period end closing entry
- A customer return triggers a reverse stock move
- In perpetual mode, the COGS and Stock Valuation entries reverse when the credit note is posted
- A credit note must be issued separately. The stock return and the credit note are linked but not automatic.
How Odoo Inventory Connects to Purchase
The Purchase module triggers stock receipts that flow into Odoo Inventory and post valuation entries in accounting once the vendor bill is processed.
RFQ to Receipt to Bill Flow
- The receipt triggers a stock move and quantities update in Odoo Inventory
- When the vendor bill is posted in perpetual mode, Stock Valuation is debited and Accounts Payable is credited. Odoo 19 has no interim accounts.
- Three way matching reconciles the purchase order, receipt, and bill. The bill quantity is populated from received quantity, not ordered quantity. Overbilling is flagged automatically.
Landed Costs
- Freight, customs, and insurance are allocated to received inventory
- Costs are distributed by quantity, weight, or volume
- The system updates stock valuation and creates additional accounting entries
- Landed costs must be configured before the first import shipment
Setup Decisions That Enable or Break Cross Module Integration
A small number of configuration choices decide whether your Odoo Inventory data flows correctly into accounting and manufacturing. Each choice below should be reviewed before any live transaction is posted.
- No valuation account on a product category. Automated entries cannot post. The receipt validates but no accounting entry is created. The issue often goes undetected until month end.
- No Stock Variation account in periodic mode. Uninvoiced changes have nowhere to accumulate. Closing entry generation fails.
- Costing method mismatch. Different methods on raw material and finished goods categories produce incorrect manufacturing cost entries.
- Wrong invoicing policy. The "Invoice on order" policy applied to physical goods recognises revenue before delivery. The policy must align with revenue recognition rules.
- Missing WIP account. Manufacturing journal entries fail silently. COGS does not reflect production costs.
- Route mismatch. The product route does not match the warehouse outgoing route. Deliveries are created but stock is not reserved.
What Breaks When Integration Is Misconfigured
When something goes wrong with Odoo Inventory integration, the symptoms usually appear in finance reports rather than in the inventory module itself. The table below maps the most common symptoms to their root causes.
← Scroll to see all columns →
| Symptom | Root Cause |
|---|---|
| Inventory valuation does not match general ledger | Product categories without valuation accounts, or mixing periodic and perpetual across categories |
| Manufacturing costs do not appear in COGS | Missing WIP account or incorrect Cost of Production account on the production location |
| Delivery orders created but stock not reserved | Route mismatch between product route and warehouse outgoing route |
| Revenue posted before goods delivered | Invoicing policy set to "on order" instead of "on delivery" |
| Closing entry shows unexpected amounts | Stock Variation account not assigned, or bills not matched to purchase orders before closing |
| Landed costs not reflected in stock valuation | Landed cost allocation not configured before first import receipt |
Not Confident Your Inventory, Accounting, and Manufacturing Are Correctly Connected?
Tatvamasi Labs configures cross module integration as standard scope. Costing methods, valuation accounts, MRP routes, and accounting mode are all included.
Book a Free Implementation Review → Talk to an Odoo Consultant →Frequently Asked Questions
Common questions about how Odoo Inventory connects with Accounting, Manufacturing, Sales, and Purchase modules.
📖 Related Reading
Prefer a quick chat? WhatsApp the Tatvamasi Labs team and we respond within the hour.
💬 CHAT ON WHATSAPP
