HADOOPT
TECHNOLOGIES
Schedule a Tech Consultation
Home
Services
Odoo ERP implementation Rollout, custom modules, migration and support. Web application development SaaS products, portals and internal platforms. Mobile application development Offline-first field apps and customer apps. AI development & automation LLM assistants, document processing, forecasting. Odoo version upgrades ↗ Move to a newer release, scoped and priced on its own site.
Products
OrgExp ↗ Budget, CAPEX and OPEX management.
Blog About Contact Schedule a Tech Consultation
Blog / Odoo 19: Complete Guide for Businesses
Odoo 19 6 min read

Running an integrated business on Odoo 19: how the apps connect and the order to roll them out

How Odoo 19 apps connect in one database, from quote to payment, timesheet to invoice and payroll to ledger, and a phased rollout order that works.

· ERP practice 22 Sep 2026

Odoo 19 works as one system because every app writes to the same database: a quotation becomes a sales order, the order creates a delivery, the delivery drives the invoice, the payment reconciles it, and the accounting reports read the resulting journal entries without any export. The same pattern links timesheets to invoices and payslips to the general ledger. Roll it out in phases, starting with accounting foundations and order-to-cash, and leave the website, marketing and Studio for last.

This post closes the series. It traces the main flows across apps and links back to the part that covers each one in detail.

Order to cash: quote, delivery, invoice, payment, reports

For a business selling stocked products, the chain looks like this:

Quotation / Sales order   S00042
  → Delivery order        WH/OUT/00017
  → Customer invoice      INV/2026/00031
  → Payment               matched on the bank statement
  → Reports               aged receivables, P&L, GST returns
The standard order-to-cash chain in Odoo 19. Numbering follows each journal and warehouse sequence.

The link that matters most is the product's Invoicing Policy: Ordered quantities lets you invoice as soon as the order is confirmed, Delivered quantities only invoices what has actually shipped. Choose deliberately; changing it later means explaining partial invoices to customers.

On the invoice, the Pay button records a payment, and bank reconciliation matches it to the statement line. Inventory valuation feeds the ledger according to the product category's Inventory Valuation setting, which in Odoo 19 is Periodic (at closing) or Perpetual (at invoicing).

The purchase side mirrors it: purchase order, receipt, vendor bill, payment. The product's Control Policy, On ordered quantities or On received quantities, decides whether a bill can be validated before goods arrive. For most trading businesses, received quantities is the safer default. See part 13 and part 20.

Manufacturers add one more link. A sales order or a reordering rule creates a manufacturing order, which consumes components from stock and produces the finished product, and the component and finished-goods moves are valued through the same inventory accounting as any delivery. Quality checks and maintenance hang off the same records rather than a separate system. See part 14 and part 15.

Services: project, timesheet, invoice

A services business runs a parallel chain. A service product on a sales order creates a project or task, according to its Create on Order setting. Employees log timesheets on those tasks. Depending on the Service Invoicing Policy, hours become the delivered quantity, milestones release a percentage, or the price is fixed. The invoice then goes through the same payment and reconciliation steps as any other.

Every timesheet is also costed at the employee's hourly cost on the project's analytic account, so the project's profitability panel shows revenue against labour and bills without a spreadsheet. Details are in part 30 and part 31. Expenses can be re-invoiced to customers through the same sales order, using the product's Re-Invoice Costs option (At cost or Sales price), as covered in part 28.

People: time off, payroll and the general ledger

On the HR side, employee records (which in Odoo 19 hold contract details directly on the employee), time off and attendance feed payroll (Enterprise). With Payroll Accounting installed, confirming payslips posts an accounting entry in the Salary Journal of the salary structure. Indian Payroll (l10n_in_hr_payroll, Enterprise) provides the Indian salary rules on top.

The Batch Account Move Lines setting merges a period's payroll entries into single lines per account. It keeps individual salaries out of the general ledger view, at the cost of disabling per-employee payment generation. Decide this with finance before the first payroll run. See part 24, part 26 and part 27.

Why one database changes month-end

The practical benefit of integration shows at closing. Receivables, payables, stock value, payroll cost and GST all come from journal entries created by the operational apps, so month-end becomes reviewing and reconciling rather than importing and re-keying. That is the main difference from running Tally for accounts alongside separate sales, stock and HR tools.

It only works if the operational teams use the system properly. A delivery validated late, or a vendor bill entered without its purchase order, shows up as a reconciliation problem in finance. Closing, assets and reports are covered in part 23, and India-specific GST in part 22.

Integration does not remove work; it moves it to the person who knows the facts, at the moment they happen.

A phased rollout order for Odoo 19

Trying to go live with every app at once is the most reliable way to go live with none of them working well. The order we usually recommend:

  1. Foundations: company, users and access rights, chart of accounts, taxes and GST, opening balances (part 4, part 18).
  2. Order to cash and procure to pay: CRM, sales, purchase, inventory, invoicing and bank reconciliation.
  3. Operations: manufacturing, quality, field service or helpdesk, depending on the business (part 14 onwards).
  4. People: employees, time off, attendance, expenses, then payroll after one parallel run against your current system.
  5. Projects and services: projects, timesheets and service billing.
  6. Customer-facing and extras: website, eCommerce, marketing, Documents, Sign, Knowledge, then Studio for the gaps that remain.

Each phase should run for at least one full month-end before the next one starts. Services businesses can swap phases 2 and 5. If you are coming from an older Odoo version rather than starting fresh, read part 36 on upgrading first, and if you are new to the series, start at part 1.

When you are ready to plan your own rollout, our Odoo implementation team can help with phasing, data migration from Tally or spreadsheets, and cut-over. Or simply get in touch.

Questions we get asked

How do Odoo 19 apps share data with each other?

All Odoo apps in a database use the same records. A customer, product or employee exists once, and each app adds its own documents to it. Confirming a sales order creates the delivery; validating the delivery makes quantities invoiceable; posting the invoice creates journal entries that the accounting reports read directly. No exports or integrations are needed between Odoo's own apps.

In what order should we implement Odoo modules?

Start with foundations: company, users, chart of accounts and taxes. Then implement order to cash and procure to pay, meaning sales, purchase, inventory, invoicing and bank reconciliation. Add operations apps such as manufacturing or helpdesk next, followed by HR and payroll, then projects and timesheets. Leave the website, marketing, Documents and Studio until the core flows have survived at least one month-end.

Does Odoo payroll post to the general ledger automatically?

Yes, with the Payroll Accounting module, which is Enterprise like Payroll itself. Confirming payslips creates an accounting entry in the salary structure's Salary Journal, using the accounts set on the salary rules. The Batch Account Move Lines setting can merge a period's entries into single lines per account, which hides individual salaries in the ledger but disables per-employee payment generation.

Can Odoo replace Tally for an Indian business?

For many small and mid-sized Indian businesses, yes. Odoo 19's Indian localisation provides the Indian chart of accounts and GST taxes, with e-invoicing, e-way bill and GST return features in additional Indian modules, some of them Enterprise. Odoo also connects accounting to sales, purchase, inventory and payroll in one database. The migration needs planning: opening balances, open invoices and stock valuation should be moved at a clean period end, ideally the start of a financial year or quarter.

← Previous Upgrading to Odoo 19 from Odoo 16, 17 or 18
Keep reading
Odoo 19 Getting started with Odoo 19: what changed and where to begin 6 min read Odoo 19 Setting up accounting in Odoo 19: localisation, chart of accounts and journals 6 min read Odoo 19 Bank reconciliation in Odoo 19: feeds, matching and rules 6 min read