feat: v9.0 업그레이드 — CS 작업 탭 개편 + 밀크런/자사몰 행사 모듈

CS 통합 프로그램.ZIP(로컬 개발본 v9.0)의 기능 소스를 반영.
DB 스키마는 기존과 동일해 마이그레이션 없이 그대로 사용한다.

가져온 것
- main.py / cafe24_api.py / templates / static: v9.0 기능 코드
- routers/coupang_milkrun.py, routers/mall_event.py (신규)
- static/js/mall_event.js, static/js/milkrun_gsheet.js (신규)

운영 설정은 기존 것을 유지·재적용
- DB/카페24/네이버 접속정보를 하드코딩 대신 환경변수 기반으로 복원
- SSO(AuthGuardMiddleware, SessionMiddleware), /login, /logout, /health/db 복원
- APP_ROOT_PATH 서브경로 호스팅(root_path 템플릿 변수, app.js fetch 래퍼) 복원
- 구글시트 설정 인메모리 캐시(TTL 10분)와 /api/config/refresh 복원

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-31 23:56:17 +09:00
parent a2a5d53d9b
commit 065e81bf97
11 changed files with 9830 additions and 1392 deletions
+105 -2
View File
@@ -1,4 +1,107 @@
[
{
"version": "v9.0",
"date": "2026.08.25",
"sections": [
{
"items": [
"New CS 작업 탭과 새로운 주문 처리 UI 추가: 상품 분류별 하위 상품 선택, 선택 상품 삭제 및 수량 변경, 주문금액·할인·배송비·입금금액 실시간 계산, 문자 미리보기 기능을 한 화면에서 사용할 수 있도록 개선"
],
"type": "added"
},
{
"items": [
"기존 CS 작업 탭은 전체 상품 그룹을 한 번에 확인할 수 있는 이전 UI로 유지하여 New CS 작업 탭과 선택적으로 사용할 수 있도록 구성"
],
"type": "modified"
}
]
},
{
"version": "v8.82",
"date": "2026.08.25",
"sections": [
{
"items": [
"주문 정보 프로그램에서 복사된 재발송 정보를 자동으로 입력 하는 기능 추가"
],
"type": "added"
}
]
},
{
"version": "v8.81",
"date": "2026.08.12",
"sections": [
{
"items": [
"자사몰 행사 메뉴에 \"행사주문 추출\" 기능 추가 (아롱님 전용 메뉴): 카페24 주문 CSV를 파일 선택 또는 드래그 앤 드롭으로 업로드하면 주문상품명(K열)의 첫 \" -\" 앞부분을 중복 없이 가나다순으로 정리해 보여주고, 여기서 고른 상품을 기준으로 필요한 행만 남긴 엑셀을 곧바로 내려받을 수 있음",
"추출 조건 2가지 제공: \"해당상품만 추출\"은 선택한 상품이 들어있는 행만 남기고, \"해당 주문 추출\"은 그 행의 주문번호(B열)와 같은 주문의 모든 행을 남김"
],
"type": "added"
}
]
},
{
"version": "v8.8",
"date": "2026.08.11",
"sections": [
{
"items": [
"자사몰 행사 메뉴 추가: 카페24에서 받은 발주주문서(엑셀)를 업로드해 행사 조건을 적용하고, 가공된 발주 파일을 다시 내려받는 공간 (발주서 가공 기능이 앞으로 계속 추가될 예정)",
"선착순 사은품 지급 기능 추가: 발주서를 파일 선택 또는 드래그 앤 드롭으로 업로드하면 주문목록(Q열)의 상품을 중복 없이 가나다순으로 정리해 보여주고, 선택한 상품을 주문한 고객을 주문날짜 순서대로 선착순 N명까지 자동 선별 (인원은 10/30/50/100 버튼 또는 직접 입력)",
"선별된 각 주문의 마지막 행 바로 아래에 사은품 행을 자동 삽입 (품목 순번 자동 증가, 사은품 아이템코드·이름·수량 입력, 주문목록에 \"선착순 사은품\" 표기, 삽입된 행의 A~Q열 노란색 표시)",
"적용 결과를 미리 확인한 뒤 전체 발주 파일(업로드한 파일과 같은 이름)과 사은품이 적용된 주문만 담은 파일을 각각 엑셀로 다운로드 가능"
],
"type": "added"
},
{
"items": [
"코드표: 단품 코드와 세트 코드 제목 옆에 이름 검색란 추가 (입력하는 즉시 실시간 검색, 초기화 버튼과 Esc 키로 검색어 해제)",
"왼쪽 메뉴에 아이콘 추가 (🎧 CS 작업, ✍️ 수동발주, 📦 상품설정, 🤖 자동발주, 🏷️ 코드표, ↩️ 반품관리, 🎁 자사몰 행사, 🚚 밀크런, ⚙️ 설정, 🚀 History)"
],
"type": "modified"
}
]
},
{
"version": "v8.7",
"date": "2026.08.07",
"sections": [
{
"items": [
"쿠팡 밀크런 메뉴 추가: 밀크런 발주서(제품코드/제품명/수량)를 붙여넣으면 코드표 DB의 세트-단품 구성을 기준으로 낱개 코드별 합계 수량을 자동 계산",
"쿠팡 밀크런: 사방넷 코드, 낱개 코드, 상품 이름, 합계 수량 순으로 결과 표시, 계산 결과를 사방넷 업로드 양식(상품코드/가용수량/불용수량/바코드) 그대로 엑셀 다운로드 가능"
],
"type": "added"
}
]
},
{
"version": "v8.61",
"date": "2026.06.18",
"sections": [
{
"items": [
"세트 수정 및 추가 저장 시 구성품 정보 저장 로직의 JavaScript 오류 수정 (저장이 완료되지 않던 문제 해결)"
],
"type": "modified"
}
]
},
{
"version": "v8.6",
"date": "2026.06.17",
"sections": [
{
"items": [
"코드표에서 세트코드 수정 시 구성품 드래그 앤 드롭 이동(정렬) 기능 추가",
"최근 전송 메시지 화면에서 이름, 연락처, 주소가 입력된 메시지는 메시지 맨 오른쪽에 *표시 추가"
],
"type": "modified"
}
]
},
{
"version": "v8.59",
"date": "2026.06.15",
@@ -26,7 +129,7 @@
},
{
"version": "v8.57",
"date": "2026.05.26",
"date": "2026.05.28",
"sections": [
{
"items": [
@@ -295,4 +398,4 @@
}
]
}
]
]