CRM Membership
The CRM Membership module provides a flexible framework for managing memberships in Drupal. It allows the creation and management of different types of memberships with configurable terms, durations, and renewal logic.
The module integrates with the CRM module and provides entities and plugins for handling membership lifecycle management.
Key features
- Contact-based memberships — Memberships are tied to CRM Contact entities (contacts as members, target contact as "member of").
- Flexible term management — Different term calculation strategies via pluggable Membership Term plugins (fixed, rolling, lifetime).
- Lifecycle workflows — Activation, renewal, expiration, and cancellation with optional grace periods.
- Extensible architecture — Customize via custom plugins and event subscribers.
Documentation
| Section | Description |
|---|---|
| Getting started | Requirements, installation, and where to find the admin UI. |
| Architecture | High-level design: entities, plugin system, service, events, queue. |
| Plugin system | Membership Term plugins: built-in types and how to implement custom ones. |
| Services & API | MembershipService and events for checking membership status. |
| Development | Cron and queue worker for membership expiration. |
| Configuration | Config schema, settings form, and permissions. |
| Integration | Views and routes for listing and managing memberships. |
For developers
- Entities: Membership, Membership Type, Membership Period.
- API: Inject
crm_membership.serviceor use\Drupal::service('crm_membership.service')forisMember(),getMemberships(),getMembershipsForTarget(). - Extend: Implement a custom Membership Term plugin or subscribe to the IS_MEMBER event to customize "is member" logic.