무료 아이템
작동 방식
무료 아이템은 사용자가 인게임 재화나 실제 통화를 지출하지 않고도 획득할 수 있는 아이템입니다. 다음과 같은 시나리오에서 무료 아이템을 받을 수 있습니다:
- 인게임 아이템 판매 - 가상 아이템, 인게임 재화 패키지 및 번들
- 게임 키를 통한 게임 및 DLC 판매
- 프로젝트 이정표나 기념일 등 특별한 날에 제공되는 무료 아이템으로, 사용자의 충성도에 대한 보상으로 제공됩니다.
- 충성도 보상으로 제공되는 기본 게임을 이미 구매한 사용자를 위한 무료 추가 콘텐츠입니다.
- 웹 스토어에서 신규 사용자를 유치하기 위한 무료 스타터 팩입니다.
무료 아이템 설정
관리자 페이지에서 설정하기
아이템을 구성하기 전에, 아이템을 분류하고 스토어에 표시되는 방식을 관리하는 데 도움이 되도록 그룹을 생성하는 것이 좋습니다.
무료 아이템 설정 과정은 가상 아이템을 예시로 아래에 설명되어 있습니다.
- 관리자 페이지의 프로젝트에서 아이템 카탈로그 > 모든 아이템 섹션으로 이동합니다.
- 추가를 클릭하고 드롭다운 메뉴에서 가상 아이템을 선택합니다.
- 다음 매개 변수 지정:
- 이미지(선택 사항).
- SKU.
- 번들이 속해 있는 하나 또는 여러 그룹.
- 이름.
- 설명(선택 사항).
- 가격 설정 섹션에서 무료 아이템을 선택합니다.
- 구매 가능한 아이템 수를 제한하려면 아이템 구매 횟수 제한 토글을 켜고 원하는 수량을 입력하세요.
- 제한이 재설정되는 빈도를 구성하는 방법:
- 드롭다운 목록에서 기간을 선택합니다:
- 매일.
- 매주.
- 매월.
- 사용자 정의 간격 - 번들 표시 시작일로부터 계산됩니다.
- 정기 갱신 없음.
- 선택한 기간에 따라 재설정 일정을 설정하세요.
- 드롭다운 목록에서 기간을 선택합니다:
- 스토어에서 아이템 표시 방식 구성:
- 상태 선택.
- 아이템 표시 시간 제한 설정(선택 사항): 시간대를 지정하고 기간의 시작 및 종료 시점을 설정합니다. 아이템 표시 종료일을 표시하지 않으려면 종료일 없음 상자를 체크 표시하십시오.
- 아이템 특성을 구성(선택 사항)하려면 다음 옵션 중 하나를 사용하십시오:
- 아이템 생성을 클릭합니다.
API를 통한 설정
아이템을 무료로 설정하려면 다음 관리자 API 호출 시 요청 본문에 “is_free”: true를 전달하십시오:
- 가상 아이템 생성 또는 가상 아이템 업데이트
- 게임 생성, ID로 게임 업데이트 또는 SKU로 게임 업데이트
- 인게임 재화 생성 또는 인게임 재화 업데이트
- 인게임 재화 패키지 생성 또는 인게임 재화 패키지 업데이트
- 번들 생성 또는 번들 업데이트
- 수량이 지정된 경우
limits - 제한 재설정 빈도가 지정된 경우
limits.recurrent_schedule
카탈로그에 무료 아이템 표시
무료 아이템은 구현 방식(웹사이트 빌더를 통하거나 API를 통해)에 따라 카탈로그에 표시됩니다.
웹사이트 빌더를 통해 표시
웹 사이트에 무료 아이템을 표시하는 방법:
- 무료 아이템 생성.
- 관리자 페이지의 프로젝트에서, 스토어프론트 > 웹 사이트 섹션으로 이동합니다.
- 원하는 사이트의 창에서 웹사이트 빌더 열기를 클릭합니다.
- 스토어 섹션의 아이템 유형 입력란에서 무료 아이템 유형을 선택하고 해당하는 경우 그룹을 지정하십시오.
- 아이템 카드 레이아웃을 구성합니다.
- 필요한 모든 변경 사항을 적용하고 웹사이트 출시 준비를 완료한 경우:
- 웹사이트 빌더의 오른쪽 상단 모서리에서, 게시를 클릭합니다.
- 게시하려는 페이지 옆의 확인란을 선택합니다.
- 게시를 클릭합니다.
웹 사이트 게시를 사용할 수 없는 경우 다음과 같은 모든 조건이 충족되는지 확인하십시오:
- 웹 사이트에 빈 섹션이 없어야 합니다(빨간색 표시로 표시됨).
- 엑솔라와의 라이선스 계약을 체결해야 합니다.
- 메인 페이지가 게시되거나 게시를 위해 선택됩니다. 메인 페이지보다 먼저 하위 페이지를 게시할 수 없습니다.
API를 통해 무료 아이템 정보 가져오기
API를 통해 카탈로그를 구성한 경우, 무료 아이템 데이터는 카탈로그 하위 섹션에서 제공되는 호출을 통해 반환됩니다:
사용자에게 무료 아이템 부여하기
무료 아이템이 포함된 주문 처리 방식은 구매 시 장바구니 사용 여부에 따라 달라집니다. 사용자가 장바구니를 사용하지 않고 아이템을 구매한 경우, 지정된 무료 아이템으로 주문 생성 API 호출을 사용하십시오. 사용자가 장바구니를 사용하여 아이템을 구매할 경우, 다음과 같은 시나리오가 발생할 수 있습니다:
- 사용자의 장바구니에 유료 아이템과 무료 아이템이 모두 포함된 경우, 주문 생성 API 호출인 특정 장바구니의 모든 아이템으로 주문 생성 또는 현재 장바구니의 모든 아이템으로 주문 생성을 사용하십시오. 이 경우 사용자는 결제 UI를 통해 결제를 완료합니다.
- 사용자의 장바구니에 무료 아이템만 포함되어 있는 경우, 무료 장바구니로 주문 생성 또는 특정 무료 장바구니로 주문 생성 API 호출을 사용하십시오. 이 경우 결제 UI는 사용되지 않습니다.
두 경우 모두 엑솔라 측에서 사용자에게 아이템을 부여하는 데 사용하는 아이템 데이터를 포함한 [주문 결제 성공 웹훅을 전송합니다. 무료 아이템의 경우 웹훅 내order.invoice_id 매개 변수는 null로 설정됩니다.
무료 아이템에 대한 주문 개체 예시:
- json
1{
2 "method": "POST",
3 "url": "https://mybestgame.com/xsolla/notification",
4 "body": {
5 "items": [
6 {
7 "sku": "gift_direct_game_reward-supercoin",
8 "type": "virtual_currency",
9 "is_pre_order": false,
10 "quantity": 500,
11 "amount": "0",
12 "promotions": [
13
14 ]
15 },
16 {
17 "sku": "package-500_supercoin",
18 "type": "bundle",
19 "is_pre_order": false,
20 "quantity": 1,
21 "amount": "0",
22 "promotions": [
23
24 ]
25 },
26 {
27 "sku": "xsolla-giveaway_offer_11_14_22",
28 "type": "bundle",
29 "is_pre_order": false,
30 "quantity": 1,
31 "amount": "0",
32 "promotions": [
33
34 ]
35 }
36 ],
37 "notification_type": "order_paid",
38 "order": {
39 "id": 12345678,
40 "mode": "default",
41 "currency_type": "unknown",
42 "currency": null,
43 "amount": "0",
44 "status": "paid",
45 "platform": "xsolla",
46 "comment": null,
47 "invoice_id": null,
48 "promotions": [
49
50 ]
51 },
52 "user": {
53 "external_id": "1234567812345678",
54 "email": null
55 }
56 },
57 "headers": {
58 "Authorization": "Signature 3b840ccefea111dcdfd111db1fdc6df969a3ec11",
59 "Accept": "application/json",
60 "Content-Type": "application/json"
61 },
62 "type": "webhook_payment",
63 "callback_parameters": {
64 "order_id": 12345678
65 }
66}
프로젝트 통합 설정에 따라 아이템은 다음 방법 중 하나로 사용자에게 부여됩니다:
- PlayFab을 통합한 경우, 인게임 재화와 아이템은 사용자의 PlayFab 인벤토리에 자동으로 부여됩니다.
- 사용자 정의 배송 시스템을 사용하는 경우, 모든 가상 아이템과 인게임 재화는 사용자 측에서 부여됩니다. 백엔드에서 주문 데이터를 수신하려면 웹훅 핸들러를 설정하는 것이 좋습니다. 필요한 데이터는 주문 결제 성공 웹훅에 포함됩니다.
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.