Each guide below solves one specific task in Odoo, from emailing invoices to your accountant to valuing stock at a balance sheet date. The steps were checked against Odoo's source code for the version named on the page, so menus and labels match what you see on screen.
Getting started with Odoo
Set up users and access rights in Odoo
Create Odoo users, choose between the Light, User and Administrator roles, and set each app's access level so staff see only what their job needs.
Set up a new Odoo database for a Canadian company
Company details, GST/HST and PST numbers, the Canadian accounting package, users, languages and invoice layout: the first settings in a new Odoo 20 database.
Create a test database in Odoo without touching live data
Duplicate your Odoo database as a neutralized test copy, see what it switches off, and check that no email or payment can reach a customer.
Filter, group and save your searches in Odoo
Use the Odoo search bar to find a record fast, filter and group a list, and save the view as a favorite your team can share.
Bulk edit, export and archive records in the Odoo list view
Change many Odoo records at once from the list view, raise prices by a percentage, export to Excel, and archive what you no longer use.
Send message or log note in Odoo, and who hears it
Send message reaches the customer and followers; Log note stays internal and notifies only who you tag. How each works in Odoo 20.
Accounting and invoicing
Email every posted invoice to your accountant, automatically
A step-by-step Odoo 19 guide to emailing each posted customer invoice to your accountant with an automation rule and a copy of the invoice template.
Find the unique ID your customer wants for an Odoo invoice
Odoo invoices have no general UUID, but invoices sent through Peppol carry a message ID. This guide shows where it lives and how to export it.
Manage TDS thresholds in Odoo 20 on the bill
Odoo 20 has no TDS threshold setting. This tutorial shows how to apply TDS only after a vendor crosses the limit, using the tax on each vendor bill.
Move a depreciating asset to another company
A step-by-step guide to moving a depreciating fixed asset between two companies in Odoo, with its depreciation history carried over.
Fix a wrong hard lock date in Odoo without undoing it
Odoo will not remove or move back a hard lock date. Here is what the lock blocks, who can change it, and how to correct a locked year.
Send payment reminders on each invoice's own due date
Odoo follow-ups remind the customer, not the invoice. Here is how they schedule reminders, and how to run a separate schedule for every invoice.
Show each user only their own vendor bills
No standard Odoo access level limits users to the vendor bills they created. A global record rule does, while accountants keep full access.
Deposit customer cheques in batches, at either bank
Record customer cheques in Odoo, hold them in one Cheques on Hand balance, deposit them in batches and match each deposit, even with two banks.
Record lump-sum payments and short-pays in Odoo Community
Settle several invoices with one customer payment in Odoo Community and book coded short-pays to a deduction account, plus what Enterprise adds.
One company, several shops, a profit and loss for each branch
Set up branches, per-shop journals and POS payment methods in Odoo 19 so each shop of one legal entity gets its own profit and loss.
Set up perpetual valuation without stock interim accounts
Why the Odoo 19 US chart has no Stock Interim (Delivered) account, and how to set up the accounts perpetual inventory valuation uses instead.
Apply a customer prepayment to a later invoice
Record a customer prepayment in Odoo 19, keep the bank match, and apply the credit to the invoice when you bill the order.
Purchasing, inventory and manufacturing
Find your inventory valuation by product in Odoo 19
Find inventory value by product in Odoo 19, read it as at any date, and make it match the stock account on your balance sheet.
See which sales orders are still waiting for a product
List every confirmed Odoo sales order waiting for a product, with ordered, delivered and remaining quantities and the date more stock is expected.
Perpetual FIFO in Odoo 19 when invoices run ahead of stock
What Odoo 19 posts when a vendor bill precedes the receipt or an invoice precedes delivery, and how to keep COGS and the stock account right.
Sell consigned goods and book only your commission
Receive consigned stock without valuing it, record sales as money owed to the consignor, and move your commission into income at settlement in Odoo.
Raise purchase orders for services in Odoo
Set service products up for purchasing in Odoo: no receipts, bills matched to the order, and bills that post to the expense account you choose.
Reschedule a purchase order without touching received lines
How Expected Arrival, receipt Scheduled Date and Deadline connect in Odoo 19, and how to reschedule only the quantity still to come.
Make purchase orders use the vendor's currency
Why Odoo puts generated purchase orders in your own currency, where vendor prices and costs get converted, and how to set up foreign-currency buying.
Import bill of materials changes into an ECO from a spreadsheet
Update an Odoo engineering change order from your CAD bill of materials with the standard export and import, step by step, with no custom module.
Give each serial number its own cost in Odoo 18
Make Odoo 18 cost each serial number from the components its manufacturing order consumed, so deliveries and sales margins stop using an average.
Connect Odoo to ShipStation for rates and labels
Set up Odoo's native ShipStation app: one delivery method per carrier and service, live rates on quotations, and labels bought when the delivery is validated.
Sales and projects
Make a sales team commission plan actually pay out
Set up an Odoo commission plan that pays on a whole sales team's results, and fix one that shows no commission for team members.
Create a project task the moment a sale is confirmed
A step-by-step guide to making Odoo create a task in a chosen project whenever a sales order is confirmed, using a service product and no custom code.
Report expected invoicing per milestone, by deadline month
Build an Odoo report of expected invoicing per milestone by deadline month, using one stored field on the milestone and a Studio pivot.
Set a contact as a company or an individual in Odoo
How Odoo 19 and Odoo 20 decide whether a contact is a company or a person, and how to set it on the form and in imports.
Show only the right customers on your quotations
Limit the Customer field on Odoo quotations to the businesses you sell to, and assign pricelists without picking customers from a dropdown.
Add notes, sections and free lines to Odoo quotations
Add text-only notes, section headings and priced lines without a product to Odoo quotations, sales orders, purchase orders and invoices.
Publish shifts without emailing the customer
Stop Odoo Planning from emailing customers when you publish a shift, and schedule a single shift without emailing anyone at all.
Point of Sale and integrations
Stop Odoo 19 POS sales landing under the wrong cashier
Why Odoo 19 Point of Sale can record a sale under the previous cashier, how to stop it, and how to report sales per cashier.
Process an exchange on one receipt in Odoo 19 Point of Sale
Odoo 19 blocks new items on a refund order. Ring up exchanges on one receipt instead, and tag them so exchanges and refunds stay separate.
Odoo and Shopify: what is built in, and what is not
Odoo 19 and 20 include no Shopify connector. Here are the native routes, what each needs from your plan, and what any sync must cover.
Bring your own AI model to Odoo 20 through the MCP server
Odoo 20 dropped its own-key AI settings. Connect your own model through the MCP server instead, and see when Odoo AI credits are still spent.
Let Claude make changes in Odoo 20 through MCP
Odoo 20's MCP server starts read-only. Switch on three Server Actions so Claude can create and update records, and see what it still cannot do.
Send marked HubSpot contacts straight to Odoo
Push selected HubSpot Free contacts into Odoo as soon as they change, using a HubSpot private app webhook, a short script and an Odoo automation rule.
Sell digital downloads in Odoo, even large files
Deliver digital products automatically from Odoo eCommerce, and get around the 128 MB upload limit by attaching a link or raising the limit.
Send from your own domain, and let replies reach the real sender
Make Odoo send outside senders' emails from your own domain with an alias domain and FROM Filtering, while Reply-To still reaches the right person.
Upgrading and migrating
What Odoo 19 removed that the release notes leave out
A step-by-step guide to what Odoo 19 removed or replaced since Odoo 18, how to save the affected data, and how to test your upgrade.
Upgrade Odoo 18 to 19, with or without Enterprise
Who can use Odoo's upgrade service to move from Odoo 18 to 19, what it covers, and how to run and test an upgrade on each hosting type.
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.
Bring QuickBooks Online records into Odoo in the right order
Which QuickBooks Online records Odoo 19 imports natively, the order to load them, and how invoice attachments can come across.
Move a self-hosted Community database to Odoo Online
How to move a self-hosted Odoo Community database, such as Odoo 16, to Odoo Online: version and edition rules, custom modules, and testing.
Planning an Odoo project
Choose an Odoo implementation partner on evidence
What Odoo's partner levels really measure, the questions that test a partner, how to check references, and what a sound proposal puts in writing.
Check what the Odoo sales rep told you before you sign
Which Odoo sales claims to check yourself, how to test them in a trial or Community database, and what to get in writing before you sign.
Implement Odoo yourself, and get the locked decisions right
What a self-run Odoo implementation involves: the settings that lock after the first transaction, what self-hosting makes your job, and an order of work.
Decide what your gap analysis must settle before go-live
When to run an Odoo gap analysis, which settings Odoo makes costly to change after go-live, and a rule for what must be decided first.
Work out what Odoo will really cost you
How Odoo's plans, per-user prices, Light Users, renewal terms and Success Packs add up, with October 2026 prices in Canadian dollars.
Odoo hosting: Online, Odoo.sh, or your own server
Which plan allows which hosting, and what Odoo.sh costs.
Is Odoo right for your business?
A checklist to run before you commit to an all-in-one system.
How to implement Odoo without disrupting the business
A phased rollout that protects operations while you go live.
Need it set up for you?
If you would rather have Odoo configured for you, book a 30-minute call. We will look at what you need and tell you what it takes. Calgary studio, in-house team, no offshore handoffs.
Book the call →