---
title: StoreKit views
framework: storekit
role: collectionGroup
role_heading: API Collection
path: storekit/storekit-views
---

# StoreKit views

Display a customizable In-App Purchase store using StoreKit views for SwiftUI.

## Overview

Overview The StoreKit views APIs provide UI to help you build a store for your In-App Purchases, and provide a way for customers to complete the purchase. The views support localization, so your customers see the product names, descriptions, and prices appropriate to their App Store storefront. note: Session 10013: Meet StoreKit for SwiftUI StoreKit manages the layouts across all platforms, so the views look great on any device. You can use SwiftUI APIs to customize how the views integrate with your app. To use StoreKit views, configure your In-App Purchase metadata in App Store Connect, or in a StoreKit configuration file in Xcode if you’re testing your app. Next, create the views using StoreView, ProductView, or SubscriptionStoreView. Finally, customize the default views to match your app by using your own icons, backgrounds, and other styling. Use Previews in Xcode to see your progress as you iterate on your design. For more information on configuring your In-App Purchase metadata, see Manage In-App Purchases. For more information on StoreKit configuration files in Xcode, see Setting up StoreKit Testing in Xcode.

## Topics

### Merchandising In-App Purchases, subscriptions, and offers

- [ProductView](storekit/productview.md)
- [StoreView](storekit/storeview.md)
- [SubscriptionStoreView](storekit/subscriptionstoreview.md)
- [SubscriptionOfferView](storekit/subscriptionofferview.md)
- [Backyard Birds: Building an app with SwiftData and widgets](swiftui/backyard-birds-sample.md)

### Styling product views

- [productViewStyle(_:)](swiftui/view/productviewstyle(_:).md)
- [productIconBorder()](swiftui/view/producticonborder().md)
- [ProductViewStyle](storekit/productviewstyle.md)
- [ProductViewStyleConfiguration](storekit/productviewstyleconfiguration.md)

### Styling subscription store controls

- [subscriptionStoreControlStyle(_:)](swiftui/view/subscriptionstorecontrolstyle(_:).md)
- [subscriptionStoreControlStyle(_:placement:)](swiftui/view/subscriptionstorecontrolstyle(_:placement:).md)
- [SubscriptionStoreControlStyle](storekit/subscriptionstorecontrolstyle.md)
- [SubscriptionStoreControlStyleConfiguration](storekit/subscriptionstorecontrolstyleconfiguration.md)
- [SubscriptionStoreControlPlacement](storekit/subscriptionstorecontrolplacement.md)

### Styling subscription offer views

- [AutomaticSubscriptionOfferViewStyle](storekit/automaticsubscriptionofferviewstyle.md)
- [CompactSubscriptionOfferViewStyle](storekit/compactsubscriptionofferviewstyle.md)
- [SubscriptionOfferViewStyleConfiguration](storekit/subscriptionofferviewstyleconfiguration.md)
- [SubscriptionOfferViewStyle](storekit/subscriptionofferviewstyle.md)

### Configuring subscription store controls

- [subscriptionStoreControlIcon(icon:)](swiftui/view/subscriptionstorecontrolicon(icon:).md)
- [subscriptionStorePickerItemBackground(_:)](swiftui/view/subscriptionstorepickeritembackground(_:).md)
- [subscriptionStorePickerItemBackground(_:in:)](swiftui/view/subscriptionstorepickeritembackground(_:in:).md)
- [subscriptionStoreButtonLabel(_:)](swiftui/view/subscriptionstorebuttonlabel(_:).md)
- [SubscriptionStoreButtonLabel](storekit/subscriptionstorebuttonlabel.md)

### Creating custom subscription store control styles

- [SubscriptionStoreButton](storekit/subscriptionstorebutton.md)
- [SubscriptionStorePicker](storekit/subscriptionstorepicker.md)
- [SubscriptionStorePickerOption](storekit/subscriptionstorepickeroption.md)

### Declaring the structure of a subscription store

- [SubscriptionOptionGroup](storekit/subscriptionoptiongroup.md)
- [SubscriptionOptionGroupSet](storekit/subscriptionoptiongroupset.md)
- [SubscriptionPeriodGroupSet](storekit/subscriptionperiodgroupset.md)
- [SubscriptionOptionSection](storekit/subscriptionoptionsection.md)
- [StoreContent](storekit/storecontent.md)
- [StoreContentBuilder](storekit/storecontentbuilder.md)

### Styling subscription option groups

- [subscriptionStoreOptionGroupStyle(_:)](swiftui/view/subscriptionstoreoptiongroupstyle(_:).md)
- [subscriptionStoreOptionGroupStyle(_:)](storekit/storecontent/subscriptionstoreoptiongroupstyle(_:).md)
- [SubscriptionOptionGroupStyle](storekit/subscriptionoptiongroupstyle.md)

### Adding backgrounds to subscription stores

- [containerBackground(_:for:)](swiftui/view/containerbackground(_:for:).md)
- [containerBackground(for:alignment:content:)](swiftui/view/containerbackground(for:alignment:content:).md)
- [subscriptionStoreControlBackground(_:)](swiftui/view/subscriptionstorecontrolbackground(_:)-7jxa9.md)
- [subscriptionStoreControlBackground(_:)](swiftui/view/subscriptionstorecontrolbackground(_:)-7ev89.md)
- [subscriptionStore](swiftui/containerbackgroundplacement/subscriptionstore.md)
- [subscriptionStoreHeader](swiftui/containerbackgroundplacement/subscriptionstoreheader.md)
- [subscriptionStoreFullHeight](swiftui/containerbackgroundplacement/subscriptionstorefullheight.md)
- [SubscriptionStoreControlBackground](storekit/subscriptionstorecontrolbackground.md)

### Configuring accessory buttons

- [storeButton(_:for:)](swiftui/view/storebutton(_:for:).md)
- [subscriptionStoreSignInAction(_:)](swiftui/view/subscriptionstoresigninaction(_:).md)
- [StoreButtonKind](storekit/storebuttonkind.md)
- [SubscriptionOfferViewButtonKind](storekit/subscriptionofferviewbuttonkind.md)

### Configuring the subscription store policies

- [subscriptionStorePolicyDestination(for:destination:)](swiftui/view/subscriptionstorepolicydestination(for:destination:).md)
- [subscriptionStorePolicyDestination(url:for:)](swiftui/view/subscriptionstorepolicydestination(url:for:).md)
- [subscriptionStorePolicyForegroundStyle(_:)](swiftui/view/subscriptionstorepolicyforegroundstyle(_:).md)
- [subscriptionStorePolicyForegroundStyle(_:_:)](swiftui/view/subscriptionstorepolicyforegroundstyle(_:_:).md)
- [SubscriptionStorePolicyKind](storekit/subscriptionstorepolicykind.md)

### Selecting subscription offers

- [subscriptionPromotionalOffer(offer:signature:)](swiftui/view/subscriptionpromotionaloffer(offer:signature:).md)
- [preferredSubscriptionOffer(_:)](swiftui/view/preferredsubscriptionoffer(_:).md)
- [offerCodeRedemption(isPresented:onCompletion:)](swiftui/view/offercoderedemption(ispresented:oncompletion:).md)

### Configuring purchase options and product descriptions

- [inAppPurchaseOptions(_:)](swiftui/view/inapppurchaseoptions(_:).md)
- [productDescription(_:)](swiftui/view/productdescription(_:).md)

### Responding to store events

- [onInAppPurchaseStart(perform:)](swiftui/view/oninapppurchasestart(perform:).md)
- [onInAppPurchaseCompletion(perform:)](swiftui/view/oninapppurchasecompletion(perform:).md)

### Loading StoreKit data

- [storeProductTask(for:priority:action:)](swiftui/view/storeproducttask(for:priority:action:).md)
- [storeProductsTask(for:priority:action:)](swiftui/view/storeproductstask(for:priority:action:).md)
- [currentEntitlementTask(for:priority:action:)](swiftui/view/currententitlementtask(for:priority:action:).md)
- [subscriptionStatusTask(for:priority:action:)](swiftui/view/subscriptionstatustask(for:priority:action:).md)
- [Product.CollectionTaskState](storekit/product/collectiontaskstate.md)
- [Product.TaskState](storekit/product/taskstate.md)
- [EntitlementTaskState](storekit/entitlementtaskstate.md)

### Requesting a refund

- [refundRequestSheet(for:isPresented:onDismiss:)](swiftui/view/refundrequestsheet(for:ispresented:ondismiss:).md)
