Solved

App like Udemy: selling courses. How to define products?

  • 26 July 2021
  • 1 reply
  • 216 views

Badge +1

I have an app that sell courses as video lectures written in flutter. My app is rejected from Apple Store because I suppose to use in-app purchases instead of an external payment method. Each course has its own price. I’m a little bit rusty about in-app purchases. There is a lot term here with revenuecat: products, entitlements, offerings. Do I need these all?

 

  • Some courses are non-consumable and has lifetime access.
  • Some courses are subscriptions and has a one time limit.

 

I have a course detail page. When I enter here, I want to check if I bought this course. If yes, I’ll show all videos. If not I want to show a buy button. The prices, id and type(subscription or non-consumable) will come from my rest api. Should I create product id for each course with these information like $courseId1_tier_1, $courseId2_tier_3,  $courseId3_tier_1 or I should create product ids in apple and in google and then share the same products ids with rest and rest api should return product id when course detail is fetched with that info I should fetch if the product id is purchased or subscribed? 

 

How do I fetch a single product with id? (couldn’t find in the apis)

Do I have to create entitlement or offerings for the scenarios up there?

 

 

 

icon

Best answer by jazmine 26 July 2021, 20:52

View original

1 reply

Userlevel 3
Badge +7

Hey @Curious Jane ,

Happy to help clarify things!

There is a lot term here with revenuecat: products, entitlements, offerings. Do I need these all?

For the setup you are describing I recommend setting up all three, but I can define them a little bit more:

  •  Products are the individual SKUs that users actually purchase ( e.g. monthly or annual subscription). Products will first need to be created in the Google/Apple store, the guide on Android products setup/IOS products setup helps give you a step-by-step walkthrough on how to do that. After they are setup up in Google/Apple you add those products to RevenueCat, with this info we can retrieve the products from Google/Apple when you make a purchase.

 

  • Entitlements are the levels of access you want to give your user when they purchase one of your products. So let's say you want to unlock unlimited access ( access could be certain features) for a customer when they purchase either a monthly or annual subscription. You would attach both your monthly and annual products here. The only time you might not use entitlements is when you are using consumable or some non-subscription purchases. We have docs here for that: https://docs.revenuecat.com/docs/non-subscriptions.

 

  • Offerings are what your display to your users via the paywall. For example, this is how you can give your users the option to purchase either a monthly or annual subscription to unlock access.

Should I create product id for each course with these information like $courseId1_tier_1, $courseId2_tier_3,  $courseId3_tier_1 or I should create product ids in apple and in google and then share the same products ids with rest and rest api should return product id when course detail is fetched with that info I should fetch if the product id is purchased or subscribed? 

Yes you will want to create a product in Apple/Google for each individual course. When using the RevenueCat SDK we will fetch the products that are in your current offering from the store( Apple/Google) and all course details will be included( this information is setup when creating your products).

 

How do I fetch a single product with id? (couldn’t find in the apis)

All your products in your offering will be fetched from the respective store so their won’t be a need to fetch an individual product. Do you have a scenario when you would need to do something like this?

 

Do I have to create entitlement or offerings for the scenarios up there?

You will need to create an offering because this is how you will display your products to your customers. Within the scenario you mentioned it would be best to use Entitlements because you are giving a user access to content after a purchase. Here are our docs on how to handle Lifetime access purchases: https://docs.revenuecat.com/docs/non-subscriptions#entitlements.  

 

 

Reply