<!--
{
  "availability" : [
    "iOS: 18.4.0 -",
    "iPadOS: 18.4.0 -",
    "macOS: 15.4.0 -",
    "tvOS: 18.4.0 -",
    "visionOS: 2.4.0 -",
    "watchOS: 11.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/AdvancedCommerceProduct",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "s:8StoreKit23AdvancedCommerceProductV"
  },
  "title" : "AdvancedCommerceProduct"
}
-->

# AdvancedCommerceProduct

A product configured as a generic SKU in App Store Connect for use with the Advanced Commerce API.

```
struct AdvancedCommerceProduct
```

## Overview

For more information about <doc://com.apple.documentation/documentation/AdvancedCommerceAPI>, see [Advanced Commerce API](https://developer.apple.com/in-app-purchase/advanced-commerce-api/).

## Topics

### Getting the product ID and type

[`let id: AdvancedCommerceProduct.ID`](/documentation/StoreKit/AdvancedCommerceProduct/id)

The generic product ID.

[`typealias ProductType`](/documentation/StoreKit/AdvancedCommerceProduct/ProductType)

[`let type: AdvancedCommerceProduct.ProductType`](/documentation/StoreKit/AdvancedCommerceProduct/type)

The type of the product.

### Initiating purchases

[`struct PurchaseOption`](/documentation/StoreKit/AdvancedCommerceProduct/PurchaseOption)

[`func purchase(compactJWS: String, confirmIn: NSWindow, options: Set<AdvancedCommerceProduct.PurchaseOption>) async throws -> AdvancedCommerceProduct.PurchaseResult`](/documentation/StoreKit/AdvancedCommerceProduct/purchase(compactJWS:confirmIn:options:)-7x4bh)

Processes a purchase for the product.

[`func purchase(compactJWS: String, confirmIn: UIViewController, options: Set<AdvancedCommerceProduct.PurchaseOption>) async throws -> AdvancedCommerceProduct.PurchaseResult`](/documentation/StoreKit/AdvancedCommerceProduct/purchase(compactJWS:confirmIn:options:)-54lkw)

Processes a purchase for the product.

[`func purchase(compactJWS: String, options: Set<AdvancedCommerceProduct.PurchaseOption>) async throws -> AdvancedCommerceProduct.PurchaseResult`](/documentation/StoreKit/AdvancedCommerceProduct/purchase(compactJWS:options:))

Processes a purchase for the product.

[`typealias PurchaseResult`](/documentation/StoreKit/AdvancedCommerceProduct/PurchaseResult)

### Getting transactions and entitlements

[`var allTransactions: Transaction.Transactions`](/documentation/StoreKit/AdvancedCommerceProduct/allTransactions)

All transactions associated with the generic product ID.

[`var currentEntitlements: Transaction.Transactions`](/documentation/StoreKit/AdvancedCommerceProduct/currentEntitlements)

The transactions that entitle the customer to Advanced Commerce Items purchased using the generic product ID.

[`var latestTransaction: VerificationResult<Transaction>?`](/documentation/StoreKit/AdvancedCommerceProduct/latestTransaction)

The most recent transaction associated with the generic product ID, if it exists.

### Initializing an instance

[`init(id: AdvancedCommerceProduct.ID) async throws`](/documentation/StoreKit/AdvancedCommerceProduct/init(id:))

Creates an Advanced Commerce product.

### Handling errors

[`struct InvalidRequestError`](/documentation/StoreKit/InvalidRequestError)

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`Copyable`](/documentation/Swift/Copyable)

[`Escapable`](/documentation/Swift/Escapable)

[`Sendable`](/documentation/Swift/Sendable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`Identifiable`](/documentation/Swift/Identifiable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

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)