> For the complete documentation index, see [llms.txt](https://onestore-dev.gitbook.io/dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://onestore-dev.gitbook.io/dev/webshop/player-id-fields.md).

# 플레이어 식별 필드

ONEshop 구매창의 로그인 팝업에서 사용자에게 받을 식별 값을 정의하는 메뉴예요. 기본 식별자(UID) 안내 문구와, 게임에 따라 추가로 받을 커스텀 필드를 이 메뉴에서 설정할 수 있어요.

메뉴 위치는 `ONEconsole > Webshop > 개발자 > 플레이어 식별 필드`예요.

{% hint style="info" %}
여기서 받은 값은 게임 서버로 전달돼요. 기본 식별자(UID)는 `serviceUserId`, 서버 리스트 타입 필드는 `serviceServerId`, 그 밖의 커스텀 필드는 `serviceCustomFields`로 유효성 검증 요청과 PNS에 담겨요.
{% endhint %}

### 기본 식별자 (UID)

구매창에서 항상 받는 기본 값이에요. 목록 위의 기본 식별자 영역을 펼쳐 언어별로 안내 문구를 설정해요.

**UID 라벨** (필수, 최대 20자) 구매창에서 UID 입력칸 이름으로 보이는 문구예요. 추가된 모든 언어에 입력해야 해요.

**로그인 버튼 텍스트** (최대 20자) 구매창 로그인 버튼에 표시할 문구예요. 비워 두면 웹샵에 `UID Login`으로 표시돼요.

**로그인 가이드** (최대 100자) 사용자가 UID를 어디서 확인하는지 안내하는 문구예요.

**가이드 이미지** (최대 1MB, 16:9 권장) UID 확인 방법을 보여 주는 이미지예요. 이미지를 비워 둔 언어에는 기본 언어 이미지가 쓰여요.

{% hint style="info" %}
UID는 사용자가 아이템을 지급받을 게임 계정(유저 또는 캐릭터)을 식별하는 값이에요. 게임 서버는 유효성 검증에서 이 값이 실제로 존재하는지 확인해 응답해 주세요.
{% endhint %}

***

### 커스텀 필드

UID 외에 캐릭터 ID, 서버, 국가처럼 구매창에서 추가로 받을 값을 정의해요. \[**식별 필드 추가**]를 눌러 필드를 만들 수 있어요.

목록에는 필드 키, 라벨, 타입, 노출 순서가 표시되고, 행의 메뉴에서 수정하거나 삭제할 수 있어요.

#### 필드 만들기

**필드 키** (필수, 최대 32자) 게임 서버로 값을 전달할 때 쓰는 키예요. 영문 대소문자와 숫자만 쓸 수 있고, 한 타이틀 안에서 중복될 수 없어요. **저장 후에는 변경할 수 없어요.**

* 아래 키는 시스템 예약 키라 필드 키로 쓸 수 없어요: `serviceUserId`, `serviceServerId`, `uid`, `sid`, `clientId`, `prodId`

**타입** (필수) 사용자가 값을 입력하는 방식을 선택해요.

<table><thead><tr><th width="258.8828125">타입</th><th>입력 방식</th></tr></thead><tbody><tr><td>텍스트</td><td>사용자가 문자를 직접 입력</td></tr><tr><td>숫자</td><td>사용자가 숫자를 직접 입력</td></tr><tr><td>선택형</td><td>개발사가 등록한 옵션 중에서 선택</td></tr><tr><td>서버 리스트</td><td>게임 서버가 응답한 서버 목록 중에서 선택</td></tr></tbody></table>

**노출 순서** (필수) 구매창에서 필드가 보이는 순서예요. 0 이상의 숫자를 입력하고, 숫자가 작을수록 위에 보여요. 모든 언어에 같은 순서가 적용돼요.

**라벨** (필수, 최대 50자) 구매창에서 입력칸 이름으로 보이는 문구예요. 추가된 모든 언어에 입력해야 해요.

**안내 가이드 · 가이드 이미지** 언어별로 입력칸 아래에 보여 줄 안내예요. 가이드는 최대 200자, 이미지는 최대 1MB까지 올릴 수 있어요.

#### 선택형 옵션

타입을 **선택형**으로 고르면 옵션을 1개 이상 등록해야 해요. 옵션마다 **전달값**(게임 서버로 보내는 값)과 **표시명**(사용자에게 보이는 이름)을 입력해요.

* \[**항목 추가**]: 옵션을 한 줄씩 추가해요.
* \[**대량 추가**]: 한 줄에 옵션 하나씩, 전달값과 표시명을 탭이나 쉼표로 구분해 한 번에 붙여 넣어요.
* \[**CSV 업로드**]: CSV 파일로 옵션을 한 번에 등록해요.

전달값과 표시명 중 한쪽만 입력한 행은 저장할 때 빠져요.

#### 서버 리스트 타입

서버 리스트 타입은 사용자가 게임 서버를 고르게 할 때 써요.

* 타이틀당 1개만 만들 수 있고, 필드 키는 `serviceServerId`로 고정돼요.
* 서버 목록은 `ONEconsole > Webshop > 개발자 > 서버 연동`의 서버 리스트 URL에서 받아와요. 응답 규격은 서버 리스트 연동을 참고해 주세요.

{% hint style="info" %}
유효성 검증·서버 리스트 URL은 결제 환경과 관계없이 타이틀(PID)당 1개만 등록할 수 있어요. 판매 국가나 권역별로 게임 서버 처리를 나눠야 한다면, 국가·권역을 고르는 **선택형** 필드를 추가하고 게임 서버에서 `serviceCustomFields`의 값으로 분기해 주세요.
{% endhint %}

***

### 구매창 미리보기

목록 오른쪽에서 실제 구매창 로그인 팝업이 어떻게 보이는지 바로 확인할 수 있어요. UID와 커스텀 필드가 노출 순서대로 표시돼요.

***

### 필드 수정 · 삭제

**수정** 목록에서 필드를 열어 라벨, 노출 순서, 안내 가이드, 옵션 등을 바꿀 수 있어요. 필드 키는 바꿀 수 없어요.

**삭제** 삭제한 필드는 **구매창에서 즉시 사라져요.**

{% hint style="warning" %}
**유의사항**

* 판매 중인 타이틀에서 필드를 추가하거나 수정하면 검증 대상 변경으로 기록돼요. \[**재퍼블리시**]를 진행해야 서비스에 반영돼요.
* 타이틀이 검증 중이거나 승인 후 판매 시작 전이면 필드 생성·수정 화면이 잠겨요.
  {% endhint %}
