🆕 신규 화면 개발
무엇 — 어드민·구글시트·슬랙에 흩어진 공급사 정보를 한 페이지에서 관리 — 담당자 연락처·센터와 물류/정산/수수료/휴무일을 구분자로 필터하고 엑셀로 일괄 업·다운로드한다.📍 위치: 공급사 관리 › 공급사 정보
핵심 결정
신설 페이지
공급사 관리 › 공급사 정보 — 기존 seller 기반 통합 조회/편집 뷰
입력 방식
엑셀 일괄 업로드·다운로드 (개별 팝업 수정 지양)
구분자
물류 / 정산 / 수수료 / 공통 휴무일 기준 필터·컬럼 그룹 전환
데이터 통합
구글시트·슬랙 공지 → 어드민 단일 소스로 흡수
의존성
MD-20 구좌 의존 제거 — 독립 착수 가능
01화면 — 먼저 보기
이 티켓이 실제로 어떤 화면이 되는지 먼저 봅니다
현 어드민에는 공급사 정보를 통합 관리하는 페이지가 없다 — 구글시트(최신화 한계)·슬랙 입점공지의 파편화를 흡수하는 신규 화면이다.
현행 화면 · 실제 캡처현행 「공급사」 목록 — 통합 리스트 대상
변경안 · 제안 화면
◆ OrderHero 어드민🔍 통합검색관리자 ▾
📊 대시보드
📦 상품관리
🧾 주문관리
🏬 재고관리
🎯 프로모션
💳 정산
⚙️ 설정
공급사 관리 › 공급사 정보신규 화면
정보 구분 ▾센터 ▾🔍 공급사명·담당자·연락처 검색엑셀 일괄 업로드엑셀 다운로드
▲ 공급사 정보 통합 목록 — 바뀌는 컬럼은 🆕 로 표시(예시 데이터)
1진입 — 공급사 관리 › 공급사 정보(신규 메뉴)로 진입하면 전체 공급사 통합 목록이 표시된다. 기본 구분자는 '물류'.
2구분자 전환 — 상단 '정보 구분' 칩으로 물류/정산/수수료/공통 휴무일을 선택하면 노출 컬럼 그룹과 다운로드 엑셀 시트가 바뀐다.
3검색·필터 — 공급사명·담당자·연락처·센터를 조합해 검색. 결과 0건이면 안내 문구와 '필터 초기화'를 노출한다.
4엑셀 다운로드 — 현재 필터·구분자를 반영해 엑셀을 다운로드. 대량은 비동기로 파일을 생성한 뒤 다운로드 링크를 제공한다.
5엑셀 일괄 업로드 — 다운로드 템플릿을 채워 업로드하면 행별 검증 결과 표가 뜨고, 정상 행만 seller_id 기준으로 upsert된다.
6반영·이력 — 반영 결과(성공/오류 건수)와 파일명·처리자가 supplier_info_excel_batch에 기록되어 재확인·롤백 근거가 된다.
seller WRITE
idPK varchar(100)
seller_namevarchar(20)
seller_typevarchar(20)
delivery_typevarchar(20)
fee_typevarchar(20)
min_priceinteger
weekly_holidayvarchar(50)
use_flagboolean
공급사 마스터. 이 화면의 메인 소스이며 배송유형·수수료타입·최소주문금액·사용여부를 편집. 공통 휴무일 컬럼은 신규 추가(가정).
seller_manager_phone READ
seller_idFK varchar(100)
manager_namevarchar(20)
phone_numbervarchar(20)
공급사 담당자 연락처(1:N). 목록엔 대표 1건 요약, 상세/엑셀엔 전체.
seller_settlement_info READ
seller_idFK varchar(100)
business_numbervarchar(20)
settlement_cyclevarchar(20)
invoice_emailvarchar(100)
account_numbervarchar(50)
정산 구분자 소스(1:1). 사업자번호·계좌·정산주기·세금계산서 이메일. 민감정보 권한 분리.
seller_logistics_fee_policy READ
seller_idFK varchar(100)
logistics_fee_ratenumeric(5,2)
start_datedate
end_datedate
tax_typeenum
수수료 구분자 소스(1:N, 기간별). 넷 공급가에 적용되는 수수료율. 기간 미중복(gist).
supplier_info_excel_batch 신규
idPK bigserial
file_namevarchar(255)
info_sectionvarchar(20)
success_rowsinteger
error_rowsinteger
error_detailjsonb
created_byvarchar(50)
엑셀 일괄 업로드 배치 이력. 구분자·성공/오류 건수·행별 오류 상세를 기록.
seller 1 — N seller_manager_phone (seller_id) : 담당자 연락처(복수)
seller 1 — 1 seller_settlement_info (seller_id) : 정산 정보
seller 1 — N seller_logistics_fee_policy (seller_id) : 기간별 수수료율
seller 1 — N seller_center (seller_id) → center : 취급 센터(다대다)
seller 1 — N seller_custom_schedule (seller_id) : 개별 일자 휴무/마감
supplier_info_excel_batch — (대상) N seller.id : 업로드 배치가 갱신한 공급사
-- 공급사 매주 반복 공통 휴무일 (신규·가정): 개별 일자는 seller_custom_schedule 유지\nALTER TABLE seller ADD COLUMN IF NOT EXISTS weekly_holiday varchar(50);\nCOMMENT ON COLUMN seller.weekly_holiday IS '매주 반복되는 공통 휴무 요일(예: 일요일 / 토·일). 특정 일자 휴무는 seller_custom_schedule 사용';\n\n-- 엑셀 일괄 업로드 배치 이력 (신규): seller_product_excel_update_history 패턴 재사용\nCREATE TABLE IF NOT EXISTS supplier_info_excel_batch (\n id bigserial PRIMARY KEY, -- 업로드 배치 ID\n file_name varchar(255) NOT NULL, -- 업로드한 원본 엑셀 파일명\n info_section varchar(20) NOT NULL, -- 구분자: logistics/settlement/fee/holiday/common\n total_rows integer NOT NULL DEFAULT 0, -- 업로드 전체 행 수\n success_rows integer NOT NULL DEFAULT 0, -- upsert 정상 반영 행 수\n error_rows integer NOT NULL DEFAULT 0, -- 검증 실패로 스킵된 행 수\n error_detail jsonb, -- 행 번호별 오류 사유 목록\n status varchar(20) NOT NULL DEFAULT 'processing', -- processing/done/failed\n created_by varchar(50) NOT NULL, -- 업로드 수행 관리자\n created_at timestamp NOT NULL DEFAULT now() -- 업로드 시각\n);\nCOMMENT ON TABLE supplier_info_excel_batch IS '공급사 정보 엑셀 일괄 업로드 배치 이력';\nCREATE INDEX IF NOT EXISTS idx_supplier_info_excel_batch_created\n ON supplier_info_excel_batch (created_at DESC);
04화면 상세 — 세부 표·규칙
목록 외 품목표·모달·규칙 등 세부 화면
엑셀 일괄 업로드 — 검증 결과
seller_id 키로 upsert. 오류 행은 스킵하고 사유 표기, 정상 행만 반영. 반영 시 배치 이력 생성.
구분자(정보 구분)별 노출 컬럼·엑셀 시트
구분자별 소스 테이블이 달라 다운로드 엑셀도 시트로 분리. 정산 시트는 민감정보로 다운로드 권한 분리(가정).