# 상품 생성 플로우

AI 상품 이미지를 생성하는 전체 워크플로우입니다.

## 플로우 개요

```
이미지 업로드 URL 발급 → 이미지 업로드 → 상품 생성 → 상태 확인
```

## Step 1: 이미지 업로드 URL 발급

각 소스 이미지마다 presigned URL을 발급받습니다.

```bash
curl -X POST \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workspaceId": "ws_abc123", "extension": "jpg"}' \
  https://openapi.gency.ai/openapi/v1/images/upload-url
```

응답의 `imageId`와 `uploadUrl`을 저장합니다.

## Step 2: 이미지 업로드

발급받은 presigned URL로 이미지를 PUT 업로드합니다.

```bash
curl -X PUT \
  -H "Content-Type: image/jpeg" \
  --data-binary @product-front.jpg \
  "PRESIGNED_URL_FROM_STEP_1"
```

## Step 3: 상품 생성

업로드한 이미지의 `imageId`를 포함하여 상품을 생성합니다.

```bash
curl -X POST \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workspaceId": "ws_abc123",
    "products": [{
      "category": "TOP",
      "images": ["img_001", "img_002"],
      "projectId": "proj_2026ss_001",
      "productName": "린넨 셔츠",
      "colors": ["네이비", "베이지"],
      "fabrics": ["린넨 100%"],
      "additionalInfo": {
        "features": ["레귤러핏", "버튼다운 칼라"],
        "laundryTips": ["드라이클리닝 권장"]
      }
    }]
  }' \
  https://openapi.gency.ai/openapi/v1/products
```

응답: `{ "data": { "productIds": ["prod_new_001"] } }`

## Step 4: 상태 확인

상품 생성은 비동기로 처리됩니다. 상태를 주기적으로 확인하세요.

```bash
curl -H "X-API-Key: YOUR_KEY" \
  https://openapi.gency.ai/openapi/v1/products/prod_new_001
```

### 상태 흐름

1. 상품 생성 중 (AI가 이미지를 생성하는 중)
2. `BEFORE_REVIEW` — 생성 완료, 검수 전
3. `IN_REVIEW` — 검수 중 (수동 상태 변경)
4. `REVIEW_COMPLETE` — 검수 완료

> **팁**: Webhook을 설정하면 상태 변경 시 자동으로 알림을 받을 수 있습니다. [Webhook 수신 가이드](webhook-receiving.md)를 참고하세요.
