Summary
The app only renders the Pro badge today. Users cannot buy or renew Ecency Pro from mobile and members have no Pro surface at all. Add Pro as a store in-app purchase through the existing IAP flow (InAppPurchaseContainer + src/providers/iap). A store purchase should grant the same 12-month membership as a web purchase, through the same server-side Pro fulfilment.
Product
- SKU
1999pro, same as web: $19.99 for 12 months. Buying again while active extends from the current expiry (the server already does this).
- Android: one-time product in Play Console, consumed after delivery like the other SKUs so it can be bought again to renew. No auto-renewing subscription.
- iOS: same SKU in App Store Connect. Non-Renewing Subscription is the type that fits a fixed-term membership. Confirm
fetchProducts({ type: 'in-app' }) returns that type before settling on it, otherwise use Consumable.
- No link-out to web checkout anywhere in the app and no copy pointing to buying Pro elsewhere.
Mobile
Backend (separate change, lands first)
Store setup
Acceptance
- A license-tester purchase on the Play test track puts the account on the Pro roster and the badge shows in the app.
- Same for an App Store sandbox purchase.
- A second purchase while active extends the membership by 12 months.
- A cancelled purchase creates no order and changes nothing.
- Perks that are free or discounted for Pro (AI allowances, streak freeze) show the Pro price in the app once the membership is active.
Follow-ups (not in this issue)
- Claim the free Pro blog from the app (web only today).
- Show the membership expiry date (the public roster carries no dates).
Summary
The app only renders the Pro badge today. Users cannot buy or renew Ecency Pro from mobile and members have no Pro surface at all. Add Pro as a store in-app purchase through the existing IAP flow (
InAppPurchaseContainer+src/providers/iap). A store purchase should grant the same 12-month membership as a web purchase, through the same server-side Pro fulfilment.Product
1999pro, same as web: $19.99 for 12 months. Buying again while active extends from the current expiry (the server already does this).fetchProducts({ type: 'in-app' })returns that type before settling on it, otherwise use Consumable.Mobile
useIsProMember.yourname.blogs.ecency.com, supports Ecency, early access), the buy button viaInAppPurchaseContainerwith1999profor both platforms and a success state.1999prothe same way it does for Points.Backend (separate change, lands first)
1999proonplay_storeandapp_storepurchase orders and deliver it through the existing Pro fulfilment. Store orders currently only know the Points, spins, boosts and accounts SKUs, so a1999prostore order would fail verification today.Store setup
1999proin Play Console at $19.99.1999proin App Store Connect with review notes and screenshot.Acceptance
Follow-ups (not in this issue)