コンテンツへスキップ

カタログAPI (2.0.0)

概要

  • バージョン: 2.0.0
  • サーバー: https://store.xsolla.com/api
  • メールでのお問い合わせ
  • お問い合わせURL: https://xsolla.com/
  • 必要なTLSバージョン: 1.2

カタログAPIを使用すると、ゲーム内アイテムのカタログをエクソーラ側で設定し、そのカタログをストア内でユーザーに表示することができます。

本APIでは、以下のカタログエンティティを管理できます:

  • 仮想アイテム — 武器、スキン、ブースターなどのゲーム内アイテム。
  • 仮想通貨 — 仮想商品の購入に使用される仮想通貨。
  • 仮想通貨パッケージ — 事前定義された仮想通貨のバンドル。
  • バンドル — 仮想アイテム、通貨、またはゲームキーを1つのSKUとしてまとめたパッケージ。
  • ゲームキー — Steamやその他のDRMプロバイダーを通じて配布される、ゲームおよびDLCのキー。
  • グループ — カタログ内のアイテムを整理または並べ替えするための論理的なグループ分け。

APIコール

本APIは、以下のグループに分かれています:

  • Admin — カタログアイテムやグループの作成、更新、削除、および設定を行うためのコール。マーチャントまたはプロジェクトの認証情報による基本アクセス認証で認証されます。ストアフロントでの使用は想定されていません。
  • Catalog — アイテムの取得や、エンドユーザー向けのカスタムストアフロントを構築するためのコール。高負荷なシナリオに対応できるよう設計されています。ユーザー個別の制限事項や実施中のプロモーションなど、パーソナライズされたデータを返すための、ユーザーJWTによる任意認証をサポートしています。

認証

APIコールには、ユーザーまたはプロジェクトのいずれかに代わって認証が必要です。使用される認証スキームは、各コールの説明のセキュリティセクションに指定されています。

ユーザーのJWTを使用した認証

ユーザーのJWTを使用した認証は、ブラウザ、モバイルアプリケーション、またはゲームからリクエストが送信される場合に使用されます。デフォルトでは、XsollaLoginUserJWTスキームが適用されます。トークンの作成方法の詳細については、エクソーラログインAPIに関するドキュメントを参照してください。

トークンはAuthorizationヘッダーに次の形式で渡されます:Authorization: Bearer <user_JWT>。ここで<user_JWT>はユーザートークンです。このトークンによってユーザーが特定され、パーソナライズされたデータへのアクセスが可能になります。

別の方法として、決済UIを開くためのトークンを使用することも可能です。

基本HTTP認証

基本HTTP認証は、ユーザーのブラウザやモバイルアプリケーションからではなく、サーバーから直接APIコールが送信される場合のサーバー間のやり取りに使用されます。通常、APIキーを使用したHTTP基本認証が使用されます。

注意

APIキーは機密性高いため、クライアントアプリケーション側での保存および使用は厳禁とします。

基本的なサーバーサイド認証では、すべてのAPIリクエストに以下のヘッダーを含める必要があります:

  • basicAuthの場合 — Authorization: Basic <your_authorization_basic_key>。ここでyour_authorization_basic_keyは、Base64でエンコードされたproject_id:api_keyペアです。
  • basicMerchantAuthの場合 — Authorization: Basic <your_authorization_basic_key>。ここでyour_authorization_basic_keyは、Base64でエンコードされたmerchant_id:api_keyペアです。

パラメータの値はパブリッシャーアカウントで確認できます:

  • merchant_idは次の場所に表示されます:
    • 会社設定 > 会社
    • パブリッシャーアカウントの任意のページのブラウザアドレスバーのURLに。URLの形式は以下の通りです: https://publisher.xsolla.com/<merchant_id>
  • project_idは次の場所に表示されます:
    • パブリッシャーアカウントのプロジェクト名の横に。
    • パブリッシャーアカウントでプロジェクトを操作しているときのブラウザアドレスバーのURLに。URLの形式は以下の通りです:https://publisher.xsolla.com/<merchant_id>/projects/<project_id>
  • api_keyは作成時にのみパブリッシャーアカウントに表示され、あなたの側で安全に保管する必要があります。APIキーは次のセクションで作成できます:
注意

必要なAPIコールにproject_idパスパラメータが含まれていない場合、認証を行うには、会社のすべてのプロジェクト共通で有効なAPIキーを使用してください。

APIキーの操作に関する詳細は、APIリファレンスを参照してください。

ゲストアクセスをサポートする認証

AuthForCart認証スキームはカートでの購入用であり、以下の2つのモードに対応しています:

  1. ユーザーのJWTを使用した認証。 トークンは、次の形式でAuthorizationヘッダーに渡されます: Authorization: Bearer <user_JWT>。ここで<user_JWT>はユーザートークンです。このトークンはユーザーを識別し、パーソナライズされたデータへのアクセスを提供します。 または、決済UIを開くためのトークンを使用することもできます。

  2. 認証ヘッダーを使用しない簡易モード。 このモードは未認証ユーザーにのみ使用され、ゲームキー販売にのみ適用できます。リクエストにはトークンの代わりに、以下のヘッダーを含める必要があります:

    • リクエストIDを含むx-unauthorized-id
    • Base64でエンコードされたユーザーのメールアドレスを含むx-user

主要なエンティティ構造

すべてのタイプ(仮想アイテム、バンドル、仮想通貨、キー)のアイテムは、同様のデータ構造を使用しています。この基本構造を理解することで、APIの利用が簡素化され、ドキュメントをよりスムーズに読み進められるようになります。

注意

一部のコールには追加のフィールドが含まれる場合がありますが、基本構造が変わることはありません。

識別

  • merchant_idパブリッシャーアカウントにおける会社ID
  • project_id — パブリッシャーアカウントにおけるプロジェクトID
  • sku — アイテムSKU、プロジェクト内で一意です

ストア表示

  • name — アイテム名
  • description — アイテム説明
  • image_url — 画像URL
  • is_enabled — アイテムの可用性
  • is_show_in_store — アイテムがカタログに表示されるかどうか

カタログ内のアイテムの可用性管理に関する詳細は、ドキュメントを参照してください。

組織

  • type — アイテムタイプ、例:仮想アイテム(virtual_item)またはバンドル(bundle
  • groups — アイテムが属するグループ
  • order — カタログ内の表示順序

販売条件

  • prices — 実際通貨または仮想通貨での価格
  • limits — 購入制限
  • periods — 可用期間
  • regions — 地域別制限

主要なエンティティ構造の例:

{
  "attributes": [],
  "bundle_type": "virtual_currency_package",
  "content": [
    {
      "description": {
        "en": "Main in-game currency"
      },
      "image_url": "https://.../image.png",
      "name": {
        "en": "Crystals",
        "de": "Kristalle"
      },
      "quantity": 500,
      "sku": "com.xsolla.crystal_2",
      "type": "virtual_currency"
    }
  ],
  "description": {
    "en": "Crystals x500"
  },
  "groups": [],
  "image_url": "https://.../image.png",
  "is_enabled": true,
  "is_free": false,
  "is_show_in_store": true,
  "limits": {
    "per_item": null,
    "per_user": null,
    "recurrent_schedule": null
  },
  "long_description": null,
  "media_list": [],
  "name": {
    "en": "Medium crystal pack"
  },
  "order": 1,
  "periods": [
    {
      "date_from": null,
      "date_until": "2020-08-11T20:00:00+03:00"
    }
  ],
  "prices": [
    {
      "amount": 20,
      "country_iso": "US",
      "currency": "USD",
      "is_default": true,
      "is_enabled": true
    }
  ],
  "regions": [],
  "sku": "com.xsolla.crystal_pack_2",
  "type": "bundle",
  "vc_prices": []
}

基本的な購入フロー

エクソーラAPIを使用すると、ゲーム内ストアのロジックを実装でき、アイテムカタログの取得、カートの管理、注文の作成、そのステータスの追跡が可能です。統合シナリオに応じて、APIコールは管理者カタログのサブセクションに分かれ、異なる認証スキームを使用します。

以下の例は、アイテムの作成から購入に至るまで、ストアのセットアップおよび運用の基本フローを示しています。

アイテムおよびグループの作成(管理者向け)

仮想アイテム、バンドル、仮想通貨など、ストアのアイテムカタログを作成します。

APIコールの例:

プロモーション、チェーン、および制限の設定(管理者向け)

割引、ボーナス、デイリー報酬、またはオファーチェーンなど、ユーザー獲得および収益化のためのツールを設定します。

APIコールの例:

アイテム情報の取得(クライアント向け)

アプリケーション内でのアイテム表示を設定します。

注意

ユーザーカタログを構築するために管理サブセクションのAPIコールを使用しないでください。これらのAPIコールにはレート制限があり、ユーザーのトラフィックを対象としていません。

APIコールの例:

注意

デフォルトでは、カタログAPIコールはリクエスト時にストアで現在利用可能なアイテムを返します。まだ利用可能でない、または利用できなくなったアイテムを取得するには、カタログリクエストにパラメータ"show_inactive_time_limited_items": 1を含めてください。

アイテムの販売

アイテムは以下の方法で販売できます:

  • 迅速な購入 — 1つのSKUを複数回販売します。
  • カート購入 — ユーザーがアイテムをカートに追加し、アイテムを削除し、単一の注文内で数量を更新します。

アイテムが実際のお金ではなく仮想通貨で購入された場合は、仮想通貨で購入した指定アイテムで注文を作成するAPIコールを使用してください。当該APIコールの実行時に課金処理が行われるため、決済UIを表示する必要はありません。

無料アイテムの購入には、指定した無料アイテムで注文を作成するAPIコールまたは無料カートで注文を作成するAPIコールを使用してください。決済UIを表示する必要はありません。注文は即時にdoneステータスに設定されます。

迅速な購入

クライアント側のAPIコールを使用して、指定したアイテムで注文を作成します。このコールは、決済UIを開くために使用するトークンを返します。

注意

割引情報は決済UIでのみユーザーに提供されます。プロモーションコードはサポートされていません。

カート購入

カートの設定と購入は、クライアントまたはサーバー側で実行できます。

クライアント側でのカートのセットアップと購入

アイテムの追加および削除のロジックは、独自に実装してください。カートを設定するためのAPIを呼び出す前は、購入にどのプロモーションが適用されるかに関する情報は取得できません。つまり、合計金額や、追加されるボーナスアイテムの詳細を事前に知ることはできません。

以下のカートロジックを実装します:

  1. プレイヤーがカートにアイテムを入れた後、カートにアイテムを入れるAPIコールを使用します。このコールは、選択されたアイテムに関する現在の情報(割引前後の価格、ボーナスアイテム)を返します。
  2. ユーザーのアクションに基づいてカートの内容を更新します:
注意

カートの現在のステータスを取得するには、現在のユーザーのカートを取得するAPIコールを使用してください。
  1. 現在のカートからすべてのアイテムで注文を作成するAPIコールを使用します。このコールは注文IDと決済トークンを返します。新しく作成された注文はデフォルトでnewステータスに設定されます。

サーバー側でのカートのセットアップと購入

カートへの変更ごとにAPIコールを伴う必要があるため、この設定オプションではカートの設定に時間がかかる場合があります。

以下のカートロジックを実装します:

  1. プレイヤーがカートにアイテムを入れた後、カートにアイテムを入れるAPIコールを使用します。このコールは、選択されたアイテムに関する現在の情報(割引前後の価格、ボーナスアイテム)を返します。
  2. 現在のカートのすべてのアイテムで注文を作成するAPIコールを使用します。このコールは、注文IDと支払いトークンを返します。新しく作成された注文は、デフォルトでnewステータスに設定されます。

決済UIを開く

返されたトークンを使用して、新しいウィンドウで決済UIを開きます。決済UIを開くその他の方法は、ドキュメントに記載されています。

アクションエンドポイント
本番環境で開きます。https://secure.xsolla.com/paystation4/?token={token}
サンドボックスモードで開きます。https://sandbox-secure.xsolla.com/paystation4/?token={token}
注意

開発およびテスト中はサンドボックスモードを使用してください。テスト購入では実際のアカウントに料金は発生しません。テスト用銀行カードを使用できます。

最初の実際の支払いが行われた後、厳格なサンドボックス決済ポリシーが適用されます。サンドボックスモードでの支払いは、パブリッシャーアカウント > 会社設定 > ユーザーで指定されたユーザーのみが利用可能です。

実際通貨で仮想通貨やアイテムを購入するには、エクソーラとのライセンス契約を締結する必要があります。これを行うには、パブリッシャーアカウント契約と税金 > 契約に移動し、契約フォームを記入して確認を待ちます。契約の審査には最大3営業日かかる場合があります。

サンドボックスモードを有効または無効にするには、迅速な購入およびカート購入のリクエストでsandboxパラメータの値を変更します。サンドボックスモードはデフォルトでオフになっています。

可能な注文状況:

  • new — 注文作成済み
  • paid — 支払い受領済み
  • done — アイテム付与完了
  • canceled — 注文キャンセル済み
  • expired — 注文期限切れ

以下のいずれかの方法を使用して、注文ステータスを追跡します:

ページネーション

大規模なレコードセットを返すAPIコール(カタログを構築する場合など)では、データがページ分割されて返されます。ページネーションは、単一のAPI応答で返されるアイテム数を制限し、下一ページのデータを順次取得できるようにするための仕組みです。

返されるアイテム数を制御するには、以下のパラメータを使用します:

  • limit — 1ページあたりのアイテム件数
  • offset — ページ上の最初のアイテムのインデックス(番号付けは0から始まります)
  • has_more — 次のページが利用可能かどうかを示します
  • total_items_count — アイテムの総数

リクエスト例:

GET /items?limit=20&offset=40

応答例:

{
  "items": [...],
  "has_more": true,
  "total_items_count": 135
}

応答がhas_more = falseを返すまで、後続のリクエストを送信することをお勧めします。

日付と時刻の形式

日付と時間の値は、ISO 8601フォーマットで渡されます。

以下がサポートされています:

  • UTCオフセット
  • アイテムの表示に時間制限がない場合はnull
  • 一部のフィールドで使用されるUnixタイムスタンプ(秒単位)

フォーマット:YYYY-MM-DDTHH:MM:SS±HH:MM

例:2026-03-16T10:00:00+03:00

ローカリゼーション

エクソーラは、アイテム名や説明などのユーザー向けフィールドのローカライズをサポートしています。ローカライズされた値は、言語コードをキーとするオブジェクトとして渡されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

サポートされているフィールド

次のパラメータに対してローカリゼーションを指定できます:

  • name
  • description
  • long_description

ロケール形式

ロケールキーは、以下のいずれかのフォーマットで指定できます:

  • 2文字の言語コード:enru
  • 5文字の言語コード: en-USru-RUde-DE

2文字の言語コードの例:

{
  "name": {
    "en": "Starter Pack",
    "ru": "Стартовый набор"
  }
}

5文字の言語コードの例:

{
  "description": {
    "en-US": "Premium bundle",
    "de-DE": "Premium-Paket"
  }
}

エラー応答フォーマット

エラーが発生した場合、APIはHTTPステータスとJSON応答本文を返します。ストア関連のエラーの全リストはドキュメントで確認できます。

応答例:

{
  "errorCode": 1102,
  "errorMessage": "Validation error",
  "statusCode": 422,
  "transactionId": "c9e1a..."
}
  • errorCode — エラーコード。
  • errorMessage — エラーの簡潔な説明。
  • statusCode — HTTPレスポンスステータス。
  • transactionId — リクエストID。一部の場合にのみ返されます。
  • errorMessageExtended — リクエストパラメータなどの追加エラー詳細。一部の場合にのみ返されます。

拡張応答例:

{
  "errorCode": 7001,
  "errorMessage": "Chain not found",
  "errorMessageExtended": {
    "chain_id": "test_chain_id",
    "project_id": "test_project_id",
    "step_number": 2
  },
  "statusCode": 404
}

共通のHTTPステータスコード

  • 400 — 無効なリクエスト
  • 401 — 認証エラー
  • 403 — 権限不足
  • 404 — リソースが見つかりません
  • 422 — 検証エラー
  • 429 — レート制限超過

推奨事項

  • HTTPステータスと応答本文を一緒に処理します。
  • errorCodeを使用してアプリケーションロジックに関連するエラーを処理します。
  • transactionIdを使用して、エラーを分析する際にリクエストをより迅速に特定します。
OpenAPI記述をダウンロード
言語
サーバー
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ja/api/catalog/

概要

仮想アイテムと仮想通貨を使用してインゲームストアを構築し、ユーザーへの表示方法を設定できます。以下のアイテムタイプが利用可能です:

  • 仮想アイテム — 武器、スキン、ブースターなどのゲーム内アイテム。実際のお金または仮想通貨で販売できます。
  • 仮想通貨 — 仮想アイテムの購入に使用されるゲーム内通貨。実際のお金または仮想通貨で販売できます。
  • 仮想通貨パッケージ — 仮想通貨の固定数量パック。実際のお金または仮想通貨で販売できます。

グループは、カタログ内のアイテムを整理するために使用されます。アイテムを論理的にグループ化し、表示方法を管理することができます。

管理者サブセクションのAPIコールを使用して、アイテムの作成、更新、削除を行います。

カタログサブセクションのAPIコールを使用して、アイテムのリストを取得し、ユーザーに表示します。

注意

管理者サブセクションのAPIコールを使用してストアカタログを構築しないでください。

注意

仮想アイテムリストを取得するAPIコールは、価格や属性を含む詳細なアイテムデータを返し、ページネーションをサポートします。ストアフロントでカタログページを表示するために使用してください。

すべての仮想アイテムリストを取得するAPIコールは、ページネーションなしでアイテムSKU、名前、説明、グループIDと名前を返します。クライアント側の検索やインデックス作成に使用してください。

仮想通貨で購入する場合、仮想通貨で購入された指定アイテムで注文を作成するAPIコールを使用してください。当該APIコールの実行時に課金処理が行われるため、決済UIを表示する必要はありません。

仮想通貨での購入フローの例:

仮想通貨での購入フローの例:

操作
操作
操作

概要

ゲームキーは、ユーザーがゲームプラットフォーム上でゲームやDLCにアクセスできるようにするための、使い切りのユニークな半角英数字コードです。ゲームキーは、ダイレクトリンクストアUI、またはウィジェットを介して販売することができます。また、特定の国でゲームキーを販売するために、地域制限を設定することも可能です。詳細については、ゲームキーパッケージセクションを参照してください。

ゲームキーを販売する際、ユーザー認証は必須ではありません。キーは、ユーザーがチェックアウト時に指定したメールアドレス宛に送信されます。また、認証を設定することで、個人用設定購入制限エンタイトルメントシステムといった追加のシナリオを有効にすることも可能です。詳細については、ゲームキー販売時の認証設定方法セクションを参照してください。

ゲームキーの販売フロー:

  1. ゲームを作成するAPIコールを使用して、ゲームを作成します。
  2. 地域制限を設定します。
  3. コードをアップロードするAPIコールを使用してゲームキーパッケージにキーをアップロードし、購入可能な状態にします。
  4. ゲームリストを取得するAPIコールを使用して、ユーザーの地域に応じた価格とともにゲームカタログを表示します。
  5. 注文を作成します。素早く購入できるようにするには、ゲームキーのSKUを渡し、現在のカート内の全アイテムを含む注文を作成するAPIコールを使用できます。レスポンスとして、決済UIを開くためのトークンが返されます。
  6. 注文の支払いを行うために、決済UIを開く処理を実装します。

決済完了の通知をタイムリーに受け取り、ユーザーにアイテムを付与するには、たとえば、ウェブフックを使用して注文ステータスのトラッキングを設定してください。キーは、ユーザーがチェックアウト時に指定したメールアドレス宛に送信され、注文ステータスはdoneに移行します。

ゲームキー

操作
操作
操作

概要

バンドルとは、複数のアイテムを1つの単位としてセット販売するものです。バンドルには、仮想アイテム、仮想通貨、仮想通貨パッケージ、ゲームキー、および他のバンドルを含めることができます。バンドルを活用することで、スターターパック、季節限定オファー、特別セールなどを作成できます。

バンドルを操作するには、以下のAPIコールグループを使用します:

  • バンドルの作成、更新、削除、およびそれらの公開状態を管理するには、管理者サブセクションのAPIコールを使用します。
  • バンドルの情報取得には、カタログサブセクションのAPIコールを使用します。

購入制限は、バンドルの作成または更新時にlimitsオブジェクトを介して設定します。詳細については、制限の概要を参照してください。また、特定の国でアイテムを販売するために、地域制限を設定することも可能です。

注意

バンドルの設定に関する詳細情報については、バンドルセクションを参照してください。

バンドル管理のシナリオ:

  1. バンドルを作成する APIコールを使用して、バンドルを作成します。作成したバンドルを検証するには、バンドルを取得するAPIコールを使用します。プロジェクト内のすべてのバンドルを取得するには、バンドルリストを取得するAPIコールを使用します。
  2. 必要に応じて、バンドルを更新するAPIコールを使用し、バンドルの内容や設定を変更します。
  3. バンドルリストを取得する指定したバンドルを取得する、または指定したグループのバンドルリストを取得するAPIコールを使用して、ストアフロントにバンドルの表示ロジックを実装します。
  4. カートと決済セクションを使用して注文を作成します。たとえば、素早く購入できるようにするには、バンドルのSKUを渡し、指定したアイテムを含む注文を作成するAPIコールを使用できます。応答には、決済UIを開くためのトークンが含まれています。
  5. 注文の支払いを行うために、決済UIを開く処理を実装します。
  6. 決済が完了したアイテムのデータをタイムリーに受け取り、ユーザーにそれらを付与するために、たとえばウェブフックを使用して注文ステータスのトラッキングを設定します。

バンドル管理のシナリオ

操作
操作

バンドルのリストを取得Client-side

リクエスト

カタログ構築のために、バンドルのリストを取得します。

注意

すべてのプロジェクトには、応答で取得できるアイテム数に制限があります。デフォルトおよび最大値は1応答あたり50アイテムです。ページごとにデータを取得するには、制限オフセットフィールドを使用してください。

注意

認証なしで使用した場合、このAPIコールは一般的なアイテムカタログデータを返します。認証を使用して、アイテムに関連する制限やプロモーションなどのパーソナライズされたユーザーデータを取得します。これを行うには、ユーザーのJWTをAuthorizationヘッダーに渡してください。ユーザーJWTの詳細については、このコールのセキュリティブロックを参照してください。
セキュリティ
XsollaLoginUserJWT
パス
project_idinteger必須

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

例: 44056
クエリ
limitinteger>= 1

ページでの要素数の制限。

例: limit=50
offsetinteger>= 0

リストが生成される要素番号(カウントは0から始まります)。

例: offset=0
localestring

応答言語。ISO 639-1に準拠した2文字の小文字の言語コード(例:en)。namedescriptionなどのローカリゼーションフィールドでは5文字のロケールコード(例:en-US)がサポートされていますが、応答内では2文字のコードに正規化されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

デフォルト "en"
additional_fields[]Array of strings

応答に含める追加フィールド。デフォルトでは、これらのフィールドは返されません。追加フィールドを含めるには、必須の値を渡してください。

アイテム Enum"media_list""order""long_description""custom_attributes""item_order_in_group"
countrystring

ISO 3166-1 alpha-2に従った2文字の大文字の国名コード。エクソーラがサポートする国国を決定するプロセスに関する詳細情報については、ドキュメントを確認してください。

例: country=US
promo_codestring[ 1 .. 128 ] characters

大文字と小文字を区別する一意のコードです。文字と数字が含まれます。

例: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

ユーザーに利用可能でない、期限付きアイテムを表示します。このようなアイテムの有効期間はまだ開始されていないか、すでに期限切れです。

デフォルト 0
例: show_inactive_time_limited_items=1
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/bundle?limit=50&offset=0&locale=en&additional_fields%5B%5D=media_list&country=US&promo_code=WINTER2021&show_inactive_time_limited_items=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

レスポンス

バンドルのリストは正常に受信されました。

ボディapplication/json
has_moreboolean

ページ数がもっとあることを示す指標として使用されます。

itemsArray of objects
items[].​item_idinteger[ 1 .. 255 ] characters

内部の一意のアイテムID。

items[].​skustring[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

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

items[].​namestring

アイテム名。

items[].​groupsArray of objects

アイテムが所属するグループ。

items[].​groups[].​external_idstring

作成時に指定された外部アイテムグループID

例: "exclusive"
items[].​groups[].​namestring

グループ名。

例: "Exclusive"
items[].​groups[].​item_order_in_groupinteger

グループ内でのアイテムの配置位置は 表示順序を決定します。 additional_fields[]クエリパラメータを介してリクエストされた場合にのみ返されます。

例: 1
items[].​descriptionstring or null

アイテムの説明。

items[].​long_description(object or null)

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

Any of:

2文字の小文字の言語コード。

items[].​long_description.​enstring or null

英語

items[].​long_description.​arstring or null

アラビア語

items[].​long_description.​bgstring or null

ブルガリア語

items[].​long_description.​cnstring or null

中国語(簡体字)

items[].​long_description.​csstring or null

チェコ語

items[].​long_description.​destring or null

ドイツ語

items[].​long_description.​esstring or null

スペイン語(スペイン)

items[].​long_description.​frstring or null

フランス語

items[].​long_description.​hestring or null

ヘブライ語

items[].​long_description.​itstring or null

イタリア語

items[].​long_description.​jastring or null

日本語

items[].​long_description.​kostring or null

韓国語

items[].​long_description.​plstring or null

ポーランド語

items[].​long_description.​ptstring or null

ポルトガル語

items[].​long_description.​rostring or null

ルーマニア語

items[].​long_description.​rustring or null

ロシア語

items[].​long_description.​thstring or null

タイ語

items[].​long_description.​trstring or null

トルコ語

items[].​long_description.​twstring or null

中国語(繁体字)

items[].​long_description.​vistring or null

ベトナム語

items[].​long_description.​kmstring or null

クメール語

items[].​long_description.​idstring or null

インドネシア語

items[].​long_description.​lostring or null

ラオス語

items[].​long_description.​mystring or null

ビルマ語

items[].​long_description.​phstring or null

フィリピン語

items[].​long_description.​nestring or null

ネパール語

items[].​attributesArray of objects

アイテムに対応する属性と値のリスト。カタログのフィルタリングに使用できます。

items[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

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

items[].​attributes[].​namestring

属性名。

例: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。

items[].​attributes[].​values[].​valuestring

属性値。

例: "Strategy"
items[].​typestring

アイテムタイプ。

items[].​bundle_typestring

バンドルタイプ。standardを使用してアイテムのバンドルを作成し、バンドルに含まれるアイテムの SKU を指定します。 partner_side_contentを使用して空のバンドルを作成し、ウェブフックを使用してユーザー側でアイテムを追加します。このタイプは、パートナー側でのカタログ個人用設定でのみ使用されます。

Enum"standard""partner_side_content"
items[].​image_urlstring or null

画像URL。決済UI上で画像を正しく表示し、高速に読み込ませるために、当社の画像およびURLガイドラインを確認ください:

  • サポートされているフォーマット:WebP(推奨)、PNG、JPG
  • ファイルサイズ:50 KB以下(WebPの場合)または150 KB以下(PNGおよびJPGの場合)
  • 画像サイズ:280 × 280 px
  • カラースペース:sRGB
  • プロトコル:バージョン管理されたURLに対する、長期キャッシュを伴うHTTPS

items[].​is_freeboolean

アイテムが無料かどうか。

items[].​priceobject or null

アイテム価格。

items[].​price.​amountstring^\d*\.?\d*$必須

割引を適用したアイテム価格。

items[].​price.​amount_without_discountstring^\d*\.?\d*$必須

アイテム価格。

items[].​price.​currencystring必須

商品価格通貨。ISO 4217 による3文字コード。

items[].​total_content_priceobject or null

バンドルコンテンツ価格の合計。

items[].​total_content_price.​amountstring

バンドルコンテンツの価格を割引いた場合の合計。

例: "100.99"
items[].​total_content_price.​amount_without_discountstring

バンドルコンテンツ価格の合計。

例: "100.99"
items[].​total_content_price.​currencystring

商品価格通貨。ISO 4217 による3文字コード。

items[].​virtual_pricesArray of objects

仮想価格。

items[].​virtual_prices[].​amountinteger

仮想通貨建てのアイテム価格。

例: 100
items[].​virtual_prices[].​amount_without_discountinteger

割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常にamountと等しくなります。

例: 200
items[].​virtual_prices[].​skustring

仮想通貨SKU。

例: "vc_gold"
items[].​virtual_prices[].​is_defaultboolean

仮想通貨でのデフォルト価格であるかどうか。

例: true
items[].​virtual_prices[].​image_urlstring or null

仮想通貨の画像URL。

例: "http://image.png"
items[].​virtual_prices[].​namestring

仮想通貨名。

例: "Gold"
items[].​virtual_prices[].​typestring

アイテムタイプ。仮想通貨の場合はvirtual_currencyになります。

例: "virtual_currency"
items[].​virtual_prices[].​descriptionstring or null

Virtual currency description.

例: "In-game currency used to purchase weapons and upgrades"
items[].​can_be_boughtboolean

trueの場合、ユーザーはアイテムを購入することができます。

items[].​contentArray of objects

バンドルパッケージのコンテンツ。

items[].​content[].​skustring

一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ダッシュ、およびアンダースコアのみが含まれます。

例: "com.xsolla.big_rocket_1"
items[].​content[].​namestring

アイテム名。

例: "Big Rocket"
items[].​content[].​typestring

アイテムタイプ:virtual_good/virtual_currency/bundle

例: "virtual_currency"
items[].​content[].​descriptionstring

アイテムの説明。

例: "Big Rocket - description"
items[].​content[].​image_urlstring

画像URL。

例: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​content[].​quantityinteger

パッケージ内のアイテムの数量。

例: 250
items[].​content[].​virtual_item_typestring

仮想アイテムタイプ。

指定可能な値:

  • consumable — 使用後にインベントリから消滅するアイテム(例:弾薬など)。
  • non_consumable — 期間の制限なくインベントリに残り続けるアイテム。
  • non_renewing_subscription — 制限された期間内に限り、サービスやコンテンツへのアクセス権を付与する期間限定アイテム。
Enum"consumable""non_consumable""non_renewing_subscription"
例: "non-consumable"
items[].​content[].​attributesArray of objects

アイテムに対応する属性と値のリスト。カタログのフィルタリングに使用できます。

items[].​content[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

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

items[].​content[].​attributes[].​namestring

属性名。

例: "Genre"
items[].​content[].​attributes[].​valuesArray of objects
items[].​content[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。

items[].​content[].​attributes[].​values[].​valuestring

属性値。

例: "Strategy"
items[].​content[].​priceobject or null

アイテム価格。

items[].​content[].​price.​amountstring

割引を適用したアイテム価格。

例: "100.99"
items[].​content[].​price.​amount_without_discountstring

アイテム価格。

例: "100.99"
items[].​content[].​price.​currencystring

商品価格の通貨。3文字のコードISO4217 規格詳細については、ドキュメントを参照してください。エクソーラでサポートされている通貨

例: "USD"
items[].​content[].​virtual_pricesArray of objects

仮想価格。

items[].​content[].​virtual_prices[].​amountinteger

仮想通貨建てのアイテム価格。

例: 100
items[].​content[].​virtual_prices[].​amount_without_discountinteger

割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常にamountと等しくなります。

例: 200
items[].​content[].​virtual_prices[].​skustring

仮想通貨SKU。

例: "vc_gold"
items[].​content[].​virtual_prices[].​is_defaultboolean

仮想通貨でのデフォルト価格であるかどうか。

例: true
items[].​content[].​virtual_prices[].​image_urlstring or null

仮想通貨の画像URL。

例: "http://image.png"
items[].​content[].​virtual_prices[].​namestring

仮想通貨名。

例: "Gold"
items[].​content[].​virtual_prices[].​typestring

アイテムタイプ。仮想通貨の場合はvirtual_currencyになります。

例: "virtual_currency"
items[].​content[].​virtual_prices[].​descriptionstring or null

Virtual currency description.

例: "In-game currency used to purchase weapons and upgrades"
items[].​content[].​limitsobject or null

アイテム制限。

items[].​content[].​limits.​per_userobject or null

ユーザーのアイテム制限。

items[].​content[].​limits.​per_user.​totalinteger

1ユーザーあたりのユーザーが購入できるアイテムの最大数。

例: 5
items[].​content[].​limits.​per_user.​availableinteger

現在のユーザーが購入できるアイテムの残り数。

例: 3
items[].​content[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

ユーザーのアイテム制限の定期更新期間。

object or null
items[].​content[].​limits.​per_user.​limit_exceeded_visibilitystring

購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。

これは、recurrent_schedule配列で定期的な制限リセットが設定されているアイテムに適用されます。

購入制限のリセットが設定されていない場合、購入制限に達した後は、limit_exceeded_visibilityの値に関わらず、そのアイテムはカタログに表示されなくなります。

指定可能な値:

  • show — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムにcan_be_bought: falseフラグが付与されて返されます。次回のリセット日時はreset_next_dateに格納されて返却されます。
  • hide — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。
Enum"show""hide"
items[].​content[].​limits.​per_itemobject or null

アイテムのアイテム制限。

items[].​content[].​limits.​per_item.​totalinteger

すべてのユーザーが購入できるアイテムの最大数。

例: 5
items[].​content[].​limits.​per_item.​availableinteger

すべてのユーザーが購入できるアイテムの残り数。

例: 3
items[].​content[].​is_freeboolean

アイテムが無料かどうか。

items[].​content[].​groupsArray of objects

アイテムが所属するグループ。

items[].​content[].​groups[].​external_idstring
例: "horror"
items[].​content[].​groups[].​nameobject

アイテム名。キーと値のペアを含める必要があり、 キーは "^[a-z]" 書式のロケール{2}で、値は文字列です。

デフォルト {"en":"Horror"}
例: {"en":"Horror","de":"Horror"}
items[].​content[].​groups[].​name.​property name*string追加プロパティ
items[].​promotionsArray of objects

カート内の特定アイテムに適用されるプロモーション。この配列は、以下のケースで返されます:

  • 特定のアイテムに対して、割引キャンペーンが構成されている場合。

  • 選択されたアイテムの割引設定を持つプロモーションコードが適用された場合。

アイテムレベルのプロモーションが適用されない場合は、空の配列が返されます。

items[].​promotions[].​namestring
items[].​promotions[].​date_startstring or null(date-time)
items[].​promotions[].​date_endstring or null(date-time)
items[].​promotions[].​discountobject or null
items[].​promotions[].​discount.​percentstring or null
items[].​promotions[].​discount.​valuestring or null
items[].​promotions[].​bonusArray of objects
items[].​promotions[].​bonus[].​skustring
items[].​promotions[].​bonus[].​quantityinteger
items[].​promotions[].​bonus[].​typestring

ボーナスアイテムタイプ。

Enum"virtual_good""virtual_currency""bundle""physical_good""game_key""nft"
items[].​promotions[].​bonus[].​namestring

ボーナスアイテムの名前です。ボーナスアイテムのタイプphysical_goodでは使用できません。

items[].​promotions[].​bonus[].​image_urlstring

ボーナスアイテムの画像URLです。ボーナスアイテムのタイプ physical_good では使用できません。ー

items[].​promotions[].​bonus[].​bundle_typestring

ボーナスバンドルアイテムタイプ。ボーナスアイテムタイプbundleのみで利用可能です。

Enum"standard""virtual_currency_package"
items[].​promotions[].​limitsobject
items[].​promotions[].​limits.​per_userobject
items[].​promotions[].​limits.​per_user.​availableinteger
items[].​promotions[].​limits.​per_user.​totalinteger
items[].​limitsobject or null

アイテム制限。

items[].​limits.​per_userobject or null

ユーザーのアイテム制限。

items[].​limits.​per_user.​totalinteger

1ユーザーあたりのユーザーが購入できるアイテムの最大数。

例: 5
items[].​limits.​per_user.​availableinteger

現在のユーザーが購入できるアイテムの残り数。

例: 3
items[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

ユーザーのアイテム制限の定期更新期間。

object or null
items[].​limits.​per_user.​limit_exceeded_visibilitystring

購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。

これは、recurrent_schedule配列で定期的な制限リセットが設定されているアイテムに適用されます。

購入制限のリセットが設定されていない場合、購入制限に達した後は、limit_exceeded_visibilityの値に関わらず、そのアイテムはカタログに表示されなくなります。

指定可能な値:

  • show — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムにcan_be_bought: falseフラグが付与されて返されます。次回のリセット日時はreset_next_dateに格納されて返却されます。
  • hide — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。
Enum"show""hide"
items[].​limits.​per_itemobject or null

アイテムのアイテム制限。

items[].​limits.​per_item.​totalinteger

すべてのユーザーが購入できるアイテムの最大数。

例: 5
items[].​limits.​per_item.​availableinteger

すべてのユーザーが購入できるアイテムの残り数。

例: 3
items[].​periodsArray of objects or null

アイテム販売期間。

items[].​periods[].​date_fromstring(date-time)

指定されたアイテムの販売開始日。

例: "2020-08-11T10:00:00+03:00"
items[].​periods[].​date_untilstring or null(date-time)

指定されたアイテムが販売できなくなる日付。nullを指定することもできます。

例: "2020-08-11T20:00:00+03:00"
items[].​custom_attributesobject(json)

アイテムの属性と値を含むJSONオブジェクト。

items[].​vp_rewardsArray of objects

アイテムのバリューポイント報酬のリスト。

items[].​vp_rewards[].​item_idinteger

内部の一意のアイテムID。

items[].​vp_rewards[].​skustring

一意のバリューポイントID。

items[].​vp_rewards[].​amountinteger

バリューポイントの量。

items[].​vp_rewards[].​namestring

バリューポイント名。

items[].​vp_rewards[].​image_urlstring

画像URL。

items[].​vp_rewards[].​is_clanboolean

バリューポイントがクランリワードチェーンで使用されるかどうか。

items[].​orderinteger

リスト内のバンドル順の優先順位。

items[].​media_listArray of objects

バンドルの追加アセット。

items[].​media_list[].​typestring

メディアタイプ:image/video

Enum"image""video"
例: "image"
items[].​media_list[].​urlstring

リソースファイル。

例: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
レスポンス
application/json
{ "has_more": true, "items": [ {} ] }

指定されたバンドルを取得Client-side

リクエスト

指定されたバンドルを取得します。

注意

認証なしで使用した場合、このAPIコールは一般的なアイテムカタログデータを返します。認証を使用して、アイテムに関連する制限やプロモーションなどのパーソナライズされたユーザーデータを取得します。これを行うには、ユーザーのJWTをAuthorizationヘッダーに渡してください。ユーザーJWTの詳細については、このコールのセキュリティブロックを参照してください。
セキュリティ
XsollaLoginUserJWT
パス
project_idinteger必須

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

例: 44056
skustring必須

バンドルSKU。

例: kg_1
クエリ
promo_codestring[ 1 .. 128 ] characters

大文字と小文字を区別する一意のコードです。文字と数字が含まれます。

例: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

ユーザーに利用可能でない、期限付きアイテムを表示します。このようなアイテムの有効期間はまだ開始されていないか、すでに期限切れです。

デフォルト 0
例: show_inactive_time_limited_items=1
additional_fields[]Array of strings

応答に含める追加フィールド。デフォルトでは、これらのフィールドは返されません。追加フィールドを含めるには、必須の値を渡してください。

アイテム Enum"media_list""order""long_description""custom_attributes""item_order_in_group"
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/bundle/sku/kg_1?promo_code=WINTER2021&show_inactive_time_limited_items=1&additional_fields%5B%5D=media_list' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

レスポンス

指定されたバンドルは正常に受信されました。

ボディapplication/json
item_idinteger[ 1 .. 255 ] characters

内部の一意のアイテムID。

skustring[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

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

namestring

アイテム名。

groupsArray of objects

アイテムが所属するグループ。

groups[].​external_idstring

作成時に指定された外部アイテムグループID

例: "exclusive"
groups[].​namestring

グループ名。

例: "Exclusive"
groups[].​item_order_in_groupinteger

グループ内でのアイテムの配置位置は 表示順序を決定します。 additional_fields[]クエリパラメータを介してリクエストされた場合にのみ返されます。

例: 1
descriptionstring or null

アイテムの説明。

long_description(object or null)

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

Any of:

2文字の小文字の言語コード。

long_description.​enstring or null

英語

long_description.​arstring or null

アラビア語

long_description.​bgstring or null

ブルガリア語

long_description.​cnstring or null

中国語(簡体字)

long_description.​csstring or null

チェコ語

long_description.​destring or null

ドイツ語

long_description.​esstring or null

スペイン語(スペイン)

long_description.​frstring or null

フランス語

long_description.​hestring or null

ヘブライ語

long_description.​itstring or null

イタリア語

long_description.​jastring or null

日本語

long_description.​kostring or null

韓国語

long_description.​plstring or null

ポーランド語

long_description.​ptstring or null

ポルトガル語

long_description.​rostring or null

ルーマニア語

long_description.​rustring or null

ロシア語

long_description.​thstring or null

タイ語

long_description.​trstring or null

トルコ語

long_description.​twstring or null

中国語(繁体字)

long_description.​vistring or null

ベトナム語

long_description.​kmstring or null

クメール語

long_description.​idstring or null

インドネシア語

long_description.​lostring or null

ラオス語

long_description.​mystring or null

ビルマ語

long_description.​phstring or null

フィリピン語

long_description.​nestring or null

ネパール語

attributesArray of objects

アイテムに対応する属性と値のリスト。カタログのフィルタリングに使用できます。

attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

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

attributes[].​namestring

属性名。

例: "Genre"
attributes[].​valuesArray of objects
attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。

attributes[].​values[].​valuestring

属性値。

例: "Strategy"
typestring

アイテムタイプ。

bundle_typestring

バンドルタイプ。standardを使用してアイテムのバンドルを作成し、バンドルに含まれるアイテムの SKU を指定します。 partner_side_contentを使用して空のバンドルを作成し、ウェブフックを使用してユーザー側でアイテムを追加します。このタイプは、パートナー側でのカタログ個人用設定でのみ使用されます。

Enum"standard""partner_side_content"
image_urlstring or null

画像URL。決済UI上で画像を正しく表示し、高速に読み込ませるために、当社の画像およびURLガイドラインを確認ください:

  • サポートされているフォーマット:WebP(推奨)、PNG、JPG
  • ファイルサイズ:50 KB以下(WebPの場合)または150 KB以下(PNGおよびJPGの場合)
  • 画像サイズ:280 × 280 px
  • カラースペース:sRGB
  • プロトコル:バージョン管理されたURLに対する、長期キャッシュを伴うHTTPS

is_freeboolean

アイテムが無料かどうか。

priceobject or null

アイテム価格。

price.​amountstring^\d*\.?\d*$必須

割引を適用したアイテム価格。

price.​amount_without_discountstring^\d*\.?\d*$必須

アイテム価格。

price.​currencystring必須

商品価格通貨。ISO 4217 による3文字コード。

total_content_priceobject or null

バンドルコンテンツ価格の合計。

total_content_price.​amountstring

バンドルコンテンツの価格を割引いた場合の合計。

例: "100.99"
total_content_price.​amount_without_discountstring

バンドルコンテンツ価格の合計。

例: "100.99"
total_content_price.​currencystring

商品価格通貨。ISO 4217 による3文字コード。

virtual_pricesArray of objects

仮想価格。

virtual_prices[].​amountinteger

仮想通貨建てのアイテム価格。

例: 100
virtual_prices[].​amount_without_discountinteger

割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常にamountと等しくなります。

例: 200
virtual_prices[].​skustring

仮想通貨SKU。

例: "vc_gold"
virtual_prices[].​is_defaultboolean

仮想通貨でのデフォルト価格であるかどうか。

例: true
virtual_prices[].​image_urlstring or null

仮想通貨の画像URL。

例: "http://image.png"
virtual_prices[].​namestring

仮想通貨名。

例: "Gold"
virtual_prices[].​typestring

アイテムタイプ。仮想通貨の場合はvirtual_currencyになります。

例: "virtual_currency"
virtual_prices[].​descriptionstring or null

Virtual currency description.

例: "In-game currency used to purchase weapons and upgrades"
can_be_boughtboolean

trueの場合、ユーザーはアイテムを購入することができます。

contentArray of objects

バンドルパッケージのコンテンツ。

content[].​skustring

一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ダッシュ、およびアンダースコアのみが含まれます。

例: "com.xsolla.big_rocket_1"
content[].​namestring

アイテム名。

例: "Big Rocket"
content[].​typestring

アイテムタイプ:virtual_good/virtual_currency/bundle

例: "virtual_currency"
content[].​descriptionstring

アイテムの説明。

例: "Big Rocket - description"
content[].​image_urlstring

画像URL。

例: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
content[].​quantityinteger

パッケージ内のアイテムの数量。

例: 250
content[].​virtual_item_typestring

仮想アイテムタイプ。

指定可能な値:

  • consumable — 使用後にインベントリから消滅するアイテム(例:弾薬など)。
  • non_consumable — 期間の制限なくインベントリに残り続けるアイテム。
  • non_renewing_subscription — 制限された期間内に限り、サービスやコンテンツへのアクセス権を付与する期間限定アイテム。
Enum"consumable""non_consumable""non_renewing_subscription"
例: "non-consumable"
content[].​attributesArray of objects

アイテムに対応する属性と値のリスト。カタログのフィルタリングに使用できます。

content[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

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

content[].​attributes[].​namestring

属性名。

例: "Genre"
content[].​attributes[].​valuesArray of objects
content[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。

content[].​attributes[].​values[].​valuestring

属性値。

例: "Strategy"
content[].​priceobject or null

アイテム価格。

content[].​price.​amountstring

割引を適用したアイテム価格。

例: "100.99"
content[].​price.​amount_without_discountstring

アイテム価格。

例: "100.99"
content[].​price.​currencystring

商品価格の通貨。3文字のコードISO4217 規格詳細については、ドキュメントを参照してください。エクソーラでサポートされている通貨

例: "USD"
content[].​virtual_pricesArray of objects

仮想価格。

content[].​virtual_prices[].​amountinteger

仮想通貨建てのアイテム価格。

例: 100
content[].​virtual_prices[].​amount_without_discountinteger

割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常にamountと等しくなります。

例: 200
content[].​virtual_prices[].​skustring

仮想通貨SKU。

例: "vc_gold"
content[].​virtual_prices[].​is_defaultboolean

仮想通貨でのデフォルト価格であるかどうか。

例: true
content[].​virtual_prices[].​image_urlstring or null

仮想通貨の画像URL。

例: "http://image.png"
content[].​virtual_prices[].​namestring

仮想通貨名。

例: "Gold"
content[].​virtual_prices[].​typestring

アイテムタイプ。仮想通貨の場合はvirtual_currencyになります。

例: "virtual_currency"
content[].​virtual_prices[].​descriptionstring or null

Virtual currency description.

例: "In-game currency used to purchase weapons and upgrades"
content[].​limitsobject or null

アイテム制限。

content[].​limits.​per_userobject or null

ユーザーのアイテム制限。

content[].​limits.​per_user.​totalinteger

1ユーザーあたりのユーザーが購入できるアイテムの最大数。

例: 5
content[].​limits.​per_user.​availableinteger

現在のユーザーが購入できるアイテムの残り数。

例: 3
content[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

ユーザーのアイテム制限の定期更新期間。

object or null
content[].​limits.​per_user.​limit_exceeded_visibilitystring

購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。

これは、recurrent_schedule配列で定期的な制限リセットが設定されているアイテムに適用されます。

購入制限のリセットが設定されていない場合、購入制限に達した後は、limit_exceeded_visibilityの値に関わらず、そのアイテムはカタログに表示されなくなります。

指定可能な値:

  • show — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムにcan_be_bought: falseフラグが付与されて返されます。次回のリセット日時はreset_next_dateに格納されて返却されます。
  • hide — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。
Enum"show""hide"
content[].​limits.​per_itemobject or null

アイテムのアイテム制限。

content[].​limits.​per_item.​totalinteger

すべてのユーザーが購入できるアイテムの最大数。

例: 5
content[].​limits.​per_item.​availableinteger

すべてのユーザーが購入できるアイテムの残り数。

例: 3
content[].​is_freeboolean

アイテムが無料かどうか。

content[].​groupsArray of objects

アイテムが所属するグループ。

content[].​groups[].​external_idstring
例: "horror"
content[].​groups[].​nameobject

アイテム名。キーと値のペアを含める必要があり、 キーは "^[a-z]" 書式のロケール{2}で、値は文字列です。

デフォルト {"en":"Horror"}
例: {"en":"Horror","de":"Horror"}
content[].​groups[].​name.​property name*string追加プロパティ
promotionsArray of objects

カート内の特定アイテムに適用されるプロモーション。この配列は、以下のケースで返されます:

  • 特定のアイテムに対して、割引キャンペーンが構成されている場合。

  • 選択されたアイテムの割引設定を持つプロモーションコードが適用された場合。

アイテムレベルのプロモーションが適用されない場合は、空の配列が返されます。

promotions[].​namestring
promotions[].​date_startstring or null(date-time)
promotions[].​date_endstring or null(date-time)
promotions[].​discountobject or null
promotions[].​discount.​percentstring or null
promotions[].​discount.​valuestring or null
promotions[].​bonusArray of objects
promotions[].​bonus[].​skustring
promotions[].​bonus[].​quantityinteger
promotions[].​bonus[].​typestring

ボーナスアイテムタイプ。

Enum"virtual_good""virtual_currency""bundle""physical_good""game_key""nft"
promotions[].​bonus[].​namestring

ボーナスアイテムの名前です。ボーナスアイテムのタイプphysical_goodでは使用できません。

promotions[].​bonus[].​image_urlstring

ボーナスアイテムの画像URLです。ボーナスアイテムのタイプ physical_good では使用できません。ー

promotions[].​bonus[].​bundle_typestring

ボーナスバンドルアイテムタイプ。ボーナスアイテムタイプbundleのみで利用可能です。

Enum"standard""virtual_currency_package"
promotions[].​limitsobject
promotions[].​limits.​per_userobject
promotions[].​limits.​per_user.​availableinteger
promotions[].​limits.​per_user.​totalinteger
limitsobject or null

アイテム制限。

limits.​per_userobject or null

ユーザーのアイテム制限。

limits.​per_user.​totalinteger

1ユーザーあたりのユーザーが購入できるアイテムの最大数。

例: 5
limits.​per_user.​availableinteger

現在のユーザーが購入できるアイテムの残り数。

例: 3
limits.​per_user.​recurrent_schedule(object or null)
One of:

ユーザーのアイテム制限の定期更新期間。

object or null
limits.​per_user.​limit_exceeded_visibilitystring

購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。

これは、recurrent_schedule配列で定期的な制限リセットが設定されているアイテムに適用されます。

購入制限のリセットが設定されていない場合、購入制限に達した後は、limit_exceeded_visibilityの値に関わらず、そのアイテムはカタログに表示されなくなります。

指定可能な値:

  • show — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムにcan_be_bought: falseフラグが付与されて返されます。次回のリセット日時はreset_next_dateに格納されて返却されます。
  • hide — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。
Enum"show""hide"
limits.​per_itemobject or null

アイテムのアイテム制限。

limits.​per_item.​totalinteger

すべてのユーザーが購入できるアイテムの最大数。

例: 5
limits.​per_item.​availableinteger

すべてのユーザーが購入できるアイテムの残り数。

例: 3
periodsArray of objects or null

アイテム販売期間。

periods[].​date_fromstring(date-time)

指定されたアイテムの販売開始日。

例: "2020-08-11T10:00:00+03:00"
periods[].​date_untilstring or null(date-time)

指定されたアイテムが販売できなくなる日付。nullを指定することもできます。

例: "2020-08-11T20:00:00+03:00"
custom_attributesobject(json)

アイテムの属性と値を含むJSONオブジェクト。

vp_rewardsArray of objects

アイテムのバリューポイント報酬のリスト。

vp_rewards[].​item_idinteger

内部の一意のアイテムID。

vp_rewards[].​skustring

一意のバリューポイントID。

vp_rewards[].​amountinteger

バリューポイントの量。

vp_rewards[].​namestring

バリューポイント名。

vp_rewards[].​image_urlstring

画像URL。

vp_rewards[].​is_clanboolean

バリューポイントがクランリワードチェーンで使用されるかどうか。

orderinteger

リスト内のバンドル順の優先順位。

media_listArray of objects

バンドルの追加アセット。

media_list[].​typestring

メディアタイプ:image/video

Enum"image""video"
例: "image"
media_list[].​urlstring

リソースファイル。

例: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
レスポンス
application/json
{ "item_id": 610316, "sku": "com.xsolla.kg_1", "name": "kg_10.00_bundle", "type": "bundle", "description": "pricePoint_44056_1.", "image_url": null, "long_description": null, "attributes": [], "is_free": false, "order": 999, "groups": [], "price": { "amount": "9.99", "currency": "USD", "amount_without_discount": "9.99" }, "total_content_price": { "amount": "10.99", "currency": "USD", "amount_without_discount": "10.99" }, "media_list": [], "virtual_prices": [], "promotions": [], "limits": { "per_user": {} }, "can_be_bought": true, "bundle_type": "standard", "periods": [ {} ], "custom_attributes": { "purchased": 0, "attr": "value" }, "content": [ {} ], "vp_rewards": [ {}, {} ] }

指定されたグループのバンドルリストを取得Client-side

リクエスト

カタログ構築のために、グループ内のバンドルのリストを取得します。

注意

すべてのプロジェクトには、応答で取得できるアイテム数に制限があります。デフォルトおよび最大値は1応答あたり50アイテムです。ページごとにデータを取得するには、制限オフセットフィールドを使用してください。

注意

認証なしで使用した場合、このAPIコールは一般的なアイテムカタログデータを返します。認証を使用して、アイテムに関連する制限やプロモーションなどのパーソナライズされたユーザーデータを取得します。これを行うには、ユーザーのJWTをAuthorizationヘッダーに渡してください。ユーザーJWTの詳細については、このコールのセキュリティブロックを参照してください。
セキュリティ
XsollaLoginUserJWT
パス
project_idinteger必須

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

例: 44056
external_idstring必須

作成時に指定された外部アイテムグループID

例: weapons
クエリ
limitinteger>= 1

ページでの要素数の制限。

例: limit=50
offsetinteger>= 0

リストが生成される要素番号(カウントは0から始まります)。

例: offset=0
localestring

応答言語。ISO 639-1に準拠した2文字の小文字の言語コード(例:en)。namedescriptionなどのローカリゼーションフィールドでは5文字のロケールコード(例:en-US)がサポートされていますが、応答内では2文字のコードに正規化されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

デフォルト "en"
additional_fields[]Array of strings

応答に含める追加フィールド。デフォルトでは、これらのフィールドは返されません。追加フィールドを含めるには、必須の値を渡してください。

アイテム Enum"media_list""order""long_description""custom_attributes""item_order_in_group"
countrystring

ISO 3166-1 alpha-2に従った2文字の大文字の国名コード。エクソーラがサポートする国国を決定するプロセスに関する詳細情報については、ドキュメントを確認してください。

例: country=US
promo_codestring[ 1 .. 128 ] characters

大文字と小文字を区別する一意のコードです。文字と数字が含まれます。

例: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

ユーザーに利用可能でない、期限付きアイテムを表示します。このようなアイテムの有効期間はまだ開始されていないか、すでに期限切れです。

デフォルト 0
例: show_inactive_time_limited_items=1
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/bundle/group/weapons?limit=50&offset=0&locale=en&additional_fields%5B%5D=media_list&country=US&promo_code=WINTER2021&show_inactive_time_limited_items=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

レスポンス

バンドルのリストは正常に受信されました。

ボディapplication/json
has_moreboolean

ページ数がもっとあることを示す指標として使用されます。

itemsArray of objects
items[].​item_idinteger[ 1 .. 255 ] characters

内部の一意のアイテムID。

items[].​skustring[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

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

items[].​namestring

アイテム名。

items[].​groupsArray of objects

アイテムが所属するグループ。

items[].​groups[].​external_idstring

作成時に指定された外部アイテムグループID

例: "exclusive"
items[].​groups[].​namestring

グループ名。

例: "Exclusive"
items[].​groups[].​item_order_in_groupinteger

グループ内でのアイテムの配置位置は 表示順序を決定します。 additional_fields[]クエリパラメータを介してリクエストされた場合にのみ返されます。

例: 1
items[].​descriptionstring or null

アイテムの説明。

items[].​long_description(object or null)

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

Any of:

2文字の小文字の言語コード。

items[].​long_description.​enstring or null

英語

items[].​long_description.​arstring or null

アラビア語

items[].​long_description.​bgstring or null

ブルガリア語

items[].​long_description.​cnstring or null

中国語(簡体字)

items[].​long_description.​csstring or null

チェコ語

items[].​long_description.​destring or null

ドイツ語

items[].​long_description.​esstring or null

スペイン語(スペイン)

items[].​long_description.​frstring or null

フランス語

items[].​long_description.​hestring or null

ヘブライ語

items[].​long_description.​itstring or null

イタリア語

items[].​long_description.​jastring or null

日本語

items[].​long_description.​kostring or null

韓国語

items[].​long_description.​plstring or null

ポーランド語

items[].​long_description.​ptstring or null

ポルトガル語

items[].​long_description.​rostring or null

ルーマニア語

items[].​long_description.​rustring or null

ロシア語

items[].​long_description.​thstring or null

タイ語

items[].​long_description.​trstring or null

トルコ語

items[].​long_description.​twstring or null

中国語(繁体字)

items[].​long_description.​vistring or null

ベトナム語

items[].​long_description.​kmstring or null

クメール語

items[].​long_description.​idstring or null

インドネシア語

items[].​long_description.​lostring or null

ラオス語

items[].​long_description.​mystring or null

ビルマ語

items[].​long_description.​phstring or null

フィリピン語

items[].​long_description.​nestring or null

ネパール語

items[].​attributesArray of objects

アイテムに対応する属性と値のリスト。カタログのフィルタリングに使用できます。

items[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

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

items[].​attributes[].​namestring

属性名。

例: "Genre"
items[].​attributes[].​valuesArray of objects
items[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。

items[].​attributes[].​values[].​valuestring

属性値。

例: "Strategy"
items[].​typestring

アイテムタイプ。

items[].​bundle_typestring

バンドルタイプ。standardを使用してアイテムのバンドルを作成し、バンドルに含まれるアイテムの SKU を指定します。 partner_side_contentを使用して空のバンドルを作成し、ウェブフックを使用してユーザー側でアイテムを追加します。このタイプは、パートナー側でのカタログ個人用設定でのみ使用されます。

Enum"standard""partner_side_content"
items[].​image_urlstring or null

画像URL。決済UI上で画像を正しく表示し、高速に読み込ませるために、当社の画像およびURLガイドラインを確認ください:

  • サポートされているフォーマット:WebP(推奨)、PNG、JPG
  • ファイルサイズ:50 KB以下(WebPの場合)または150 KB以下(PNGおよびJPGの場合)
  • 画像サイズ:280 × 280 px
  • カラースペース:sRGB
  • プロトコル:バージョン管理されたURLに対する、長期キャッシュを伴うHTTPS

items[].​is_freeboolean

アイテムが無料かどうか。

items[].​priceobject or null

アイテム価格。

items[].​price.​amountstring^\d*\.?\d*$必須

割引を適用したアイテム価格。

items[].​price.​amount_without_discountstring^\d*\.?\d*$必須

アイテム価格。

items[].​price.​currencystring必須

商品価格通貨。ISO 4217 による3文字コード。

items[].​total_content_priceobject or null

バンドルコンテンツ価格の合計。

items[].​total_content_price.​amountstring

バンドルコンテンツの価格を割引いた場合の合計。

例: "100.99"
items[].​total_content_price.​amount_without_discountstring

バンドルコンテンツ価格の合計。

例: "100.99"
items[].​total_content_price.​currencystring

商品価格通貨。ISO 4217 による3文字コード。

items[].​virtual_pricesArray of objects

仮想価格。

items[].​virtual_prices[].​amountinteger

仮想通貨建てのアイテム価格。

例: 100
items[].​virtual_prices[].​amount_without_discountinteger

割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常にamountと等しくなります。

例: 200
items[].​virtual_prices[].​skustring

仮想通貨SKU。

例: "vc_gold"
items[].​virtual_prices[].​is_defaultboolean

仮想通貨でのデフォルト価格であるかどうか。

例: true
items[].​virtual_prices[].​image_urlstring or null

仮想通貨の画像URL。

例: "http://image.png"
items[].​virtual_prices[].​namestring

仮想通貨名。

例: "Gold"
items[].​virtual_prices[].​typestring

アイテムタイプ。仮想通貨の場合はvirtual_currencyになります。

例: "virtual_currency"
items[].​virtual_prices[].​descriptionstring or null

Virtual currency description.

例: "In-game currency used to purchase weapons and upgrades"
items[].​can_be_boughtboolean

trueの場合、ユーザーはアイテムを購入することができます。

items[].​contentArray of objects

バンドルパッケージのコンテンツ。

items[].​content[].​skustring

一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ダッシュ、およびアンダースコアのみが含まれます。

例: "com.xsolla.big_rocket_1"
items[].​content[].​namestring

アイテム名。

例: "Big Rocket"
items[].​content[].​typestring

アイテムタイプ:virtual_good/virtual_currency/bundle

例: "virtual_currency"
items[].​content[].​descriptionstring

アイテムの説明。

例: "Big Rocket - description"
items[].​content[].​image_urlstring

画像URL。

例: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"
items[].​content[].​quantityinteger

パッケージ内のアイテムの数量。

例: 250
items[].​content[].​virtual_item_typestring

仮想アイテムタイプ。

指定可能な値:

  • consumable — 使用後にインベントリから消滅するアイテム(例:弾薬など)。
  • non_consumable — 期間の制限なくインベントリに残り続けるアイテム。
  • non_renewing_subscription — 制限された期間内に限り、サービスやコンテンツへのアクセス権を付与する期間限定アイテム。
Enum"consumable""non_consumable""non_renewing_subscription"
例: "non-consumable"
items[].​content[].​attributesArray of objects

アイテムに対応する属性と値のリスト。カタログのフィルタリングに使用できます。

items[].​content[].​attributes[].​external_idstring[ 1 .. 255 ] characters^[a-zA-Z0-9-_]+$

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

items[].​content[].​attributes[].​namestring

属性名。

例: "Genre"
items[].​content[].​attributes[].​valuesArray of objects
items[].​content[].​attributes[].​values[].​external_idstring[ 1 .. 255 ] characters^[-_.\d\w]+$

属性の一意の値ID。external_idには、半角小文字の英数字、ハイフン、アンダースコアのみを含めることができます。

items[].​content[].​attributes[].​values[].​valuestring

属性値。

例: "Strategy"
items[].​content[].​priceobject or null

アイテム価格。

items[].​content[].​price.​amountstring

割引を適用したアイテム価格。

例: "100.99"
items[].​content[].​price.​amount_without_discountstring

アイテム価格。

例: "100.99"
items[].​content[].​price.​currencystring

商品価格の通貨。3文字のコードISO4217 規格詳細については、ドキュメントを参照してください。エクソーラでサポートされている通貨

例: "USD"
items[].​content[].​virtual_pricesArray of objects

仮想価格。

items[].​content[].​virtual_prices[].​amountinteger

仮想通貨建てのアイテム価格。

例: 100
items[].​content[].​virtual_prices[].​amount_without_discountinteger

割引適用前の仮想通貨建てのアイテム価格。仮想通貨の価格には割引が適用されないため、常にamountと等しくなります。

例: 200
items[].​content[].​virtual_prices[].​skustring

仮想通貨SKU。

例: "vc_gold"
items[].​content[].​virtual_prices[].​is_defaultboolean

仮想通貨でのデフォルト価格であるかどうか。

例: true
items[].​content[].​virtual_prices[].​image_urlstring or null

仮想通貨の画像URL。

例: "http://image.png"
items[].​content[].​virtual_prices[].​namestring

仮想通貨名。

例: "Gold"
items[].​content[].​virtual_prices[].​typestring

アイテムタイプ。仮想通貨の場合はvirtual_currencyになります。

例: "virtual_currency"
items[].​content[].​virtual_prices[].​descriptionstring or null

Virtual currency description.

例: "In-game currency used to purchase weapons and upgrades"
items[].​content[].​limitsobject or null

アイテム制限。

items[].​content[].​limits.​per_userobject or null

ユーザーのアイテム制限。

items[].​content[].​limits.​per_user.​totalinteger

1ユーザーあたりのユーザーが購入できるアイテムの最大数。

例: 5
items[].​content[].​limits.​per_user.​availableinteger

現在のユーザーが購入できるアイテムの残り数。

例: 3
items[].​content[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

ユーザーのアイテム制限の定期更新期間。

object or null
items[].​content[].​limits.​per_user.​limit_exceeded_visibilitystring

購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。

これは、recurrent_schedule配列で定期的な制限リセットが設定されているアイテムに適用されます。

購入制限のリセットが設定されていない場合、購入制限に達した後は、limit_exceeded_visibilityの値に関わらず、そのアイテムはカタログに表示されなくなります。

指定可能な値:

  • show — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムにcan_be_bought: falseフラグが付与されて返されます。次回のリセット日時はreset_next_dateに格納されて返却されます。
  • hide — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。
Enum"show""hide"
items[].​content[].​limits.​per_itemobject or null

アイテムのアイテム制限。

items[].​content[].​limits.​per_item.​totalinteger

すべてのユーザーが購入できるアイテムの最大数。

例: 5
items[].​content[].​limits.​per_item.​availableinteger

すべてのユーザーが購入できるアイテムの残り数。

例: 3
items[].​content[].​is_freeboolean

アイテムが無料かどうか。

items[].​content[].​groupsArray of objects

アイテムが所属するグループ。

items[].​content[].​groups[].​external_idstring
例: "horror"
items[].​content[].​groups[].​nameobject

アイテム名。キーと値のペアを含める必要があり、 キーは "^[a-z]" 書式のロケール{2}で、値は文字列です。

デフォルト {"en":"Horror"}
例: {"en":"Horror","de":"Horror"}
items[].​content[].​groups[].​name.​property name*string追加プロパティ
items[].​promotionsArray of objects

カート内の特定アイテムに適用されるプロモーション。この配列は、以下のケースで返されます:

  • 特定のアイテムに対して、割引キャンペーンが構成されている場合。

  • 選択されたアイテムの割引設定を持つプロモーションコードが適用された場合。

アイテムレベルのプロモーションが適用されない場合は、空の配列が返されます。

items[].​promotions[].​namestring
items[].​promotions[].​date_startstring or null(date-time)
items[].​promotions[].​date_endstring or null(date-time)
items[].​promotions[].​discountobject or null
items[].​promotions[].​discount.​percentstring or null
items[].​promotions[].​discount.​valuestring or null
items[].​promotions[].​bonusArray of objects
items[].​promotions[].​bonus[].​skustring
items[].​promotions[].​bonus[].​quantityinteger
items[].​promotions[].​bonus[].​typestring

ボーナスアイテムタイプ。

Enum"virtual_good""virtual_currency""bundle""physical_good""game_key""nft"
items[].​promotions[].​bonus[].​namestring

ボーナスアイテムの名前です。ボーナスアイテムのタイプphysical_goodでは使用できません。

items[].​promotions[].​bonus[].​image_urlstring

ボーナスアイテムの画像URLです。ボーナスアイテムのタイプ physical_good では使用できません。ー

items[].​promotions[].​bonus[].​bundle_typestring

ボーナスバンドルアイテムタイプ。ボーナスアイテムタイプbundleのみで利用可能です。

Enum"standard""virtual_currency_package"
items[].​promotions[].​limitsobject
items[].​promotions[].​limits.​per_userobject
items[].​promotions[].​limits.​per_user.​availableinteger
items[].​promotions[].​limits.​per_user.​totalinteger
items[].​limitsobject or null

アイテム制限。

items[].​limits.​per_userobject or null

ユーザーのアイテム制限。

items[].​limits.​per_user.​totalinteger

1ユーザーあたりのユーザーが購入できるアイテムの最大数。

例: 5
items[].​limits.​per_user.​availableinteger

現在のユーザーが購入できるアイテムの残り数。

例: 3
items[].​limits.​per_user.​recurrent_schedule(object or null)
One of:

ユーザーのアイテム制限の定期更新期間。

object or null
items[].​limits.​per_user.​limit_exceeded_visibilitystring

購入制限に達してから次回の制限リセットまでの間、カタログ内でのアイテムの表示・非表示を決定します。

これは、recurrent_schedule配列で定期的な制限リセットが設定されているアイテムに適用されます。

購入制限のリセットが設定されていない場合、購入制限に達した後は、limit_exceeded_visibilityの値に関わらず、そのアイテムはカタログに表示されなくなります。

指定可能な値:

  • show — 購入制限に達した後も、カタログ取得用のAPIコールに対してアイテム情報が返却されます。クライアントサイドのカタログ取得APIコールにおいては、制限に達した時点でアイテムにcan_be_bought: falseフラグが付与されて返されます。次回のリセット日時はreset_next_dateに格納されて返却されます。
  • hide — 購入制限に達した時点から、制限値がリセットされるまでの間、カタログ取得用のAPIコールにおいてアイテムは返されなくなります。
Enum"show""hide"
items[].​limits.​per_itemobject or null

アイテムのアイテム制限。

items[].​limits.​per_item.​totalinteger

すべてのユーザーが購入できるアイテムの最大数。

例: 5
items[].​limits.​per_item.​availableinteger

すべてのユーザーが購入できるアイテムの残り数。

例: 3
items[].​periodsArray of objects or null

アイテム販売期間。

items[].​periods[].​date_fromstring(date-time)

指定されたアイテムの販売開始日。

例: "2020-08-11T10:00:00+03:00"
items[].​periods[].​date_untilstring or null(date-time)

指定されたアイテムが販売できなくなる日付。nullを指定することもできます。

例: "2020-08-11T20:00:00+03:00"
items[].​custom_attributesobject(json)

アイテムの属性と値を含むJSONオブジェクト。

items[].​vp_rewardsArray of objects

アイテムのバリューポイント報酬のリスト。

items[].​vp_rewards[].​item_idinteger

内部の一意のアイテムID。

items[].​vp_rewards[].​skustring

一意のバリューポイントID。

items[].​vp_rewards[].​amountinteger

バリューポイントの量。

items[].​vp_rewards[].​namestring

バリューポイント名。

items[].​vp_rewards[].​image_urlstring

画像URL。

items[].​vp_rewards[].​is_clanboolean

バリューポイントがクランリワードチェーンで使用されるかどうか。

items[].​orderinteger

リスト内のバンドル順の優先順位。

items[].​media_listArray of objects

バンドルの追加アセット。

items[].​media_list[].​typestring

メディアタイプ:image/video

Enum"image""video"
例: "image"
items[].​media_list[].​urlstring

リソースファイル。

例: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
レスポンス
application/json
{ "has_more": true, "items": [ {} ] }

概要

カートは、複数のアイテムを1つの注文にまとめることができる購入メカニズムです。ユーザーは、任意のタイプのアイテムを任意の数量で実際通貨で購入でき、プロモーションコードも使用できます。

カートはエクソーラ側で保存されます。セッションをまたいでカートを保存できるかどうかは、ユーザーが認証されているかによって異なります。

  • 認証されたユーザーの場合、カートは特定のユーザーに紐付けられ、同じユーザーとしてリクエストが送信される限り、セッションをまたいで保存されます。

  • 未認証ユーザーの場合、カートの保存はx-unauthorized-idヘッダーの成否に依存します。未認証ユーザーのカートをセッション間で保持するには、すべてのリクエストで同じx-unauthorized-idを渡してください。なお、このオプションはゲームキーの販売時のみ利用可能です。

カートを特定する方法は2つあります。ユーザーのJWTによる自動特定、またはカートID(cart_id)による特定です。

カート管理は、クライアント側とサーバー側の両方で利用可能です。

サーバー側では、ユーザーセッションを復元する場合などに、カートにアイテムを入れることができます。クライアント側では、以下の操作が利用可能です:

  • 現在のユーザーのカートまたはIDによるカートを取得する
  • カートにアイテムを追加する
  • カート内のアイテムを更新する
  • カートからアイテムを削除する

カートからアイテムを購入するには、注文作成のためのクライアントとサーバーのコールが使用されます。

カートの有効期限(TTL)は、デフォルトで72時間です。新しいアイテムが追加されるなど、カートの内容が変更されると、TTLは延長されます。

決済が成功した後も、カートは自動的にはクリアされません。カートをクリアするには、クライアントサイドの以下のAPIコールを使用してください:

カート使用シナリオ:

  1. ユーザーがアイテムを選択するストアUIを実装します。

  2. ユーザーがストアでアイテムを選択した際、たとえば カートへアイテムを追加するコールを使用してアイテムをカートに追加します。アイテム配列には、SKUと必要なアイテムの数量を渡す必要があります。

  3. カート表示UIを実装します。ユーザーがカートに移動した際、現在のユーザーのカートを取得するコールを使用してカートの内容を表示します。応答には、割引や適用されたプロモーションを含むアイテムの最終価格に関する情報が返されます。

  4. 注文の支払いを行うために、決済UIを開く処理を実装します。たとえば、特定のカートの全アイテムを含む注文を作成するコールを使用できます。応答には、決済UIを開くためのトークンが返されます。

  5. 決済が完了したアイテムのデータをタイムリーに受け取り、ユーザーにそれらを付与するために、たとえばウェブフックを使用して注文状況の追跡を設定します。

注意

ゲーム内およびオンラインでのアイテム販売を実装するには、統合ガイドを参照してください。

カートと決済フロー

注文のライフサイクル

注文のライフサイクルを理解することは、注文の追跡や、アイテムの付与といった購入後ロジックの正確な実装に役立ちます。

注文は以下のステータスを遷移します:

ステータス説明備考
new注文が作成されました。システムは支払い完了の確認を待っています。トランザクションステータスの説明は、ペイステーションAPIに関するドキュメントで確認できます。
paid注文の支払いが完了し(トランザクションがdoneステータスに移行)、ユーザーにアイテムを付与できる状態です支払いが確認されるまで、注文はnewステータスのままとなります。
doneアイテムがユーザーに付与されました。
canceled支払いが返金されました。トランザクションステータスrefundedに変更されると、注文はこのステータスに移行します。
expired制限 付きアイテム、プロモーションコード、またはプロモーションに対して新しい注文を作成すると、そのアイテムを含む過去の未払いの注文はすべてexpiredステータスに移行します。支払いが可能なのは最新の注文のみです。ユーザーが有効期限切れの注文に対して支払いを試みた場合、支払いUIに 2002 エラーが表示され、決済は失敗します。

注文のライフサイクル

注意

ユーザーが支払いを完了する間に注文がexpiredステータスに移行した場合でも、決済自体が成功したときは、注文はexpiredからpaidステータスに移行します。ただし、これが適用されるのは、決済時にその注文アイテムの購入制限数を超えない場合に限られます。

カート(クライアント側)

このセクションのコールを使用して、クライアント側でカートを管理します。

操作

カート(サーバー側)

このセクションのコールを使用して、サーバー側でカートを管理します。

操作

決済(クライアント側)

このセクションのコールを使用して、クライアント側で決済トークンを作成します。

操作

決済(サーバー側)

このセクションのコールを使用して、サーバー側で決済トークンを作成します。

操作

注文

このセクションのコールを使用して、注文に関する情報を取得します。

操作

無料アイテム

ユーザーに無料アイテムを付与するには、このセクションのコールを使用してください。

操作

概要

購入制限を使用すると、単一のユーザーまたはすべてのユーザーが購入できるアイテム数量を制限できます。スケジュールされた制限リセットを設定することもできます。

制限はエクソーラ側に保存され、パブリッシャーアカウントで個々のアイテムレベルで設定されるか、以下のAPIコールのlimitsオブジェクトを介して設定されます:

制限情報は、アイテムカタログを取得するための以下のAPIコールでitems.limitsオブジェクトに返されます:

制限グループの管理サブセクションに属するAPIコールにより、制限の現在状態の取得、および指定したユーザーに対する制限値の更新が可能となります(例:クエスト完了時におけるカウンターのリセット、残存数量の手動調整など)。

注意

カタログでの制限設定の詳細については、アイテム購入制限セクションを参照してください。
操作
操作
操作

マーチャント

操作

カタログ

このAPIは販売可能なアイテムや特定のアイテムを取得することができます。

操作

共通地域

Regional sales restrictions allow you to manage item availability in specific countries or groups of countries. For example, you can sell a game only in certain countries due to licensing restrictions.

Restrictions are configured using regions. Each region combines one or more countries under a single region_id identifier. You can link an item to one or more regions.

Item availability is determined as follows:

  • If no regions are specified for an item, it is available for purchase in all countries.
  • If regions are specified for an item and the user's country is included in one of them, the item is available to this user.
  • If regions are specified for an item and the user's country is not included in any of them, the item is unavailable to this user.

The user's country is passed in the country parameter when requesting the catalog via API calls from the Catalog subsection. If the parameter is not passed, the country is determined based on the user's IP address.

The user's country is checked against the item's regions twice: when requesting the catalog and when creating an order. Unavailable items are not included in the catalog response, and an order with such item will not be created.

Use API calls from the Common regions group to create, update, and delete regions.

Regional sales restrictions setup flow:

  1. Create a region using the Create region API call, specifying the list of countries. The response returns a region_id that is required in the next step.
  2. Link a virtual item to the region by passing its region_id in the regions array when creating or updating the item.
  3. Display the catalog to the user using API calls from the Catalog subsection, for example, the Get virtual items list API call. The user's country is determined by the country parameter or, if it is not provided, based on the user's IP address. Items unavailable in the user's country are not included in the catalog response.
  4. When the user proceeds to pay for an item or cart, create an order:

The response contains a token for opening the payment UI.

Note

Xsolla checks whether the user's country is included in the region specified for the item. If the country is not included in the item's region, the order cannot be created.

  1. Implement opening the payment UI to pay for the order.

Common regions

操作

ウェブフック

操作
操作
操作
操作