How can I offer bundle discounts for in-app purchases?

I'm developing an iOS app with over 100 non-consumable in-app purchases grouped into 8 sets. Each set has a different number of individually purchasable items. I would like to allow the user to purchase an entire set for a discounted price (say, 10% off of the cost to purchase the items in the set individually).

I think I can simply create 8 additional in-app purchases, one for each set, and provide access to all of the items in a set when one of these "bundles" is purchased.

However, if the user has already purchased some of the items individually, there's a problem. The bundle price may now exceed what it would cost to purchase the remaining items in the set individually. Is there a way to do one of the following things, or some other way to achieve the same goal?

  • Refund the purchase price of purchased individual items when the user purchases the bundle
  • Adjust the bundle price based on the number of items in the set that have not yet been purchased

Apple's StoreKit currently does not give you enough functionality to implement 'partial purchase' discounts for bundles. You can't offer the user a refund, and in order to change the bundle price you would need to create ALL of the different variations manually (Bundle A; Bundle A with 1 discount; Bundle A with 2 discount; Bundle A with 3 discount; ... Bundle B with 1 discount; ...)


That leaves you with two options to go forward:

1. File an enhancement request in Apple's bug reporter: http://developer.apple.com/bug-reporting/

2. Redo all of your in-app purchases as credits, and then implement all of the logic required to determine "User clicked on package X, discounted for previous purchases A, B and C, so that means InAppPurchase Z, and unlock the bundle when that purchase is approved" rather than the typical simpler and more direct logic 'Click on Bundle X, submit purchase request for in app purchase for Bundle X'.

A better approach may be to sell a consumable package of "Tokens'. Each Token is exchangeable for one of your IAPs. Then, because you want the purchase to be 'non-consumable' rather than 'consumable', record the purchase in the user's iCloud Account and allow them to restore thought iCloud. Point this out to App Review so they don't object to the consumable-for-non-consumable-IAP issue. The Tokens can be sold in quantity for the discount you want (i.e. 10 for the price of 8).

Thanks, NotMyName and PBK. Too bad it's not possible to do it exactly how I'd like, but it's good to know that there are some options to consider.

We are in a similar situation - is there any updated information relating to this for 2019?

How can I offer bundle discounts for in-app purchases?
 
 
Q