MD-24 · 공급사 통합 리스트

공급사 정보 관리 (통합 리스트)

어드민·구글시트·슬랙에 흩어진 공급사 정보를 한 페이지에서 관리 — 담당자 연락처·센터와 물류/정산/수수료/휴무일을 구분자로 필터하고 엑셀로 일괄 업·다운로드한다.

🟡 준비 필요 엑셀 일괄 업·다운 구분자 필터·그룹 MD-20 의존 제거
🆕 신규 화면 개발
무엇 — 어드민·구글시트·슬랙에 흩어진 공급사 정보를 한 페이지에서 관리 — 담당자 연락처·센터와 물류/정산/수수료/휴무일을 구분자로 필터하고 엑셀로 일괄 업·다운로드한다.📍 위치: 공급사 관리 › 공급사 정보

핵심 결정

신설 페이지
공급사 관리 › 공급사 정보 — 기존 seller 기반 통합 조회/편집 뷰
입력 방식
엑셀 일괄 업로드·다운로드 (개별 팝업 수정 지양)
구분자
물류 / 정산 / 수수료 / 공통 휴무일 기준 필터·컬럼 그룹 전환
데이터 통합
구글시트·슬랙 공지 → 어드민 단일 소스로 흡수
의존성
MD-20 구좌 의존 제거 — 독립 착수 가능
01

화면 — 먼저 보기

이 티켓이 실제로 어떤 화면이 되는지 먼저 봅니다

현 어드민에는 공급사 정보를 통합 관리하는 페이지가 없다 — 구글시트(최신화 한계)·슬랙 입점공지의 파편화를 흡수하는 신규 화면이다.
현행 화면 · 실제 캡처
현행 「공급사」 목록 — 통합 리스트 대상
현행 「공급사」 목록 — 통합 리스트 대상
변경안 · 제안 화면
🔍 통합검색관리자 ▾
📊 대시보드
📦 상품관리
🧾 주문관리
🏬 재고관리
🎯 프로모션
💳 정산
⚙️ 설정
공급사 관리 › 공급사 정보신규 화면
정보 구분 ▾센터 ▾🔍 공급사명·담당자·연락처 검색엑셀 일괄 업로드엑셀 다운로드
공급사명공급사ID(사업자번호)구분담당자·연락처 🆕취급센터 🆕정산주기 🆕수수료율(%) 🆕공통 휴무일 🆕사용
채육식당(미팩축산)123123123매입김담당 010-1234-5678성동광진주1회(금)0.0일요일사용
스탁키퍼파트너스5318102137매입박매니저 010-2222-3333성동광진·강남월2회12.0설·추석 당일사용
1234광년440109078666프랜차이즈이사장 010-9876-5432강남주1회(수)0.0없음미사용
총 128건 · 20/page123

▲ 공급사 정보 통합 목록 — 바뀌는 컬럼은 🆕 로 표시(예시 데이터)

1
진입 — 공급사 관리 › 공급사 정보(신규 메뉴)로 진입하면 전체 공급사 통합 목록이 표시된다. 기본 구분자는 '물류'.
2
구분자 전환 — 상단 '정보 구분' 칩으로 물류/정산/수수료/공통 휴무일을 선택하면 노출 컬럼 그룹과 다운로드 엑셀 시트가 바뀐다.
3
검색·필터 — 공급사명·담당자·연락처·센터를 조합해 검색. 결과 0건이면 안내 문구와 '필터 초기화'를 노출한다.
4
엑셀 다운로드 — 현재 필터·구분자를 반영해 엑셀을 다운로드. 대량은 비동기로 파일을 생성한 뒤 다운로드 링크를 제공한다.
5
엑셀 일괄 업로드 — 다운로드 템플릿을 채워 업로드하면 행별 검증 결과 표가 뜨고, 정상 행만 seller_id 기준으로 upsert된다.
6
반영·이력 — 반영 결과(성공/오류 건수)와 파일명·처리자가 supplier_info_excel_batch에 기록되어 재확인·롤백 근거가 된다.
02

정책 / 정의

용어를 못 박고, 규칙을 명확히

용어 정의
용어정의
공급사식자재를 오더히어로에 납품하는 매입처. 유통사/파트너로 부르지 않고 '공급사'로 통일. 내부 식별자는 seller.id(사업자번호 기반).
구분자(정보 구분)공급사 정보를 물류/정산/수수료/공통 휴무일 4개 그룹으로 나누는 분류 축. 상단 칩으로 노출 컬럼 그룹과 엑셀 시트를 전환한다.
넷 공급가(net)매입 순공급가. 수수료·정산 계산의 기준가로, 이 화면의 수수료율(logistics_fee_rate)이 적용되는 대상.
취급센터공급사가 입고·출고하는 물류거점(성동광진 등). seller_center로 공급사–센터 다대다 매핑.
정산주기매입대금 지급 주기(주1회·월2회 등). seller_settlement_info.settlement_cycle.
공통 휴무일공급사가 발주/배송을 하지 않는 날. 개별 일자는 seller_custom_schedule, 매주 반복 휴무는 신규 weekly_holiday 컬럼(가정).
일괄 업서트(upsert)엑셀 업로드 시 seller.id를 키로 기존 행을 갱신·신규 행을 삽입하는 병합. 검증 통과 행만 반영.
정책 (규칙)
#규칙비고
1공급사 정보 페이지를 신규 메뉴로 신설한다(공급사 관리 하위).현 어드민에 통합 페이지 부재 — 기존 seller/센터/정산/수수료 테이블을 READ로 묶은 뷰.
2정보 편집의 기본 경로는 엑셀 일괄 업로드다. 개별 팝업 수정은 예외로만.티켓 명시: '개별 팝업 수정 X'. 다운로드 템플릿과 동일 스키마로 업로드.
3엑셀 업로드는 seller.id를 키로 upsert하며, 검증 통과 행만 반영한다.미등록 ID·필수값 누락·형식 오류 행은 스킵하고 검증 결과 표에 사유 표기.
4구분자(물류/정산/수수료/공통 휴무일)로 노출 컬럼 그룹과 엑셀 시트를 전환·그룹핑한다.구분자별 소스 테이블이 달라 시트도 분리(스크린 3 참조).
5엑셀 대량 다운로드는 비동기 생성 후 다운로드 방식으로 처리한다.티켓 확인·예외: '대량 다운 속도'. 동기 응답 타임아웃 방지 — 생성 완료 시 다운로드 링크 제공(가정).
6검색·필터 조합 결과 0건이면 빈 표 대신 안내 문구와 필터 초기화 버튼을 노출한다.티켓 확인·예외: '검색 조합 결과 0건 처리'.
7모든 업로드 배치는 이력으로 남긴다(파일명·구분자·성공/오류 건수·처리자).신규 supplier_info_excel_batch. seller_product_excel_update_history 패턴 재사용.
8담당자 연락처는 공급사당 복수 등록을 허용한다.기존 seller_manager_phone(1:N) 재사용. 목록에는 대표 담당자 1건 요약, 상세에서 전체.
9정산 정보(사업자번호·계좌)는 민감정보로 다운로드 권한을 분리한다.가정: 정산 구분자 다운로드는 상위 권한만. seller_settlement_info_history로 변경 추적.
03

ERD

데이터 구조 · 관계 · DDL

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

화면 상세 — 세부 표·규칙

목록 외 품목표·모달·규칙 등 세부 화면

엑셀 일괄 업로드 — 검증 결과
공급사ID공급사명변경 필드검증 상태메시지
2123123123채육식당(미팩축산)담당자·연락처정상-
35318102137스탁키퍼파트너스수수료율,정산주기정상2건 갱신
59999999999(미등록)전체오류존재하지 않는 공급사ID → 스킵
seller_id 키로 upsert. 오류 행은 스킵하고 사유 표기, 정상 행만 반영. 반영 시 배치 이력 생성.
구분자(정보 구분)별 노출 컬럼·엑셀 시트
구분노출 컬럼 그룹소스 테이블엑셀 시트
물류취급센터·배송유형·최소주문금액seller_center, seller물류
정산사업자번호·계좌·정산주기·세금계산서 이메일seller_settlement_info정산
수수료수수료타입·수수료율(기간)seller_logistics_fee_policy, seller수수료
공통 휴무일반복 휴무요일·개별 휴무일자seller.weekly_holiday, seller_custom_schedule휴무일
구분자별 소스 테이블이 달라 다운로드 엑셀도 시트로 분리. 정산 시트는 민감정보로 다운로드 권한 분리(가정).