I’m working on an IOS application with the following in-app purchase options:
- $0.99 - Receive 1 credit per month (Auto-Renewing)
- $1.99 - Receive 3 credits per month (Auto-Renewing)
- $2.99 - Receive 5 credits per month (Auto-Renewing)
- $3.99 - Receive 10 credits per month (Auto-Renewing)
- $4.99 - Receive 1 credit (Consumable)
Users may only subscribe to one auto-renewing option at a time, but they can purchase the single credit consumable without restriction.
My question is how should I organize these products as offerings/entitlements/packages/etc.?
My current method is:
- All four auto-renewing products above are associated with a single entitlement
- Each auto-renewing product has a 1:1 “parent offering”
- The consumable product has no associated entitlement/offering
The tutorials I followed all suggest using offering and entitlements, and so I did. However I feel it’s all clunkier than it has to be. For example, with the Purchases SDK, fetching the offerings and then extracting the packages (products?) seems a little too convoluted, given that it’s just a 1:1 mapping. Secondly, is the entitlement really necessary? I mean, it’s not really unlocking/entitling the user to anything on the UI, other than highlighting which subscription is active. And all of the credit incrementing logic is handled by the backend via a webhook anyways. So I don’t see the need for an entitlement here.
Should I just ditch offerings/entitlements and handle everything as individual products? Thats where I’m leaning but I’d like to get the community’s opinion before refactoring anything.
Any suggestions are much appreciated!