핵심 결정
핵심 결정
코드 이원화가 아니라 seller_product에 DC 작업 코드 컬럼 1개 추가(hero_product_code 마다 매핑)
매핑 관계
1개 DC 작업 코드 ↔ 여러 히어로코드(복제코드 때문에 1:N), UNIQUE 제약 걸지 않음
필수 여부
필수 아님 — 빈값 허용, DC 유통 상품만 채움
일괄 등록
구글시트/엑셀 링크 → 히어로코드 기준 매칭 UPDATE로 밀어넣기 → 늘품 VBA 불요
명칭 규칙
「DC 작업 코드」(허브 코드) 고정. 이지어드민 폐기·타 DC 대비해 '이지어드민 코드'로 쓰지 말 것
의존성
MD-14(이지어드민 재고 연동)의 선행. 착수 전 이지어드민 API가 코드 매핑까지 주는지 수요일(MD-14) 확인
seller_product WRITE
hero_product_codePK varchar(100)
seller_idvarchar(100)
product_codevarchar(30)
parent_hero_codevarchar(20)
group_idinteger
product_nametext
dc_work_codevarchar(50)
delivery_typevarchar(30)
use_ynvarchar(1)
공급사 상품관리 테이블. dc_work_code 컬럼 1개 추가(변경). PK=히어로코드
dc_work_code_import 신규
import_idPK bigserial
source_typevarchar(20)
source_urltext
total_rowsinteger
matched_rowsinteger
skipped_rowsinteger
statusvarchar(20)
reg_idvarchar(100)
applied_ontimestamp
구글시트/엑셀 일괄 등록 배치 헤더(1 링크=1 배치)
dc_work_code_import_row 신규
import_idPK/FK bigint
row_noPK integer
hero_product_codevarchar(100)
dc_work_codevarchar(50)
resultvarchar(20)
messagetext
일괄 등록 행별 결과(감사/재현)
seller_product.hero_product_code = dc_work_code_import_row.hero_product_code (일괄 등록 시 히어로코드 기준 매칭 UPDATE)
dc_work_code_import_row.import_id = dc_work_code_import.import_id (배치-행 결과)
seller_product.parent_hero_code = seller_product.hero_product_code (복제코드 자기참조 — 1 DC코드가 대표+복제 히어로에 동시 매핑되는 근거)
-- ============================================================
-- MD-03 : 「DC 작업 코드」 매핑 (허브 코드)
-- 공급사 상품관리(seller_product)에 DC 작업 코드 컬럼 1개 추가
-- + 구글시트/엑셀 일괄 등록 이력 테이블
-- 대상 DBMS: PostgreSQL
-- ============================================================
-- ① [변경] 공급사 상품 테이블에 DC 작업 코드 컬럼 추가
-- 히어로코드마다 DC 작업 코드를 1개 매핑. 필수 아님(빈값 허용, DC상품만).
-- 1 DC ↔ N 히어로(복제코드 존재)라 UNIQUE 제약 걸지 않음.
ALTER TABLE public.seller_product
ADD COLUMN dc_work_code varchar(50) DEFAULT NULL; -- DC(늘품) 이지어드민/차기ERP의 작업 코드. 허브 코드, 명칭 중립. NULL=DC 미유통 상품
COMMENT ON COLUMN public.seller_product.dc_work_code IS
'DC 작업 코드(허브 코드). 1개 DC코드가 여러 히어로코드에 매핑될 수 있음(1:N). NULL 허용=DC 미유통. "이지어드민 코드"로 부르지 말 것';
-- 역방향 조회(1 DC코드 -> N 히어로코드) 및 일괄 매칭 성능용 인덱스. UNIQUE 아님.
CREATE INDEX seller_product_dc_work_code_idx
ON public.seller_product USING btree (dc_work_code)
WHERE dc_work_code IS NOT NULL;
-- ② [신규] DC 작업 코드 일괄 등록 배치(구글시트/엑셀 링크 1회 업로드 = 1 배치)
CREATE TABLE public.dc_work_code_import (
import_id bigserial PRIMARY KEY, -- 배치 PK
source_type varchar(20) NOT NULL DEFAULT 'GSHEET', -- GSHEET | EXCEL
source_url text, -- 구글시트 링크(엑셀 업로드 시 원본 파일명)
total_rows integer NOT NULL DEFAULT 0, -- 파싱 총 행수
matched_rows integer NOT NULL DEFAULT 0, -- 히어로코드 매칭 성공(UPDATE 반영)
skipped_rows integer NOT NULL DEFAULT 0, -- 미매칭/오류로 스킵
status varchar(20) NOT NULL DEFAULT 'PARSED', -- PARSED | PREVIEWED | APPLIED | FAILED
reg_id varchar(100), -- 실행 어드민 계정
created_on timestamp NOT NULL DEFAULT now(),
applied_on timestamp -- 실제 반영(밀어넣기) 시각
);
COMMENT ON TABLE public.dc_work_code_import IS 'DC 작업 코드 구글시트/엑셀 일괄 등록 배치 헤더. 늘품 VBA 대체용';
-- ③ [신규] 일괄 등록 행 단위 결과(감사/재현용)
CREATE TABLE public.dc_work_code_import_row (
import_id bigint NOT NULL REFERENCES public.dc_work_code_import(import_id), -- FK 배치
row_no integer NOT NULL, -- 시트 원본 행번호
hero_product_code varchar(100), -- 시트가 지정한 히어로코드(짝짓기 결과)
dc_work_code varchar(50), -- 밀어넣을 DC 작업 코드
result varchar(20) NOT NULL, -- APPLIED | NOT_FOUND | DUP_SKIP | INVALID
message text, -- 스킵/오류 사유
PRIMARY KEY (import_id, row_no)
);
COMMENT ON TABLE public.dc_work_code_import_row IS '일괄 등록 행별 처리 결과. NOT_FOUND=히어로코드 미존재';
03스토리보드 — 매핑 흐름
히어로코드와 DC 작업 코드를 짝짓는 단계
1공급사 상품관리 목록 진입 — 어드민 > 상품관리 > 공급사 상품관리 목록. 히어로코드/공급사/상품명/복제여부 기존 컬럼 우측에 「DC 작업 코드」 컬럼 1개가 추가되어 노출된다. DC상품이 아닌 행은 빈칸.
2단건 DC 작업 코드 입력/수정 — 상품 행 인라인 또는 상세에서 DC 작업 코드를 직접 입력·수정. 필수 아님(빈값 저장 가능). 같은 DC코드를 여러 히어로 행에 넣어도 경고 없이 저장(1:N 허용).
3일괄 등록 모달 열기 — 구글시트/엑셀 링크 입력 — 목록 상단 [DC 작업 코드 일괄 등록] 버튼 → 모달. 늘품이 관리하던 구글시트 링크를 붙여넣거나 엑셀 업로드. 링크가 헤더(히어로코드, DC 작업 코드)를 포함.
4검증 프리뷰 — 파싱 후 총 N행 / 매칭 M행 / 스킵 K행 요약. 히어로코드 미존재(NOT_FOUND) 행은 사유와 함께 목록 표시. status=PREVIEWED.
5밀어넣기 실행 — [반영] 클릭 시 매칭된 행만 seller_product.dc_work_code를 UPDATE. dc_work_code_import/_row에 결과 적재. status=APPLIED, applied_on 기록. 늘품 VBA 관리 종료.
6MD-14 재고 연동 대비 확인 — DC 작업 코드가 채워진 상태 = 이지어드민 재고를 히어로코드 재고로 연결할 준비 완료. 이지어드민 API 코드 매핑 제공 여부는 MD-14 수요일 확인 항목.
04화면 설계
실제 어드민에 어떤 컬럼·화면으로 노출되나
공급사 상품관리 목록 — DC 작업 코드 컬럼 추가(변경)
신규 컬럼은 목록 우측에 1칸. 복제 관계인 두 히어로가 같은 DC-A0455를 공유(1:N). 비DC상품은 빈칸. 인라인 편집 가능
DC 작업 코드 일괄 등록 모달(신규)
[프리뷰]로 검증 후 [반영]. 매칭된 행만 UPDATE. 결과는 dc_work_code_import/_row에 적재. 늘품 VBA 대체