When migrating or creating your In-App Purchase offer, you have to keep two key concepts in mind:
Ensure users can navigate within your offer and reduce the risk of subscribing twice to the same product using the Purchasely Product and Plans hierarchy.
Make sure to create a Plan in Purchasely for all active In-App Purchases under auto-renewal, even if you have deprecated it from your offer.
Subscription Groups, Products and Plans hierarchy
The notion of Subscription groups, only present on the Apple side, allow two things:
Ensures that a person does not have two subscriptions in the same group.
Manages upgrades/downgrades/crossgrades.
On the Android side, to manage upgrades/downgrades/crossgrades, it is up to the developer to declare that the new subscription replaces another one in the app at the time of subscription and to decide which rule applies. Purchasely takes over this responsibility based on the information provided in the Console.
In order for Purchasely to proceed with this subscription replacement, it first needs to know that two subscriptions are part of the same "Product" in Purchasely's terms (which is the equivalent of a subscription group on iOS).
"Plans", which are variations of the same offer and therefore cannot be taken "at the same time" belong to the same Purchasely Product group.
This means there should be one Purchasely Product per OS Platform. If you create similar Plans in different Purchasely Products, the protection that comes free with our SDK is removed.
To give a more concrete example: if a user subscribes to plan A on Android, in theory, nothing prevents him from buying the same plan (or an upgraded version) on iOS. If they do, they will end up with 2 subscriptions (one on iOS and one on Android).
Our SDK protects your users from this because it recognizes that these two plans are part of the same Purchasely Product.
Bypassing and creating similar plans in different Purchasely Products will remove these protection jumps.
In a nutshell, we recommend creating a single Purchasely Product in which you put all your plans. For example: Subscription Plus (1 year - 2 months free).
Managing Upsells, Downgrades and Legacy renewals
To manage upgrades/downgrades/crossgrades easily, Purchasely developed a system based on a Plan Level ordering which you set in directly in the Purchasely Console.
The highest level number sets the higher product in your upsell hierarchy. Based on this Purchasely will implement rules as follow :
Upgrade
Cancel the current subscription with the remaining time prorated and credited to the user. Open rights to the upgraded product. This sets a new start and renewal date for the subscription.
IMMEDIATE_WITH_TIME_PRORATIONDowngrade
Waits until the end of the current period before switching to the new plan and charging a new price.
DEFERRED
Crossgrade
Cancel the current subscription and open the rights to the newly subscribed product. The new price will be charged on the next recurrence time.
IMMEDIATE_WITHOUT_PRORATION