can we create IAP non consumable product id dynamically? - ios

i know how to create and use product IDs for a single non-consumable IAP.
I have searched for more than 2 days but can't find the answer.
my app has about 1000s list of books. when users click on a book cell(table view cell), an IAP calls and the user can pay for each.
is it possible to create product id dynamically in code at run time?
if not what is an alternative way to do to create a product id for each book cell?
Note: I don't want to use a credit system, because I want to sell each book individually.
Thank you

Related

How can I create an product ID for an iOS in app purchase programmatically?

I'm trying to sell digital content from third parties within an iOS app. I'm aware Apple will get 30%. In my app, the seller gets a percentage.
The problem is that I need to create a product ID per every product that I sell with an in-app-purchase. If I don't create one I don't know who is buying what and what to pay to whom.
I can create a product ID manually if I have a few sellers, but I have 1000 this can become a problem.
Does anybody know how to do this?
You cannot do this. Each product ID has to be created through iTunes connect, and for each product ID there is a review process. There is no way to create an iTunes product ID from within an app, because Apple doesn't allow this.

Which In App Purchase should use in following case?

Application is about selling Audio books.
Option 1 : Consumable In App Purchase
It Will have different product ids with common price.
e.g. Audio A and Audio B both have price $2 then both Audio A and Audio B will share common product id.
All user purchase will be managed from server
Option 2 : Non Consumable In App Purchase
Will have different product ids for each audio.
I am confuse because there could be 10k + Audios. Can we create dynamic Non Consumable item ?
Any ideas how to make this scalable?
For that amount of dynamic content you will probably have to implement some kind of custom "currency" which would be a consumable item.
You can either make it completely arbitrary in amount, or you could try to make a few different IAP products to correspond with audio books in different price ranges. So something like $0.99$ book purchase, $1.99 book purchase, etc.
Apple allows up to 1000 in app purchase products to be created. So you cannot create 10k+ products. Also finding the product amongst this will be a very complex task for the user. See if you can bundle books of same price into a single bundle and price them economically so that users tend to purchase. 10 books for 10$ is better than 20$.
You should definitely go with non-consumable option since audio books do not deplete in time.
You have to maintain your own server in between the app and the Apple in app purchase and you need to have a user account management to track what books the user has purchased. You can create a different SKU For each price and and associate the product id with the book on your server and track the purchases done by the user on your own. Since multiple books could map to the same in-app product id, your app should handle the restoring purchases explicitly and based on your app user login enable the audio books on different devices.
Basically the in app flow would be used just for payment purposes. Enabling and downloading of the audio books will have to be controlled between your app and the server.
I would use something like a 2-Dimensional int array. [x][y] whereas x is your individual product ID, and y is the count on how many items are sold. You can then always link your x to a certain price. This way you can easily keep track on how many audio files 'y' with product ID 'x' got bought.
Never give two different audio files with maybe equivalent price the same ID. An ID should always be unique since there are a lot of problems that might occur later:
Implementing the audio files in a seperate database
Audio file becomes cheaper/more expensive, then you´d have to use another ID anyway

Non Consumable and Dynamic in app purchase

I am having an issue implementing the kind of in-app purchase that my application demands, Basically we need to sell story books but the books and their prices are not fixed as the book list comes from some server. The price range is fixed i.e a book will be having price from this 3 prices(0.99$, 1.99$, 2.99$).Apple demands the purchase of books to be a non-consumable purchase, the issue is that we create 3 in-app purchase that I mentioned but there can be any number of books having the price 0.99$ but once we have purchased a book with in-app id of price 0.99$, if we purchase another book with same in-app ID it will say you have already purchased this item.We just want is to create a single in-app id and use them with multiple books of same price.Please help me out with some solution regarding this issue.
For non-consumable in-app purchase you will need to create an in-app purchase code in iTunesConnect for each product. You can't use a generic product code as content purchases need to be restorable (and you would also have the problem that you pointed out of not being able to purchase more than one product at each price point).
Each content in-app purchasable item needs to be submitted to Apple for approval.
Maybe you can try to let users purchase virtual currencies in your app. Then let them use those currencies to buy your books. In this case, you don't have to worry about the dynamic price and all you have is a single IAP item(currencies). But your server has to handle the purchase history carefully.
Not sure if this helps, i am dealing with the same problem in subscription items.
You can create three consumables IAPs; a 'One dollar book' consumable, a 'two dollar book' consumable and a 'three dollar book' consumable. Each consumable can be used by the user to download (or otherwise secure access to) one book in that price category. Alternatively you could just sell Tokens and require that the user cash in 1,2 or 3 Tokens to buy a book in each of the three (or more) categories. You would need to keep track of the user's purchases or create some way of allowing the user to transfer rights from one device to another device. iCloud (each App has a key-value object) is good at managing that.

Buying multiple SKProducts with single payment

I'm walking through In App guide and trying to figure out how to deal with buying multiple products. Let's say I have 3 features available to buy via IAP and I want to have option to select which ones user is willing to buy, then buy all selected at once. Should I create only 3 products (for each feature) or should I create one product for each possible combination of available features (like: A, B, C, A+B, A+C, A+B+C...) ? I tried to google it, but I have nothing so far, not sure if I'm asking good question or what. Can anyone direct me somewhere, some tutorial or advice?
The In App Purchase SDK present only the paymentWithProduct: method which enable only one product as parameter. You may only set the quantity to be more than 1.
If you want to propose package of In-App you should register them as separate In-App on itunesConnect and propose them in your app. But if you don't set a price different than the sum of the separate products, I don't see a real advantage to the user.

Reusing Non-Consumable product code

Say, in my app, I offer books.
Correct me if I am wrong, book are non-Consumable products.
Say, every book costs 1$. Do I need to have multiple products in itunes? Or can I have one product and repurchase it (reuse it's product code), for every new request to buy another book.
No you can't use the same ID for every book, you will get refused with a warning message when one non-consumable is resold.
Have a look at the overview of in-app purchases below:
https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/APIOverview/OverviewoftheStoreKitAPI.html#//apple_ref/doc/uid/TP40008267-CH100-SW1

Resources