In Fusebill, a plan family object is used to define migration relationships between various related plans.
Included in a plan family object are various options to define the default rules pertaining to which fields are transferred or overwritten when a subscription migrates from one plan to another within the plan family.
The plan family object also has a list of all the plans it includes, as well as a list of special plan family relationship objects which can override the default transfer rules when going from a specific source plan to destination plan. This list of plan family relationship objects also explicitly defines which migrations are permitted within the family.
Plan Family Object Fields
Property | Type | Description |
---|---|---|
code | String | The code given to the plan family at time of creation [Max Length: 255 characters] |
name | String | The name of the family given at time of creation [Max Length: 100 characters] |
description | String | The description of what the plan family is. [Max Length: 1000 characters] |
earningOption | Enum: {None, Unearned, Full} | Controls how to handle the financials of the source subscription. Charges can be fully earned, the unearned charges can be reversed, or all the charges can be reversed. |
nameOverrideOption | Enum: {Transfer, DoNotTransfer} | Controls whether the name is transferred from the source subscription to the destination |
descriptionOverrideOption | Enum: {Transfer, DoNotTransfer} | Controls whether the description is transferred from the source subscription to the destination |
referenceOption | Enum: {Transfer, DoNotTransfer} | Controls whether the subscription reference is transferred from the source subscription to the destination |
expiryOption | Enum: {Transfer, DoNotTransfer} | Controls whether the expiry progression is transferred from the source subscription to the destination |
customFieldsOption | Enum: {Transfer, DoNotTransfer} | Controls whether the custom fields are transferred from the source subscription to the destination |
contractStartOption | Enum: {Transfer, DoNotTransfer} | Controls whether the name is transferred from the source subscription to the destination |
contractEndOption | Enum: {Transfer, DoNotTransfer} | Controls whether the name is transferred from the source subscription to the destination |
plans | List of Objects. See Catalog: Plans | Contains a summarized version of the plans contained in this family. If more details are needed, each contains a plan id and uri |
planFamilyRelationship | List of Objects. Defined below | Each plan family relationship defines special rules for going from a source plan subscription to a destination plan subscription. A plan family relationship between two plans in a family must exist for a migration to occur along the defined path. |
id | Integer | The Fusebill generated ID that uniquely identifies this plan family |
uri | String | The full string path to this plan family |
Plan Family Relationship Fields
Property | Type | Description |
---|---|---|
planFamilyId | Integer | The Fusebill generated ID that uniquely identifies the plan family this plan family relationship belongs to. |
relationshipMigrationType | Enum: {Upgrade, Downgrade, PlanUpdate, FrequencyChange, FreeTrialConversion, Other} | An enum used to describe the general purpose and context of the migration being done. |
sourceLabel | String | A label describing the source plan e.g. "Bronze (BrnzPlan) / Every 3 months" |
sourcePlanId | Integer | The Fusebill generated ID that uniquely identifies the source plan |
sourcePlanFrequencyId | Integer | The Fusebill generated ID that uniquely identifies the source plan frequency. |
sourcePlan | Object. See Catalog: Plans | The source plan |
sourcePlanFrequency | Object. See below for definition | Details on which source plan frequency this relationship applies to. |
destinationLabel | String | A label describing the source plan e.g. "Bronze (BrnzPlan) / Every 3 months" |
destinationPlanId | Integer | The Fusebill generated ID that uniquely identifies the destination plan |
destinationPlanFrequencyId | Integer | The Fusebill generated ID that uniquely identifies the destination plan frequency. |
destinationPlan | Object. See Catalog: Plans | The destination plan |
destinationPlanFrequency | Integer | Details on which destination plan frequency this relationship applies to. |
earningOption | Enum: {None, Unearned, Full} | Controls how to handle the financials of the source subscription. Charges can be fully earned, the unearned charges can be reversed, or all the charges can be reversed. Usually this is copied over from the plan family, but can be overridden here. |
nameOverrideOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the name is transferred from the source subscription to the destination. Can be set to default to the plan family option. |
descriptionOverrideOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the description is transferred from the source subscription to the destination. Can be set to default to the plan family option. |
referenceOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the subscription reference is transferred from the source subscription to the destination. Can be set to default to the plan family option. |
customFieldsOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the custom fields are transferred from the source subscription to the destination. Can be set to default to the plan family option. |
expiryOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the expiry progression is transferred from the source subscription to the destination. Can be set to default to the plan family option. |
contractStartOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the contract start date is transferred from the source subscription to the destination. Can be set to default to the plan family option. |
contractEndOption | Enum: {FamilyDefault, DoNotTransfer, Transfer} | Controls whether the contract end date is transferred from the source subscription to the destination. Can be set to default to the plan family option. |
availableOnSsp | Boolean | Indicates the availability of this migration path on the SSP |
planFamilyRelationshipMapping | List of Objects. Defined below | The plan product to plan product mappings. |
id | Integer | The Fusebill generated ID that uniquely identifies this plan family relationship |
uri | String | The full string path to this resource |
Plan Family Relationship Mapping Fields
Property | Type | Description |
---|---|---|
sourcePlanProduct | Object. See Catalog: Plan Products | A summarized plan product object of the source plan product |
destinationPlanProduct | Object. See Catalog: Plan Products | A summarized plan product object of the destination plan product |
sourcePlanProductId | Integer | The Fusebill generated ID that uniquely identifies the source plan product |
destinationPlanProductId | Integer | The Fusebill generated ID that uniquely identifies the destination plan product |
nameOverrideOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the name from the source plan product to the destination |
descriptionOverrideOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the description from the source plan product to the destination |
quantityOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the quantity value from the source plan product to the destination |
inclusionOption | Enum:{UseSourceValue, UseCatalogSetting, IncludeProduct, ExcludeProduct} | Controls the transfer of the inclusion/exclusion from the source plan product to the destination. Note that for inclusion, it is possible to default to the inclusion/exclusion specified in the relevant plan frequency in the catalog, as well as to explicitly specify whether the plan product should be included in the new subscription.. |
upliftOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the price uplifts from the source plan product to the destination |
discountOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the discount(s) from the source plan product to the destination |
expiryOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the expiry progression from the source plan product to the destination |
scheduledDateOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the name from the source plan product to the destination |
customFieldsOption | Enum: {Transfer, DoNotTransfer} | Controls the transfer of the name from the source plan product to the destination |
id | Integer | The Fusebill generated ID for this mapping |
uri | String | The full string path to this resource |
Source/Destination Plan Frequency Fields
Property | Type | Description |
---|---|---|
numberOfIntervals | Integer | The number of intervals that constitute a period for this plan frequency |
interval | Enum:{Monthly, Yearly} | The unit of measurement for determining periods |