<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/ProductView/init(id:prefersPromotionalIcon:icon:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "StoreKit",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:17_StoreKit_SwiftUI11ProductViewV2id22prefersPromotionalIcon4iconACyxAA09Automatice11PlaceholderJ0VGSS_SbxyXEtcAHRs_rlufc"
  },
  "title" : "init(id:prefersPromotionalIcon:icon:)"
}
-->

# init(id:prefersPromotionalIcon:icon:)

Creates a view to load an individual product from the App Store and merchandise it using a custom icon.

```
nonisolated init(id productID: Product.ID, prefersPromotionalIcon: Bool = false, @ViewBuilder icon: () -> Icon) where PlaceholderIcon == AutomaticProductPlaceholderIcon
```

## Parameters

`productID`

The product identifier to load from the App Store.

`prefersPromotionalIcon`

A Boolean value that indicates whether to use the promotional image from the App Store, if it’s available. If this value is `true` and a promotional image for the product is available, the view displays it instead of the view you provide in the `icon` parameter.

`icon`

A closure that returns the image the view displays when the system finishes loading the product from the App Store.

## Discussion

The product view displays a placeholder icon until the system finishes loading the product. After the product loads, the system uses the view you provide in the `icon` parameter, by default. If `prefersPromotionalIcon` is `true` and the product has a promotional image, the view displays the promotional image as its icon instead of the provided view.

> Tip:
> To gain more control over the image that decorates this view, use the ``doc://com.apple.storekit/documentation/StoreKit/ProductView/init(id:icon:placeholderIcon:)`` initializer. It receives a ``doc://com.apple.storekit/documentation/StoreKit/ProductIconPhase``, which enables you to supply an image for each phase of the image-loading process.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)