OdooWiki OCA HUB

Product Contract Recurrence In Price

product_contract_recurrence_in_price folder_open OCA/contract open_in_new
Contract Management License: AGPL-3

This module extends the functionality of product_contract to add an option to compute the total amounts on "contract" Sale Order lines, including every invoicing planned.

For instance, a product worth 10€ invoiced every month for one year would have a total of 120€ (unit_price * #invoices) instead of 10€ (unit_price * quantity).

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds an option on products and sale order lines to include all planned recurring invoices in the line total, so a monthly contract line shows the full contract value instead of just one period.

When a product is a contract product, you can now tick "Include Recurrence in Price" on the product form. The same option appears on contract sale order lines and in the contract configurator wizard, so it can be set per line.

  • On a sale order line, the module computes how many times the line will be invoiced based on the contract start date, end date, recurrence interval and recurrence type (daily, weekly, monthly, quarterly, semi-annual or yearly). This number is shown in a hidden-by-default column on the order lines.
  • When the option is active, the line amount is calculated using the quantity multiplied by that number of invoices, so the total reflects the whole contract period.
  • The option is automatically suggested from the product: it is turned on for a line only if the product is a contract product and the product itself has the option enabled.
  • If the recurrence information is incomplete, the number of invoices is zero; an invalid recurrence type raises a validation error.

The module touches product.template, sale.order.line and the contract mixin used by contract sale order lines, and adds fields to the product form, the sale order form and the contract configurator wizard.

Models and fields (3)
  • sale.order.line · extends an existing model
  • product.template · extends an existing modelinclude_recurrence_in_price
  • sale.order.line.contract.mixin · extends an existing modelrecurring_invoicing_number, include_recurrence_in_price

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 18.0

To use this module, you need to:

  • Go to Sales > Products > Products
  • In "Product" form, for contract products, select "Include Recurrence In Price".

This configuration is also available on each individual Sale Order line, in the contract configurator (see product_contract).

When "Include Recurrence In Price" is set, the amounts (total, subtotal, tax total) of the Sale Order line are multiplied by the number of times the line will be invoiced.

No verified information in OCA: Installation, Configuration.

info

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.