Subscriptions

Facturación recurrente

MarketplaceClientesVersión 0.1.0manifest

Para qué sirve ​

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.

Qué hace y qué no hace el paquete ​

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.

Modelos ​

subscriptions_plan ​

A recurring offer customers can subscribe to

Grupo de lectura: subscriptions.user. Grupo de escritura: subscriptions.manager.

CampoTipoClase de datosDatos personalesGrupoLos agentes venDescripción
nametextnonenosubscriptions.useren claroPlan name, for example Team yearly
codetextnonenosubscriptions.useren claroShort code of the plan
intervalselect (monthly, quarterly, yearly)nonenosubscriptions.useren claroHow often the customer is billed: monthly, quarterly, yearly
pricemoneynonenosubscriptions.useren claroStandard price per billing interval (minor currency units, e.g. cents)
trial_daysnumbernonenosubscriptions.useren claroLength of the free trial in days
activeboolnonenosubscriptions.useren claroWhether new customers can pick the plan

subscriptions_subscription ​

A customer's recurring subscription to a plan

Grupo de lectura: subscriptions.user. Grupo de escritura: subscriptions.manager.

CampoTipoClase de datosDatos personalesGrupoLos agentes venDescripción
customer_idref → partynonenosubscriptions.useren claroThe customer who subscribed
plan_idref → subscriptions_plannonenosubscriptions.useren claroThe plan subscribed to
started_ondatenonenosubscriptions.useren claroDate the subscription began (YYYY-MM-DD)
trial_ends_ondatenonenosubscriptions.useren claroDate the free trial ends (YYYY-MM-DD)
next_invoice_ondatenonenosubscriptions.useren claroDate the next invoice is due (YYYY-MM-DD)
recurring_amountmoneynonenosubscriptions.useren claroAmount billed each interval after discounts (minor currency units, e.g. cents)
currencytextnonenosubscriptions.useren claroISO 4217 currency code, for example EUR
seatsnumbernonenosubscriptions.useren claroNumber of licences or users covered
cancel_reasonlongtextnonenosubscriptions.useren claroWhy the customer cancelled
stateselect (trial, active, past_due, cancelled)nonenosubscriptions.useren claroSubscription status: trial, active, past_due, cancelled

Flujos de trabajo ​

subscriptions_subscription ​

AcciónMueveQuién puede ejecutarlaAprobación
subscriptions_subscription.activatestate: trial → activesubscriptions.managerno
subscriptions_subscription.mark_past_duestate: active → past_duesubscriptions.managerno
subscriptions_subscription.recoverstate: past_due → activesubscriptions.managerno
subscriptions_subscription.cancel_trialstate: trial → cancelledsubscriptions.managersí
subscriptions_subscription.cancelstate: active → cancelledsubscriptions.managersí
subscriptions_subscription.cancel_overduestate: past_due → cancelledsubscriptions.managersí

Grupos de permisos ​

Grupos que usa esta aplicación:

  • subscriptions.manager
  • subscriptions.user

Pasos con aprobación ​

Pasos que un agente solo puede proponer:

  • subscriptions_subscription.cancel_trial
  • subscriptions_subscription.cancel
  • subscriptions_subscription.cancel_overdue

Qué pueden y qué no pueden hacer los agentes ​

Un agente puede leer, buscar, crear y actualizar registros de esta aplicación, y ejecutar las acciones que no requieren aprobación, dentro de los grupos de permisos de su token.

Solo puede proponer estos pasos, y una persona debe aprobarlos: subscriptions_subscription.cancel_trial, subscriptions_subscription.cancel, subscriptions_subscription.cancel_overdue, subscriptions_plan.delete, subscriptions_subscription.delete.

Dependencias ​

  • base

Instalación ​

Instálala desde la aplicación Customize (Marketplace) o desde la línea de comandos:

bash
obop modules install-from subscriptions

Requiere una base de datos y derechos de administrador.

Crea la tuya ​

La guía de módulos explica cómo se escriben aplicaciones como esta