Documentation - Print Version

Api Reference

API Endpoints Reference

Complete reference for all available API endpoints and their usage

API Endpoints

This section covers all available API endpoints.

Products

Register Product

  • URL: /api/products
  • Method: POST
  • Description: Registers a new product in the commerce system.

Request Body

{
    "name": "string",     // Product name (required)
    "price": number,      // Product price in KRW (required)
    "stock": number,      // Stock quantity (required)
    "description": "string" // Product description (optional)
}

Example Request

{
    "name": "Jeju Samdasoo 500ml 20-pack",
    "price": 15000,
    "stock": 100,
    "description": "Jeju Samdasoo 500ml bottled water, 20-pack."
}

Success Response

  • Status Code: 201 Created
{
    "id": "string",      // Unique product ID
    "name": "string",    // Product name
    "price": number,     // Product price
    "stock": number,     // Stock quantity
    "createdAt": "string" // ISO 8601 timestamp of creation
}

Error Responses

Missing Parameter
  • Status Code: 400 Bad Request
{
    "result": "FAILED",
    "code": "MISSING_PARAMETER",
    "message": "\"name\" field is required."
}
Invalid Parameter Type
  • Status Code: 400 Bad Request
{
    "result": "FAILED",
    "code": "INVALID_PARAMETER",
    "message": "\"price\" must be a number."
}

TACA

TACA Inquiry

  • URL: /api/taca/list
  • Method: POST
  • Description: Retrieves details for a list of TACA items based on provided TACA IDs.

Request Body

{
    "tacaIds": [number] // Array of TACA IDs (required)
}

Example Request

{
    "tacaIds": [82275455, 103718011]
}

Success Response

  • Status Code: 200 OK
{
    "resultType": "SUCCESS",
    "success": {
        "list": [
            {
                "taca": {
                    "tacaId": number,
                    "name": "string",
                    "brandName": "string",
                    "attributes": [
                        {
                            "key": "string",
                            "value": "string",
                            "unit": "string"
                        }
                    ],
                    "bup": {
                        "quantity": number,
                        "unit": "string"
                    },
                    "thumbnailUrl": "string",
                    "productItemGroupId": number
                },
                "reviewStat": {
                    "totalCount": number,
                    "averageRating": number
                },
                "primaryItem": {
                    "itemId": number,
                    "name": "string",
                    "thumbnailUrl": "string",
                    "stock": {
                        "stockId": number,
                        "price": number,
                        "originPrice": number,
                        "baseUnitPrice": number
                    },
                    "product": {
                        "productId": number,
                        "name": "string",
                        "thumbnailUrl": "string",
                        "deliveryFeeType": "string"
                    },
                    "productItemId": number,
                    "price": number,
                    "originPrice": number
                }
            }
        ]
    }
}

Error Responses

Invalid TACA ID
  • Status Code: 400 Bad Request
{
    "result": "FAILED",
    "code": "INVALID_PARAMETER",
    "message": "tacaIds must be an array."
}
Empty TACA ID List
  • Status Code: 400 Bad Request
{
    "result": "FAILED",
    "code": "EMPTY_TACA_IDS",
    "message": "tacaIds array cannot be empty."
}
TACA Not Found
  • Status Code: 404 Not Found
{
    "result": "FAILED",
    "code": "TACA_NOT_FOUND",
    "message": "No TACAs found for the provided IDs."
} 

Assignments

TACA 개념 재정의

TACA 관련 주요 개념과 상태, 속성, 메서드의 세 가지 범주로 구분하여 재정의

과제 1: TACA 개념 재정의

직무별 TL;DR

직군 자주 묻는 질문 이 문서에서 해결되는 내용
PO Pre-TACA도 TACA인가요? 상태(State) 흐름으로 명확히 구분합니다.
PD Single vs Multi TACA에 따라 UI가 달라야 하나요? 구조적 속성(Property)을 기반으로 설계 기준을 안내합니다.
FE Non-TACA 상품은 어떻게 표시하나요? Displayable 여부를 기준으로 명확히 정의합니다.
BE TACA와 TACAI 관계는 어떻게 되나요? Entity 간 1:N 관계를 명확히 명시했습니다.
Biz TACA 매칭 기준은 무엇인가요? Auto/Custom 처리와 Winner TACAI 기준을 메서드로 정의합니다.

개념 재구성

TACA 관련 주요 개념은 상태(State), 속성(Property), **메서드(Method)**의 세 가지 범주로 구분하여 재정의할 수 있습니다. 이 구분은 구조적 혼란을 줄이고, 직군 간 해석 일관성을 높이는 데 목적이 있습니다.

  • 상태 (State): 객체가 시간에 따라 위치하는 단계
  • 속성 (Property): 객체가 가진 구조적 특성
  • 메서드 (Method): 객체를 처리하거나 노출하는 실행 방식

핵심 개념 정의

용어 분류 설명
Product Entity 사용자에게 보여지는 최종 통합 상품
MPI Entity 판매자가 등록한 개별 상품 (Merchant Product Item)
TACA Entity 여러 MPI를 하나로 통합하는 카탈로그
TACAI Entity TACA 내 개별 MPI 항목
Pre-TACA State 통합 이전 단계
Dummy TACA State 임시 군집 상태
Auto / Custom TACA Method 자동 혹은 수동 통합 방식
After TACA State 사용자 노출 가능한 상태
Non-TACA State 정책상 통합 불가 상품
Single / Multi TACA Property 포함된 TACAI 수에 따른 구조
Displayable Property 사용자에게 노출 가능한 상태 여부
Winner TACAI Method UI 상 대표로 노출되는 TACAI 선정 로직

상태 흐름 다이어그램

아래 다이어그램은 MPI부터 Product 노출까지의 상태 전이를 보여줍니다.

상품 통합 프로세스

여러 판매자의 동일 상품을 하나의 상품으로 통합하는 프로세스에 대한 설명

과제 2: 상품 통합 프로세스