Many applications have different editions where additional features may be provided as an up-sell for the features provisioned initially. Likewise, a hosting provider may offer upgrades of, for example, "Standard" edition on "Premium" one for existing application instance. This chapter will outline a way for packaging an application with the feature up-sell capability. It is assumed here that you already have a valid APS package to add upsell features to.
Changing of application feature set is done by performing reconfiguration procedure of application service. Controller delivers the new feature set in value of special setting which cannot be modified by application user directly. Hosting provider defines editions (feature sets) of application service with different values of the setting and a workflow, following which, a user is able to purchase a configuration and to assign it to a service instance.
Packaging procedure:
<service id="edition_type" singular="true" class="service">
<presentation>
<name>Service Package</name>
<summary>Types of available services</summary>
</presentation>
<settings>
<setting type="enum" id="feature-set" visibility="hidden" default-value="basic">
<name>Feature set</name>
<choice id="Basic">
<name>Basic Edition</name>
</choice>
<choice id="Gold">
<name>Gold Edition</name>
</choice>
<choice id="Premium">
<name>Premium Edition</name>
</choice>
</setting>
</settings>
</service>