Variable period for memberships
Current membership module allows to set products that define a fixed period for a membership. This is good when the quotas are defined periodically, and when you become a member, you are until the end of that quota cycle.
But a lot of times, membership quotas express an amount of time that you gain the membership. For example, one year since the subscription.
This module allows to make it in Odoo, using current membership features, and adapting them for this purpose. As now the quota is not attached to a fixed period, you can also invoice more than one quantity for being a member for the corresponding number of periods.
Finally, a cron has been included that triggers the recalculation of the membership state, allowing to have "old members", which doesn't work well on standard.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Lets you sell memberships that last a chosen amount of time from the subscription date (for example one year), instead of only fixed calendar periods, and automatically sets the member's start and end dates on the invoice.
On a membership product you can now choose between two ways of defining the membership period. With "Fixed dates" nothing changes: you set a start and end date as before. With "Variable periods" you instead enter an interval, for example 1 year, 6 months or 30 days, and the membership runs for that length of time starting from the invoice date.
Where it appears: - On the membership product form, a new "Membership type" field is added, and when "Variable periods" is selected the fixed start/end dates are hidden and replaced by an "Interval" quantity and unit (days, weeks, months, years). - When you create or modify a customer invoice line for such a product, Odoo automatically creates or updates the related membership line with the correct start date (the invoice date) and end date (start date plus the interval).
Business rules and automatic behaviour: - The end date is computed from the invoice date plus the interval multiplied by the invoiced quantity, so invoicing 2 units of a 1-year membership gives a 2-year membership. - The quantity is rounded up to a whole number of periods. - Fixed start/end dates are cleared when a product is switched to variable periods, and the date consistency check only applies to fixed-period products.
It touches membership products (product.template) and invoice lines (account.move.line), and the membership lines they generate.
Depends on
Required by other modules
Models and fields (2)
- product.template · extends an existing modelmembership_type, membership_interval_qty (Interval quantity), membership_interval_unit (Interval Unit)
- account.move.line · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 19.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-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/vertical-association.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0Define a member product, and select 'Variable periods' in the field Membership type. You will be able to select them the period for the membership in quantity and interval.
No verified information in OCA: Installation, Configuration.
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.