Skip to content

Setting API

해당 api를 사용할 경우 설정 -> 외부서비스 설정 하위의 설정 페이지를 만들고 유저가 입력한 값을 조회할 수 있습니다

Types

PluginInputType

플러그인 입력 타입을 나타내는 유니온 타입입니다.

ts
type PluginInputType =
  | 'text'
  | 'password'
  | 'radio'
  | 'checkbox'
  | 'toggle'
  | 'slider';

BaseInput

모든 입력 타입의 기본 속성을 정의하는 객체입니다.

ts
type BaseInput = {
  label: string; // 입력 필드 라벨
  required: boolean; // 필수 입력 여부
  id: string; // 입력 필드 ID
};

TextInput

텍스트 입력 필드를 정의하는 타입입니다.

ts
export type TextInput = BaseInput & {
  type: 'text';
  default: string; // 기본값
  placeholder?: string; // 플레이스홀더
};
필드타입필수설명예시
labelstring필수입력 필드 라벨'API 키'
requiredboolean필수필수 입력 여부true
idstring필수입력 필드 ID'api_key'
type'text'필수입력 타입'text'
defaultstring필수기본값'default_value'
placeholderstring선택플레이스홀더'API 키를 입력하세요'

PasswordInput

비밀번호 입력 필드를 정의하는 타입입니다.

ts
export type PasswordInput = BaseInput & {
  type: 'password';
  default: string; // 기본값
  placeholder?: string; // 플레이스홀더
};
필드타입필수설명예시
labelstring필수입력 필드 라벨'비밀번호'
requiredboolean필수필수 입력 여부true
idstring필수입력 필드 ID'password'
type'password'필수입력 타입'password'
defaultstring필수기본값''
placeholderstring선택플레이스홀더'비밀번호를 입력하세요'

InputValue

선택 옵션의 값을 정의하는 타입입니다.

ts
type InputValue = {
  id: string; // 옵션 ID
  label: string; // 옵션 라벨
};

RadioInput

라디오 버튼 입력 필드를 정의하는 타입입니다.

ts
type RadioInput = Omit<BaseInput, 'placeholder'> & {
  type: 'radio';
  default: string; // 선택된 value의 id
  values: InputValue[]; // 선택 옵션 목록
};
필드타입필수설명예시
labelstring필수입력 필드 라벨'결제 방식'
requiredboolean필수필수 입력 여부true
idstring필수입력 필드 ID'payment_method'
type'radio'필수입력 타입'radio'
defaultstring필수선택된 value의 id'card'
valuesInputValue[]필수선택 옵션 목록[{ id: 'card', label: '카드' }]

CheckBoxInput

체크박스 입력 필드를 정의하는 타입입니다.

ts
type CheckBoxInput = Omit<BaseInput, 'placeholder'> & {
  type: 'checkbox';
  default: string[]; // 선택된 value의 id의 배열
  values: InputValue[]; // 선택 옵션 목록
};
필드타입필수설명예시
labelstring필수입력 필드 라벨'알림 설정'
requiredboolean필수필수 입력 여부false
idstring필수입력 필드 ID'notification_settings'
type'checkbox'필수입력 타입'checkbox'
defaultstring[]필수선택된 value의 id의 배열['email', 'sms']
valuesInputValue[]필수선택 옵션 목록[{ id: 'email', label: '이메일' }]

ToggleInput

토글 입력 필드를 정의하는 타입입니다.

ts
type ToggleInput = Omit<BaseInput, 'placeholder'> & {
  type: 'toggle';
  default: boolean; // 기본값
};
필드타입필수설명예시
labelstring필수입력 필드 라벨'자동 저장'
requiredboolean필수필수 입력 여부false
idstring필수입력 필드 ID'auto_save'
type'toggle'필수입력 타입'toggle'
defaultboolean필수기본값true

SliderInput

슬라이더 입력 필드를 정의하는 타입입니다.

ts
type SliderInput = Omit<BaseInput, 'placeholder'> & {
  type: 'slider';
  default: number; // 기본값
  min: number; // 최소값
  max: number; // 최대값
  step: number; // 단계값
};
필드타입필수설명예시
labelstring필수입력 필드 라벨'음량'
requiredboolean필수필수 입력 여부false
idstring필수입력 필드 ID'volume'
type'slider'필수입력 타입'slider'
defaultnumber필수기본값50
minnumber필수최소값0
maxnumber필수최대값100
stepnumber필수단계값5

PluginInputs

플러그인 설정 입력 필드의 유니온 타입입니다.

ts
export type PluginInputs<T extends PluginInputType = any> = Extract<
  | TextInput
  | PasswordInput
  | RadioInput
  | CheckBoxInput
  | ToggleInput
  | SliderInput,
  { type: T }
>;

SettingInputs

플러그인 설정 입력 필드들의 집합을 나타내는 객체입니다.

ts
type SettingInputs = Record<string, PluginInputs>;

Methods

setInputs

input을 이용해 설정화면을 만듭니다

ts
import { posPluginSdk } from '@tossplace/pos-plugin-sdk';

await posPluginSdk.setting.setInputs([
  {
    label: 'ID',
    type: 'text',
    required: true,
    placeholder: 'ID',
    default: '',
    id: 'id',
  },
  {
    label: '비밀번호',
    type: 'password',
    required: true,
    placeholder: '비밀번호',
    default: '',
    id: 'password',
  },
]);

getValues

setInputs를 이용해 설정화면을 만들고 유저가 입력한 값을 불러옵니다

ts
import { posPluginSdk } from '@tossplace/pos-plugin-sdk';

const values = await posPluginSdk.setting.getValues();
console.log('id', values.id);
console.log('password', values.password);