Odoo 19 Post-Upgrade Checklist: Accounting and Inventory · Calibre Consulting

Settings to review after you upgrade to Odoo 19.

Which Accounting and Inventory settings changed in Odoo 19, why some look different after an upgrade, and how to confirm each one is right.

This guide is a checklist of Accounting and Inventory settings to open and confirm after a database moves to Odoo 19 from Odoo 17 or 18. Each item is a setting whose options, wording or location changed in Odoo 19, so a value that came across correctly can look wrong, and a few settings are new and start from a default. The most common surprise is a label: in the deferred revenue settings, the option now reads "On bill validation", yet it still creates deferral entries when a customer invoice is confirmed.

It is for accountants, controllers and operations managers reviewing an upgraded database, ideally on a test copy before go-live. Everything was verified on Odoo 19.

Before you start

Accounting settings to confirm

Open the Accounting app, go to Configuration > Settings, and scroll to the Default Accounts section.

  1. Deferred revenue entries, Generate Entries. Both the deferred expense and deferred revenue sections offer On bill validation or Manually & Grouped. Odoo applies the expense setting to vendor bills and the revenue setting to customer invoices, so On bill validation in the revenue section means deferrals are created when the invoice is confirmed. No change is needed if that is what you want. Odoo 20 renames the revenue option to On invoice validation.
  2. Based on, in each section. Expense and revenue each have their own Based on value (Days, Months or Full Months, Months by default). Check both. Also keep the two Generate Entries values the same if you post journal entries that defer an expense line and an income line together: when they differ, Odoo refuses to confirm such an entry and asks you to split it.
  3. Product Accounts. Odoo 19 adds company-wide default Income Account and Expense Account fields here. Saving them sets the default accounts for product categories created afterwards, so confirm they hold the right accounts.
  4. Restrictive Audit Trail. Odoo 18 had a setting called Audit Trail. Odoo 19 has Restrictive Audit Trail in the Reporting section, which keeps the log of changes to posted journal entries from being deleted. It only shows when the Enterprise accounting reports are installed, and is hidden when your country's localization enforces it. If you relied on the old option, confirm the new one is set the way your auditors expect.

Inventory valuation on product categories

This is the change most likely to affect your books. Odoo 17 and 18 offered Manual or Automated valuation, and Automated posted an entry whenever stock entered or left the company. Odoo 19 offers Periodic (at closing), where the stock account is only updated by a stock closing entry generated from the Inventory Valuation report, and Perpetual (at invoicing), where the entry is posted when the product is billed or invoiced rather than when it moves. Stock moves to or from a location with its own valuation account, such as inventory loss, can still post at the move.

  1. Open the Inventory app and go to Configuration > Products > Categories.
  2. Open each category that holds stock and read Inventory Valuation and Costing Method in the Inventory Valuation group.
  3. In Account Properties, check Stock Account and Stock Variation. The Stock Input and Stock Output accounts of Odoo 17 and 18 no longer exist. Stock Variation is stored on the stock account itself, so changing it in one category changes it for every category that shares that account.
  4. For categories on Standard Price and Perpetual, check Price Difference Account, which only appears for that combination.

In Enterprise, also open Accounting Configuration > Settings and find Inventory Accounting in the Inventory Valuation section. Its Inventory Valuation, Periodic Valuation (Manual, Daily or Monthly closing), Inventory Cost Method, Valuation Account and Journal are company defaults that new categories inherit. The Automatic Stock Accounting option from Odoo 17 and 18 is gone.

Units, packagings and reordering rules

  1. Purchase unit. The single purchase unit on the product form (Purchase UoM in Odoo 17, Purchase Unit in 18) is gone. Open a product, go to the Purchase tab, and check the Unit column on each vendor line, which can now differ by supplier.
  2. Packagings. Packagings are now units of measure. In the Inventory app, go to Configuration > Settings and confirm Units of Measure & Packagings is ticked; it replaces the separate Product Packagings option. With the Sales app installed, a product's packagings then appear in the Packagings field on its Sales tab. If the setting is off, the field and the vendor Unit column are hidden.
  3. Reordering rules. The numeric Multiple Quantity is replaced by Multiple, a unit or packaging that the order is rounded up to. In the Inventory app, go to Operations > Procurement > Replenishment and turn the column on from the optional columns toggle at the right of the header row, since it is hidden by default. When it is blank on a rule that buys from a vendor, Odoo rounds to that vendor's unit and shows it in grey.

Check that it worked

  1. On a test copy, confirm a customer invoice with a line that has deferral start and end dates. If Generate Entries is On bill validation, the deferral entries are created at once.
  2. For a Perpetual category, receive a product, then post its vendor bill. The receipt alone normally posts nothing to the stock account; the bill line is booked to it.
  3. Open Replenishment with the Multiple column visible and check that suggested quantities round to the unit or packaging you expect.

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

Common questions

Why does the deferred revenue setting say On bill validation in Odoo 19?

In Odoo 19 both the deferred expense and deferred revenue sections use the same option wording. For customer invoices Odoo reads the revenue setting, so On bill validation there still creates deferral entries when the invoice is confirmed, and Odoo 20 relabels it On invoice validation.

What happened to Manual and Automated inventory valuation in Odoo 19?

Product categories now offer Periodic (at closing) and Perpetual (at invoicing). Perpetual posts the valuation entry when the product is billed or invoiced rather than when stock moves, and Periodic updates the stock account through a stock closing entry.

Where is the purchase unit of measure in Odoo 19?

It is no longer a single field on the product. Each vendor line on the product's Purchase tab has its own Unit, visible when Units of Measure & Packagings is enabled in the Inventory settings.

Where did product packagings go in Odoo 19?

Packagings are now units of measure. Enable Units of Measure & Packagings in the Inventory settings, and a product's packagings appear in the Packagings field on its Sales tab.

Why is the Multiple column empty on Odoo 19 reordering rules?

The column is hidden by default and now holds a unit or packaging rather than a number. When it is blank on a rule that buys from a vendor, Odoo rounds the order up to that vendor's unit and shows it as a grey placeholder.

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 →