Restore Purchases

Can anyone clarify this “restore mode” or “toggle” that’s being referenced?

I am trying to add in this restore purchases button in my profile settings since it is a requirement for my app to be published, but don’t see these things the Adalo resources are describing…

Hi @Dons,

Current public IAP components don’t have this functionality.
You can search on forum by “Restore Purchase” keyword, there were several threads describing similar problem and how it was solved (as I remember, you need to set your component as “Consumable”).

If you’d like to have Subscriptions in your app - there is a beta program for IAP Subscriptions Components. I think @ben1 could advise if the program is still active and how to apply.

Best regards,

1 Like

@Dons I have faced most problems with iAps purchases and Apple over the recent months. Some requirements I gathered from the process to improve your chances of approval.

  1. You can use both iAp Consumable and Non-Renewing. But be careful using consumable for subscription type purchases. The iAp Consumable cannot be used to deceive the customer or mislead the customer to make it feel like a subscription when it is not. If your pay model resembles a subscription model, use non-renewing subscriptions.

  2. The iAp component on iOS can be renamed to read “restore” and this is accepted by Apple, as it will recognise if you have purchased the product in the past. Simply create a collection for Purchases, and then add the iAp button for the purchases and rename to “restore”. You will need to pass the pruchase from a non purchased list to your purchased list.

  3. Apple need to see a list of “Subscriptions/Purchase” that your app offers, and a list of Subscriptions/Purchase the logged in user has purchased. So you are best clearly having two lists for the logged in Users, such as “My Subscriptions/My Purchases” (Filter these by the subscriptions the user has bought) & “All Subscriptions/Purchase” (Filter these by the subscriptions the user has not bought)

  4. For the “All Subscriptions/Purchases List” set up your iAp Purchase button, and update > logged in user > add current subscription/Purchase. Name the button something like Subscribe, Purchase or Buy. Clearly define what is being bought, duration, and what it unlocks. Be sure to update the iAp metadata with a screenshot for their review and for the store promo iAp image and how they can purchase.

  5. For the “My Subscriptionsc/Purchases List” i.e. the ones the user has purchased successfully there’s a couple of things that were important for Apple review process:
    5.1. Clearly define when the subscription is due to end (if applicable).
    5.1 Clearly rename the Adalo iAp button with “Restore/Renew” NOT buy or purchase. As this product should be in the users previously purchased list, we know that it will also be recognised for the Apple Users account based in the iAp ID that they purchased in the past.

To be double sure, I added the same purchased list into the users settings page, and a clearly defined “Plan End Date (Subscriptions only)”.

But in short, non-renewing subscriptions are possible as are Consumable when used in the right way. If you stick with something similar to the above.

If you are wondering how to set up a subscription type model in your app without waiting on the Auto Renewing Subscription iAp component this is a proven solution below that I set up in my apps.

  1. Set up an action when a user arrives to the home screen which will redirect (sometimes) if the current users plan end date is before current date.
  2. If the user end date has passed they will be redirected to the paywall where I have set up to allow the user to purchase +60 days from today. +90 days +180 days etc…
  3. When the iAp google/Apple payment is successful, I update the current user end date by +60, +90, +180 days from current time (today).

This checking process will then make the user hit a paywall to then manually purchase more days/credits.

To add a trial of 14-30 days, when a user signs up I set user end date by +14 or +30 from today.

Hope this helps, as it’s very easy to give up ! Consumables are easy to get passed usually for non subscription type purchases, like unlocking a feature, or work out, or training plan, just create a list with Purchase ad add the iAp component and change to “Restore”.

3 Likes

This is invaluable! :flushed: Thank you so much for taking the time to provide this!

My current situation is with non-consumables. But after reading your response and looking around the forum again, it seems it is simply not possible to use non-consumables in a straightforward way?
I am creating small profile customizations. For example, a user can purchase a background for their profile. After completing the purchase, the selected background is added to that user’s backgrounds.

  1. Apple needs to see a list of “Subscriptions/Purchase” that your app offers, and a list of Subscriptions/Purchase the logged in user has purchased.

Currently, this is done with the data type “backgrounds” with a many to many relationship (a background can have multiple users and a user can have multiple backgrounds) with the data type “backgrounds” having the properties of an image, price, and users. So, in the database there are 1) the backgrounds available to purchase, and 2) in the user data the background(s) they have purchased.

With this being the scenario, the user would never need to restore their purchases since their purchases are tied to their user data, making a restore purchases button function with the logic of “add logged in user’s backgrounds to logged in user’s backgrounds” which is not possible. All I have currently is a dummy restore purchases button that brings in a modal that says “All purchases restored.”

So in this situation you would suggest changing the product type to consumable and adding the iAp button titled “restore”?

  1. The iAp component on iOS can be renamed to read “restore” and this is accepted by Apple, as it will recognize if you have purchased the product in the past. Simply create a collection for Purchases, and then add the iAp button for the purchases and rename to “restore”. You will need to pass the purchase from a non purchased list to your purchased list.

Can you explain a little more by what you mean when you say “It will recognize if you have purchased the product in the past?” What actions do I need to add to the iAp button for it to do this? Or is it just a dummy button to satisfy Apple.

I should note, I have note submitted this app to Apple or Google yet. But I am adding in the final touches and making sure all the boxes are checked before I do so.

Thank you for the clarification and info! And thanks for all you do in the forum! I was hoping that something might have changed in the last few months since many of the posts were made but it appears not.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.