We'd like a method of identifying certain virtual goods as a one-time purchase or a non-virtual good. These would be things like character unlocks, level unlocks, etc. where once purchased, the player owns them permanently. It wouldn't get consumed and there is no reason whatsoever to purchase a second one. If a purchase attempt is made, the user wouldn't get charged and the inventory quantity would remain at one.
We realize that we can regulate this in Cloud Code, but it would make a nice feature in the API/ core.
If we added a parameter on virtual good such as "Max Allowable" we could limit a player to only owning up to this amount.
This would work for items purchased with in game currency, but if it's an item bought through a store the rules may need to be slightly different. By the time you send the store receipt to us the player has already paid for the item, so what would we do in that case?
That sounds great! It would probably serve a few more use cases down the road as well. :)
Not sure about how to handle store receipts. Most of those are marked as non-consumable in the App Store, so the receipt you would be getting would likely be a duplicate (from restoring purchases), but that's certainly not guaranteed.