Hey @Jerry Seigle
I just edited your title and description to improve the search in the community. The Migrating Subscriptions doc should answer your questions. I’ll answer your questions in-line below:
if I do not import data from my old system what will happen with all my users as they open the new app for the first time. Will they have to resubscribe to in app purchases or will revenueCat see there is a existing in app subscription and allow them to use the app.
You’ll have to perform either a server side or a client side migration for users who are currently subscribed in your old system. I’ll dive more into your next 2 questions below.
in the case of question 1 would they have the option to restore there purchase or will it automatically pull in there purchases
You’ll call syncPurchases
upon the very first app launch with the RevenueCat SDK. We have pseudo code in our docs here: https://docs.revenuecat.com/docs/migrating-existing-subscriptions#client-side-migration Once syncPurchases
is called, the receipt on the device is sent to RevenueCat’s servers and will be tracked.
If I import data what data is required. If I need user Id would this be the id provided by apple or id generated from my server
You can read more about what fields are required in our REST API docs if you wish to import this data instead: https://docs.revenuecat.com/reference/receipts The app user ID is the ID generated from your server to identify the customer. Try to include as many optional fields as you can. Price and currency are one of the most important if you want to accurately track revenue. If you currently do not store the customer’s fetch token, then a client side migration is the way to go here. Note that for customers that never open the updated app with the RevenueCat SDK, we will not be able to pull in their transactions through the SDK.
Hello,
I am thinking a migration from ionic to flutter. I checked the pseudocode you mentioned in the client migration, but it includes an implementation of the old system in some way.
I would like to know if this pseudocode can be used but removing the references to the old system. Bellow is a modification I and asking for.
remove this: const isSubscribedInOldSystem = oldTracking.isSubscribed()
const isSubscribedInRevenueCat = !customerInfo.entitlements.active.isEmpty // If the old system
if ( !isSubscribedInRevenueCat) { // Tell Purchases to syncPurchases. // This will sync the user's receipt with RevenueCat. Purchases.shared.syncPurchases { (customerInfo, error) in } }
thanks in advance
Angel