Skip to main content
Subscription & Membership Management Pro — A build-to-order Odoo module for recurring-revenue businesses: flexible plans and  — 1/1Illustrative preview

A build-to-order Odoo module for recurring-revenue businesses:

flexible plans and tiers, automated renewals, dunning with retry logic, upgrade/downgrade proration and a member self-service portal.

ECOSIRE scopes, builds, installs and supports it on Odoo 17/18/19.

What is Subscription & Membership Management Pro?

A build-to-order Odoo module for recurring-revenue businesses: flexible plans and tiers, automated renewals, dunning with retry logic, upgrade/downgrade proration and a member self-service portal. ECOSIRE scopes, builds, installs and supports it on Odoo 17/18/19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

`subscription.plan` model with recurring intervals (daily/weekly/monthly/annual), trial periods, setup fees and multiple pricing tiers
`subscription.contract` lifecycle state machine (`draft` → `trial` → `active` → `past_due` → `suspended` → `cancelled`) with guarded transitions
Scheduled `ir.cron` renewal engine that generates `account.move` invoices through the native accounting API — no shadow ledger
Configurable dunning ladder (data-driven retry days) executed via automated actions, advancing a per-contract dunning stage on each failed charge
Failed-payment retry with escalating QWeb dunning emails and automatic suspension on ladder exhaustion
Mid-cycle upgrade/downgrade with day-accurate proration posted as an adjustment line on the next invoice
Compute fields (`@api.depends`) for next-invoice date, MRR, ARR and proration credit, feeding native pivot/graph reporting
Member self-service portal (QWeb/OWL controllers extending `/my`) for plan view, invoice history, payment status and self-serve plan changes
Gateway webhook + reconciliation wiring (Stripe, GoCardless or your provider) mapping payment events onto contract state
`ir.model.access.csv` + record rules scoping each member to their own contract; `company_id` respected for multi-company
Grace-period and pause/resume handling with configurable access-suspension behavior
Automated renewal-reminder and card-expiry notifications via QWeb email templates
Branded QWeb invoice/receipt reports and a renewal-summary report for finance
XML-RPC/JSON-RPC endpoints so external apps and headless flows can read plans and manage contracts
Membership-specific extras (member ID, join/expiry dates, tiered benefits) for clubs and associations where relevant

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Recurring-revenue businesses outgrow Odoo's native subscriptions fast. Odoo Enterprise ships sale_subscription for basic recurring sales orders, but Community has no subscription engine at all, and neither covers the operational reality of a real membership or SaaS book: metered add-ons, tiered pricing bands, mid-cycle upgrades with correct proration, configurable dunning ladders, grace periods, and a member-facing portal where customers manage their own plan without emailing support. Teams end up bolting spreadsheets and manual invoices onto Odoo, and every failed card becomes a lost renewal that nobody chased. This is where Odoo native runs out of road.

ECOSIRE builds a dedicated subscription and membership module on top of your Odoo. At its core is a subscription.plan model (recurring interval, pricing tiers, trial period, setup fee) and a subscription.contract model linking res.partner, product/plan, billing anchor date and lifecycle state (draft, trial, active, past_due, suspended, cancelled) driven by a proper state machine. Renewals run from a scheduled ir.cron that generates account.move invoices via the standard accounting API, so revenue, tax and reporting stay native — nothing is faked outside the ledger. Compute fields with @api.depends derive next-invoice date, MRR/ARR and proration credits; ir.model.access.csv plus record rules keep each member scoped to their own contract, and the whole thing respects company_id for multi-company setups.

Dunning is a first-class workflow, not an afterthought. A configurable retry ladder (for example day 1, 3, 7) is stored as data and executed by automated actions: each failed payment advances the contract's dunning stage, fires a QWeb-rendered email, and — on exhaustion — suspends access and notifies your team. Upgrades and downgrades compute a proration credit or charge against the remaining cycle and post it as an adjustment line on the next invoice, so mid-term plan changes are accurate to the day. The member portal is built with QWeb/OWL controllers extending Odoo's /my website portal: customers see their plan, invoices and payment status, self-serve upgrades/downgrades, update payment methods, and download receipts — reducing support load. Where you use Stripe, GoCardless or another gateway, we wire the webhook and reconciliation path; integrations and headless flows can also use Odoo's XML-RPC/JSON-RPC API.

Because this is build-to-order, we start from your actual plan structure, billing rules and gateway rather than a generic template. After a scoping call we confirm the data model, dunning policy and portal scope in writing, build against Odoo 17.0, 18.0 or 19.0 (Community or Enterprise — we adapt to whether sale_subscription is present), and validate on a staging clone of your database. Typical delivery is one working week from confirmed scope depending on gateway and proration complexity. You receive the installable module source, a git repository, technical and user documentation, a training session, UAT sign-off on staging with a rollback plan, and a post-go-live support window.

What you get

  • Installable Odoo module source code for your target version (17.0, 18.0 or 19.0), Community or Enterprise
  • Installation and configuration on your environment, including cron, gateway keys and dunning-ladder setup
  • Technical documentation: data model, security rules, cron/automated-action map and integration points
  • End-user guide plus a live training session for your billing and support team
  • UAT on a staging clone of your database with sign-off, plus a documented rollback plan
  • Git repository handover with full commit history and tagged release
  • Post-go-live support window for defect fixes and configuration questions
  • Data-migration assistance for existing subscriptions/members where an import source is provided

Who this is for

SaaS operator on Odoo

Runs a software product billed monthly/annually and needs metered add-ons, trials, day-accurate proration on plan changes and reliable dunning so failed cards actually get retried instead of silently churning.

Club or association manager

Manages recurring memberships with tiers and benefits, member IDs and expiry dates, and wants a self-service portal so members renew, upgrade and download receipts without emailing the office.

Finance / billing lead

Owns the revenue book and needs renewals to post as native `account.move` invoices with correct tax, plus MRR/ARR and dunning visibility in Odoo reporting rather than in spreadsheets.

Odoo admin / IT lead

Responsible for the instance and wants a properly modeled module with `ir.model.access.csv`, record rules, a clean git repo and XML-RPC/JSON-RPC hooks — not a fragile Studio hack — that upgrades cleanly across 17/18/19.

How Subscription & Membership Management Pro Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Recurring plans & tiersCustom `subscription.plan` model with intervals, trials, setup fees and pricing bandsWhatever you specify, built from scratch and maintained in-houseFixed plan structure; tiers often need paid add-onsCommunity: none. Enterprise `sale_subscription`: basic recurring orders only
Dunning & retriesConfigurable retry ladder via automated actions with staged QWeb emails and auto-suspendBuildable but often descoped due to time/costBasic reminders; limited control over the ladderNo real dunning workflow
Proration on plan changeDay-accurate credit/charge posted as an adjustment lineDepends on developer effort; easy to get subtly wrongOften full-cycle only or manualManual invoice edits
Member self-service portalExtended `/my` portal (QWeb/OWL) with self-serve upgrades, invoices and payment updatesBuildable, adds significant scopeRead-only or absentGeneric portal; no subscription self-service
Accounting integrationNative `account.move` invoices via the accounting API; MRR/ARR on the same ledgerShould be native if built wellUsually native but reporting variesNative when `sale_subscription` present
Fit to your processScoped to your plans, gateway and dunning policy before a line is writtenFully bespoke, but you own all analysis and QAConfigure within the vendor's assumptionsFit to Odoo's assumptions only
Ownership & supportGit handover, docs, training, UAT + rollback and a support windowYou own it and its full maintenance burdenVendor-controlled; support tied to subscriptionCovered by your Odoo support contract
Odoo version supportBuilt and tested for 17.0/18.0/19.0, Community or EnterpriseWhatever you target and maintainDepends on the publisher's update cadenceCurrent Odoo version only

Frequently Asked Questions about Subscription & Membership Management Pro

How long does delivery take?

This is a build-to-order module, not an instant download. After a scoping call we confirm the data model, dunning policy, gateway and portal scope in writing, then build and test on your staging database. Typical delivery is one working week from confirmed scope, depending on gateway integration and proration complexity.

Does this work on Odoo Community, or do I need Enterprise?

Both. Odoo Enterprise ships `sale_subscription` for basic recurring sales, while Community has no subscription engine at all. We build a self-contained module that works on Community and, on Enterprise, integrates with or complements `sale_subscription` rather than fighting it. We support Odoo 17.0, 18.0 and 19.0.

How does it handle failed payments and dunning?

Dunning is a configurable retry ladder (for example day 1, 3, 7) stored as data and executed by automated actions. Each failed charge advances the contract's dunning stage and sends a QWeb email; when the ladder is exhausted the contract is suspended and your team is notified. We tune the exact schedule and messaging to your policy during scoping.

Will renewals post correctly to accounting?

Yes. The scheduled `ir.cron` renewal engine generates native `account.move` invoices through Odoo's accounting API, so tax, revenue recognition and financial reporting stay standard. Nothing is invoiced in a separate shadow system — MRR/ARR are computed on top of the same ledger.

Can members manage their own subscriptions?

Yes. We extend Odoo's `/my` portal with QWeb/OWL controllers so members can view their plan and invoices, self-serve upgrades/downgrades with proration applied, update payment methods and download receipts. Record rules scope each member strictly to their own contract.

What about support and updates after go-live?

Every engagement includes a post-go-live support window for defect fixes and configuration questions, plus a git repository handover so you own the code. Beyond the initial window we offer ongoing support and version-upgrade work (for example migrating your module from 17 to 18/19) as a separate arrangement.

Can it integrate with my payment gateway and other systems?

Yes. We wire your gateway's webhooks and reconciliation (Stripe, GoCardless or another provider) so payment events drive contract state. For external apps or headless flows, plans and contracts are also reachable over Odoo's XML-RPC/JSON-RPC API.

Request a quote

Subscription & Membership Management Pro

A build-to-order Odoo module for recurring-revenue businesses: flexible plans and tiers, automated renewals, dunning with retry logic, upgrade/downgrade proration and a member self-service portal. ECOSIRE scopes, builds, installs and supports it on Odoo 17/18/19.

  • `subscription.plan` model with recurring intervals (daily/weekly/monthly/annual), trial periods, setup fees and multiple pricing tiers
  • `subscription.contract` lifecycle state machine (`draft` → `trial` → `active` → `past_due` → `suspended` → `cancelled`) with guarded transitions
  • Scheduled `ir.cron` renewal engine that generates `account.move` invoices through the native accounting API — no shadow ledger
  • Configurable dunning ladder (data-driven retry days) executed via automated actions, advancing a per-contract dunning stage on each failed charge

Request a Quotation

Tell us about your Subscription & Membership Management Pro requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.