plans.yaml
Lists your subscription plans. Each plan have an ID that must be unique. If you want to make a new version of a plan, add a version in the ID.
Properties
description
Describes the plan
description:
iso1: description in first language
iso2: description in second language
availaible
This section defines the availaibility of the plan. since
and until
define an interval. archived
hide the plan in the admin interface.
availaible:
since: start-date-iso #e.g. 2016-01-01
until: end-date-iso #e.g. 2017-01-01
archived: true
color
Defines a color for the plan that be used in interface
color: #hex
icon
Defines an icon (from fontawesome) for the plan that will be used in the admin interface
color: fontawesomeID
trial
The trial
section defines the trial period of the plan.
trial:
duration: 99(d|w|m|y)
description:
lang-iso: Description
lang-iso2: Description...
change-policy
When a plan is remplace by a new plan, defines the policy followed : free
(the new subscription can also have a free trial period), continue
(can have an trial period, but will be billed at the last subscription price) or forbidden
(the new can not have a trial).
This policy overrides the trial
configuration.
trial:
change-policy : free|continue|forbidden
minimum-duration
Must be a multiple of the period, defines the minimum duration of a customer subscription.
minimum-duration: 99(d|m|y)
commitment-policy
When a plan is replaced by a new one in a subscription, defines the policy to follow : reset
the minimum-duration of the new plan if fully applied, continue
the minimum-duration of the new plan is adapted to complete with the previous one and continueif
do the same only if the commitment period defined by mimumduration is the same on the both plan, else do the reset policy
commitment-policy: reset|continue|confinueif
totalduration
Fixes the total duration of the subscription for non open-ended plan. Must be a multiple of the period.
totalduration: 99(d|w|m|y)
auto-renew
If true the plan is automaticly renew at the end of each period.
auto-renew: true|false
group
You can group different plans together
group: name
editable
Defines which value can be overwritten when the plan is created.
editable: [description, period, minimum-duration, totalduration, auto-renew, trial] #key name
terms-of-service
The terms-of-service
section defines the TOS applied to the subscription.
terms-of-service:
description:
lang-iso: description
version: 99.99 # version number
url: url # url to access the full version of the TOS
note
Gives informations displayed in the backoffice. Nonpublic informations.
note: internal information
service-values
In this section you can add everything you want. It will not be used for the billing, but you will be able to access this data though the API. (same as at option level)
service-values:
"specific1":
"iwant": true
"isay": "why not"
"specific2":
etc: ...
Options sections
This four sections describe options linked to this plan. Each option can be overloaded in each section, to set a specific price or quantity for example.
An option that is not linked to a plan through one of this four sections can not be applied to a customer.
options-included
This section defines all the options include in standard in the plan. Each option have to be defined in options.yaml
.
options-usage
This section defines all the options that are billed on metered usage and included in standard in the plan. Each option have to be defined in options.yaml
.
consumable resource.
oneshot-initial
This section defines all the options included in standard at the start of the subscription plan. Each option have to be defined in options.yaml
.
This options will be billed only one time.
oneshot-ondemand
This section defines all the options that can be added in a subscription. Each option have to be defined in options.yaml
. No other option can be added in a customer subscription.
Examples
plans:
"young": # identifiant du plan
group: SPREAD2013
period: 12m # Durée d'une période standard en mois
auto-renew: true # tacite reconduction
minimum-duration: 12m #durée minimum d'un abonnement en mois
#totalduration: 24m # durée totale fixe et maximum
description: # description publique
fr: Abonnement YOUNG
en: YOUNG Subscription
note: Ancien abonnement, utilisé de septembre 2014 à septembre 2016
terms-of-service:
description:
fr: Conditions générales d'utilisation
en: Term of service (french)
version: 1.7 # version number
url: http://www.spreadfamily.fr/cgu.pdf # url to access the full version of the TOS
billing:
installment: [1, 2, 6, free]
term: upfront|endofperiod
renew: anniversary|week|month|year
renew-gap: 4 #only if new il month of year, the bill will be issued the 4th of the month
trial:
duration: 15d #ou 1m
description:
fr: Période d'essai
en: Trial period
oneshot-initial: #
"service10":x
description:
fr: Frais de mises en route
en: Setup fee
options-included: # liste des options incluses dans le plan
#####
##### comment on gere les prix ou pas pour ces options
"young-subs":
visible: true # sera visible sur la facture
editable: [quantity, description, price]
"profile50k":
visible: true # sera visible sur la facture
price-impact: false
"service":
quantity: 6 # 1 est la valeur par défaut qui pas de qté
"sms100":
quantity: 1
"user":
quantity: 2
visible: false # ne sera pas affiché dans la facture. Ce paramètre passe automatique price-impact à false pour l'option
"email1k":
quantity: 50
options-usage: # liste des options dont le prix est calculé en fonction de l'usage (en fin de période)
"email1k":
description:
fr: Pack de 1000 emails dépassement
en: 1000 emails pack (over included)
price: # the price defined in the option is override
eur: 2
usd: 3
visibility: full # affiche la quantité et le prix
oneshot-ondemand: # liste des options que l'on peut ajouter au plan, ou facturer
"young-sponsorship": #id de l'option (créé dans options.yaml)
visibility: optional # n'est pas ajouté mais doit être ajouté manuellement, valeur par defaut
"service": # visibility: optional est par defaut, pas besoin
"service10":
"email1k":
"sms100":
"sms1000":
"user":