Storefront — SDK gets offers → plan → plan entitlements.

Paywalls

A paywall is a named storefront. The SDK typically does not fetch “plans” alone for UI:
getPaywall('main') already nests prices, plans, and entitlements.

SDK.getPaywall("main")
  → items[]
      → plan_price
      → plans
          → plan_entitlements → entitlements

Client checklist

  1. Render cards from plan + price.
  2. Bullets / comparison from plan entitlements (or your own static UI).
  3. Purchase with plan_price_id (not free).
  4. Feature access via hasEntitlement, not plan display name.