테마
Story: 원가입력 UI - 삭제/복구 기능
메타
| 항목 | 값 |
|---|---|
| Story ID | E-09-S-05 |
| Epic | E-09 미사용 상품 정리 |
| 상태 | ready-for-dev |
| 우선순위 | P0 |
| 규모 | M |
| 담당 개발자 | FE |
사용자 스토리
As a 셀러,
I want 원가입력 화면에서 상품을 삭제하고 복구하고 싶다,
So that 필요 없는 상품을 정리할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 개별 삭제
| 항목 | 내용 |
|---|---|
| Given | 상품 행의 메뉴에서 |
| When | "삭제"를 클릭하면 |
| Then | 확인 모달 후 상품이 삭제된다 |
AC-02: 일괄 삭제
| 항목 | 내용 |
|---|---|
| Given | 여러 상품을 체크박스로 선택 후 |
| When | "선택 삭제" 버튼을 클릭하면 |
| Then | 확인 모달 후 선택한 상품이 삭제된다 |
AC-03: 복구 기능
| 항목 | 내용 |
|---|---|
| Given | 삭제 완료 후 |
| When | 토스트의 "복구하기" 또는 삭제 목록에서 복구하면 |
| Then | 상품이 목록에 다시 표시된다 |
AC-04: 삭제 목록 조회
| 항목 | 내용 |
|---|---|
| Given | 원가입력 페이지에서 |
| When | "삭제된 상품" 탭/링크를 클릭하면 |
| Then | 7일 이내 삭제된 상품 목록이 표시된다 |
태스크 분해
Task 1: 개별 삭제 UI
- [ ] 1.1: 상품 행 메뉴에 "삭제" 항목 추가
- [ ] 1.2: 삭제 확인 모달
- 상품명 표시
- "7일 내 복구 가능" 안내
- [ ] 1.3: 삭제 API 호출 + 로딩 상태
Task 2: 일괄 삭제 UI
- [ ] 2.1: 상품 목록에 체크박스 추가
- [ ] 2.2: "전체 선택" / "선택 해제" 기능
- [ ] 2.3: "선택 삭제" 버튼 (선택 시에만 활성화)
- [ ] 2.4: 일괄 삭제 확인 모달
- 선택한 상품 수 표시
- 일부 상품명 미리보기
Task 3: 삭제 완료 피드백
- [ ] 3.1: 삭제 완료 토스트
- "15개 상품이 삭제되었습니다. [복구하기]"
- [ ] 3.2: 즉시 복구 기능 (토스트에서)
Task 4: 삭제 상품 목록
- [ ] 4.1: 삭제된 상품 목록 페이지/모달
- [ ] 4.2: 개별/일괄 복구 버튼
- [ ] 4.3: 남은 복구 기간 표시 (D-5 형태)
화면 설계
상품 행 메뉴
[상품 행 우측 ... 메뉴]
┌─────────────────┐
│ 📝 원가 수정 │
│ 📋 상품 상세 │
│ ─────────────── │
│ 🗑️ 삭제 │
└─────────────────┘삭제 확인 모달
┌───────────────────────────────────────────────────────────────┐
│ │
│ 🗑️ 상품 삭제 │
│ │
│ 15개 상품을 삭제하시겠습니까? │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ • 기본 티셔츠 (SKU-002) │ │
│ │ • 테스트 상품 (SKU-003) │ │
│ │ • 구모델 신발 (SKU-015) │ │
│ │ • ... 외 12개 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 💡 삭제 후 7일 내에 복구할 수 있습니다. │
│ │
│ [취소] [삭제하기] │
│ │
└───────────────────────────────────────────────────────────────┘삭제 완료 토스트
┌───────────────────────────────────────────────────────────────┐
│ ✅ 15개 상품이 삭제되었습니다. [복구하기] [✕] │
└───────────────────────────────────────────────────────────────┘이벤트 로깅
| 이벤트 | 파라미터 |
|---|---|
product_delete_click | seller_id, product_count |
product_delete_confirm | seller_id, product_count |
product_delete_cancel | seller_id, product_count |
product_restore | seller_id, product_count |
생성일: 2026-01-20
