Subscriptions
Facturation récurrente
À quoi elle sert
Define recurring plans and track customer subscriptions with trial, active, past due and cancelled states, including the next invoice date. It does not create invoices by itself.
Ce que fait et ne fait pas le paquet
Recurring plans and customer subscriptions with a trial, active, past due and cancelled flow. It records the next invoice date; it does not create invoices on its own.
Modèles
subscriptions_plan
A recurring offer customers can subscribe to
Groupe de lecture: subscriptions.user. Groupe d'écriture: subscriptions.manager.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
name | text | none | non | subscriptions.user | en clair | Plan name, for example Team yearly |
code | text | none | non | subscriptions.user | en clair | Short code of the plan |
interval | select (monthly, quarterly, yearly) | none | non | subscriptions.user | en clair | How often the customer is billed: monthly, quarterly, yearly |
price | money | none | non | subscriptions.user | en clair | Standard price per billing interval (minor currency units, e.g. cents) |
trial_days | number | none | non | subscriptions.user | en clair | Length of the free trial in days |
active | bool | none | non | subscriptions.user | en clair | Whether new customers can pick the plan |
subscriptions_subscription
A customer's recurring subscription to a plan
Groupe de lecture: subscriptions.user. Groupe d'écriture: subscriptions.manager.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
customer_id | ref → party | none | non | subscriptions.user | en clair | The customer who subscribed |
plan_id | ref → subscriptions_plan | none | non | subscriptions.user | en clair | The plan subscribed to |
started_on | date | none | non | subscriptions.user | en clair | Date the subscription began (YYYY-MM-DD) |
trial_ends_on | date | none | non | subscriptions.user | en clair | Date the free trial ends (YYYY-MM-DD) |
next_invoice_on | date | none | non | subscriptions.user | en clair | Date the next invoice is due (YYYY-MM-DD) |
recurring_amount | money | none | non | subscriptions.user | en clair | Amount billed each interval after discounts (minor currency units, e.g. cents) |
currency | text | none | non | subscriptions.user | en clair | ISO 4217 currency code, for example EUR |
seats | number | none | non | subscriptions.user | en clair | Number of licences or users covered |
cancel_reason | longtext | none | non | subscriptions.user | en clair | Why the customer cancelled |
state | select (trial, active, past_due, cancelled) | none | non | subscriptions.user | en clair | Subscription status: trial, active, past_due, cancelled |
Flux de travail
subscriptions_subscription
| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
subscriptions_subscription.activate | state: trial → active | subscriptions.manager | non |
subscriptions_subscription.mark_past_due | state: active → past_due | subscriptions.manager | non |
subscriptions_subscription.recover | state: past_due → active | subscriptions.manager | non |
subscriptions_subscription.cancel_trial | state: trial → cancelled | subscriptions.manager | oui |
subscriptions_subscription.cancel | state: active → cancelled | subscriptions.manager | oui |
subscriptions_subscription.cancel_overdue | state: past_due → cancelled | subscriptions.manager | oui |
Groupes de permissions
Groupes utilisés par cette application :
subscriptions.managersubscriptions.user
Étapes d'approbation
Étapes qu'un agent ne peut que proposer :
subscriptions_subscription.cancel_trialsubscriptions_subscription.cancelsubscriptions_subscription.cancel_overdue
Ce que les agents peuvent et ne peuvent pas faire
Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.
Il ne peut que proposer ces étapes, qu'une personne doit approuver : subscriptions_subscription.cancel_trial, subscriptions_subscription.cancel, subscriptions_subscription.cancel_overdue, subscriptions_plan.delete, subscriptions_subscription.delete.
Dépendances
base
Installation
Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :
obop modules install-from subscriptionsNécessite une base de données et des droits d'administrateur.
Créer la vôtre
Le guide des modules montre comment sont écrites les applications de ce type