PurchaseRequirement

public class PurchaseRequirement : Hashable, Equatable, CustomStringConvertible

Use a PurchaseRequirement to express the rules about what purchased products enable your Feature(s).

You can express complex rules about how your Features are enabled using a graph of requirements. Each Feature can have multiple purchase requirements (combined with AND), but one requirement can match one or all of a list of product IDs, as well as having dependencies on other requirements.

With this you can express the following kinds of rules:

  • Feature X is available if Product A is purchased
  • Feature X is available if Product A OR Product B OR Product C is purchased
  • Feature X is available if Product A AND Product B AND Product C is purchased
  • Feature X is available if Product A AND (Product B OR Product C) is purchased
  • Feature X is available if (Product A OR Product B) AND ((Product B OR Product C) AND PRODUCT D) is purchased
  • Feature X is available if (Product A OR Product B) AND ((Product B OR Product C) AND PRODUCT D AND PRODUCT E) is purchased

…and so on. This allows you to map Feature availability to a range of different product pricing strategies and relationships, such as Basic level of subscription plus a Founder IAP that maybe offered to unlock all features in future for a one-off purchase, provided they still have a basic subscription.