가상 아이템

개요

가상 아이템은 사용자가 실제 통화 또는 인게임 재화로 구매하거나 보너스로 받을 수 있는 인게임 아이템입니다. 이러한 아이템은 물리적 형태를 갖지 않으며 게임 내에서만 사용됩니다. 가상 아이템의 예: 스킨, 물약, 무기, 열쇠 및 게임 플레이 또는 캐릭터 외형에 영향을 주는 기타 요소.

주요 기능:

  • 유연한 가격 설정:
    • 동일한 아이템에 대해 실제 통화와 인게임 재화로 가격을 지정할 수 있는 기능입니다.
    • 여러 실제 통화 및 인게임 재화로 동일한 아이템의 가격을 지정할 수 있는 기능입니다. 이 경우 각 유형에 대해 실제 통화나 인게임 재화 중 하나로 기본 통화를 지정해야 합니다.
    • 무료 아이템 생성.
    • 지역별 가격 설정.
  • 자동 통화 및 국가 감지.
  • 가용성 설정:
  • 카탈로그 구성:
    • 그룹 생성.
    • 카탈로그에서 아이템 정렬.
알림

가상 아이템은 다른 아이템(인게임 재화, 번들 등)과 마찬가지로 관리자 페이지에서 생성하거나 API를 통해 생성하거나 카탈로그의 일부로 가져올 수 있습니다.

이 가이드에서는 수동 항목 생성 및 API 사용 방법에 대해 설명합니다.

카탈로그 가져오기에 대한 자세한 내용은 다음 섹션을 참조하십시오:

관리자 페이지에서 설정

그룹 생성

알림
그룹에는 다양한 아이템 유형(가상 아이템, 인게임 재화 패키지 등)이 포함될 수 있습니다. 그룹화 및 정렬에 대한 자세한 내용은 카탈로그에서 아이템 그룹화 및 정렬 방법 지침을 참조하십시오.

그룹을 사용하면 다단계 카탈로그를 구축할 수 있습니다. 그룹에 할당되지 않은 아이템은 그룹화되지 않음 그룹에 배치됩니다. 그룹 해제됨 그룹은 편집하거나 삭제할 수 없습니다.

그룹 생성 방법:

  1. 관리자 페이지의 프로젝트에서, 스토어 > 가상 아이템 섹션으로 이동합니다.
  2. +를 클릭하고 드롭다운 메뉴에서 그룹 생성을 선택합니다.
    • 외부 ID - 고유한 그룹 ID.
    • 그룹 이름.
    매개 변수를 지정합니다.
  1. 스토어에서 그룹을 사용할 수 있도록 설정하려면 스토어에 그룹 표시 토글을 켜짐(On)으로 설정합니다. 이 경우 그룹은 활성화 상태로 생성됩니다. 나중에 그룹 상태를 변경할 수 있습니다.
  2. 그룹 생성을 클릭합니다.
알림

그룹이 비활성 상태인 경우, 이러한 그룹은 아이템 그룹 목록 가져오기 API 메서드 호출 시 응답에

  • 반환되지 않고,
  • 아이템 목록을 가져오기 위해 클라이언트 API 메서드 호출 시 이 그룹에 포함된 아이템 특성에 표시되지 않으며,
  • 웹사이트 빌더에서 사용할 수 없습니다.

생성 후 그룹의 상태를 변경하려면 스토어 > 가상 아이템 섹션에서 원하는 그룹을 찾아 상태 열에서 필요한 상태를 선택합니다.

기존 그룹에 새 그룹을 추가하여 다단계 카탈로그를 생성할 수 있습니다. 단, 중첩된 그룹을 생성할 수 없는 그룹화되지 않음 그룹은 예외입니다.

기존 그룹을 다른 그룹 내에 중첩하는 방법:

  1. 관리자 페이지의 프로젝트에서, 스토어 > 가상 아이템 섹션으로 이동합니다.
  2. 다른 기존 그룹 아래에 중첩할 그룹을 선택합니다.
  3. •••를 클릭하고 드롭다운 메뉴에서 그룹 편집을 선택합니다.
  4. 디렉터리 위치 드롭다운 목록에서 현재 그룹을 배치할 상위 그룹을 선택합니다.
  1. 변경 사항 저장을 클릭합니다.

가상 아이템 생성

가상 아이템 생성 방법:

  1. 관리자 페이지의 프로젝트에서, 스토어 > 가상 아이템 섹션으로 이동합니다.
  2. +를 클릭하고 드롭다운 메뉴에서 아이템 생성을 선택합니다.
  1. 카탈로그에서 가상 아이템의 가용성 상태를 정의합니다. 다음 옵션 중 하나를 선택합니다:
    • 사용 불가(기본값) - 해당 아이템이 카탈로그에서 구매할 수 없거나 번들에 포함될 수 없거나 다른 아이템 구매 시 보너스로 사용할 수 없는 경우.
    • 사용 가능 - 해당 아이템은 카탈로그에서 구매할 수 있으며 번들에 포함되거나 다른 아이템 구매 시 보너스로 사용할 수 있는 경우.
    • 부분적으로 사용 가능 - 해당 아이템은 카탈로그에서 구매할 수 없지만 번들에 추가하거나 다른 아이템 구매 시 보너스로 사용할 수 있는 경우.
    나중에 아이템의 가용성 상태를 변경할 수 있습니다.
  1. 기본 설정을 구성합니다. 다음을 지정합니다:
    • 이미지(선택 사항)
    • SKU
    • 아이템이 속하는 하나 또는 여러 개의 그룹
    • 아이템 이름
    • 아이템 설명(선택 사항)
알림
아이템 설명은 255개 기호로 제한됩니다. 255개 이상의 기호로 설명을 추가해야 하는 경우 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 전송하십시오.
  1. 아이템 유형을 기본값인 소모성으로 설정합니다(권장).
알림
소모성, 비소모성, 시간 제한 등의 아이템 유형에 따라 엑솔라 인벤토리 시스템에서 아이템이 작동하는 방식이 정의됩니다. 엑솔라 인벤토리는 SDK를 통해 통합된 경우에만 사용할 수 있습니다.
  1. 가상 아이템 가격 설정:
    • 무료 가상 아이템을 생성하려면 유료 또는 무료 필드에서, 무료 아이템을 선택하십시오.
    • 유료 가상 아이템을 생성하려면 유료 또는 무료 필드에서, 유료 아이템을 선택하고 하나 이상의 통화로 가격을 지정하십시오.
    • 지역별 가격을 설정(선택 사항)합니다.
알림
가상 아이템은 여러 실제 통화 및 인게임 재화로 되어 있는 가격을 가질 수 있습니다. 이 경우 각 유형에 대해 실제 통화나 인게임 재화 중 하나로 기본 통화를 지정해야 합니다.
  1. 구매할 수 있는 아이템 수 제한(선택 사항). 이렇게 하려면
    1. 사용자 한 명이 이 아이템을 구매할 수 있는 횟수 제한 토글을 켜짐(On)으로 설정하고, 사용자 한 명이 구매할 수 있는 아이템 수를 지정해야 합니다.
    2. 한도 새로 고침 빈도 구성:
      1. 제한을 재설정하지 않으려면 드롭다운 목록에서 정기적 새로고침 안 함을 선택합니다.
      2. 정기적으로 제한을 재설정하려면 드롭다운 목록에서 새로 고침 빈도를 선택하고 재설정 시기를 지정하십시오.
  2. 스토어 내 아이템의 표시 기간 제한(선택 사항). 이렇게 하려면 스토어에 아이템 표시 필드에서, 기간을 선택하고, 시간대, 기간의 시작 시간 및 종료 시간을 지정합니다. 아이템 표시 종료 기간을 표시하지 않으려면 종료 날짜 없음 확인란을 선택합니다.
  3. 추가 특성(선택 사항)을 추가합니다.
  4. 아이템 생성을 클릭합니다.

API를 통한 가상 아이템 작업

가상 아이템을 설정하려면 가상 아이템 및 인게임 재화그룹의 관리자 하위 섹션에서 API 호출을 사용합니다.

주의
관리자 하위 섹션의 엔드포인트는 프런트 엔드 측 스토어의 카탈로그를 구축하도록 만들어진 것이 아닙니다. 해당 메서드를 방문 페이지, 웹 스토어, 인게임 논리용으로 사용하지 않아야 합니다.

기본 인증은 API 호출에 사용됩니다. Authorization:Basic <your_authorization_basic_key>를 전달합니다. 여기에서 <your_authorization_basic_key>는 Base64 표준으로 인코딩된 판매자 ID:API 키 쌍입니다. 이러한 매개 변수를 찾으려면 관리자 페이지으로 이동합니다.

  • 판매자 ID 표시 위치:
    • 회사 설정 > 회사 섹션.
    • 관리자 페이지의 브라우저 주소 표시줄에 있는 URL. 해당 URL은 https://publisher.xsolla.com/<merchant_id>/ 형식으로 되어 있습니다.

주의

API 키 작업에 대한 자세한 정보는 API 참조를 확인하세요.

주요 권장 사항:

  • 본인의 공간에 생성된 API 키를 저장합니다. 생성된 API 키는 관리자 페이지에서 한 번만 볼 수 있습니다.
  • API 키를 비밀로 유지해야 합니다. 이러한 API 키는 개인 계정과 관리자 페이지의 프로젝트에 대한 액세스를 제공합니다.
  • API 키는 서버에 저장해야 하며 바이너리나 프론트엔드에는 저장해선 안 됩니다.

필요로 하는 API 호출에 project_id 경로 매개 변수가 포함되어 있지 않으면 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해 주세요.

클라이언트 측 가상 아이템 카탈로그를 가져오려면 가상 아이템 및 인게임 재화 그룹의 카탈로그 하위 섹션에서 API 호출을 사용합니다. 이 호출은 기본 인증이 필요하지 않습니다.

그룹으로 나누어지지 않은 아이템의 전체 목록을 가져오려면 가상 아이템 목록 가져오기 API 호출을 사용합니다. 확실한 어떤 그룹의 아이템 목록을 가져오려면 external_id 매개 변수를 지정된 그룹으로 아이템 목록 가져오기 호출에 전달합니다.

가상 아이템 고급 설정

구매할 수 있는 아이템 개수 제한

사용자 한 명이 특정 가상 아이템을 구매할 수 있는 횟수를 제한할 수 있습니다. 이를 통해 아이템 가용성을 관리하고 독점 제안 생성을 지원할 수 있습니다.

사용 사례에 대한 예시:

  • 가상 아이템의 일일, 주간 또는 월간 구매 한도 설정.
  • 사용자당 한 번만 구매할 수 있는 웰컴 아이템.

구매 한도를 구성하는 두 가지 방법:

  • 관리자 페이지에서 아이템을 생성하거나 편집할 때, 사용자 한 명이 이 아이템을 구매할 수 있는 횟수 제한 토글을 켜짐(On)으로 설정하고 구매 가능한 아이템 수량을 지정하고 새로 고침 일정을 구성합니다.
  • API를 통해 아이템을 생성 또는 업데이트할 때 요청 본문의 limits 개체에 구매 한도 설정을 전달합니다.

한도는 엑솔라 측에서 전적으로 집행합니다. 시스템은 각 사용자가 아이템을 구매한 횟수를 추적하여 설정된 한도를 초과하는 구매를 방지합니다.

사용자 액세스 토큰이 카탈로그 요청(가상 아이템 및 인게임 재화 그룹의 카탈로그하위 섹션에서 API 메서드 호출 시), 엑솔라는 특정 사용자가 구매할 수 있는 각 아이템의 수량을 계산합니다. 응답에는 허용된 전체 수량(total 매개 변수)과 사용자에게 부여되는 나머지 수량(available 매개 변수)를 비롯한 limits 개체가 포함됩니다. 이 값을 사용하여 인터페이스에 가용성을 표시할 수 있습니다.

요청에 사용자 액세스 토큰이 제공되지 않은 경우, available 매개 변수 값은 항상 응답의 총 한도와 일치합니다.

구매 한도가 있는 아이템이 포함된 응답 예시:

Copy
Full screen
Small screen
 1{
 2  "items": [
 3    {
 4      "sku": "big_rocket",
 5      "name": "Big Rocket",
 6      "groups": [
 7        {
 8          "external_id": "accessory",
 9          "name": "Accessory"
10        }
11      ],
12      "attributes": [
13        {
14          "external_id": "stack_size",
15          "name": "Stack size",
16          "values": [
17            {
18              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
19              "value": "5"
20            }
21          ]
22        }
23      ],
24      "type": "virtual_good",
25      "description": "Big Rocket - description",
26      "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
27      "is_free": false,
28      "price": {
29        "amount": "100.99",
30        "amount_without_discount": "100.99",
31        "currency": "USD"
32      },
33      "virtual_prices": [
34        {
35          "amount": 100,
36          "sku": "vc_test",
37          "is_default": true,
38          "amount_without_discount": 100,
39          "image_url": "http://image.png",
40          "name": "SHOTGUN FOR TRUE RAIDERS",
41          "type": "virtual_currency",
42          "description": "description"
43        }
44      ],
45      "can_be_bought": true,
46      "inventory_options": {
47        "consumable": {
48          "usages_count": 1
49        },
50        "expiration_period": {
51          "type": "day",
52          "value": 1
53        }
54      },
55      "virtual_item_type": "non_renewing_subscription",
56      "limits": {
57        "per_user": {
58            "total": 5,
59            "available": 5
60        },
61        "per_item": null
62      },
63}

또한 엑솔라는 결제 초기화 및 주문 완료 시 모두 구매 한도를 적용합니다. 사용자가 여러 탭을 열거나 동시에 여러 주문을 생성하려고 시도하면 시스템이 한도 초과를 방지하여 이미 구매한 아이템을 포함한 미결제 주문은 모두 취소됩니다.

알림
이와 다른 유형의 구매 수량 한도에 대해 자세히 알아보려면 수량 한도 제안 지침을 참조하십시오.

스토어 내 아이템의 표시 기간 제한

스토어 내 아이템의 표시 기간을 지정하여

  • 주어진 시간 동안 예를 들어, 휴일 판매 기간 동안 카탈로그의 관련성을 유지
  • 하고 카탈로그에 표시하지 않고 아이템을 미리 생성
  • 하며 아이템 바로 옆에 타이머를 표시하여 사용자가 아이템을 구매하도록 동기를 부여
하는 작업을 수행할 수 있습니다.

알림
웹사이트 빌더를 사용하여 카탈로그 UI를 구축하면 타이머가 자동으로 표시됩니다. 자체 UI에서 카탈로그를 생성하는 경우 타이머를 구현해야 합니다.

스토어에서 아이템에 대한 표시 기간 한도를 다음과 같이 설정할 수 있습니다.

  • 관리자 페이지에서 아이템을 생성 또는 편집할 때 스토어에 아이템 표시 필드에서 기간을 선택하고 시간대, 시작 날짜 및 종료 날짜를 지정합니다. 종료 날짜를 열린 상태로 남겨두려면 종료 날짜 없음 확인란을 선택합니다.
  • API를 통해 아이템을 생성하거나 업데이트할 때 periods 개체에 다음 매개 변수를 포함합니다:
    • periods[0].date_from - 표시 기간의 시작 날짜 및 시간(형식: YYYY-MM-DDThh:mm:ss±hh:mm).
    • periods[0].date_until - 표시 기간의 종료 날짜 및 시간. 종료 날짜를 생략하려면 null를 전달하십시오.

API를 사용하여 시작 날짜와 종료 날짜가 각각 포함된 객체 배열을 전달하여 여러 표시 기간을 지정할 수 있습니다.

기간 배열의 예시:

Copy
Full screen
Small screen
 1"periods": [
 2      {
 3        "date_from": "2022-06-10T14:00:00+03:00",
 4        "date_until": "2022-06-30T14:00:00+03:00"
 5      },
 6       {
 7        "date_from": "2022-07-10T14:00:00+03:00",
 8        "date_until": "2022-07-30T14:00:00+03:00"
 9      },
10       {
11        "date_from": "2022-08-10T14:00:00+03:00",
12        "date_until": "2022-08-30T14:00:00+03:00"
13      }
14]

지역 제한 설정

가상 아이템을 구매할 수 있는 지역을 구성할 수 있습니다. 이를 통해 특정 국가의 사용자에게 아이템을 숨기거나 지역 프로모션 캠페인의 일환으로 특정 지역에서만 아이템을 사용할 수 있도록 하는 등 아이템을 볼 수 있는 사람과 위치를 제어할 수 있습니다.

가상 아이템에 대한 지역 제한을 설정하려면 가상 아이템 생성 또는 가상 아이템 업데이트 API 메서드 호출 시 요청 본문에 해당 지역 ID가 있는 regions 개체 배열을 포함하십시오.

지역 배열의 예시:

Copy
Full screen
Small screen
1"regions": [{
2     “id”: 123
3  }, {
4     “id”: 456
5  }
6]
알림
지역 제한 설정에 대한 자세한 내용은 지역 판매 제한 지침을 참조하십시오.

지역별 가격 설정

지역별 가격을 구성하여 여러 국가의 경제 상황에 따라 가상 아이템의 가격을 조정할 수 있습니다. 이렇게 하면 구매력이 다양한 지역의 사용자가 제안에 더 쉽게 접근할 수 있으므로 전환율과 전체 매출을 모두 높일 수 있습니다.

다음과 같은 방법으로 지역별 가격을 설정할 수 있습니다:

  • 관리자 페이지(수동 구성)에서 아이템을 생성하거나 편집할 때 가격 설정 섹션으로 이동하고 실제 통화 가격 토글을 켜짐(On)으로 설정하고 가격 설정을 클릭합니다. 가격을 수동으로 입력하거나 통화 및 세금에 따라 자동으로 계산할 수 있습니다.
  • 관리자 페이지에서 CSV 가져오기를 통해 CSV 파일에서 특정 지역에 대한 아이템 가격을 포함한 여러 행을 추가할 수 있습니다. 파일 구조 및 예제에 대한 자세한 내용은 지역 가격 지침을 참조하십시오.
가져오기용 CSV 파일의 예시:
Copy
Full screen
Small screen
 1SKU,Currency,Amount,Country,IsDefault,Platform
 2game-key-1,EUR,9.09,,1,steam
 3game-key-1,EUR,9.2,DE,0,steam
 4game-key-1,EUR,8.09,IT,0,steam
 5game-key-1,USD,10.1,US,0,steam
 6game-key-1,MYR,47,MY,0,steam
 7game-key-2,EUR,2.09,,1,steam
 8game-key-2,EUR,2.2,DE,0,steam
 9game-key-2,EUR,1.79,IT,0,steam
10game-key-2,USD,2.3,US,0,steam
11game-key-2,MYR,24,MY,0,steam
  • API를 통해 아이템을 생성하거나 업데이트할 때 지역별 가격 설정과 함께 요청 본문에 prices 배열을 포함하십시오.
가격 배열의 예시:
Copy
Full screen
Small screen
 1"prices": [
 2      {
 3        "amount": 100,
 4        "currency": "USD",
 5        "is_enabled": true,
 6        "is_default": true
 7      },
 8      {
 9        "amount": 200,
10        "currency": "CZK",
11        "country_iso": "CZ",
12        "is_enabled": false,
13        "is_default": false
14      }
15    ]
알림
카탈로그에서 지역 가격, 국가 검색 메커니즘 및 가격 표시 규칙을 구성하는 방법에 대해 자세히 알아보려면 지역 가격 지침을 참조하십시오.
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.

유용한 링크

마지막 업데이트: 2025년 7월 9일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!
피드백을 보내는 중 문제가 발생했습니다
잠시 후 다시 시도하거나 doc_feedback@xsolla.com으로 연락해 주세요.