테마
Story: 원가 CSV 다운로드
메타
| 항목 | 값 |
|---|---|
| Story ID | E-03-S-07 |
| Epic | E-03 원가 히스토리 |
| 상태 | draft |
| 우선순위 | P0 |
| 규모 | M |
| 담당 | BE: 희선님, FE: 수민님 |
사용자 스토리
As a 상품 수가 많은 셀러, I want 전체 상품의 원가 정보를 CSV로 다운로드, So that 엑셀에서 일괄 확인/편집 후 업로드할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 다운로드 버튼 노출
| 항목 | 내용 |
|---|---|
| Given | 매입원가 관리 페이지 |
| When | Basic 이상 요금제 사용자 |
| Then | "CSV 다운로드" 버튼 노출 |
요금제별 노출:
| 티어 | CSV 다운로드 |
|---|---|
| Starter | ❌ (업그레이드 유도 UI) |
| Basic+ | ✅ |
AC-02: CSV 파일 생성
| 항목 | 내용 |
|---|---|
| Given | 다운로드 버튼 클릭 |
| When | 상품 데이터 조회 |
| Then | UTF-8 BOM CSV 파일 생성 (엑셀 한글 깨짐 방지) |
CSV 컬럼 구조:
| # | 컬럼명 (한글) | DB 컬럼 | 수정 가능 |
|---|---|---|---|
| 1 | 쇼핑몰 | marketCode | ❌ (Key) |
| 2 | 판매자ID | vendorId | ❌ (Key) |
| 3 | 상품코드 | productId | ❌ (Key) |
| 4 | 상품명 | productName | ❌ |
| 5 | 매입원가 | purchasePrice | ✅ |
| 6 | 매입배송비 | purchaseDeliveryAmount | ✅ |
| 7 | 운임비 | actualDeliveryAmount | ✅ |
| 8 | 기타비용 | etcAmount | ✅ |
| 9 | 광고비용 | marketingAmount | ✅ |
| 10 | 입출고비용 | warehousingAmount | ✅ |
AC-03: 필터 적용
| 항목 | 내용 |
|---|---|
| Given | 쇼핑몰/판매상태 필터 적용 상태 |
| When | CSV 다운로드 |
| Then | 필터링된 상품만 포함 |
태스크 분해
Task 1: BE - CSV 생성 API (AC-02)
- [ ]
GET /api/products/cost/export엔드포인트 - [ ] Product 테이블 조회 (필터 조건 적용)
- [ ] UTF-8 BOM CSV 스트림 생성
- [ ] 한글 컬럼명 매핑
Task 2: FE - 다운로드 UI (AC-01, AC-03)
- [ ] 다운로드 버튼 컴포넌트
- [ ] 요금제별 노출 분기 (PlanTier 체크)
- [ ] Starter: 업그레이드 유도 모달
- [ ] 필터 상태 API 파라미터 전달
Task 3: 파일명 규칙
- [ ]
장사왕_매입원가_{YYYYMMDD}.csv형식 - [ ] 다운로드 시 현재 날짜 자동 적용
Dev Notes
참고 코드
- 기존 CSV 다운로드 기능 있으면 참조
성능 고려
- 상품 수 많을 경우 스트리밍 처리
- 10,000건 이상 시 비동기 처리 검토 (S54+ 백로그)
E-05 연계
PlanTier또는 Feature Flag로 요금제 체크- E-05 구현 전에는 전체 공개 후, E-05 배포 시 제한 적용
References
생성일: 2026-01-28
