Skip to main content
iVentureTeam

Odoo 20 Rental Release Notes

All 6 Rental 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 1Enhancement 3Refactoring 2In Community 1Enterprise only 5
Type
Edition

Change 1 of 6

Automatic price update

EnhancementCommunity + Enterprise

Changing the pricelist or rental period on a sales order automatically impacts the prices on existing sales order lines.

Official Odoo 20 release note

In plain words

Changing the pricelist or the rental period on an order now recomputes the prices of the existing lines right away. In Odoo 19 a pricelist change only showed an Update Prices button that had to be clicked.

Rental > Orders > open a quotationAfter switching the pricelist to a 20% discount pricelist, the line price went from 100.00 to 80.00 without any extra click. Demo pricelist and order created for this shot.

Where to find it

  1. Open a rental quotation with lines.
  2. Change the Pricelist (or the Rental period): the Unit Price of the lines changes at once.

For users

No more forgotten Update Prices click; quotes always match the chosen pricelist and rental dates.

For developers

sale.order._onchange_pricelist_id_recompute_prices() calls _recompute_prices(); sale_renting adds _onchange_rental_dates() and limits the recompute to rental lines through _get_update_prices_lines().

Upgrading from Odoo 19

Custom views or code using show_update_pricelist or action_update_prices must be revised.

Change 2 of 6

Rental order creation

EnhancementEnterprise only

Rental products can now be added to a sales order; doing so automatically adds a "Rental period" field. To convert a rental order to a sales order, remove the rental start and return dates.

Official Odoo 20 release note

In plain words

A rental product can be added to a normal sales order: as soon as a rentable line is present, a Rental period field appears on the order. An order is a rental order when both dates are set, so clearing the start and return dates turns it back into a plain sales order.

Sales > Orders > Quotations > quotation with a rental productThe Rental period field shown on a quotation opened from the Sales app because it contains a rental product. Demo order created for this shot.

Where to find it

  1. Sales > Orders > Quotations > New.
  2. Add a rental product: the Rental period field appears under Expiration.

For users

Sell and rent on the same order from the Sales app; switch between sales order and rental order by filling or clearing the dates.

For developers

sale.order.is_rental_order is now computed from rental_start_date and rental_return_date (with a search method); has_rentable_lines drives the visibility of the Rental period field and _onchange_has_rentable_lines fills default dates.

Upgrading from Odoo 19

is_rental_order is no longer a stored flag set by the Rental app; domains and code that wrote it must use the dates.

Change 3 of 6

Rental orders dashboard

New featureEnterprise only

A new dashboard at the top of the list and Kanban views provides a summary of rental activity, allowing easy filtering by status.

Official Odoo 20 release note

In plain words

The rental orders list and kanban views have a dashboard strip at the top with counters (Today, Pickups, Returns, Late, To Confirm, To Invoice). Clicking a card filters the orders.

Rental > OrdersThe new dashboard cards above the rental orders list.

Where to find it

  1. Rental > Orders.
  2. Click a card such as Returns or Late to filter the list.

For users

See at a glance what needs to be picked up, returned or invoiced and jump to those orders.

For developers

New js_class rental_dashboard_list and rental_dashboard_kanban; counts come from sale.order.retrieve_rental_dashboard().

Upgrading from Odoo 19

None.

Change 4 of 6

Simplified and unified pricelists

RefactoringEnterprise only

Sales, Subscription, and Rental prices have all been unified in a single "Prices" tab using the standard pricelist engine.

Official Odoo 20 release note

In plain words

The separate time-based pricing table of rental (and subscription) products is gone. Rental prices, subscription prices and sales prices are all pricelist rules listed in the product's Prices tab; a rental product only keeps a Periodicity (hours, days, weeks, nights) and its price is the rule price multiplied by the number of periods.

Rental > Products > product > PricesThe Prices tab of a rental product lists standard pricelist rules (here a rule at 200.00 from 5 nights on the USD pricelist).

Where to find it

  1. Rental > Products > open a rental product.
  2. Prices tab: rental prices are ordinary pricelist rules; the Sales tab holds the Periodicity.

For users

One place to manage prices for a product, whatever the way it is sold.

For developers

The product.pricing model and the rental recurrence settings are removed; product.pricelist.item._compute_price() multiplies by product._get_number_of_periods(start_date, end_date), and subscription rules carry a plan_id.

Upgrading from Odoo 19

Existing time-based pricing records must be converted into pricelist rules during the upgrade; custom code on product.pricing no longer works.

Change 5 of 6

Strikethrough pricing

EnhancementEnterprise only

When a pricelist-based discount is applied to a rental product, the Shop and product pages now display the original price crossed out alongside the new discounted price.

Official Odoo 20 release note

In plain words

On the eCommerce shop and product pages, a rental product with a pricelist discount shows the original price crossed out next to the discounted price per period.

Website > Shop > rental product pageThe weekly price shows the original 100.00 crossed out next to the discounted price. A 15% discount rule was added to the demo product for this shot.

Where to find it

  1. Add a discount pricelist rule for a rental product on the website pricelist.
  2. Open the product page on the shop.

For users

Rental promotions are visible online in the same way as sales promotions.

For developers

website_sale_renting overrides _get_price_before_discount() to compute the undiscounted rental price over the period because no single pricelist rule represents a rental price.

Upgrading from Odoo 19

None.

Change 6 of 6

Working schedules

RefactoringEnterprise only

"Unavailability days" have been replaced by working schedules.

Official Odoo 20 release note

In plain words

The rental unavailability days setting is replaced by a working schedule: Rental settings have an Availabilities field (a resource calendar per company) that defines the days on which pickups and returns are possible.

Rental > Configuration > SettingsThe Availabilities setting now takes a working schedule.

Where to find it

  1. Rental > Configuration > Settings.
  2. Pick up & Returns > Availabilities.

For users

Pick an existing working schedule instead of listing closed weekdays by hand.

For developers

New res.company.rental_resource_calendar_id (default: the company working schedule) used by product_template and the eCommerce rental date checks.

Upgrading from Odoo 19

Old unavailability settings are not carried over automatically; set the rental calendar after upgrading.

See all 585 Odoo 20 changes across 52 apps

Odoo 20 Rental: common questions

What is new in Odoo 20 Rental?

The official Odoo 20 release notes list 6 Rental changes (1 new feature, 3 enhancements, 2 refactorings). They include Automatic price update, Rental order creation, Rental orders dashboard, Simplified and unified pricelists and more.

Are the Odoo 20 Rental changes available in Community edition?

1 of the 6 changes are in Odoo 20 Community (and Enterprise). 5 are Enterprise only. Each change on this page is labeled with its edition.

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

4 of the 6 changes have something to check when upgrading from Odoo 19, for example Automatic price update, Rental order creation, Simplified and unified pricelists. 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 Rental to Odoo 20?

Restore a copy of your database, run the Odoo 20 upgrade on the copy, fix any custom modules that extend Rental, then test your main Rental 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

More Odoo 20 release notes

Planning your Odoo 20 move

Want these Rental 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.