Skip to main content
iVentureTeam

Odoo 20 Repairs Release Notes

All 3 Repairs changes from the official Odoo 20 release notes, explained in plain words with a screenshot from a live Odoo 20 database, plus where to find each one and what it means for your upgrade.

Planning the move? See our Odoo upgrade services, the Odoo 20 upgrade guide or get a number from the migration cost calculator.

New feature 2Removal 1In Community 3

Change 1 of 3

Invoice creation

New featureCommunity

Create invoices directly from repair orders if no quotation is needed.

Official Odoo 20 release note

In plain words

A repair order now has an "Invoice" button next to "Quote". When the repair is done and no quotation is needed, it creates a customer invoice directly with the parts and services of the repair. Extra parts added after posting can be invoiced again.

Repairs > Orders > Repair Orders > WH/RO/00034The new Invoice button on a done repair order, next to Quote.

Where to find it

  1. Repairs > Orders, open a repair order with a customer and no quotation.
  2. Confirm and end the repair.
  3. Click Invoice.

For users

Workshops can bill a repair without first making a sales quotation.

For developers

repair.order gains invoice_ids, invoice_count, can_create_sale_or_invoice, can_create_extra_invoice and action_create_invoice(); account.move gets repair_order_id; stock moves and service lines create invoice lines through _create_repair_invoice_line().

Upgrading from Odoo 19

Odoo 19 could only bill a repair through a linked sale order; custom flows built on that path still work, the invoice path is additional.

  • Demo data: repair order WH/RO/00034 (Office Chair for Azure Interior) with a Hinge Set part and a Repair Labour service, confirmed and ended; the Invoice button was not clicked.

Change 2 of 3

Repair order status

RemovalCommunity

The "Under Repair" status has been removed.

Official Odoo 20 release note

In plain words

The "Under Repair" status is gone. A repair order now goes New, then Confirmed, then Done; "End Repair" is available directly from the Confirmed step and the "Start Repair" button no longer exists.

Repairs > Orders > Repair Orders > WH/RO/00034The status bar of a repair order shows New, Confirmed and Done only; Under Repair no longer exists.

Where to find it

  1. Repairs > Orders, open any repair order.
  2. Look at the status bar.

For users

One click less per repair; the status bar has three steps.

For developers

state selection loses 'under_repair'; action_repair_start() is removed and action_repair_end() now requires state 'confirmed'. The End Repair button uses the new validate_button_style field.

Upgrading from Odoo 19

Filters, automations, reports or code that reference state 'under_repair' or call action_repair_start() must be updated.

See all 585 Odoo 20 changes across 52 apps

Odoo 20 Repairs: common questions

What is new in Odoo 20 Repairs?

The official Odoo 20 release notes list 3 Repairs changes (2 new features, 1 removal). They include Invoice creation, Repair order status, Repair-related services.

Are the Odoo 20 Repairs changes available in Community edition?

Yes. All 3 Repairs changes are in Odoo 20 Community, so they are in Enterprise too.

Do Odoo 20 Repairs changes affect my customizations when upgrading from Odoo 19?

3 of the 3 changes have something to check when upgrading from Odoo 19, for example Invoice creation, Repair order status, Repair-related services. Each change on this page has an "Upgrading from Odoo 19" note. Test custom modules on a copy of your database before moving production.

How do I upgrade Repairs to Odoo 20?

Restore a copy of your database, run the Odoo 20 upgrade on the copy, fix any custom modules that extend Repairs, then test your main Repairs flows with real users before switching production. iVentureTeam runs Odoo upgrades end to end, including custom module migration and user testing.

Odoo services for this

By industry

More Odoo 20 release notes

Planning your Odoo 20 move

Want these Repairs changes in your database?

We upgrade Odoo databases with their customizations and data intact, and test every custom module against the new version before go-live.