149 lines
5.5 KiB
Markdown
149 lines
5.5 KiB
Markdown
# 현재 그룹 상품 업로드 개선사항 가이드
|
|
|
|
## 🎯 주요 개선사항
|
|
|
|
### 1. 사업자 정보 표시 및 조건부 실행
|
|
- **선택된 마켓 정보가 있는 경우**: 사업자 정보를 보여주고 마켓정보 변경 → 상품 업로드 순으로 실행
|
|
- **선택된 마켓 정보가 없는 경우**: 기존 설정대로 진행한다는 메시지와 함께 상품 업로드만 실행
|
|
|
|
### 2. 현대적인 진행상황 다이얼로그
|
|
- **실시간 진행상황**: 현재 상품 / 총 상품 수 표시
|
|
- **단계별 진행률**: 마켓정보 변경 → 상품 업로드 단계 표시
|
|
- **경과 시간**: 실시간 작업 시간 표시
|
|
- **로그 영역**: 상세한 작업 진행 로그
|
|
- **제어 기능**: 일시정지/재개/취소 버튼
|
|
|
|
### 3. 추후 확장성 고려
|
|
- 여러 사업자 순차 처리를 위한 구조 준비
|
|
- 업로드정보삭제 → 마켓정보변경 → 상품수정 → 상품업로드 흐름 지원
|
|
|
|
## 📁 파일 구조
|
|
|
|
```
|
|
src/
|
|
├── upload_progress_dialog.py # 진행상황 다이얼로그 (새로 생성)
|
|
├── mainUI_SP.py # 메인 UI (수정됨)
|
|
└── browser_control.py # 브라우저 컨트롤러 (시그널 추가)
|
|
```
|
|
|
|
## 🔧 구현된 기능
|
|
|
|
### 1. 진행상황 다이얼로그 (`ModernProgressDialog`)
|
|
|
|
#### 주요 기능:
|
|
- **현대적인 UI 디자인**: 그라데이션 진행 바, 카드 형태 레이아웃
|
|
- **실시간 진행률**: 전체 진행률과 단계별 진행률 표시
|
|
- **시간 추적**: 경과 시간, 일시정지 시간 계산
|
|
- **로그 시스템**: 타임스탬프가 포함된 상세 로그
|
|
- **마켓 정보 표시**: 선택된 마켓과 사업자 정보 표시
|
|
|
|
#### 주요 메서드:
|
|
```python
|
|
# 단일 사업자 업로드 시작
|
|
start_upload(total_products, market_info)
|
|
|
|
# 여러 사업자 업로드 시작 (추후 확장용)
|
|
start_multi_business_upload(business_queue, total_products_per_business)
|
|
|
|
# 진행상황 업데이트
|
|
update_progress(current_product, step_name, step_progress)
|
|
|
|
# 로그 추가
|
|
add_log(message)
|
|
|
|
# 업로드 완료
|
|
complete_upload()
|
|
```
|
|
|
|
### 2. 메인 UI 개선 (`mainUI_SP.py`)
|
|
|
|
#### 수정된 메서드:
|
|
- `on_upload_selected_markets_clicked()`: 개선된 업로드 로직
|
|
- `get_current_group_product_count()`: 현재 그룹 상품수 가져오기
|
|
- `on_upload_cancel_requested()`: 업로드 취소 처리
|
|
- `on_upload_pause_requested()`: 일시정지 처리
|
|
- `on_upload_resume_requested()`: 재개 처리
|
|
- `on_upload_progress_updated()`: 진행상황 업데이트
|
|
- `on_upload_step_changed()`: 단계 변경 처리
|
|
- `on_upload_log_message()`: 로그 메시지 처리
|
|
- `on_upload_completed()`: 완료 처리
|
|
|
|
### 3. 브라우저 컨트롤러 시그널 추가 (`browser_control.py`)
|
|
|
|
#### 새로운 시그널:
|
|
```python
|
|
upload_progress_updated = Signal(int, int) # (현재 상품, 총 상품)
|
|
upload_step_changed = Signal(str, int) # (단계명, 진행률 %)
|
|
upload_log_message = Signal(str) # 로그 메시지
|
|
upload_completed = Signal(bool, str) # (성공여부, 메시지)
|
|
```
|
|
|
|
## 🚀 사용 방법
|
|
|
|
### 1. 기본 사용
|
|
1. **현재 그룹의 상품을 업로드** 버튼 클릭
|
|
2. 선택된 마켓 정보 확인 대화상자에서 정보 검토
|
|
3. **예** 선택 시 진행상황 다이얼로그가 표시됨
|
|
4. 실시간으로 진행상황 모니터링 가능
|
|
|
|
### 2. 진행상황 다이얼로그 제어
|
|
- **일시정지**: 작업을 일시적으로 중단
|
|
- **재개**: 일시정지된 작업을 계속 진행
|
|
- **취소**: 작업을 완전히 중단
|
|
- **닫기**: 작업 완료 후 다이얼로그 닫기
|
|
|
|
### 3. 로그 모니터링
|
|
- 타임스탬프가 포함된 상세 로그
|
|
- 자동 스크롤로 최신 로그 표시
|
|
- 작업 단계별 진행 상황 추적
|
|
|
|
## 🔮 추후 확장 계획
|
|
|
|
### 여러 사업자 순차 처리
|
|
```python
|
|
# 사용 예시 (추후 구현 시)
|
|
business_queue = [
|
|
{'name': '사업자1', 'market_info': {...}},
|
|
{'name': '사업자2', 'market_info': {...}}
|
|
]
|
|
total_products_per_business = {'사업자1': 50, '사업자2': 30}
|
|
|
|
dialog.start_multi_business_upload(business_queue, total_products_per_business)
|
|
```
|
|
|
|
### 처리 흐름 (여러 사업자)
|
|
1. **사업자1**: 업로드정보삭제 → 마켓정보변경 → 상품수정 → 상품업로드
|
|
2. **사업자2**: 업로드정보삭제 → 마켓정보변경 → 상품수정 → 상품업로드
|
|
3. **반복**: 모든 사업자 완료까지
|
|
|
|
## 🎨 UI 특징
|
|
|
|
### 디자인 요소
|
|
- **색상 테마**: 현대적인 파스텔 톤
|
|
- **진행 바**: 그라데이션 효과
|
|
- **카드 레이아웃**: 섹션별 구분된 디자인
|
|
- **반응형**: 창 크기에 따른 적응형 레이아웃
|
|
|
|
### 사용자 경험
|
|
- **직관적 인터페이스**: 한눈에 파악 가능한 진행상황
|
|
- **실시간 피드백**: 즉시 확인 가능한 작업 진행
|
|
- **안전한 제어**: 작업 취소 시 확인 절차
|
|
|
|
## 📋 주의사항
|
|
|
|
1. **권한 확인**: VIP 권한이 필요한 기능입니다
|
|
2. **사업자 설정**: 사업자관리에서 미리 설정이 필요합니다
|
|
3. **네트워크 상태**: 안정적인 인터넷 연결을 유지해야 합니다
|
|
4. **작업 중단**: 일시정지 기능을 활용하여 안전하게 중단 가능합니다
|
|
|
|
## 🔧 커스터마이징
|
|
|
|
### 스타일 변경
|
|
`src/upload_progress_dialog.py`의 `setup_styles()` 메서드에서 CSS 스타일 수정 가능
|
|
|
|
### 로그 형식 변경
|
|
`add_log()` 메서드에서 타임스탬프 형식 및 메시지 형식 수정 가능
|
|
|
|
### 진행률 계산 변경
|
|
`update_progress()` 메서드에서 진행률 계산 로직 수정 가능
|