A subscription group contains multiple subscriptions with different access levels, prices, and durations so users can select the option that best fits their needs.
A user can only buy one subscription within a group at a time.
Configure a subscription group on IAPHUB
In order to configure a subscription group you must first create it on IAPHUB.
Give the group a name (can be edited at any time) and add the products to the group.
Configure a subscription group on Itunes
On itunes each subscription you offer must be assigned to a subscription group.
The order is very important because it'll determine if the subscription replace is an upgrade/downgrade or crossgrade.
The current active subscription is replaced immediately and the user receive a refund of the prorated amount of the previous subscription.
The Get user API route will return the new subscription in the
activeProducts property and a subscription_replace webhook will be triggered.
The new subscription will be replaced at the next renewal date.
The current active subscription available in the
activeProducts property of the Get user API route will return the new product in the
On the renewal with the new subscription the subscription_replace webhook will be triggered.
A subscription crossgrade depends on the duration of the new subscription.
- If the new subscription has a different duration it'll be the same as a subscription downgrade, the new subscription will be replaced at the next renewal date.
- If the new subscription has the same duration it'll be the same as a subscription upgrade, the new subscription will be replaced immediately.
Configure a subscription group on Google Play
On Android a subscription replace is configured on the client side, there is nothing to do on the Google Play Console.
React-native-iaphub will trigger a subscription replace automatically if an user has an active subscription and is trying to buy a new product of the same subscription group.
The default behavior replace the subscription immediately and the remaining time will be prorated and credited to the user. It is possible to configure react-native-iaphub to use a different proration mode.