With this module, you can rent products with Odoo. This module supports:
- regular rentals.
- rental extensions.
- sale of rented products.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets you rent products to customers: create rental service products, rent them on sale orders with start and end dates, extend a rental, sell a rented item, and track each rental's delivery and return.
This module turns Odoo sales into a rental business. On a product you can link a rental service (a service product priced per day) to the physical product being rented, and a button "Create Rental Service" opens a small wizard to generate that service product from the item, copying its name, code, category and optionally its image.
On a sale order line you choose whether it is a new rental, a rental extension or the sale of a rented item. The quantity is computed automatically as rental quantity multiplied by the number of days, and Odoo blocks saving if the figures do not match. When you pick a rental to extend, the start date is set to the day after the current end date and the quantity is copied; extensions must use the same rental service and the same quantity as the original rental. Selling a rented product is only allowed once it has been delivered, and the return is then cancelled.
A dedicated Rentals screen (list, form, calendar, graph, pivot) shows each rental with its customer, product, start and end date (extensions included), delivery, return and selling documents, and a status such as Ordered, Out, Sell in progress, Sold, Back In or Cancelled. Cancelling an extension order puts the original return date back.
In warehouse settings you can enable rentals, which creates Rental In and Rental Out stock locations and the rental and sell-rented-product routes. In Sales settings you can switch on return reminders and choose how many days before the due date the email is sent; a daily scheduled job sends that reminder to customers whose rental is out and due soon.
Depends on
Required by other modules
Menus it adds
Models and fields (9)
- sale.order · extends an existing model
- sale.rental · new modelstate, end_date, in_state (In Move State), out_state (Out Move State), company_id (Company), in_move_id (Incoming Move), partner_id (Customer), rental_qty, sell_state (Sell Move State), start_date, out_move_id (Outgoing Move), sell_move_id (Selling Move), in_picking_id (Receipt), out_picking_id (Delivery Order), start_order_id (Rental SO), sell_picking_id (Sell Delivery Order), rental_product_id (Rental Service), rented_product_id (Rented Product), sell_order_line_ids (Sell Rented Product), start_order_line_id (Rental SO Line), extension_order_line_ids (Rental Extensions)
- stock.quant · extends an existing model
- product.product · extends an existing modelrented_product_id (Related Rented Product), rental_service_ids (Related Rental Services)
- sale.order.line · extends an existing modelrental, rental_qty (Rental Quantity), rental_type, sell_rental_id (Rental to Sell), can_sell_rental (Can Sell from Rental), extension_rental_id (Rental to Extend)
- stock.warehouse · extends an existing modelrental_allowed, rental_route_id (Rental Route), rental_in_location_id, rental_out_location_id, rental_view_location_id, sell_rented_product_route_id (Sell Rented Product Route)
- product.template · extends an existing modelrented_product_tmpl_id (Rented Product), rental_service_tmpl_ids (Rental Services)
- res.config.settings · extends an existing modelreminder_days (Rental Reminder Days), send_return_reminder (Send Return Reminders)
- create.rental.product · new modelname (Rental Service Name), categ_id (Product Category), copy_image (Copy Product Image), default_code, hw_product_id (Product to Rent), sale_price_per_day (Rental Price per Day)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 6 confirmed, 3 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/vertical-rental.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0In the Products menu, on the form view of a stockable product or consumable, in the Sales tab, there is a button Create Rental Service which starts a wizard to generate the corresponding rental service.
In the menu Inventory \> Configuration \> Warehouse Management \> Warehouses, on the form view of the warehouse, in the Technical Information tab, you will see two additional stock locations: Rental In (stock of products to rent) and Rental Out (products currently rented). In the Warehouse Configuration tab, make sure that the option Rental Allowed is checked.
Usage
Source · Odoo 18.0In a sale order line (form view, not tree view), if you select a rental service, you can:
- create a new rental with a start date and an end date: when the sale order is confirmed, it will generate a delivery order and an incoming shipment.
- extend an existing rental: the incoming shipment will be postponed to the end date of the extension.
In a sale order line, if you select a product that has a corresponding rental service, you can decide to sell the rented product that the customer already has. If the sale order is confirmed, the incoming shipment will be cancelled and a new delivery order will be created with a stock move from Rental Out to Customers.
You can configure Rental Periods under Sales ▸ Configuration ▸ Rental Period. A rental period defines the unit of time (Hour, Day, Week, Month, …) with its conversion into hours. These periods are used to compute rental duration.
You can configure Rental Pricing under Sales ▸ Products ▸ Rental Pricing. For each rental service product, you define a price per rental period. When you create a rental order line, the system selects the period, computes the duration from the dates, and applies the corresponding rental price. If a product has no price defined for the selected period, the system will warn the user.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.