콘텐츠로 건너뛰기

개요

카탈로그 API를 통해 엑솔라 측 인게임 아이템에 대한 카탈로그를 구성하고 스토어 사용자에게 카탈로그를 표시합니다.

API를 통해 다음 카탈로그 엔터티를 관리할 수 있습니다:

  • 가상 아이템 - 무기, 스킨, 부스터와 같은 인게임 아이템.
  • 인게임 재화 - 가상 아이템을 구매하는 데 사용되는 가상 화폐.
  • 인게임 재화 패키지 - 사전 정의된 인게임 재화 번들.
  • 번들 - 가상 아이템, 통화 또는 단일 SKU로 판매되는 게임 키의 결합 패키지.
  • 게임 키 - Steam이나 기타 DRM 제공업체와 같은 플랫폼을 통해 배포되는 게임 및 DLC의 키.
  • 그룹 - 카탈로그 내 아이템을 정리하고 분류하기 위한 로직 그룹.

API 호출

API는 다음 그룹으로 구분됩니다:

  • Admin - 카탈로그 아이템 및 그룹 생성, 업데이트, 삭제 및 구성을 위한 호출. 상품 또는 프로젝트 자격 증명으로 기본 액세스 인증을 통해 인증됩니다. 스토어프런트 용도로 사용되지 않습니다.
  • Catalog - 아이템 검색 및 최종 사용자를 위한 맞춤형 스토어프론트 구축을 위한 호출. 높은 부하 시나리오를 처리하도록 설계되었습니다. 사용자별 한도나 진행 중인 프로모션과 같은 개인화된 데이터를 반환하기 위해 선택적 사용자 JWT 인증을 지원합니다.
OpenAPI 설명 다운로드
언어
서버
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ko/api/catalog/
작업

인게임 재화 패키지 생성하기Server-sideAdmin

요청

인게임 재화 패키지를 생성합니다.

보안
basicAuth
경로
project_idinteger필수

프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

예제: 44056
본문application/json
Any of:
attributesArray of objects(Virtual-Items-Currency_admin-post-put-attributes)<= 20 items

특성 목록입니다.

주의. 아이템에 20개 이상의 특성을 지정할 수 없습니다. 제한을 초과하려고 하면 오류가 발생합니다.
contentArray of objects= 1 characters필수

인게임 재화 패키지에는 1개의 인게임 재화 위치만 포함할 수 있습니다.

content[].​quantityinteger
content[].​skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.

예제: "booster_mega_1"
custom_attributesobject(json)(item-custom-attributes)<= 500 characters

아이템 특성과 값이 포함된 JSON 개체입니다. 특성을 사용하면 아이템을 사용할 수 있는 플레이어의 레벨과 같은 추가 정보를 아이템에 추가할 수 있습니다. 특성은 게임의 내부 논리를 강화하며 전용 GET 메소드와 웹훅을 통해 이용할 수 있습니다.

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)필수

아이템 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 로케일 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

One of:

아이템 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 로케일 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

description.​arstring or null

아랍어

description.​bgstring or null

불가리아어

description.​cnstring or null

중국어(간체)

description.​csstring or null

체코어

description.​destring or null

독일어

description.​enstring or null

영어

description.​esstring or null

스페인어(스페인)

description.​frstring or null

프랑스어

description.​hestring or null

히브리어

description.​idstring or null

인도네시아어

description.​itstring or null

이탈리아어

description.​jastring or null

일본어

description.​kmstring or null

크메르어

description.​kostring or null

한국어

description.​lostring or null

라오스어

description.​mystring or null

버마어

description.​nestring or null

네팔어

description.​phstring 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

베트남어

groupsArray of strings(Virtual-Items-Currency_admin-groups-create)

아이템이 속한 그룹입니다.

메모. 문자열 값은 그룹 `external_id`을 참조합니다.
image_urlstring(Virtual-Items-Currency_admin-image_url)
is_deletedboolean(Virtual-Items-Currency_is_deleted)
is_enabledboolean(Virtual-Items-Currency_is_enabled)
is_freeboolean(value-is_free)

true일 경우 아이템은 무료입니다.

기본값 false
예제: false
is_paid_randomized_rewardboolean(value-is_paid_randomized_reward)

아이템이 예를 들어, 루트 박스와 같이 무작위로 지급되었는지 여부.

기본값 false
예제: false
is_show_in_storeboolean(Virtual-Items-Currency_is_show_in_store)
limitsobject(Virtual-Currency-Package-item-limit)

아이템 제한 사항입니다.

long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

아이템의 긴 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 5자 로케일 코드(예 en-US: ) 두 가지 형식 중 하나로 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 변수(예: enen-US)가 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

Any of:

아이템의 긴 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 5자 로케일 코드(예 en-US: ) 두 가지 형식 중 하나로 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 변수(예: enen-US)가 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

media_listArray of objects(Virtual-Items-Currency_admin-media_list)

스크린샷, 게임 플레이 동영상 등과 같은 아이템의 추가 자산입니다.

예제: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}]
name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)필수

아이템 이름에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 언어 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

One of:

아이템 이름에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 언어 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

name.​arstring or null

아랍어

name.​bgstring or null

불가리아어

name.​cnstring or null

중국어(간체)

name.​csstring or null

체코어

name.​destring or null

독일어

name.​enstring or null

영어

name.​esstring or null

스페인어(스페인)

name.​frstring or null

프랑스어

name.​hestring or null

히브리어

name.​idstring or null

인도네시아어

name.​itstring or null

이탈리아어

name.​jastring or null

일본어

name.​kmstring or null

크메르어

name.​kostring or null

한국어

name.​lostring or null

라오스어

name.​mystring or null

버마어

name.​nestring or null

네팔어

name.​phstring 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

베트남어

orderinteger(Virtual-Items-Currency_order)

배열 순서를 정의합니다.

예제: 1
periodsArray of objects or null(item-periods)

아이템 판매 기간입니다.

pre_orderobject(Virtual-Items-Currency_admin-pre_order)
pricesArray of objects(Virtual-Items-Currency_admin-prices)필수
예제: [{"amount":10.5,"country_iso":"US","currency":"USD","is_default":true,"is_enabled":true}]
prices[].​amountnumber> 0필수

금액.

예제: 10.5
prices[].​country_isostring or null

이 가격을 사용할 수 있는 국가입니다. ISO 3166-1 alpha 2에 따른 2자리 글자 코드입니다.

예제: "US"
prices[].​currencystring필수

아이템 가격 통화입니다. ISO 4217에 따른 3자리 코드입니다. 엑솔라에서 지원하는 통화에 대한 자세한 내용은 설명서를 확인하십시오.

예제: "USD"
prices[].​is_defaultboolean
기본값 false
예제: true
prices[].​is_enabledboolean
기본값 true
예제: true
regionsArray of objects(Virtual-Items-Currency_admin-regions)
skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$필수

고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.

예제: "booster_mega_1"
vc_pricesArray of objects(Virtual-Items-Currency_admin-create-vc_prices)
예제: [{"amount":10,"is_default":true,"is_enabled":true,"sku":"com.xsolla.gold_1"}]
curl -i -X POST \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_currency/package \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": [
      {
        "external_id": "event",
        "name": {
          "en-US": "Event"
        },
        "values": [
          {
            "external_id": "10-anniversary",
            "value": {
              "en-US": "10th anniversary"
            }
          },
          {
            "external_id": "christmas",
            "value": {
              "en-US": "Christmas"
            }
          }
        ]
      }
    ],
    "content": [
      {
        "quantity": 500,
        "sku": "com.xsolla.novigrad_crown"
      }
    ],
    "custom_attributes": {
      "attr": "value",
      "purchased": 0
    },
    "description": {
      "en-US": "The Crown (also known as the Novigradian crown) is a monetary unit which is used in some Northern Kingdoms",
      "ru-RU": "Крона (Также известна как Новиградская крона) - платежная единица, используемая в северных королевствах"
    },
    "groups": [
      "witcher"
    ],
    "image_url": "https://vignette.wikia.nocookie.net/witcher/images/7/7c/Items_Orens.png/revision/latest?cb=20081113120917",
    "is_enabled": true,
    "is_free": false,
    "is_paid_randomized_reward": true,
    "limits": {
      "per_item": null,
      "per_user": null
    },
    "long_description": {
      "en-US": "Long Test new",
      "ru-RU": "Длинное описание"
    },
    "media_list": [
      {
        "type": "image",
        "url": "https://test.com/image0"
      },
      {
        "type": "image",
        "url": "https://test.com/image1"
      }
    ],
    "name": {
      "en-US": "500x Novigradian crown",
      "ru-RU": "500x Новиградских крон"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2020-08-11T10:00:00+03:00",
        "date_until": "2020-08-11T20:00:00+03:00"
      }
    ],
    "prices": [
      {
        "amount": 99.99,
        "currency": "USD",
        "is_default": true
      },
      {
        "amount": 80.03,
        "currency": "EUR",
        "is_enabled": false
      }
    ],
    "sku": "com.xsolla.novigrad_crown_500",
    "vc_prices": null
  }'

응답

가상 아이템을 성공적으로 생성했습니다.

본문application/json
skustring
예제: "com.xsolla.item_1"
응답
application/json
{ "sku": "com.xsolla.item_1" }

요청

인게임 재화 패키지를 삭제합니다.

보안
basicAuth
경로
project_idinteger필수

프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

예제: 44056
item_skustring필수

아이템 SKU입니다.

예제: booster_mega_1
curl -i -X DELETE \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_currency/package/sku/booster_mega_1

응답

인게임 재화 패키지를 성공적으로 업데이트했습니다.

응답
콘텐츠 없음

인게임 재화 패키지 가져오기Server-sideAdmin

요청

관리를 위해 프로젝트 내부의 인게임 재화 패키지를 가져옵니다.

참고

스토어 카탈로그를 빌드하기 위해 이 엔드포인트를 사용해선 안 됩니다.
보안
basicAuth
경로
project_idinteger필수

프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

예제: 44056
item_skustring필수

아이템 SKU입니다.

예제: booster_mega_1
curl -i -X GET \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_currency/package/sku/booster_mega_1

응답

지정한 인게임 재화 패키지를 성공적으로 수신했습니다.

본문application/json
attributesArray of objects(Virtual-Items-Currency_admin-attributes)

특성 목록입니다.

예제: [{"external_id":"attribute_external_id","name":{"de":"Attributname","en":"Attribute name"},"values":[{"external_id":"value_1","name":{"de":"wert 1","en":"value 1"}},{"external_id":"value_2","name":{"de":"wert 2","en":"value 2"}}]}]
bundle_typestring
기본값 "virtual_currency_package"
예제: "virtual_currency_package"
contentArray of objects
custom_attributesobject(json)(item-custom-attributes)<= 500 characters

아이템 특성과 값이 포함된 JSON 개체입니다. 특성을 사용하면 아이템을 사용할 수 있는 플레이어의 레벨과 같은 추가 정보를 아이템에 추가할 수 있습니다. 특성은 게임의 내부 논리를 강화하며 전용 GET 메소드와 웹훅을 통해 이용할 수 있습니다.

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

아이템 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 로케일 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

One of:

아이템 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 로케일 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

groupsArray of objects(Virtual-Items-Currency_admin-groups-response)

아이템이 속한 그룹입니다.

기본값 []
예제: [{"external_id":"horror","name":{"en":"Horror"}}]
image_urlstring(Virtual-Items-Currency_admin-image_url)
is_enabledboolean(Virtual-Items-Currency_is_enabled)
is_freeboolean(value-is_free)

true일 경우 아이템은 무료입니다.

기본값 false
예제: false
is_paid_randomized_rewardboolean(value-is_paid_randomized_reward)

아이템이 예를 들어, 루트 박스와 같이 무작위로 지급되었는지 여부.

기본값 false
예제: false
is_show_in_storeboolean(Virtual-Items-Currency_is_show_in_store)
limitsobject or null(admin-item-limit-response)

아이템 제한 사항입니다.

long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

아이템의 긴 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 5자 로케일 코드(예 en-US: ) 두 가지 형식 중 하나로 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 변수(예: enen-US)가 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

Any of:

아이템의 긴 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 5자 로케일 코드(예 en-US: ) 두 가지 형식 중 하나로 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 변수(예: enen-US)가 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

media_listArray of objects(Virtual-Items-Currency_admin-media_list)

스크린샷, 게임 플레이 동영상 등과 같은 아이템의 추가 자산입니다.

예제: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}]
name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)

아이템 이름에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 언어 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

One of:

아이템 이름에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 언어 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: enen-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 문서에서 확인할 수 있습니다.

orderinteger(Virtual-Items-Currency_order)

배열 순서를 정의합니다.

예제: 1
periodsArray of objects(item-periods-response)

아이템 판매 기간입니다.

pricesArray of objects(Virtual-Items-Currency_admin-prices)
예제: [{"amount":10.5,"country_iso":"US","currency":"USD","is_default":true,"is_enabled":true}]
regionsArray of objects(Virtual-Items-Currency_admin-regions)
skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

고유 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다.

예제: "booster_mega_1"
typestring(Virtual-Items-Currency_type)

아이템의 유형: virtual_good/virtual_currency/bundle/physical_good/unit.

vc_pricesArray of objects(Virtual-Items-Currency_admin-get-vc_prices)
예제: [{"amount":10,"is_default":true,"sku":"com.xsolla.gold_1"}]
응답
application/json
{ "attributes": [ {} ], "bundle_type": "virtual_currency_package", "content": [ {} ], "custom_attributes": { "attr": "value", "purchased": 0 }, "description": { "en": "Crystals x100" }, "groups": [], "image_url": "https://cdn3.xsolla.com/img/misc/images/a8682cea328afda0bd127d59eb5b9077.png", "is_enabled": true, "is_free": false, "is_paid_randomized_reward": true, "is_show_in_store": true, "limits": { "per_item": null, "per_user": null, "recurrent_schedule": null }, "long_description": null, "media_list": [], "name": { "en": "Small crystal pack" }, "order": 1, "periods": [], "prices": [ {} ], "regions": [], "sku": "com.xsolla.crystal_pack_1", "type": "bundle", "vc_prices": [] }
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업

카탈로그

이 API를 사용하면 모든 종류의 판매할 수 있는 아이템 또는 특정 아이템을 가져올 수 있습니다.

작업
작업
작업