# 번들 생성하기 번들을 생성합니다. Endpoint: POST /v2/project/{project_id}/admin/items/bundle Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) 프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다. Example: 44056 ## Request fields (application/json): - `attributes` (array) 특성 목록입니다. 주의. 아이템에 20개 이상의 특성을 지정할 수 없습니다. 제한을 초과하려고 하면 오류가 발생합니다. - `attributes.external_id` (string, required) 고유 특성 ID입니다. external_id는 소문자 및 대문자 라틴 영숫자, 대시 및 밑줄만 포함할 수 있습니다. Example: "attribute_1" - `attributes.name` (object) 특성의 이름에 대한 현지화가 있는 개체입니다. 키는 ISO 3166-1에 따라 지정되어 있습니다. Example: {"de":"Genre","en":"Genre"} - `attributes.values` (array, required) 주의. 각 특성 당 6개 이상의 값을 생성할 수 없습니다. 제한을 초과하려고 하면 오류가 발생합니다. Example: [{"external_id":"strategy","value":{"de":"Strategie","en":"Strategy"}},{"external_id":"action","value":{"de":"Aktion","en":"Action"}}] - `attributes.values.external_id` (string, required) 특성의 고유한 값 ID입니다. external_id에는 소문자 라틴어 영숫자, 대시, 밑줄만 사용할 수 있습니다. Example: "attribute_value" - `attributes.values.value` (object, required) 값의 이름에 대한 현지화가 있는 개체입니다. 키는 ISO 3166-1에 따라 지정되어 있습니다. Example: {"de":"Strategie","en":"Strategy"} - `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) Example: [{"quantity":1,"sku":"com.xsolla.kg_1"}] - `content.quantity` (integer) 번들에서 선택한 아이템의 수량입니다. Example: 1 - `content.sku` (string, required) 고유한 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다. Example: "bundle_1" - `custom_attributes` (object) 아이템 특성과 값이 포함된 JSON 개체입니다. 특성을 사용하면 아이템을 사용할 수 있는 플레이어의 레벨과 같은 추가 정보를 아이템에 추가할 수 있습니다. 특성은 게임의 내부 논리를 강화하며 전용 GET 메소드와 웹훅을 통해 이용할 수 있습니다. - `description` (object,null, required) 아이템 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 로케일 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: en 및 en-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/doc/shop-builder/references/supported-languages/)에서 확인할 수 있습니다. - `groups` (array) 아이템이 속한 그룹입니다. 메모. 문자열 값은 그룹 external_id을 참조합니다. Example: ["honor"] - `image_url` (string,null) 이미지 URL입니다. Example: "https://image.example.com" - `is_enabled` (boolean) 비활성화된 경우 아이템을 검색하거나 구매할 수 없습니다. Example: true - `is_free` (boolean) true일 경우 아이템은 무료입니다. - `is_show_in_store` (boolean) 아이템을 구매할 수 있는 상태입니다. Example: true - `limits` (object) 아이템 제한 사항입니다. - `limits.per_item` (integer,null) 전역 항목 제한 사항입니다. Example: 10 - `limits.per_user` (any) 개별 사용자에 대한 아이템 제한 사항입니다. - `limits.recurrent_schedule` (object,null) 새로고침 기간을 제한합니다. - `limits.recurrent_schedule.per_user` (any) 지정된 시간 간격(시간 단위)마다 구매 한도가 재설정됩니다. - `long_description` (object,null) 아이템의 긴 설명에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 5자 로케일 코드(예 en-US: ) 두 가지 형식 중 하나로 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 변수(예: en 및 en-US)가 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/doc/shop-builder/references/supported-languages/)에서 확인할 수 있습니다. - `media_list` (array,null) 번들의 추가 자산입니다. Example: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}] - `media_list.type` (string) 미디어 유형: image/video. Enum: "image", "video" - `media_list.url` (string) 리소스 파일입니다. Example: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg" - `name` (object,null, required) 아이템 이름에 대한 현지화가 있는 개체입니다. 두 글자 소문자 언어 코드(예: en) 또는 다섯 글자 언어 코드(예: en-US) 두 가지 형식 중 하나로 되어 있는 값을 허용합니다. 두 형식 모두 입력으로 허용되지만 응답은 두 글자 소문자 언어 코드를 반환합니다. 동일한 언어에 대한 두 옵션(예: en 및 en-US)이 모두 제공되면 마지막으로 제공된 값이 저장됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/doc/shop-builder/references/supported-languages/)에서 확인할 수 있습니다. - `order` (integer) 목록에서 번들의 주문 우선 순위입니다. Example: 1 - `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" - `prices` (array) 실제 통화 가격입니다. - `prices.amount` (string, required) 아이템 가격입니다. Example: "100.99" - `prices.country_iso` (string,null) 이 가격을 사용할 수 있는 국가입니다. [ISO 3166-1 alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 2자리 글자 코드입니다. Example: "US" - `prices.currency` (string, required) 아이템 가격 통화입니다. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자리 코드입니다. Example: "USD" - `prices.is_default` (boolean, required) 기본 가격은 사용자 통화로 가격을 지정하지 않은 경우 카탈로그를 작성하는 데 사용됩니다. - `prices.is_enabled` (boolean, required) 가격이 활성화됩니다. - `regions` (array) - `regions.id` (integer) Example: 1 - `vc_prices` (array,null) - `vc_prices.amount` (integer, required) - `vc_prices.is_default` (boolean, required) - `vc_prices.is_enabled` (boolean, required) ## Response 201 fields (application/json): - `sku` (string) 고유한 아이템 ID입니다. SKU는 소문자 및 대문자 라틴 영숫자, 마침표, 대시 및 밑줄만 포함할 수 있습니다. Example: "bundle_1" ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (integer) Example: 1102 - `errorMessage` (string) Example: "[0401-1102]: Unprocessable Entity. The property `property_name` is required" - `errorMessageExtended` (array) - `statusCode` (integer) Example: 422 - `transactionId` (string) Example: "x-x-x-x-transactionId-mock-x-x-x"