---
title: Product
framework: storekit
role: symbol
role_heading: Structure
path: storekit/product
---

# Product

Information about a product that you configure in App Store Connect.

## Declaration

```swift
struct Product
```

## Mentioned in

Supporting monthly subscriptions with a 12-month commitment Supporting Family Sharing in your app Supporting promoted In-App Purchases in your app

## Overview

Overview The Product type represents the in-app purchases that you configure in App Store Connect and make available for purchase within your app. Use Product to perform all product-related tasks in your app, from displaying in-app purchases and offers to making a purchase and getting transaction and subscription status information. To get a Product instance, call products(for:) and provide one or more in-app purchase product identifiers. Use a Product instance to display in-app purchases and subscription offers in your store, as follows: Show the localized name, description, and pricing information using displayName, description, and displayPrice, respectively. Determine whether a user is eligible for an introductory offer for the product using isEligibleForIntroOffer. Display your subscription offers using the subscription information in subscription. When users initiate a purchase, call purchase(options:) or purchase(confirmIn:options:) on the product instance. If your app uses SwiftUI, you can also use PurchaseAction. Set purchase options (Product.PurchaseOption) to define an optional app account token, apply a promotional offer, or set a product quantity. Purchase options can also simulate an Ask to Buy scenario when you’re testing your app in the sandbox environment. Use a Product instance to learn whether a user is entitled to a product by checking currentEntitlement, which holds the transaction that entitles the user to the product. This transaction information, as well as the transaction in latestTransaction, are cryptographically signed by the App Store in JSON Web Signature (JWS) format. If the product is an auto-renewable subscription, use the status and renewalInfo in the subscription information to help manage subscriptions and inform business decisions, such as presenting subscription offers. For information about configuring In-App Purchases in App Store Connect, see Overview for configuring In-App Purchases.

## Topics

### Requesting products from the App Store

- [products(for:)](storekit/product/products(for:).md)

### Displaying a product description and price

- [displayName](storekit/product/displayname.md)
- [description](storekit/product/description.md)
- [displayPrice](storekit/product/displayprice.md)
- [price](storekit/product/price.md)
- [priceFormatStyle](storekit/product/priceformatstyle.md)
- [subscriptionPeriodFormatStyle](storekit/product/subscriptionperiodformatstyle.md)
- [subscriptionPeriodUnitFormatStyle](storekit/product/subscriptionperiodunitformatstyle.md)

### Purchasing a product

- [purchase(options:)](storekit/product/purchase(options:).md)
- [purchase(confirmIn:options:)](storekit/product/purchase(confirmin:options:)-6dj6y.md)
- [purchase(confirmIn:options:)](storekit/product/purchase(confirmin:options:)-3bivf.md)
- [purchase(confirmIn:options:)](storekit/product/purchase(confirmin:options:)-8eai6.md)
- [Product.PurchaseOption](storekit/product/purchaseoption.md)
- [Product.PurchaseResult](storekit/product/purchaseresult.md)
- [Product.PurchaseError](storekit/product/purchaseerror.md)

### Receiving current entitlement information

- [currentEntitlements](storekit/product/currententitlements.md)

### Getting the latest transaction

- [latestTransaction](storekit/product/latesttransaction.md)

### Getting subscription information

- [subscription](storekit/product/subscription.md)
- [Product.SubscriptionInfo](storekit/product/subscriptioninfo.md)
- [Product.SubscriptionPeriod](storekit/product/subscriptionperiod.md)
- [Product.SubscriptionOffer](storekit/product/subscriptionoffer.md)
- [Product.SubscriptionInfo.Status](storekit/product/subscriptioninfo/status-swift.struct.md)

### Getting product identifiers and type

- [id](storekit/product/id.md)
- [type](storekit/product/type.md)
- [Product.ProductType](storekit/product/producttype.md)

### Getting Family Sharing status

- [isFamilyShareable](storekit/product/isfamilyshareable.md)

### Managing promoted in-app purchases

- [Product.PromotionInfo](storekit/product/promotioninfo.md)

### Loading products

- [Product.CollectionTaskState](storekit/product/collectiontaskstate.md)
- [Product.TaskState](storekit/product/taskstate.md)

### Getting product info in JSON format

- [jsonRepresentation](storekit/product/jsonrepresentation.md)

### Getting subscription relationship

- [Product.SubscriptionRelationship](storekit/product/subscriptionrelationship.md)

### Deprecated

- [currentEntitlement](storekit/product/currententitlement.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Identifiable](swift/identifiable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Product and subscription information

- [Implementing a store in your app using the StoreKit API](storekit/implementing-a-store-in-your-app-using-the-storekit-api.md)
- [Supporting monthly subscriptions with a 12-month commitment](storekit/supporting-monthly-subscriptions-with-a-12-month-commitment.md)
- [Managing the life cycle of monthly subscriptions with a 12-month commitment](storekit/managing-lifecycle-of-monthly-subscriptions-with-a-12-month-commitment-.md)
- [Product.SubscriptionInfo](storekit/product/subscriptioninfo.md)
- [SubscriptionInfo](storekit/subscriptioninfo.md)
- [SubscriptionStatus](storekit/subscriptionstatus.md)
