Help Docs Software LearnDash LearnDash Mobile App How to Configure iOS In-App Products

How to Configure iOS In-App Products

Introduction

Setting up in-app purchases for iOS enables you to monetize courses and memberships directly in your Learndash App.

This guide walks you through configuring agreements, creating non-consumable and subscription products, localizing product information, setting up server notifications, and syncing your products with the Learndash App.

Complete Agreements, Tax, and Banking Setup

  1. Log in to App Store Connect.
  2. Click Business, then select your Legal Entity Name.
  3. Under the Agreements tab:
    • Agree to all terms.
    • Click Set Up Tax, Banking, and Contacts under Paid Apps.
  4. Click Add Bank Account to receive app sales revenue.
  5. Click Complete Tax Forms and fill out the required business information.
  6. Under Contacts, add your contacts for all required roles.

Apple Commission Overview:

  • 15% for annual sales up to $1M
  • 30% for sales beyond $1M
  • Subscriptions: Drop to 15% after the first renewal year

Create a New In-App Purchase Product

If this is your first product, it must be submitted with a new app version. Future products can be submitted individually.

  1. In App Store Connect, go to Apps > [Your App].
  2. In the sidebar, click:
    • In-App Purchases (for Non-Consumable items)
    • Subscriptions (for Auto-Renewable or Non-Renewing Subscriptions)

Choose a Product Type

  • Non-Consumable: One-time purchase (e.g., lifetime course access)
  • Auto-Renewable Subscription: Ongoing access billed monthly or yearly (e.g., membership plans)
  • Non-Renewing Subscription: Time-limited access that doesn’t renew automatically

Add Your Product

  1. Click the + icon or Create.
  2. Enter a Reference Name (internal only).
  3. Enter a Product ID (e.g., com.domain.course_name).
  4. For subscriptions:
    • Choose a Subscription Duration.
    • Select a Subscription Group or create one if needed.

Add Pricing and Localization

  1. Under Subscription Prices, click +, choose your main currency, and select a price.
  2. Under Localizations, click +:
    • Select your app’s main language
    • Enter a Display Name and Description
    • Click Save
  3. Optionally add more languages.

Complete Review Information

  1. Upload a screenshot (640 × 920 px):
    • For a course: show the course screen in the app
    • For a membership: show exclusive content
  2. Add Review Notes describing:
    • What the product is
    • What it unlocks in the app
    • How to access it (e.g., “Log in > More > Products”)
  3. Click Save. The product status should now be Ready to Submit.

Only products marked Ready to Submit can be selected in Learndash App settings.

Add Subscription Group Localization (if applicable)

  1. In App Store Connect, go to Subscriptions > [Your Group].
  2. Click + next to App Store Localizations.
  3. Complete the required fields and click Add.

Configure App Store Server Notifications

App Store notifications inform your server of subscription events (renewals, cancellations, refunds, etc.).

  1. In App Store Connect, go to My Apps > [Your App] > App Information.
  2. Scroll to URL for App Store Server Notifications.
  3. Use the following format:
    • Production URL: https://yourdomain.com?ios_s2s_notification=1
    • Sandbox URL: https://yourdomain.com?ios_s2s_notification=2
  4. Select Version 2 for the notifications version.
  5. Click Save.

Troubleshooting and FAQs

Q: My new product isn’t listed in the Learndash App plugin.
A: Make sure the product is in Ready to Submit status, then click Sync with Apple and relaunch the app.

Q: I can’t assign a subscription group.
A: Create the group in App Store Connect first, then replicate its name under Learndash App > In-App Purchases > Subscription Groups.

Q: Apple rejected my product.
A: Double-check that all localizations are complete, the review screenshot is 640 × 920 px, and your review notes clearly explain the product and access path.

Q: Price changes aren’t reflected in the app.
A: Sync the product again from the plugin and force-close the app to reload metadata.

Was this article helpful?