# バンドルを作成

複数のアイテムを1つの単位としてセット販売するバンドルを作成します。バンドルには、仮想アイテム、仮想通貨パッケージ、ゲームキー、および他のバンドルを含めることができます。詳細については、バンドルセクションを参照してください。

注意content配列内のすべてのアイテムは、事前にプロジェクト内で作成されている必要があります。指定されたSKUが存在しない場合、システムはエラーを返します。

Endpoint: POST /v2/project/{project_id}/admin/items/bundle
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    プロジェクトID。このパラメータは、パブリッシャーアカウントのプロジェクト名の横、またはプロジェクトの作業中にブラウザのアドレスバーで確認できます。URLの形式は以下の通りです：https://publisher.xsolla.com//projects/。
    Example: 44056

## Request fields (application/json):

  - `sku` (string, required)
    一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。

  - `name` (object,null, required)
    アイテム名に関するローカライズ用オブジェクト。2文字の小文字の言語コード（例：en）または5文字の言語コード（例：en-US）のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合（例：enとen-US）、最後に提供された値が保存されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。

  - `groups` (array)
    アイテムが所属するグループ。

注。文字列の値はグループ external_idを指します。

  - `attributes` (array)
    属性リスト。

注意。アイテムの属性は20個以上指定することはできません。制限を超えようとすると、エラーが発生します。

  - `attributes.external_id` (string, required)
    一意の属性ID。external_idには、小文字と大文字のラテン英数字、ダッシュ、およびアンダースコアのみが含まれます。

  - `attributes.name` (object)
    属性用のローカライズされたオブジェクト。キーはISO 3166-1で指定されています。

  - `attributes.values` (array, required)
    注意。各属性に6つ以上の値を作成することはできません。制限を超えようとすると、エラーが発生します。
    Example: [{"external_id":"strategy","value":{"en":"Strategy","de":"Strategie"}},{"external_id":"action","value":{"en":"Action","de":"Aktion"}}]

  - `attributes.values.external_id` (string, required)
    属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。
    Example: "value_external_id"

  - `attributes.values.value` (object, required)
    値名がローカライズされたオブジェクト。キーはISO 3166-1で指定されています。

  - `description` (object,null, required)
    アイテムの説明に関するローカライズ用オブジェクト。2文字の小文字の言語コード（例：en）または5文字のロケールコード（例：en-US）のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合（例：enとen-US）、最後に提供された値が保存されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。

  - `long_description` (object,null)
    アイテムの長文説明のローカライズを含むオブジェクト。2文字の小文字の言語コード（例：en）または5文字のロケールコード（例：en-US）のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のバリアント（例：enとen-US）が提供された場合、最後に提供された値が保存されます。サポートされている言語の完全なリストは、[ドキュメント](/ja/doc/shop-builder/references/supported-languages/)で確認できます。

  - `image_url` (string,null)
    画像URL。決済UI上で画像を正しく表示し、高速に読み込ませるために、当社の画像およびURLガイドラインを確認ください：サポートされているフォーマット：WebP（推奨）、PNG、JPGファイルサイズ：50 KB以下（WebPの場合）または150 KB以下（PNGおよびJPGの場合）画像サイズ：280 × 280 pxカラースペース：sRGBプロトコル：バージョン管理されたURLに対する、長期キャッシュを伴うHTTPS

  - `prices` (array)
    実際通貨建ての価格。

  - `prices.amount` (string, required)
    アイテム価格。

  - `prices.currency` (string, required)
    商品価格通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) による3文字コード。

  - `prices.is_default` (boolean, required)
    ユーザーの通貨での価格が指定されていない場合、デフォルトの価格がカタログ作成に使用されます。

  - `prices.is_enabled` (boolean, required)
    価格が有効になりました。

  - `prices.country_iso` (string,null)
    この価格が利用可能な国。[ISO 3166-1 alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に基づく2文字コード。
    Example: "US"

  - `vc_prices` (any)

  - `bundle_type` (string)
    バンドルタイプ。standardを使用してアイテムのバンドルを作成し、バンドルに含まれるアイテムの SKU を指定します。
 partner_side_contentを使用して空のバンドルを作成し、[ウェブフック](https://developers.xsolla.com/ja/webhooks/operation/personalized-partner-catalog/)を使用してユーザー側でアイテムを追加します。このタイプは、[パートナー側でのカタログ個人用設定](https://developers.xsolla.com/ja/doc/shop-builder/features/personalization/#guides_personalization_on_partner_side)でのみ使用されます。
    Enum: "standard", "partner_side_content"

  - `content` (array)
    バンドルに含まれるアイテムの配列です。各エントリでアイテムのSKUと数量を指定します。すべてのアイテムは、事前にプロジェクト内で作成されている必要があります。指定されたSKUが存在しない場合、システムはエラーを返します。
    Example: [{"sku":"com.xsolla.kg_1","quantity":1}]

  - `content.sku` (string, required)
    バンドルに含めるアイテムのSKUです。このアイテムは、事前にプロジェクト内で作成されている必要があります。指定されたSKUが存在しない場合、システムはエラーを返します。使用可能な文字は、半角英数字（a–z、A–Z、0–9）、ピリオド（.）、ハイプン（-）、アンダースコア（_）です。
    Example: "com.xsolla.kg_1"

  - `content.quantity` (integer)
    バンドル内の選択されたアイテムの数量。
    Example: 1

  - `is_free` (boolean)
    アイテムが無料かどうか。

  - `is_paid_randomized_reward` (boolean)
    アイテムが、ルートボックスなどのランダムな有料報酬であるかどうか。

  - `is_enabled` (boolean)
    無効の場合、アイテムを検索して購入することはできません。

  - `is_show_in_store` (boolean)
    アイテムは購入可能です。

  - `media_list` (any)

  - `order` (integer)
    リスト内のバンドル順の優先順位。

  - `regions` (array)

  - `regions.id` (integer)
    Example: 1

  - `limits` (object)
    アイテム制限。

  - `limits.per_user` (any)
    別ユーザーのアイテム制限。

  - `limits.per_item` (integer,null)
    グローバルアイテム制限。

  - `limits.recurrent_schedule` (object,null)
    制限更新期間。

  - `limits.recurrent_schedule.per_user` (any)
    購入制限のリセットは、指定された時間間隔で実行されます。

  - `periods` (array,null)
    アイテム販売期間。

  - `periods.date_from` (string)
    指定されたアイテムの販売開始日。
    Example: "2020-08-11T10:00:00+03:00"

  - `periods.date_until` (string,null)
    指定されたアイテムが販売できなくなる日付。nullを指定することもできます。
    Example: "2020-08-11T20:00:00+03:00"

  - `custom_attributes` (object)
    アイテムの属性と値を含むJSONオブジェクト。属性により、アイテムを使用するために必要なプレイヤーのレベルなど、より詳細な情報をアイテムに追加することができます。属性はゲームの内部ロジックを豊かにし、専用の「取得」メソッドやウェブフックからアクセスできます。

## Response 201 fields (application/json):

  - `sku` (string)
    一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"

  - `errorMessageExtended` (array)


