상품 옵션 목록 조회
POST/procedure-menu/open/v1/product-options/queries/get-product-options
상품 옵션 목록 조회
Request
### Content-Type별 요청의 JSON Schema
{
"application/json": {
"schema": {
"required": [
"refOptionIds",
"optionIds",
"includePromotions"
],
"type": "object",
"properties": {
"refOptionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "참조 옵션 ID 목록"
},
"optionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "상품 옵션 ID 목록"
},
"includePromotions": {
"type": "boolean",
"description": "@deprecated 프로모션 포함 여부"
}
},
"title": "protos.procedure.GetProductOptionsQuery"
}
}
}
Responses
- 200
OK
### Status Code별 응답의 JSON Schema
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"required": [
"id",
"title",
"description",
"type",
"compositions",
"deleted",
"badges",
"displayChannels",
"translsMap"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "옵션 ID"
},
"title": {
"type": "string",
"description": "옵션 이름"
},
"description": {
"type": "string",
"description": "옵션 설명"
},
"type": {
"enum": [
"ProductOptionType_UNKNOWN",
"SINGLE",
"GROUP",
"CONSULTATION"
],
"type": "string",
"description": "옵션 유형n - SINGLE: 단일 옵션n - GROUP: 그룹 옵션n - CONSULTATION: 상담 옵션",
"format": "enum"
},
"price": {
"allOf": [
{
"required": [
"amount",
"additional"
],
"type": "object",
"properties": {
"amount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "정가"
},
"additional": {
"type": "array",
"items": {
"required": [
"amount",
"visitorType"
],
"type": "object",
"properties": {
"amount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "가격"
},
"visitorType": {
"allOf": [
{
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "고객 수가 유형 ID"
},
"name": {
"type": "string",
"description": "고객 수가 유형 이름"
}
},
"title": "protos.procedure.ProductOptionPriceVisitorType"
}
],
"description": "고객 수가 유형 정보"
},
"suppliedAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "과세 공급가액"
},
"taxFreeAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "면세 금액 (aka. 면세 공급가액)"
},
"vatAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "부가가치세"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"description": "과세 여부",
"format": "enum"
}
},
"title": "protos.procedure.ProductOptionSpecialPrice"
},
"description": "고객 수가 유형별 가격"
},
"suppliedAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "과세 공급가액"
},
"taxFreeAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "면세 금액 (aka. 면세 공급가액)"
},
"vatAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "부가가치세"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"description": "과세 여부",
"format": "enum"
}
},
"title": "protos.procedure.ProductOptionPrice"
}
],
"description": "가격 정보"
},
"unit": {
"allOf": [
{
"type": "object",
"properties": {
"type": {
"enum": [
"UnitType_UNKNOWN",
"UNIT",
"CC",
"VIAL",
"PEN",
"STRING",
"SHOT",
"PAD",
"MINUTE",
"KJ",
"QUANTITY",
"DOT",
"J",
"MG",
"G",
"PULSE",
"BOTTLE",
"SYRINGE",
"PASS",
"IU",
"KHZ",
"MHZ"
],
"type": "string",
"format": "enum"
},
"value": {
"type": "integer",
"format": "int32"
}
},
"title": "protos.procedure.Unit"
}
],
"description": "@deprecated - 진료항목의 단위를 사용할것"
},
"count": {
"type": "integer",
"description": "시술 횟수",
"format": "int32"
},
"procedure": {
"allOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"commonProcedureConfiguration": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"title": "protos.procedure.CommonProcedureConfiguration"
},
"deleted": {
"type": "boolean"
},
"createDate": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "클라이언트 및 백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.Procedure"
}
],
"description": "@deprecated - 진료항목의 시술을 사용할것"
},
"medicineAndMachines": {
"type": "array",
"items": {
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "기기/약물 ID"
},
"name": {
"type": "string",
"description": "기기/약물 이름"
}
},
"title": "protos.procedure.MedicineAndMachine"
},
"description": "@deprecated - 진료항목의 기기 및 약물을 사용할것"
},
"compositions": {
"type": "array",
"items": {
"required": [
"price",
"title",
"procedure",
"medicineAndMachines"
],
"type": "object",
"properties": {
"refSingleOptionId": {
"type": "string",
"description": "@deprecated - 2024. 10. 11 사용되지 않음. 언제나 빈 값이 전달됨"
},
"price": {
"allOf": [
{
"required": [
"amount",
"additional"
],
"type": "object",
"properties": {
"amount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "정가"
},
"additional": {
"type": "array",
"items": {
"required": [
"amount",
"visitorType"
],
"type": "object",
"properties": {
"amount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "가격"
},
"visitorType": {
"allOf": [
{
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "고객 수가 유형 ID"
},
"name": {
"type": "string",
"description": "고객 수가 유형 이름"
}
},
"title": "protos.procedure.ProductOptionPriceVisitorType"
}
],
"description": "고객 수가 유형 정보"
},
"suppliedAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "과세 공급가액"
},
"taxFreeAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "면세 금액 (aka. 면세 공급가액)"
},
"vatAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "부가가치세"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"description": "과세 여부",
"format": "enum"
}
},
"title": "protos.procedure.ProductOptionSpecialPrice"
},
"description": "고객 수가 유형별 가격"
},
"suppliedAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "과세 공급가액"
},
"taxFreeAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "면세 금액 (aka. 면세 공급가액)"
},
"vatAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "부가가치세"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"description": "과세 여부",
"format": "enum"
}
},
"title": "protos.procedure.ProductOptionPrice"
}
],
"description": "가격"
},
"title": {
"type": "string",
"description": "@deprecated - 2024. 10. 11 사용되지 않음 언제나 빈 문자열이 전달됨"
},
"unit": {
"allOf": [
{
"type": "object",
"properties": {
"type": {
"enum": [
"UnitType_UNKNOWN",
"UNIT",
"CC",
"VIAL",
"PEN",
"STRING",
"SHOT",
"PAD",
"MINUTE",
"KJ",
"QUANTITY",
"DOT",
"J",
"MG",
"G",
"PULSE",
"BOTTLE",
"SYRINGE",
"PASS",
"IU",
"KHZ",
"MHZ"
],
"type": "string",
"format": "enum"
},
"value": {
"type": "integer",
"format": "int32"
}
},
"title": "protos.procedure.Unit"
}
],
"description": "단위"
},
"count": {
"type": "integer",
"description": "시술 횟수",
"format": "int32"
},
"procedure": {
"allOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"commonProcedureConfiguration": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"title": "protos.procedure.CommonProcedureConfiguration"
},
"deleted": {
"type": "boolean"
},
"createDate": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "클라이언트 및 백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.Procedure"
}
],
"description": "시술 정보"
},
"medicineAndMachines": {
"type": "array",
"items": {
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "기기/약물 ID"
},
"name": {
"type": "string",
"description": "기기/약물 이름"
}
},
"title": "protos.procedure.MedicineAndMachine"
},
"description": "기기 및 약물 목록"
},
"medicalService": {
"allOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"translsMap": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"translation": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"title": "protos.Transls"
},
"description": "# 다국어 지원대상 필드n - title"
},
"status": {
"enum": [
"MedicalServiceStatus_UNKNOWN",
"DRAFT",
"PUBLISHED"
],
"type": "string",
"format": "enum"
},
"deleted": {
"type": "boolean"
},
"configuration": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"procedure": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.medical_service.MedicalServiceProcedure"
},
"machines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.medical_service.MedicalServiceMachine"
}
},
"medicines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.medical_service.MedicalServiceMedicine"
}
},
"unit": {
"type": "object",
"properties": {
"type": {
"enum": [
"UnitType_UNKNOWN",
"UNIT",
"CC",
"VIAL",
"PEN",
"STRING",
"SHOT",
"PAD",
"MINUTE",
"KJ",
"QUANTITY",
"DOT",
"J",
"MG",
"G",
"PULSE",
"BOTTLE",
"SYRINGE",
"PASS",
"IU",
"KHZ",
"MHZ"
],
"type": "string",
"format": "enum"
},
"value": {
"type": "integer",
"format": "int32"
}
},
"title": "protos.procedure.Unit"
},
"healthcareReimbursement": {
"enum": [
"HealthcareReimbursement_UNKNOWN",
"REIMBURSABLE",
"NON_REIMBURSABLE"
],
"type": "string",
"format": "enum"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"format": "enum"
}
},
"title": "protos.procedure.medical_service.MedicalServiceConfiguration"
},
"draftedDateTimeUtc": {
"type": "string"
},
"updatedDateTimeUtc": {
"type": "string"
},
"priceAmount": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
},
"description": {
"type": "string"
},
"caution": {
"type": "string"
},
"recommendedInterval": {
"type": "integer",
"format": "int32"
},
"contributionConstant": {
"type": "integer",
"format": "int32"
},
"durationTime": {
"type": "number",
"format": "double"
}
},
"title": "protos.procedure.medical_service.MedicalService"
}
],
"description": "진료 항목"
}
},
"title": "protos.procedure.ProductGroupOptionComposition"
},
"description": "(그룹 옵션인 경우) 그룹 옵션의 시술 구성"
},
"deleted": {
"type": "boolean",
"description": "삭제 여부"
},
"promotionConfigurations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"optionId": {
"type": "string"
},
"discountedPrice": {
"type": "object",
"properties": {
"amount": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
},
"suppliedAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "과세 공급가액"
},
"taxFreeAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "면세 금액 (aka. 면세 공급가액)"
},
"vatAmount": {
"allOf": [
{
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
}
],
"description": "부가가치세"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"description": "과세 여부",
"format": "enum"
}
},
"title": "protos.procedure.Price"
}
},
"title": "protos.procedure.PromotionConfiguration"
},
"description": "@deprecated 프로모션 설정 목록"
},
"frequentlyUsedOption": {
"type": "boolean",
"description": "자주 찾는 시술 여부"
},
"badges": {
"type": "array",
"items": {
"enum": [
"Badge_UNKNOWN",
"NEW",
"POPULAR",
"RECOMMENDED"
],
"type": "string",
"format": "enum"
},
"description": "뱃지 목록"
},
"displayChannels": {
"type": "array",
"items": {
"enum": [
"DisplayChannel_UNKNOWN",
"HOMEPAGE",
"GANGNAMUNNI",
"KOS_CONNECT"
],
"type": "string",
"format": "enum"
},
"description": "노출 채널 목록"
},
"translsMap": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"translation": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"title": "protos.Transls"
},
"description": "# 다국어 지원대상 필드n - titlen - description"
},
"medicalService": {
"allOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"translsMap": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"translation": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"title": "protos.Transls"
},
"description": "# 다국어 지원대상 필드n - title"
},
"status": {
"enum": [
"MedicalServiceStatus_UNKNOWN",
"DRAFT",
"PUBLISHED"
],
"type": "string",
"format": "enum"
},
"deleted": {
"type": "boolean"
},
"configuration": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"procedure": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.medical_service.MedicalServiceProcedure"
},
"machines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.medical_service.MedicalServiceMachine"
}
},
"medicines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"searchPhoneticName": {
"type": "string",
"description": "백엔드 내부에서 검색을 위해 존재하는 필드"
}
},
"title": "protos.procedure.medical_service.MedicalServiceMedicine"
}
},
"unit": {
"type": "object",
"properties": {
"type": {
"enum": [
"UnitType_UNKNOWN",
"UNIT",
"CC",
"VIAL",
"PEN",
"STRING",
"SHOT",
"PAD",
"MINUTE",
"KJ",
"QUANTITY",
"DOT",
"J",
"MG",
"G",
"PULSE",
"BOTTLE",
"SYRINGE",
"PASS",
"IU",
"KHZ",
"MHZ"
],
"type": "string",
"format": "enum"
},
"value": {
"type": "integer",
"format": "int32"
}
},
"title": "protos.procedure.Unit"
},
"healthcareReimbursement": {
"enum": [
"HealthcareReimbursement_UNKNOWN",
"REIMBURSABLE",
"NON_REIMBURSABLE"
],
"type": "string",
"format": "enum"
},
"taxation": {
"enum": [
"Taxation_UNKNOWN",
"TAXABLE",
"TAX_FREE",
"MIXED"
],
"type": "string",
"format": "enum"
}
},
"title": "protos.procedure.medical_service.MedicalServiceConfiguration"
},
"draftedDateTimeUtc": {
"type": "string"
},
"updatedDateTimeUtc": {
"type": "string"
},
"priceAmount": {
"type": "object",
"properties": {
"value": {
"type": "integer",
"format": "int32"
},
"currency": {
"type": "string"
}
},
"title": "protos.procedure.PriceAmount"
},
"description": {
"type": "string"
},
"caution": {
"type": "string"
},
"recommendedInterval": {
"type": "integer",
"format": "int32"
},
"contributionConstant": {
"type": "integer",
"format": "int32"
},
"durationTime": {
"type": "number",
"format": "double"
}
},
"title": "protos.procedure.medical_service.MedicalService"
}
],
"description": "진료 항목"
}
},
"title": "protos.procedure.ProductOptionDetail"
}
}
},
"title": "protos.procedure.GetProductOptionsQueryResponse"
}
}
}
}
}