コンテンツへスキップ

カタログ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を表示する必要はありません。

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

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

操作
操作
操作

概要

Game keys are single-use unique alphanumeric codes that grant users access to a game or DLC on gaming platforms. You can sell game keys via a direct link, through the store UI, or via a widget. You can also configure regional restrictions to sell game keys in specific countries. For detailed information, refer to the Game keys packages section.

User authentication is not required to sell game keys — the keys are sent to the email the user specified at checkout. You can configure authentication to enable additional scenarios: personalization, purchase limits, or an entitlement system. For detailed information, refer to the How to set up authentication when selling game keys section.

Game key sales flow:

  1. Create a game using the Create game API call.
  2. Configure regional restrictions.
  3. Upload keys to a game key package using the Upload codes API call to make them available for purchase.
  4. Display the game catalog with prices for the user's region using the Get games list API call.
  5. Create an order. For a fast purchase, you can use the Create order with all items from current cart API call, passing the game key SKU. The response returns a token for opening the payment UI.
  6. Implement the opening of the payment UI to pay for the order.

To receive timely notifications about successful payments and deliver items to the user, set up order status tracking, for example, using webhooks. The keys are sent to the email the user specified at checkout, and the order moves to the done status.

Game keys

操作
操作
操作

概要

Bundles are sets of items sold as a single unit. A bundle can include virtual items, virtual currency, virtual currency packages, game keys, and other bundles. Use bundles to create starter packs, seasonal offers, and special deals.

Use the following API call groups to work with bundles:

  • Use API calls from the Admin subsection to create, update, delete bundles, and manage their visibility.
  • Use API calls from the Catalog subsection to retrieve bundles.

Purchase limits are configured via the limits object when creating or updating a bundle. For more information, refer to the Limits overview. You can also configure regional restrictions to sell items in specific countries.

Note

For detailed information on configuring bundles, refer to the Bundles section.

Bundle management scenario:

  1. Create a bundle using the Create bundle API call. To verify the created bundle, use the Get bundle API call. To retrieve all bundles in the project, use the Get list of bundles API call.
  2. If needed, use the Update bundle API call to modify the bundle content or settings.
  3. Implement bundle display logic in your storefront using the Get list of bundles, Get specified bundle, or Get list of bundles by specified group API call.
  4. Create an order using the Cart and payment section. For example, for a fast purchase you can use the Create order with specified item API call, passing the bundle SKU. The response contains a token for opening the payment UI.
  5. Implement opening the payment UI to pay for the order.
  6. Set up order status tracking, for example using webhooks, to promptly receive data on successfully paid items and grant them to the user.

Bundle management scenario

操作
操作

概要

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

カートは指定したユーザーにリンクされており、エクソーラ側に保存されます。カートを識別する方法は2つあります:ユーザーのJWTによる自動識別、またはカートID(cart_id)による識別です。

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

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

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

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

カート使用シナリオ:

  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は販売可能なアイテムや特定のアイテムを取得することができます。

操作
操作
操作
操作

アイテムタイプでフィルタリングされた外部IDによるアイテムグループの取得Server-side管理者

リクエスト

Retrieves an item group by external ID. Only items of the specified type are counted for the group. This is similar to the Get item group by external ID endpoint, with additional filtering of items by type when counting them.

セキュリティ
basicAuth
パス
project_idinteger必須

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

例: 44056
item_typestring必須

グループのフィルタリングに使用されるアイテムタイプ。どのアイテムをitems_countに含めるかを決定します。/を含む値(例:virtual_currency/package or game/key)は、URLエンコードする必要があります(例:virtual_currency%2Fpackage)。

列挙型"virtual_items""virtual_currency""virtual_currency/package""game/key""bundle""game""value_points""subscription_plans"
例: virtual_items
external_idstring必須

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

例: weapons
curl -i -X GET \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_items/groups/weapons

レスポンス

指定されたアイテムタイプでフィルタリングされたitems_countとともに、アイテムグループが正常に取得されました。

ボディapplication/json
idinteger必須

エクソーラによって割り当てられたアイテムグループID。

例: 1
external_idstring必須

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

例: "weapons"
name(2文字 (object or null)) or (5文字 (object or null))(group-name-localization-object)必須

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

Any of:

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

name.​enstring or null

英語

name.​arstring or null

アラビア語

name.​bgstring or null

ブルガリア語

name.​cnstring or null

中国語(簡体字)

name.​csstring or null

チェコ語

name.​destring or null

ドイツ語

name.​esstring or null

スペイン語(スペイン)

name.​frstring or null

フランス語

name.​hestring or null

ヘブライ語

name.​itstring or null

イタリア語

name.​jastring or null

日本語

name.​kostring or null

韓国語

name.​plstring or null

ポーランド語

name.​ptstring or null

ポルトガル語

name.​rostring or null

ルーマニア語

name.​rustring or null

ロシア語

name.​thstring or null

タイ語

name.​trstring or null

トルコ語

name.​twstring or null

中国語(繁体字)

name.​vistring or null

ベトナム語

name.​kmstring or null

クメール語

name.​idstring or null

インドネシア語

name.​lostring or null

ラオス語

name.​mystring or null

ビルマ語

name.​phstring or null

フィリピン語

name.​nestring or null

ネパール語

description(2文字 (object or null)) or (5文字 (object or null))(group-description-localization-object)

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

Any of:

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

description.​enstring or null

英語

description.​arstring or null

アラビア語

description.​bgstring or null

ブルガリア語

description.​cnstring or null

中国語(簡体字)

description.​csstring or null

チェコ語

description.​destring or null

ドイツ語

description.​esstring or null

スペイン語(スペイン)

description.​frstring or null

フランス語

description.​hestring or null

ヘブライ語

description.​itstring or null

イタリア語

description.​jastring or null

日本語

description.​kostring or null

韓国語

description.​plstring or null

ポーランド語

description.​ptstring or null

ポルトガル語

description.​rostring or null

ルーマニア語

description.​rustring or null

ロシア語

description.​thstring or null

タイ語

description.​trstring or null

トルコ語

description.​twstring or null

中国語(繁体字)

description.​vistring or null

ベトナム語

description.​kmstring or null

クメール語

description.​idstring or null

インドネシア語

description.​lostring or null

ラオス語

description.​mystring or null

ビルマ語

description.​phstring or null

フィリピン語

description.​nestring or null

ネパール語

image_urlstring or null(group-image-url)

アイテムグループの画像URL。

orderinteger(group-display-order)

カタログ内でのアイテムグループの表示順序。この値が高くなるほど、グループはリストの下方に表示されます。値が同じ場合は作成日時順でソートされ、新しいグループほど上方に表示されます。

is_enabledboolean(group-is-enabled)必須

アイテムグループがカタログ内で有効化されているかどうか。

items_countinteger

グループ内の総アイテム数。

例: 5
is_contains_any_itemsboolean(group-is-contains-any-items)

指定されたitem_typeに関わらず、グループにアイテムが含まれているかどうか。指定されたタイプに対するitems_count: 0であっても、そのグループに他のタイプのアイテムが含まれている場合、is_contains_any_itemstrueになります。

レスポンス
application/json
{ "id": 1, "external_id": "weapons", "name": { "en": "Weapons" }, "description": { "en": "Player weapons" }, "image_url": "https://example.com/weapons.png", "order": 1, "is_enabled": true, "items_count": 3, "is_contains_any_items": true }

アイテムグループの並び替えServer-side管理者

リクエスト

プロジェクト内のアイテムグループの表示順を設定します。新しい順序の値を持つグループの配列を渡します。

セキュリティ
basicAuth
パス
project_idinteger必須

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

例: 44056
ボディapplication/json必須

新しい並び順の値を持つグループの配列。すべてのアイテムは同じ識別方法を使用する必要があります(すべてidで指定するか、またはすべてexternal_idで指定するかのどちらか)。

One of:
unique
Array [
idinteger>= 0必須

エクソーラによって割り当てられたアイテムグループID。

例: 1
orderinteger>= 0必須

新しい表示順序の値。

例: 1
]
curl -i -X PUT \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/group/order \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "id": 1,
      "order": 1
    },
    {
      "id": 2,
      "order": 2
    },
    {
      "id": 3,
      "order": 3
    }
  ]'

レスポンス

アイテムグループの並び替えが正常に完了しました。

レスポンス
コンテンツなし

グループ内(外部IDによる)のアイテムの並べ替えServer-side管理者

リクエスト

外部IDによって識別されるグループ内のアイテムの表示順序を設定します。新しい順序の値を指定したアイテムの配列を渡します。

セキュリティ
basicAuth
パス
project_idinteger必須

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

例: 44056
external_idstring必須

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

例: weapons
ボディapplication/json必須

グループ内での新しい並び順の値を持つアイテムの配列。

Array [
item_idinteger>= 0必須

エクソーラによって割り当てられる内部アイテムID。アイテムカタログAPIコールの応答で返されるアイテムIDを使用します。

例: 101
orderinteger>= 0必須

新しい表示順序の値。

例: 1
]
curl -i -X PUT \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/group/weapons/order/item \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "item_id": 101,
      "order": 1
    },
    {
      "item_id": 102,
      "order": 2
    },
    {
      "item_id": 103,
      "order": 3
    }
  ]'

レスポンス

グループ内のアイテムの並び替えが正常に完了しました。

レスポンス
コンテンツなし
操作