| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1002 |
| Technical Name |
gb_membership_subscription_dues |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1002 |
| Technical Name |
gb_membership_subscription_dues |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Membership & Subscription
Full membership engine: tiers, renewals, dues invoicing and member portal
Membership organisations need far more than a contact list: they must track who is paid up, who is in grace, who has lapsed, and invoice recurring dues every period without manual chasing. Doing this in spreadsheets or generic invoicing wastes admin hours and lets renewals slip. This module is built for UK clubs, associations and charities on Odoo Community. It defines membership tiers with recurring dues and joining fees, drives members through a draft-active-grace-lapsed lifecycle, generates and posts dues invoices automatically via cron, and gives members a self-service portal to see their tier, expiry and balance.
Key Features
Configurable Membership Tiers
gb.membership.tier defines a billing period (month, quarter, semester or year), a price and a one-off joining_fee, plus grace_days, early_renewal_days and an early_renewal_discount percentage. Each tier lazily creates its own service dues product via _ensure_product for clean invoice lines.
Member Lifecycle States
gb.membership.member links a partner to a tier and moves through draft, active, grace, lapsed and cancelled with mail tracking. Buttons Activate, Renew, Move to Grace, Lapse and Reset to Draft drive the lifecycle, and date_expiry plus days_to_expiry track standing.
Automatic Dues & Invoicing
Activating or renewing a member calls _generate_dues to create a gb.membership.dues line, applying the joining fee on the first period and the early-renewal discount when within the window. action_create_invoice posts a real account.move out_invoice you can Post and Mark Paid.
Renewal & Lapse Cron
The daily _cron_process_renewals moves expired active members into grace, auto-renews those with auto_renew on tiers flagged auto_invoice, and lapses anyone past date_expiry plus grace_days. A second 6-hourly cron _cron_sync_paid flips dues to Paid when the invoice payment_state settles.
Bulk Renewal Wizard
The Renew Memberships wizard (gb.membership.renew.wizard) takes the selected members, renews all non-cancelled ones in one action, and optionally creates and posts their draft dues invoices, so an admin can roll an entire cohort forward at year-end.
Self-Service Member Portal
The /my/memberships portal route shows each logged-in member their tier, expiry date and outstanding dues, with a counter on the portal home. res.partner gains is_member, current_tier_id and a Memberships smart action for the back office.
Live Dashboard & Dues Analysis
get_membership_dashboard returns active, grace, lapsed and draft counts, a retention_rate and total outstanding dues for the kanban header. A SQL-view report model (gb.membership.dues.report) powers pivot analysis by tier, period and state for finance and trustees.
Guardrails & Constraints
Validation blocks negative dues or joining fees, discounts outside 0-100%, negative day windows and an expiry before the join date. Cancelled members cannot be renewed and posted invoices must be cancelled before their dues line, keeping the ledger consistent.
Use Cases
Screenshots
Dues
Dues Analysis
Members
Renew Memberships
Membership Tiers
Why Choose This Module
Membership organisations need more than a contact list. This module defines membership tiers with recurring dues, enrols members through a clear lifecycle, invoices dues automatically each period, and lets members track their status in the portal — a full membership engine built for UK clubs, associations and charities on Odoo Community.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: LGPL-3
- Languages: 35+
- Author: Baris Genc
- Dependencies: account, portal, mail
- Support: odoo@gencbaris.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module