In my Flutter app, I have multiple subscription plans, each with a ‘Subscribe’ button in the UI. After a user subscribes to a plan, that plan’s button instead shows ‘Active Plan’ so they can’t attempt to subscribe to their currently active plan again. Users may upgrade or downgrade, when a user downgrades, their current plan runs through until renewal. During this time I wish to display in my UI a plan is being downgraded to, so they have an accurate understanding of their current status and they can’t attempt to subscribe to a plan they are already downgrading to again, as that will just result in a popup saying it is already their current plan.
How can I see if and which plan is being downgraded to in the app? I’ve tried using isActive and willRenew fields from getCustomerInfo(), however these fields don’t seem to provide useful information for this case, as multiple plans have ‘willRenew: true’ despite them not being active or renewing to. The index of items in the entitlements field didn’t seem to represent each package I’ve purchased in order when testing. Possibly comparing every latestPurchaseDate field would work, but that doesn’t seem like a very clean or reliable way to determine this. I could not figure any other information in CustomerInfo that I could use to determine a plan is being downgraded to.
I saw a similar post a couple of years ago that resolved with the conclusion; it complicates the app to show a user a plan they are downgrading to. I disagree, I believe it is a much less confusing user experience when they downgrade, that there is a change in the UI rather than them still seeing a ‘Subscribe’ or ‘Downgrade’ button on the plan they just downgraded to.
Question
Determining what plan a customer is downgrading to
This post has been closed for comments
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.