# 번들 생성하기

단일 단위로 판매되는 아이템 세트인 번들을 생성합니다. 번들에는 가상 아이템, 인게임 재화 패키지, 게임 키 및 기타 번들이 포함될 수 있습니다. 자세한 내용은 번들 섹션을 참조하십시오.

공지content 배열의 모든 아이템은 프로젝트에 미리 생성되어 있어야 합니다. 지정한 SKU가 존재하지 않으면 시스템에서 오류를 반환합니다.

Endpoint: POST /v2/project/{project_id}/admin/items/bundle
Version: 2.0.0
Security: basicAuth

## Path parameters:

  - `project_id` (integer, required)
    프로젝트 ID. 이 매개 변수는 프로젝트 이름 옆의 관리자 페이지에서 또는 프로젝트 작업 시 브라우저 주소 표시줄에서 확인할 수 있습니다. URL 형식은 다음과 같습니다: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

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

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

  - `groups` (array)
    아이템이 속한 그룹입니다.

메모. 문자열 값은 그룹 external_id을 참조합니다.

  - `attributes` (array)
    특성 목록입니다.

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

  - `attributes.external_id` (string, required)
    고유 특성 ID입니다. external_id는 소문자 및 대문자 라틴 영숫자, 대시 및 밑줄만 포함할 수 있습니다.

  - `attributes.name` (object)
    특성의 이름에 대한 현지화가 있는 개체입니다. 키는 ISO 3166-1에 따라 지정되어 있습니다.

  - `attributes.values` (array, required)
    주의. 각 특성 당 6개 이상의 값을 생성할 수 없습니다. 제한을 초과하려고 하면 오류가 발생합니다.
    Example: [{"external_id":"strategy","value":{"en":"Strategy","de":"Strategie"}},{"external_id":"action","value":{"en":"Action","de":"Aktion"}}]

  - `attributes.values.external_id` (string, required)
    특성의 고유한 값 ID입니다. external_id에는 소문자 라틴어 영숫자, 대시, 밑줄만 사용할 수 있습니다.
    Example: "value_external_id"

  - `attributes.values.value` (object, required)
    값의 이름에 대한 현지화가 있는 개체입니다. 키는 ISO 3166-1에 따라 지정되어 있습니다.

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

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

  - `image_url` (string,null)
    이미지 URL. 결제 UI에서 이미지가 올바르게 표시되고 빠르게 로드되도록 하려면 다음 이미지 및 URL 가이드라인을 확인하세요:지원되는 형식: WebP(권장), PNG, JPG.파일 크기: 50KB 이하(WebP의 경우) 또는 150KB 이하(PNG 및 JPG의 경우).이미지 크기: 280 x 280 픽셀.색 공간: sRGB.프로토콜: 버전 관리된 URL에 대해 장기 캐싱이 적용된 HTTPS.

  - `prices` (array)
    실제 통화 가격입니다.

  - `prices.amount` (string, required)
    아이템 가격입니다.

  - `prices.currency` (string, required)
    아이템 가격 통화입니다. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 코드입니다.

  - `prices.is_default` (boolean, required)
    기본 가격은 사용자 통화로 가격을 지정하지 않은 경우 카탈로그를 작성하는 데 사용됩니다.

  - `prices.is_enabled` (boolean, required)
    가격이 활성화됩니다.

  - `prices.country_iso` (string,null)
    이 가격을 사용할 수 있는 국가입니다. [ISO 3166-1 alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 2자리 글자 코드입니다.
    Example: "US"

  - `vc_prices` (any)

  - `bundle_type` (string)
    번들 유형입니다. standard를 사용하여 아이템이 포함된 번들을 생성하고 번들에 포함된 아이템의 SKU를 지정합니다.
partner_side_content를 사용하여 빈 번들을 생성하고 [웹훅](https://developers.xsolla.com/ko/webhooks/operation/personalized-partner-catalog/)을 사용하여 직접 아이템을 추가합니다. 이 유형은 [파트너 측의 카탈로그 개인 설정](https://developers.xsolla.com/ko/doc/shop-builder/features/personalization/#guides_personalization_on_partner_side)에만 사용됩니다.
    Enum: "standard", "partner_side_content"

  - `content` (array)
    번들에 포함된 아이템 배열입니다. 각 항목은 아이템 SKU와 수량을 지정합니다. 모든 아이템은 프로젝트에 미리 생성되어 있어야 합니다. 지정한 SKU가 존재하지 않으면 시스템에서 오류를 반환합니다.
    Example: [{"sku":"com.xsolla.kg_1","quantity":1}]

  - `content.sku` (string, required)
    번들에 포함할 아이템의 SKU입니다. 해당 아이템은 프로젝트에 미리 생성되어 있어야 합니다. 지정한 SKU가 존재하지 않으면 시스템에서 오류를 반환합니다. 허용되는 문자: a–z, A–Z, 0–9, 마침표(.), 하이픈(-), 밑줄(_).
    Example: "com.xsolla.kg_1"

  - `content.quantity` (integer)
    번들에서 선택한 아이템의 수량입니다.
    Example: 1

  - `is_free` (boolean)
    아이템이 무료인지 여부입니다.

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

  - `is_enabled` (boolean)
    비활성화된 경우 아이템을 검색하거나 구매할 수 없습니다.

  - `is_show_in_store` (boolean)
    아이템을 구매할 수 있는 상태입니다.

  - `media_list` (any)

  - `order` (integer)
    목록에서 번들의 주문 우선 순위입니다.

  - `regions` (array)

  - `regions.id` (integer)
    Example: 1

  - `limits` (object)
    아이템 제한 사항입니다.

  - `limits.per_user` (any)
    개별 사용자에 대한 아이템 제한 사항입니다.

  - `limits.per_item` (integer,null)
    전역 항목 제한 사항입니다.

  - `limits.recurrent_schedule` (object,null)
    새로고침 기간을 제한합니다.

  - `limits.recurrent_schedule.per_user` (any)
    지정된 시간 간격(시간 단위)마다 구매 한도가 재설정됩니다.

  - `periods` (array,null)
    아이템 판매 기간입니다.

  - `periods.date_from` (string)
    지정된 아이템을 판매할 수 있는 날짜입니다.
    Example: "2020-08-11T10:00:00+03:00"

  - `periods.date_until` (string,null)
    지정된 아이템을 판매할 수 없게 되는 날짜입니다. null일 수 있습니다.
    Example: "2020-08-11T20:00:00+03:00"

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

## Response 201 fields (application/json):

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

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"

## Response 422 fields (application/json):

  - `statusCode` (integer)
    Example: 422

  - `errorCode` (integer)
    Example: 1102

  - `errorMessage` (string)
    Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"

  - `errorMessageExtended` (array)


