

AWS Marketplace API 參考已重組。如需支援的 API 操作的詳細資訊，請參閱 [AWS Marketplace API 參考](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用優惠集
<a name="work-with-offer-sets"></a>

AWS Marketplace 優惠集可讓賣方將多個私有優惠封裝為買方的統一多產品可交易套件。此功能可解決客戶在複雜企業環境中對全方位end-to-end解決方案的需求。

傳統上，買方必須從多個賣方探索和購買個別產品，導致分散的體驗、整合挑戰和更長的採購週期。優惠集透過允許 AWS Marketplace 合作夥伴將多個優惠結合在一起，透過協調的私有優惠簡化交易程序，客戶可以在其中檢閱並接受所有元件並取得一次性核准。

優惠集與 解決方案搭配使用，以提供全方位的多產品優惠。解決方案提供豐富的行銷內容，包括詳細說明、架構圖表和使用案例文件，而優惠集處理可交易的封裝和商業條款，以進行統一的採購。

## 優惠集實體
<a name="offer-set-entity"></a>

優惠集是將 2-7 個私有優惠分組為單一可交易套件的容器。優惠集中的每個優惠都會維護自己的不同定價、付款條件、持續時間和最終使用者授權合約 (EULA)，而優惠集則為買方提供統一的探索和接受體驗。

**關鍵特性：**
+ 將多個私有優惠分組 （最少 2 個，最多 7 個）
+ 透過單一動作，讓統一買方接受所有優惠
+ 使用每個優惠的不同條款維持靈活性
+ 為每個產品建立單獨的協議，允許在購買後進行獨立管理
+ 可以選擇性地與增強型行銷內容的解決方案建立關聯

優惠集實體類型為 `OfferSet@1.0`。

**實體識別符**

優惠集使用`offerset-*`識別符格式 （例如 `offerset-abc123def456`)。

**實體 ARN 格式**

優惠集遵循標準 AWS ARN 格式：

```
arn:aws:aws-marketplace:{region}:{account-id}:AWSMarketplace/OfferSet/{offerset-id}
```

範例：

```
arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/offerset-abc123def456
```

## 優惠集入門
<a name="getting-started-with-offer-sets"></a>

本節提供使用 AWS Marketplace 目錄 API [變更類型](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_Change.html)建立和管理優惠集的詳細資訊。

開始之前，請確定您已：
+ 有效的 AWS Marketplace 賣方註冊和公開設定檔。如需詳細資訊，請參閱[註冊和建立您的賣方設定檔](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html)。
+ 存取 API 和完成的賣方先決條件。如需詳細資訊，請參閱 [AWS Marketplace Catalog API 的存取控制](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html)。
+ 了解使用 AWS Marketplace Catalog API 的基本知識，請參閱[使用 AWS Marketplace Catalog API](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html)。

## 列出優惠集
<a name="list-offer-sets"></a>

若要列出您帳戶中的所有優惠集，請呼叫 `ListEntities` API 操作，並將 `EntityType` 設定為 `OfferSet`。

**請求**

```
POST /ListEntities HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "EntityType": "OfferSet"
}
```

**回應**

```
{
  "EntitySummaryList": [
    {
      "EntityType": "OfferSet",
      "EntityId": "offerset-xyz123",
      "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/offerset-xyz123",
      "LastModifiedDate": "2025-06-25T23:46:25Z",
      "OfferSetSummary": {
        "Name": "Enterprise Security Solution Offer Set",
        "State": "Released",
        "ReleaseDate": "2025-06-25T23:46:20Z",
        "SolutionId": "soln-abc987",
        "AssociatedOfferIds": [
          "offer-abc123",
          "offer-def456",
          "offer-ghi789"
        ]
      }
    }
  ],
  "NextToken": null
}
```

### 依狀態篩選優惠集
<a name="filter-offer-sets-by-state"></a>

您可以使用 `EntityTypeFilters` 參數，依狀態篩選優惠集。

**請求**

```
POST /ListEntities HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "EntityType": "OfferSet",
  "EntityTypeFilters": {
    "OfferSetFilters": {
      "State": {
        "ValueList": [
          "Released"
        ]
      }
    }
  }
}
```

### 依解決方案 ID 篩選優惠集
<a name="filter-offer-sets-by-solution-id"></a>

您可以使用 `EntityTypeFilters` 參數，依解決方案 ID 篩選優惠集。

**請求**

```
POST /ListEntities HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "EntityType": "OfferSet",
  "EntityTypeFilters": {
    "OfferSetFilters": {
      "SolutionId": {
        "ValueList": [
          "soln-abc987"
        ]
      }
    }
  }
}
```

### 依發行日期篩選優惠集
<a name="filter-offer-sets-by-release-date"></a>

您可以依發行日期篩選優惠集，並使用 `EntityTypeFilters`和 `EntityTypeSort` 參數排序結果。

**請求**

```
POST /ListEntities HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "EntityType": "OfferSet",
  "EntityTypeFilters": {
    "OfferSetFilters": {
      "ReleaseDate": {
        "AfterValue": "2025-11-01"
      }
    }
  },
  "EntityTypeSort": {
    "OfferSetSort": {
      "SortBy": "ReleaseDate",
      "SortOrder": "DESCENDING"
    }
  }
}
```

## 描述優惠集
<a name="describe-offer-set"></a>

若要取得特定優惠集的詳細資訊，請呼叫 `DescribeEntity` API 操作。

**請求**

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId=offerset-xyz123 HTTP/1.1
```

**回應**

```
{
  "EntityType": "OfferSet@1.0",
  "EntityId": "offerset-xyz123",
  "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/offerset-xyz123",
  "LastModifiedDate": "2025-06-25T23:46:25Z",
  "DetailsDocument": {
    "Id": "offerset-xyz123",
    "Name": "Enterprise Security Solution Offer Set",
    "BuyerNotes": "Complete security solution including endpoint protection and network monitoring",
    "State": "Released",
    "SolutionId": "soln-abc987",
    "ReleaseDate": "2025-06-25T23:46:20Z",
    "AssociatedOffers": [
      {
        "OfferId": "offer-abc123"
      },
      {
        "OfferId": "offer-def456"
      },
      {
        "OfferId": "offer-ghi789"
      }      
    ]
  }
}
```

## 建立優惠集
<a name="create-offer-set"></a>

使用 `CreateOfferSet` 變更類型，以草稿狀態建立新的優惠集實體。這是優惠集生命週期的第一步，建立基礎實體，稍後會在發佈給買方之前使用優惠關聯和中繼資料進行設定。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateOfferSet",
      "Entity": {
        "Type": "OfferSet@1.0"
      },
      "ChangeName": "CreateOfferSetChange",
      "DetailsDocument": {
        "Name": "Enterprise Security Solution Offer Set"
      }
    }
  ]
}
```

提供要新增`CreateOfferSet`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在建立的實體類型。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 請求的詳細資訊。
  + `Name` （字串） （必要） – 與優惠集相關聯的名稱，讓您和客戶更清楚閱讀。長度下限：1 個字元。長度上限：150 個字元。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

成功處理後， AWS Marketplace 會產生具有唯一識別符且字首為 的草稿狀態優惠集`offerset-`。

## 更新優惠集資訊
<a name="update-offer-set-information"></a>

使用`UpdateInformation`變更類型來修改現有優惠集的詳細資訊，包括其名稱和買方備註。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateInformation",
      "Entity": {
        "Type": "OfferSet@1.0",
        "Identifier": "offerset-abc123"
      },
      "DetailsDocument": {
        "Name": "Updated Enterprise Security Offer Set",
        "BuyerNotes": "Complete security solution including endpoint protection, network monitoring, and professional services implementation"
      }
    }
  ]
}
```

提供要新增`UpdateInformation`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在更新的實體。
  + `Identifier` （字串） （必要） – 您的優惠集 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 至少必須提供一個欄位。
  + `Name` （字串） （選用） – 顯示買方可見的名稱。長度下限：1 個字元。長度上限：150 個字元。
  + `BuyerNotes` （字串） （選用） – 優惠集的詳細資訊，可協助買方了解其目的和內容。長度下限：1 個字元。長度上限：1，000 個字元。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

## 將優惠與優惠集建立關聯
<a name="associate-offers"></a>

使用`AssociateOffers`變更類型將多個 AWS Marketplace 優惠與優惠集建立關聯。這會建立優惠與優惠集之間的關係，使優惠集成為可交易組態的一部分。

操作是等冪的，並允許關聯優惠，無論其目前狀態為何，在發行個別優惠之前啟用完整的組態。每個優惠只能屬於一個優惠集。

**重要**  
個別優惠`OfferSetId`上的 是不可變的，只能在優惠建立期間設定。使用 將優惠與優惠集建立關聯之前`AssociateOffers`，您必須先建立個別優惠，並在建立優惠`OfferSetId`期間指定 。如果您需要包含沒有正確 的現有優惠`OfferSetId`，您必須使用正確的`OfferSetId`指定建立新的優惠。

如需必要 IAM 許可的詳細資訊，請參閱 [優惠集的 IAM 許可](#iam-permissions-offer-sets)。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "AssociateOffers",
      "Entity": {
        "Type": "OfferSet@1.0",
        "Identifier": "offerset-abc123"
      },
      "DetailsDocument": {
        "Offers": [
          {
            "OfferId": "offer-xyz789"
          },
          {
            "OfferId": "offer-def456"
          },
          {
            "OfferId": "offer-ghi123"
          }
        ]
      }
    }
  ]
}
```

提供要新增`AssociateOffers`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在更新的實體。
  + `Identifier` （字串） （必要） – 您的優惠集 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 請求的詳細資訊。
  + `Offers` （陣列） （必要） – 要關聯的 AWS Marketplace 優惠清單。下限：1 個項目。上限：7 個項目。
    + `OfferId` （字串） （必要） – AWS Marketplace 優惠的識別符。長度下限：1 個字元。長度上限：36 個字元。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

### 非同步錯誤
<a name="associate-offers-asynchronous-errors"></a>

以下是 AWS Marketplace 目錄 API 中`AssociateOffers`動作特有的錯誤。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| TOO\_MANY\_OFFERS | 將最多 7 個優惠與優惠集建立關聯。 | 
| INCOMPATIBLE\_OFFER\_SET\_REFERENCE | 確定所有優惠都專門為此優惠集建立。 | 
| INVALID\_UPDATE\_REQUEST | 請求的變更無法在優惠集發佈後執行。 | 

## 取消優惠與優惠集的關聯
<a name="disassociate-offers"></a>

使用`DisassociateOffers`變更類型從 AWS Marketplace 優惠集中移除多個優惠。此等冪操作會移除關聯關係，同時保留優惠的`OfferSetId`屬性。取消關聯的優惠會隱藏在買方探索中，直到與相同的優惠集重新關聯為止。它們無法與不同的優惠集相關聯。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "DisassociateOffers",
      "Entity": {
        "Type": "OfferSet@1.0",
        "Identifier": "offerset-abc123"
      },
      "DetailsDocument": {
        "Offers": [
          {
            "OfferId": "offer-xyz789"
          }
        ]
      }
    }
  ]
}
```

提供要新增`DisassociateOffers`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在更新的實體。
  + `Identifier` （字串） （必要） – 您的優惠集 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 請求的詳細資訊。
  + `Offers` （陣列） （必要） – 要取消關聯的優惠清單。下限：1 個項目。上限：7 個項目。
    + `OfferId` （字串） （必要） – AWS Marketplace 優惠的識別符。長度下限：1 個字元。長度上限：36 個字元。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

### 非同步錯誤
<a name="disassociate-offers-asynchronous-errors"></a>

以下是 AWS Marketplace 目錄 API 中`DisassociateOffers`動作特有的錯誤。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INVALID\_UPDATE\_REQUEST | 請求的變更無法在優惠集發佈後執行。 | 

## 將解決方案與優惠集建立關聯
<a name="associate-solution-with-offer-set"></a>

使用`AssociateSolution`變更類型將單一 AWS Marketplace 解決方案與優惠集建立關聯。這可建立一種關係，讓買方探索優惠集與解決方案的連線，並存取解決方案的豐富行銷內容，例如詳細說明、架構圖和使用案例文件。

**注意**  
這是鬆耦合的關聯。AWS Marketplace 不會強制執行解決方案與優惠集之間的一致性。解決方案不能包含任何 AWS Marketplace 產品、與優惠集中的產品不同的產品，或重疊的產品。您可以完全彈性地將您擁有的任何解決方案建立關聯，以用於行銷和探索目的。

如需必要 IAM 許可的詳細資訊，請參閱 [優惠集的 IAM 許可](#iam-permissions-offer-sets)。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "AssociateSolution",
      "Entity": {
        "Type": "OfferSet@1.0",
        "Identifier": "offerset-abc123"
      },
      "DetailsDocument": {
        "SolutionId": "soln-xyz789"
      }
    }
  ]
}
```

提供要新增`AssociateSolution`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在更新的實體。
  + `Identifier` （字串） （必要） – 您的優惠集 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 請求的詳細資訊。
  + `SolutionId` （字串） （必要） – 要關聯的 AWS Marketplace 解決方案識別符。長度下限：1 個字元。長度上限：50 個字元。必須符合模式 `^soln-[A-Za-z0-9]+$`。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

### 非同步錯誤
<a name="associate-solution-asynchronous-errors"></a>

以下是 AWS Marketplace 目錄 API 中`AssociateSolution`動作特有的錯誤。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_SOLUTION\_ASSOCIATION | 在關聯新解決方案之前，取消現有解決方案的關聯。 | 
| INVALID\_UPDATE\_REQUEST | 請求的變更無法在優惠集發佈後執行。 | 

## 取消解決方案與優惠集的關聯
<a name="disassociate-solution-from-offer-set"></a>

使用`DisassociateSolution`變更類型移除解決方案與優惠集之間的關聯。這會從優惠集移除解決方案的行銷內容，同時維護優惠集可交易的功能。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "DisassociateSolution",
      "Entity": {
        "Type": "OfferSet@1.0",
        "Identifier": "offerset-abc123"
      },
      "DetailsDocument": {
        "SolutionId": "soln-xyz789"
      }
    }
  ]
}
```

提供要新增`DisassociateSolution`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在更新的實體。
  + `Identifier` （字串） （必要） – 您的優惠集 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 請求的詳細資訊。
  + `SolutionId` （字串） （必要） – 要取消關聯的解決方案識別符。長度下限：1 個字元。長度上限：50 個字元。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

### 非同步錯誤
<a name="disassociate-solution-asynchronous-errors"></a>

以下是 AWS Marketplace 目錄 API 中`DisassociateSolution`動作特有的錯誤。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INVALID\_UPDATE\_REQUEST | 請求的變更無法在優惠集發佈後執行。 | 

## 發行優惠集
<a name="release-offer-set"></a>

使用`ReleaseOfferSet`變更類型為買方提供優惠集。發行後，優惠集會從 Draft 轉換為已發行狀態、透過 可探索 AWS Marketplace，而且關聯的優惠只能做為統一套件的一部分找到。

發行的優惠集會在兩個層級產生通知：個別優惠和優惠集本身。所有個別優惠通知都會在現有的通知管道 ([電子郵件通知](https://docs.aws.amazon.com/marketplace/latest/userguide/email-notifications.html)和 [Amazon EventBridge 事件](https://docs.aws.amazon.com/marketplace/latest/userguide/notifications-eventbridge.html)) 中包含 OfferSetId。優惠集層級通知會針對重要事件傳送，例如優惠集發佈時。

**請求語法**

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "ReleaseOfferSet",
      "Entity": {
        "Type": "OfferSet@1.0",
        "Identifier": "offerset-abc123"
      },
      "DetailsDocument": {}
    }
  ]
}
```

提供要新增`ReleaseOfferSet`變更類型的欄位資訊：
+ `Entity` （物件） （必要） – 正在更新的實體。
  + `Identifier` （字串） （必要） – 您的優惠集 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
  + `Type` （字串） （必要） – 必須為 `OfferSet@1.0`。
+ `DetailsDocument` （物件） （必要） – 此操作的空物件。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘的時間。

您可以透過 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 來檢查請求的狀態。

### 非同步錯誤
<a name="release-offer-set-asynchronous-errors"></a>

以下是 AWS Marketplace 目錄 API 中`ReleaseOfferSet`動作特有的錯誤。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| MISSING\_BUYER\_NOTES | 在釋出優惠集之前提供 BuyerNotes。 | 
| MISSING\_OFFERS | 在發佈優惠集之前，至少將兩個優惠關聯到優惠集。 | 
| TOO\_MANY\_OFFERS\_PER\_PRODUCT | 每個產品只能將一個優惠與優惠集建立關聯。 | 
| INCONSISTENT\_OFFER\_CURRENCY\_CODE | 確保所有相關聯的優惠都有相符的 CurrencyCode。 | 
| INCONSISTENT\_OFFER\_AVAILABILITY\_END\_DATE | 確保所有相關聯的優惠都有相符的 AvailabilityEndDate。 | 
| INCONSISTENT\_OFFER\_TARGETING\_RULE | 確保所有相關聯的優惠都有相符的 TargetingRule。 | 
| INCOMPATIBLE\_OFFER\_TARGETING\_RULE | 只有以買方為目標的優惠可以與優惠集相關聯。 | 
| EXPIRED\_OFFERS | 取消過期優惠與優惠集的關聯或延長其 AvailabilityEndDates。 | 
| DRAFT\_OFFERS | 在釋出優惠集之前，先釋出所有相關聯的優惠。 | 
| INCOMPATIBLE\_SOLUTION\_STATE | 提供有限或公有狀態的解決方案。 | 
| INVALID\_UPDATE\_REQUEST | 無法在優惠集發佈後執行請求的變更。 | 

## 優惠集生命週期
<a name="offer-set-lifecycle"></a>

優惠集生命週期包含下列階段：

### 建立階段
<a name="creation-phase"></a>

使用`CreateOfferSet`變更類型以草稿狀態建立優惠集實體。優惠集會收到唯一的識別符，並以草稿狀態開始。

### 組態階段
<a name="configuration-phase"></a>

在組態期間，您會：
+ 使用 新增或更新中繼資料 `UpdateInformation`（名稱、買方備註）
+ 建立個別私有優惠，在優惠建立`OfferSetId`期間指定
+ 使用 將優惠與優惠集建立關聯 `AssociateOffers`
+ 選擇性地使用 建立解決方案的關聯`AssociateSolution`，以增強行銷內容

**重要**  
個別優惠`OfferSetId`上的 是不可變的，只能在優惠建立期間設定。使用 將優惠與優惠集建立關聯之前`AssociateOffers`，您必須先建立個別優惠，並在建立優惠`OfferSetId`期間指定 。如果您需要包含沒有正確 的現有優惠`OfferSetId`，您必須使用正確的`OfferSetId`指定建立新的優惠。

### 驗證階段
<a name="validation-phase"></a>

在釋出優惠集之前，請確定：
+ 優惠集包含 2 到 7 個優惠
+ 所有相關聯的優惠都必須是：
  + 處於已發行狀態
  + 作用中
  + 使用相同的貨幣
  + 針對相同的買方 AWS 帳戶 ID (s)
  + 具有相同的過期日期

### 發行階段
<a name="release-phase"></a>

準備就緒時，請使用`ReleaseOfferSet`變更類型，將優惠集從 Draft 轉換為 Released 狀態。這可讓買方透過 探索優惠集 AWS Marketplace。

### 發行後管理
<a name="post-release-management"></a>

**過期管理：**
+ 優惠集的有效過期計算方式為所有相關優惠中最早的過期日期
+ 您可以使用現有的優惠管理功能修改個別優惠過期日期 (`UpdateAvailability` 變更類型）

**優惠集修改：**

當買方請求變更發行的優惠集時，請使用重新建立工作流程：

1. 建立新的優惠集實體

1. 對於不需要變更的優惠，請透過 AWS Marketplace 管理入口網站複製現有的優惠

1. 對於需要修改的優惠，請使用請求的變更建立新的優惠，指定新的 `OfferSetId`

1. 使用 將所有優惠 （複製和新） 與新優惠集建立關聯 `AssociateOffers`

1. 使用 發行新的優惠集 `ReleaseOfferSet`

1. 透過設定相關優惠的可用性結束日期來過期原始優惠集

## 優惠集的 IAM 許可
<a name="iam-permissions-offer-sets"></a>

若要使用 AWS Marketplace 目錄 API 使用優惠集，您需要特定的 IAM 許可。本節說明優惠集操作和跨實體授權需求所需的許可。

### 必要的 IAM 動作
<a name="required-iam-actions"></a>

優惠集操作需要下列 IAM 動作：
+ `aws-marketplace:StartChangeSet` – 所有優惠集變更類型都需要，包括建立、更新、關聯和發行操作
+ `aws-marketplace:DescribeChangeSet` – 檢查變更集執行的狀態和結果時需要
+ `aws-marketplace:ListEntities` – 列出您帳戶中的優惠集時需要
+ `aws-marketplace:DescribeEntity` – 擷取優惠集的詳細資訊時需要

### 資源許可
<a name="resource-permissions"></a>

使用下列 ARN 模式來授予特定資源的許可：
+ **優惠集** – `arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/*`
+ **個別優惠** – `arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Offer/*`
+ **解決方案** – `arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*`

如需更嚴格的許可，請以特定實體識別符取代萬用字元 (\*)。

### 跨實體授權
<a name="cross-entity-authorization"></a>

有些優惠集操作需要優惠集和相關聯實體的許可：

**AssociateOffers**
+ `aws-marketplace:StartChangeSet` 優惠集實體的 許可
+ `aws-marketplace:StartChangeSet` 具有與每個個別優惠實體相關聯之`AssociateWithOfferSet`變更類型的許可

**AssociateSolution**
+ `aws-marketplace:StartChangeSet` 優惠集實體的 許可
+ `aws-marketplace:StartChangeSet` 在要關聯的解決方案實體上具有`AssociateWithOfferSet`變更類型的許可

**注意**  
對優惠或解決方案只有 `DescribeEntity`（唯讀） 許可不足以進行關聯操作。您必須擁有與優惠集相關聯之實體的變更`AssociateWithOfferSet`類型`StartChangeSet`許可。

### 範例 IAM 政策
<a name="example-iam-policies"></a>

**基本優惠集管理**

此政策提供不使用跨實體關聯的基本優惠集操作的許可：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:StartChangeSet",
        "aws-marketplace:DescribeChangeSet",
        "aws-marketplace:ListEntities",
        "aws-marketplace:DescribeEntity"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/*"
      ]
    }
  ]
}
```

**AssociateOffers 的跨實體許可**

此政策示範 AssociateOffers 所需的特定許可和條件：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "aws-marketplace:StartChangeSet",
      "Resource": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/*",
      "Condition": {
        "StringEquals": {
          "catalog:ChangeType": ["AssociateOffers"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "aws-marketplace:DescribeEntity",
      "Resource": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Offer/*"
    },
    {
      "Effect": "Allow",
      "Action": "aws-marketplace:StartChangeSet",
      "Resource": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Offer/*",
      "Condition": {
        "StringEquals": {
          "catalog:ChangeType": ["AssociateWithOfferSet"]
        }
      }
    }
  ]
}
```

如需更嚴格的許可，請以特定實體識別符取代萬用字元 (\*)。

**AssociateSolution 的跨實體許可**

此政策示範 AssociateSolution 所需的特定許可和條件：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "aws-marketplace:StartChangeSet",
      "Resource": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/OfferSet/*",
      "Condition": {
        "StringEquals": {
          "catalog:ChangeType": ["AssociateSolution"]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "aws-marketplace:DescribeEntity",
      "Resource": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*"
    },
    {
      "Effect": "Allow",
      "Action": "aws-marketplace:StartChangeSet",
      "Resource": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*",
      "Condition": {
        "StringEquals": {
          "catalog:ChangeType": ["AssociateWithOfferSet"]
        }
      }
    }
  ]
}
```

如需更嚴格的許可，請以特定實體識別符取代萬用字元 (\*)。