b48d3a505f
Deploy momo-erp / deploy (push) Successful in 50s
URL: https://momotogether.com/manual.html - 거래처(USER) 가이드: 회원가입 / 출고 요청 / 발주 이력 / 회원정보 수정 - 관리자(ADMIN) 가이드: 발주서 관리·출고처리·거래명세표·인라인 편집·세금계산서 발행 - 마스터 관리: 품목·거래처·매입처·창고·제조사 - 매입/입고: 매입 발주·입고·재고 - 통계: 대시보드·월간/일자별/원가마진 + 엑셀 다운로드 - 전체 업무 흐름도 - FAQ: 택배 라인 / 권한 / 메일 / STUB / 모바일 단일 HTML 파일 — 인쇄 가능, 모바일 대응, 외부 폰트 X Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
441 lines
25 KiB
HTML
441 lines
25 KiB
HTML
<!doctype html>
|
||
<html lang="ko">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>모모유통 ERP 사용자 매뉴얼</title>
|
||
<style>
|
||
:root{
|
||
--bg:#f8fafc; --card:#fff; --border:#e2e8f0; --muted:#64748b; --text:#0f172a;
|
||
--primary:#0f766e; --primary-light:#d1fae5; --accent:#1e293b;
|
||
--orange:#ea580c; --rose:#e11d48; --violet:#7c3aed; --sky:#0284c7; --amber:#d97706;
|
||
}
|
||
*{box-sizing:border-box}
|
||
html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 -apple-system,"Apple SD Gothic Neo","Pretendard",Segoe UI,sans-serif;}
|
||
a{color:var(--primary);text-decoration:none}
|
||
a:hover{text-decoration:underline}
|
||
code,pre{font-family:"SF Mono","JetBrains Mono",Consolas,monospace;font-size:13px}
|
||
code{background:#eef2f7;padding:1px 6px;border-radius:4px;color:#334155}
|
||
pre{background:#0f172a;color:#e2e8f0;padding:14px 16px;border-radius:8px;overflow-x:auto;line-height:1.55}
|
||
|
||
/* 레이아웃 */
|
||
.wrap{max-width:1100px;margin:0 auto;padding:32px 20px 80px}
|
||
header.cover{background:linear-gradient(135deg,#0d3b24,#1b5e3a 60%,#0f4a2a);color:#fff;border-radius:16px;padding:36px 32px;margin-bottom:32px;}
|
||
header.cover h1{margin:0 0 6px;font-size:32px;letter-spacing:-0.02em}
|
||
header.cover .sub{opacity:.9;font-size:14px}
|
||
header.cover .meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px;font-size:12px}
|
||
header.cover .meta b{font-weight:700}
|
||
header.cover .meta span{padding:6px 12px;border:1px solid rgba(255,255,255,0.2);border-radius:999px;background:rgba(255,255,255,0.08)}
|
||
|
||
/* TOC */
|
||
nav.toc{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px 24px;margin-bottom:28px}
|
||
nav.toc h3{margin:0 0 8px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
|
||
nav.toc ol{margin:0;padding-left:20px}
|
||
nav.toc li{margin:3px 0}
|
||
nav.toc ol ol{padding-left:18px;margin-top:2px}
|
||
|
||
section{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px 28px;margin-bottom:24px}
|
||
section h2{margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid var(--border);font-size:22px;letter-spacing:-0.01em;color:var(--accent)}
|
||
section h3{margin:24px 0 8px;font-size:16px;color:var(--accent)}
|
||
section h4{margin:18px 0 6px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
|
||
|
||
.lead{font-size:15px;color:#334155}
|
||
|
||
/* 카드 그리드 */
|
||
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:14px 0}
|
||
.grid > div{border:1px solid var(--border);border-radius:10px;padding:14px 16px;background:#fafafa}
|
||
.grid b{display:block;color:var(--primary);margin-bottom:4px;font-size:13px}
|
||
|
||
/* 단계 박스 */
|
||
.steps{counter-reset:step;margin:14px 0;padding-left:0;list-style:none}
|
||
.steps li{counter-increment:step;position:relative;padding:12px 16px 12px 50px;border:1px solid var(--border);border-radius:10px;margin:8px 0;background:#fafafa}
|
||
.steps li::before{content:counter(step);position:absolute;left:14px;top:50%;transform:translateY(-50%);background:var(--primary);color:#fff;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
|
||
.steps b{color:var(--accent)}
|
||
|
||
/* 표 */
|
||
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}
|
||
th,td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}
|
||
th{background:#f1f5f9;color:#475569;font-weight:700}
|
||
td code{font-size:12px}
|
||
|
||
/* 알림 박스 */
|
||
.note,.tip,.warn{border-left:4px solid;padding:10px 14px;border-radius:6px;margin:12px 0;font-size:13px}
|
||
.note{background:#eff6ff;border-color:#3b82f6}
|
||
.tip {background:#ecfdf5;border-color:#10b981}
|
||
.warn{background:#fff7ed;border-color:#ea580c}
|
||
|
||
/* 배지 */
|
||
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;vertical-align:middle}
|
||
.b-orange{background:#fed7aa;color:#9a3412}
|
||
.b-rose {background:#fecdd3;color:#9f1239}
|
||
.b-violet{background:#ddd6fe;color:#5b21b6}
|
||
.b-sky {background:#bae6fd;color:#075985}
|
||
.b-amber {background:#fde68a;color:#92400e}
|
||
.b-sage {background:#d1fae5;color:#065f46}
|
||
.b-slate {background:#e2e8f0;color:#475569}
|
||
|
||
/* mock 화면 (간이 도식) */
|
||
.mock{border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden;margin:14px 0;font-size:12px}
|
||
.mock .titlebar{background:#1e293b;color:#fff;padding:6px 12px;font-size:11px}
|
||
.mock .body{padding:14px}
|
||
.mock-row{display:flex;justify-content:space-between;border-bottom:1px solid #f1f5f9;padding:6px 0}
|
||
.mock-row:last-child{border-bottom:0}
|
||
|
||
/* role 칩 */
|
||
.role{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;margin-right:6px}
|
||
.r-user{background:#dbeafe;color:#1e40af}
|
||
.r-admin{background:#fed7aa;color:#9a3412}
|
||
|
||
hr{border:0;border-top:1px solid var(--border);margin:24px 0}
|
||
|
||
@media (max-width:640px){
|
||
section{padding:18px 16px}
|
||
header.cover{padding:24px 20px}
|
||
header.cover h1{font-size:24px}
|
||
}
|
||
@media print{
|
||
body{background:#fff}
|
||
section,header.cover,nav.toc{box-shadow:none;border:1px solid #ccc}
|
||
a{color:inherit;text-decoration:none}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
|
||
<header class="cover">
|
||
<h1>모모유통 ERP 사용자 매뉴얼</h1>
|
||
<div class="sub">유통관리 시스템 v0.6 · 발주 → 출고 → 정산 → 전자세금계산서까지</div>
|
||
<div class="meta">
|
||
<span><b>도메인</b> · momotogether.com</span>
|
||
<span><b>대상</b> · 거래처 · 모모유통 임직원 · 시스템 관리자</span>
|
||
<span><b>업데이트</b> · 2026-05-07</span>
|
||
</div>
|
||
</header>
|
||
|
||
<nav class="toc">
|
||
<h3>목차</h3>
|
||
<ol>
|
||
<li><a href="#intro">시스템 개요</a></li>
|
||
<li><a href="#login">로그인 · 회원가입</a></li>
|
||
<li><a href="#user">거래처(USER) 가이드</a>
|
||
<ol>
|
||
<li><a href="#user-order-new">출고 요청 — 품목 검색 · 카트 · 택배/용차</a></li>
|
||
<li><a href="#user-orders">내 발주 이력</a></li>
|
||
<li><a href="#user-profile">회원정보 수정</a></li>
|
||
</ol>
|
||
</li>
|
||
<li><a href="#admin">관리자(ADMIN) 가이드</a>
|
||
<ol>
|
||
<li><a href="#admin-orders">발주서 관리 · 출고처리 · 거래명세표</a></li>
|
||
<li><a href="#admin-payments">입금 관리</a></li>
|
||
<li><a href="#admin-invoices">계산서 발행</a></li>
|
||
<li><a href="#admin-einvoices">전자세금계산서</a></li>
|
||
<li><a href="#admin-master">마스터 관리 (품목 · 거래처 · 매입처 · 창고 · 제조사)</a></li>
|
||
<li><a href="#admin-purchase">매입/입고</a></li>
|
||
<li><a href="#admin-stats">통계 · 대시보드</a></li>
|
||
</ol>
|
||
</li>
|
||
<li><a href="#flow">전체 업무 흐름도</a></li>
|
||
<li><a href="#faq">자주 묻는 질문 / 문제 해결</a></li>
|
||
</ol>
|
||
</nav>
|
||
|
||
<!-- ========== 1. 개요 ========== -->
|
||
<section id="intro">
|
||
<h2>1. 시스템 개요</h2>
|
||
<p class="lead">
|
||
모모유통 ERP는 본사가 도매처에서 물품을 사들여 자체 창고에 적재하고,
|
||
가입된 소매 대리점(거래처)이 시스템에서 출고를 요청하면 담당자가 검수·승인하여 출고하는 유통관리 솔루션입니다.
|
||
</p>
|
||
<h3>주요 기능</h3>
|
||
<div class="grid">
|
||
<div><b>거래처 발주</b>품목 검색 → 카트 → 택배/용차 추가 → 발주 요청</div>
|
||
<div><b>출고 처리</b>담당자 일괄 승인 + 거래명세표 메일 자동 발송</div>
|
||
<div><b>입금 관리</b>입금 등록 → 미수금 추적</div>
|
||
<div><b>전자세금계산서</b>출고/입금 후 별도 발행 (국세청 직접 연동 대비 골격)</div>
|
||
<div><b>통계 / 그래프</b>일별·월별·업체별·원가/마진 분석 + 엑셀 다운로드</div>
|
||
<div><b>회원 권한</b>제한수량 해지 / 숨김품목 보기 등 거래처별 특수권한</div>
|
||
</div>
|
||
|
||
<h3>역할 구분</h3>
|
||
<table>
|
||
<tr><th width="30%">역할</th><th>설명</th></tr>
|
||
<tr><td><span class="role r-user">거래처 USER</span></td><td>가입한 소매 대리점. 발주만 가능.</td></tr>
|
||
<tr><td><span class="role r-admin">관리자 ADMIN</span></td><td>모모유통 임직원. 품목/창고/회원 마스터 관리 + 출고/입금 처리 + 통계.</td></tr>
|
||
</table>
|
||
</section>
|
||
|
||
<!-- ========== 2. 로그인 ========== -->
|
||
<section id="login">
|
||
<h2>2. 로그인 · 회원가입</h2>
|
||
<h3>로그인 (URL: <code>/login</code>)</h3>
|
||
<ol class="steps">
|
||
<li><b>아이디</b> 이메일 또는 사번 형태(관리자) 입력</li>
|
||
<li><b>비밀번호</b> 입력 후 [로그인]</li>
|
||
<li>성공 시 자동 이동 → <b>출고 요청</b> 화면(<code>/m/orders/new</code>)</li>
|
||
</ol>
|
||
<div class="tip"><b>모든 사용자</b>는 로그인 후 출고 요청 화면으로 이동합니다. 관리자는 좌측 메뉴에서 [출고/정산] 등으로 이동.</div>
|
||
|
||
<h3>회원가입 (URL: <code>/signup</code>)</h3>
|
||
<p>거래처 회원가입 전용. 모모유통 직원은 가입 X, 관리자가 직접 등록.</p>
|
||
<table>
|
||
<tr><th>필드</th><th>필수</th><th>설명</th></tr>
|
||
<tr><td>이메일</td><td>Y</td><td>로그인 ID로 사용</td></tr>
|
||
<tr><td>비밀번호</td><td>Y</td><td>8자 이상</td></tr>
|
||
<tr><td>업체명</td><td>Y</td><td>거래명세표에 표시</td></tr>
|
||
<tr><td>대표자</td><td>N</td><td></td></tr>
|
||
<tr><td>연락처</td><td>Y</td><td>휴대폰</td></tr>
|
||
<tr><td>주소</td><td>Y</td><td>배송지</td></tr>
|
||
<tr><td>사업자등록번호</td><td>N</td><td>전자세금계산서 발행 시 필수</td></tr>
|
||
</table>
|
||
<div class="warn"><b>비밀번호 분실 시</b> 관리자가 [마스터 관리 → 거래처 회원 관리]에서 초기화하거나 신규 비번 발급. 본인은 [회원정보 수정] 화면에서 변경 가능.</div>
|
||
</section>
|
||
|
||
<!-- ========== 3. 거래처 가이드 ========== -->
|
||
<section id="user">
|
||
<h2>3. 거래처(USER) 가이드</h2>
|
||
|
||
<h3 id="user-order-new">3.1 출고 요청 (URL: <code>/m/orders/new</code>)</h3>
|
||
<p>로그인 직후 자동으로 이 화면이 열립니다. 품목 카드를 카트에 담고 [발주 요청] 버튼으로 전송합니다.</p>
|
||
|
||
<h4>화면 구성</h4>
|
||
<div class="mock">
|
||
<div class="titlebar">/m/orders/new</div>
|
||
<div class="body">
|
||
<div class="mock-row"><span>🛒 발주 장바구니 [N개]</span><span>면세 ₩ — | 과세 ₩ — | 합계 ₩ — [발주 요청]</span></div>
|
||
<div class="mock-row"><span>+ 택배 추가 / + 용차 추가</span><span>전체 삭제</span></div>
|
||
<div class="mock-row"><span>품목 검색: <code>[품목명/코드]</code> 전체/면세/과세</span><span>[조회]</span></div>
|
||
<div class="mock-row"><span>품목 카드 그리드 (이미지 · 단가 · 재고)</span><span>+ 담기</span></div>
|
||
</div>
|
||
</div>
|
||
|
||
<h4>사용 단계</h4>
|
||
<ol class="steps">
|
||
<li><b>품목 검색</b>품목명/코드 입력 후 [조회]. 면세/과세 필터 가능.</li>
|
||
<li><b>+ 담기 버튼</b>품목 카드의 [+ 담기] 클릭 → 카트에 1개 추가. 같은 품목 다시 누르면 수량 +1.</li>
|
||
<li><b>수량 조정</b>카트의 [−] / [+] 또는 숫자 직접 입력. 재고/한도(<code>max_order_qty</code>) 자동 클램프.</li>
|
||
<li><b>택배/용차 추가</b>택배 전용 품목을 담으면 자동으로 택배 라인 1줄 추가. 수동 추가는 카트의 [+ 택배 추가] / [+ 용차 추가].</li>
|
||
<li><b>택배/용차 단가 · 수량</b>기본 단가는 택배 4,000원 / 용차 5,000원. 직접 수정 가능. 같은 종류 버튼 다시 누르면 수량 +1.</li>
|
||
<li><b>[발주 요청] 클릭</b>합계 + 품목수 확인 모달 → [발주]. 성공 시 발주번호(<code>ORD-YYYYMMDD-NNNN</code>) 부여.</li>
|
||
</ol>
|
||
|
||
<h4>품목 카드 배지</h4>
|
||
<table>
|
||
<tr><th>배지</th><th>의미</th></tr>
|
||
<tr><td><span class="badge b-violet">면세</span></td><td>부가세 면제 품목</td></tr>
|
||
<tr><td><span class="badge b-orange">택배</span></td><td>택배 전용 — 카트에 담으면 택배 라인 자동 추가</td></tr>
|
||
<tr><td>"1회 한도 ≤ N"</td><td>1회 발주 최대 수량 제한 (관리자 권한 부여 시 무시)</td></tr>
|
||
</table>
|
||
|
||
<h3 id="user-orders">3.2 내 발주 이력 (URL: <code>/m/orders</code>)</h3>
|
||
<ul>
|
||
<li>전체 발주 이력을 상태별로 조회</li>
|
||
<li>출고완료(APPROVED)/입금완료(PAID)/계산서발행(INVOICED) 건은 거래명세표 엑셀 다운로드 가능</li>
|
||
<li>[엑셀] 버튼으로 전체 이력을 .xlsx 로 내려받기</li>
|
||
</ul>
|
||
<table>
|
||
<tr><th>상태</th><th>의미</th></tr>
|
||
<tr><td><span class="badge b-amber">출고요청</span></td><td>거래처가 발주 요청, 담당자 처리 대기</td></tr>
|
||
<tr><td><span class="badge b-sky">출고완료</span></td><td>담당자 승인 후 재고 차감 + 거래명세표 메일 발송됨</td></tr>
|
||
<tr><td><span class="badge b-sage">입금완료</span></td><td>대금 입금 등록 완료</td></tr>
|
||
<tr><td><span class="badge b-violet">계산서발행</span></td><td>전자세금계산서 발행 완료</td></tr>
|
||
<tr><td><span class="badge b-slate">취소</span></td><td>담당자 반려 또는 본인 취소</td></tr>
|
||
</table>
|
||
|
||
<h3 id="user-profile">3.3 회원정보 수정 (URL: <code>/profile</code>)</h3>
|
||
<p>헤더 우측의 자기 이름을 클릭하면 진입.</p>
|
||
<ul>
|
||
<li><b>기본 정보</b> 업체명·대표자·연락처·이메일·주소·사업자번호 수정</li>
|
||
<li><b>비밀번호 변경</b> 현재 비번 확인 후 새 비번 (4자 이상) 입력</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<!-- ========== 4. 관리자 가이드 ========== -->
|
||
<section id="admin">
|
||
<h2>4. 관리자(ADMIN) 가이드</h2>
|
||
|
||
<h3 id="admin-orders">4.1 발주서 관리 · 출고처리 · 거래명세표 (URL: <code>/m/admin/orders</code>)</h3>
|
||
<p class="lead">좌측 발주 리스트에서 선택하면 우측에 거래명세표 미리보기가 표시됩니다. 체크박스 다중 선택 후 [출고]를 누르면 일괄 처리됩니다.</p>
|
||
|
||
<h4>화면 구성 (2분할)</h4>
|
||
<div class="mock">
|
||
<div class="titlebar">/m/admin/orders — 좌:발주 리스트 | 우:거래명세표 미리보기</div>
|
||
<div class="body">
|
||
<div class="mock-row"><b>좌측</b><span>상태 필터 · 체크박스 · ORDER-YYYYMMDD-NNNN · 일자 · 업체 · 합계 · 상태</span></div>
|
||
<div class="mock-row"><b>우측</b><span>거래명세표 [엑셀 다운로드] · + 택배/용차 추가 · 라인 인라인 편집 · 합계</span></div>
|
||
</div>
|
||
</div>
|
||
|
||
<h4>출고 처리 단계</h4>
|
||
<ol class="steps">
|
||
<li><b>발주 선택</b>좌측 리스트에서 출고요청 상태 발주를 체크박스로 선택 (전체선택 헤더 체크박스 가능)</li>
|
||
<li><b>[출고] 버튼</b>상단 녹색 [출고] 클릭 → 확인 모달 → 일괄 승인</li>
|
||
<li><b>자동 처리</b>① 재고 차감 ② 거래명세표 .xlsx 자동 생성 ③ 거래처 이메일로 거래명세표 본문 + 첨부파일 발송 ④ 상태 → APPROVED</li>
|
||
<li><b>결과 알림</b>성공/실패 건수 + 메일 발송 실패 건수가 모달로 표시</li>
|
||
</ol>
|
||
|
||
<h4>거래명세표 인라인 편집 (REQUESTED 상태에서만)</h4>
|
||
<ul>
|
||
<li><b>[+ 택배 추가]</b> / <b>[+ 용차 추가]</b> — 같은 종류가 이미 있으면 수량 +1, 없으면 신규 1줄 (단가 4,000/5,000 기본)</li>
|
||
<li>택배/용차 행은 인라인 입력칸 — <b>담당자명·단가·수량</b> 즉시 수정, ✓ 클릭 → 저장 / × 클릭 → 삭제</li>
|
||
<li>품목(ITEM) 라인은 보호되어 이 화면에서 수정 불가</li>
|
||
<li>택배/용차 라인이 품목보다 위쪽에 표시 (관행)</li>
|
||
<li>변경 시 발주 합계(<code>total_supply/vat/amount/delivery/charter</code>)는 백엔드에서 자동 재집계</li>
|
||
</ul>
|
||
|
||
<h4>출고/입금 완료 후</h4>
|
||
<p>거래명세표 하단에 [세금계산서 발행 (과세)] / [계산서(면세)] 버튼이 노출. 클릭 시 <code>/api/m/einvoices/issue</code> 호출 → 발행 결과 모달 (승인번호/처리방식).</p>
|
||
|
||
<div class="warn"><b>현재 stub 모드</b> — 발행은 DB 기록만 수행, 국세청에 실제 전송 X. 사업자 공동인증서 + 홈택스 ERP 연계 승인 후 <code>NTS_ESERO_MODE=test|prod</code> 환경변수 전환 시 활성화.</div>
|
||
|
||
<h3 id="admin-payments">4.2 입금 관리 (URL: <code>/m/admin/payments</code>)</h3>
|
||
<ul>
|
||
<li>출고 완료된 발주의 입금 등록</li>
|
||
<li>입금일 / 입금액 입력 → 상태 PAID 로 전환, <code>paid_amount/paid_date</code> 갱신</li>
|
||
</ul>
|
||
|
||
<h3 id="admin-invoices">4.3 계산서 발행 (URL: <code>/m/admin/invoices</code>)</h3>
|
||
<ul>
|
||
<li>월말 일괄 거래명세서/계산서 발행 (자체 PDF/엑셀)</li>
|
||
<li>국세청 전송 X — 사업자가 홈택스에서 직접 신고하는 형태</li>
|
||
</ul>
|
||
|
||
<h3 id="admin-einvoices">4.4 전자세금계산서 (URL: <code>/m/admin/einvoices</code>)</h3>
|
||
<p class="lead">출고/입금 완료된 발주에 대해 별도로 전자(세금)계산서를 발행하고 이력을 관리하는 전용 메뉴.</p>
|
||
<h4>화면 구성</h4>
|
||
<ol class="steps">
|
||
<li><b>발행 가능 발주 리스트</b>출고완료/입금완료 상태 발주가 표시됨. 한 줄당 [세금계산서] 버튼.</li>
|
||
<li><b>발행 클릭</b>확인 모달 → <code>/api/m/einvoices/issue</code> 호출 → 결과 모달 (승인번호/처리방식)</li>
|
||
<li><b>발행 이력</b>날짜 범위·상태·거래처별 필터, [엑셀] 다운로드</li>
|
||
</ol>
|
||
<h4>발행 어댑터 (env: <code>EINVOICE_PROVIDER</code>)</h4>
|
||
<table>
|
||
<tr><th>값</th><th>동작</th><th>비용</th></tr>
|
||
<tr><td><code>manual</code> (기본)</td><td>자체 거래명세서, DB 기록만</td><td>0원</td></tr>
|
||
<tr><td><code>nts</code></td><td>국세청 e-세로 직접 연동 (XMLDSig + SOAP)</td><td>인증서 연 4~5만원</td></tr>
|
||
<tr><td><code>popbill</code></td><td>(향후) Popbill REST API</td><td>건당 100~150원</td></tr>
|
||
</table>
|
||
<h4>상태 머신</h4>
|
||
<p><code>DRAFT → QUEUED → SENT → ACK | FAIL | CANCELED</code></p>
|
||
|
||
<h3 id="admin-master">4.5 마스터 관리</h3>
|
||
|
||
<h4>① 품목 관리 (<code>/m/admin/items</code>)</h4>
|
||
<ul>
|
||
<li>등록 / 수정 / 이미지 업로드 / 삭제(soft)</li>
|
||
<li>주요 필드:
|
||
<ul>
|
||
<li><b>면세/과세</b> — 라디오. 면세 품목은 부가세 0.</li>
|
||
<li><b>발주 제한수량</b> (<code>max_order_qty</code>) — 1회 발주 최대 수량. 공란/0 = 제한 없음.</li>
|
||
<li><b>숨김 처리</b> (<code>is_hidden</code>) — '숨김' 선택 시 일반 회원에게는 카드가 안 보임. 권한자만 노출.</li>
|
||
<li><b>택배 전용</b> (<code>requires_delivery</code>) — '택배전용' 선택 시 카트에 담기면 택배 라인 자동 추가, 발주 시 택배 없으면 차단.</li>
|
||
<li><b>제조관리</b> — 소비기한·원산지·입고가·보관온도·바코드·메모 (JSONB attributes).</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>② 거래처 회원 관리 (<code>/m/admin/customers</code>)</h4>
|
||
<ul>
|
||
<li>거래처(<code>user_type='C'</code>) 회원 목록 + 정보/권한 수정</li>
|
||
<li><b>특수 권한 토글</b> 두 가지:
|
||
<ul>
|
||
<li><b>제한수량 해지</b> (<code>unlimited_qty='Y'</code>) — 모든 품목의 1회 발주 한도를 무시하고 재고만큼 발주 가능</li>
|
||
<li><b>숨김처리 보기</b> (<code>view_hidden='Y'</code>) — 숨김 품목도 발주 화면에 노출</li>
|
||
</ul>
|
||
</li>
|
||
<li>관리자 패널(<code>/admin-panel</code>)의 사용자 폼에서도 같은 권한 수정 가능</li>
|
||
</ul>
|
||
|
||
<h4>③ 매입처 / ④ 창고 / ⑤ 제조사</h4>
|
||
<table>
|
||
<tr><th>메뉴</th><th>경로</th><th>역할</th></tr>
|
||
<tr><td>매입처 관리</td><td><code>/m/admin/vendors</code></td><td>매입 발주처 등록 (도매처)</td></tr>
|
||
<tr><td>창고 관리</td><td><code>/m/admin/warehouses</code></td><td>적재 창고 + 픽업/입출고 분류</td></tr>
|
||
<tr><td>제조사 관리</td><td><code>/m/admin/makers</code></td><td>품목 제조사 마스터</td></tr>
|
||
</table>
|
||
|
||
<h3 id="admin-purchase">4.6 매입/입고</h3>
|
||
<table>
|
||
<tr><th>메뉴</th><th>경로</th><th>역할</th></tr>
|
||
<tr><td>매입 발주</td><td><code>/m/admin/procurements</code></td><td>매입처에 보낼 발주서 작성</td></tr>
|
||
<tr><td>입고 처리</td><td><code>/m/admin/inbounds</code></td><td>발주한 품목 입고 등록 → 재고 증가</td></tr>
|
||
<tr><td>재고 관리</td><td><code>/m/admin/inventory</code></td><td>현재 재고 + 입출고 이력</td></tr>
|
||
</table>
|
||
|
||
<h3 id="admin-stats">4.7 통계 · 대시보드</h3>
|
||
<table>
|
||
<tr><th>메뉴</th><th>경로</th><th>설명</th></tr>
|
||
<tr><td>대시보드</td><td><code>/m/dashboard</code></td><td>전체 요약</td></tr>
|
||
<tr><td>월간 매출</td><td><code>/m/admin/statistics</code></td><td>업체별 면세/과세/총 매출 (TOP15 막대그래프) + 엑셀</td></tr>
|
||
<tr><td>일자별 매출</td><td><code>/m/admin/statistics/daily</code></td><td>일별 매출 추이 (스택 막대 + 건수 라인) + 엑셀</td></tr>
|
||
<tr><td>원가/마진</td><td><code>/m/admin/statistics/margin</code></td><td>품목별 매출/원가/마진 TOP10 + 마진율 + 엑셀</td></tr>
|
||
</table>
|
||
<p>모든 통계 화면 우상단의 [엑셀 다운로드] 버튼으로 .xlsx 파일을 받을 수 있습니다.</p>
|
||
</section>
|
||
|
||
<!-- ========== 5. 흐름도 ========== -->
|
||
<section id="flow">
|
||
<h2>5. 전체 업무 흐름도</h2>
|
||
<pre>
|
||
[거래처 USER] [관리자 ADMIN]
|
||
│ │
|
||
① 출고 요청 작성 ─────────────► 발주서 관리 (/m/admin/orders)
|
||
(품목+택배/용차) │ 체크 + [출고] 버튼
|
||
▼
|
||
② 재고 차감
|
||
③ 거래명세표 메일 발송 (status = APPROVED)
|
||
│
|
||
④ 입금 ──────────────────────► 입금 관리 (/m/admin/payments)
|
||
│ 입금 등록
|
||
▼ (status = PAID)
|
||
│
|
||
⑤ 거래명세표 / 세금계산서 ◄──── 전자세금계산서 (/m/admin/einvoices)
|
||
│ [세금계산서 발행] 클릭
|
||
▼ (status = INVOICED)
|
||
⑥ 통계 / 매출 / 원가 마진 분석
|
||
(/m/admin/statistics/*)
|
||
</pre>
|
||
</section>
|
||
|
||
<!-- ========== 6. FAQ ========== -->
|
||
<section id="faq">
|
||
<h2>6. 자주 묻는 질문 / 문제 해결</h2>
|
||
|
||
<h3>Q. 발주 요청 시 "택배 전용 품목이 포함되어 택배 라인이 필요합니다" 메시지</h3>
|
||
<p>A. 카트에 <span class="badge b-orange">택배</span> 배지 품목이 들어 있으면 반드시 택배 라인이 1줄 이상 있어야 합니다. 자동 추가되어야 정상이지만 안 되면 [+ 택배 추가] 수동 클릭.</p>
|
||
|
||
<h3>Q. 1회 발주 한도가 너무 작아서 더 못 담아요</h3>
|
||
<p>A. 품목별 <code>max_order_qty</code> 제한입니다. 관리자가 [거래처 회원 관리]에서 해당 회원에게 <b>제한수량 해지</b> 권한을 부여하면 무시됩니다.</p>
|
||
|
||
<h3>Q. 숨김 품목을 보고 싶어요</h3>
|
||
<p>A. 일반 회원에게는 노출되지 않습니다. 관리자가 [거래처 회원 관리]에서 <b>숨김처리 보기</b> 권한을 부여하면 카드가 보입니다.</p>
|
||
|
||
<h3>Q. 출고 처리 후 거래명세표 메일이 안 갔어요</h3>
|
||
<p>A. 출고 모달의 결과창에 "메일 N건 실패" 표시가 있습니다. 거래처 이메일 주소를 [거래처 회원 관리]에서 확인하고 SMTP 환경변수를 점검합니다 (<code>SMTP_HOST/PORT/USER/PASS/FROM</code>).</p>
|
||
|
||
<h3>Q. 전자세금계산서 발행 시 "STUB-OK" 가 떠요</h3>
|
||
<p>A. 현재 <code>NTS_ESERO_MODE=stub</code> 입니다. 국세청에 실제 전송하지 않고 DB 기록만 합니다. 운영 활성화 절차:</p>
|
||
<ol>
|
||
<li>사업자용 공동인증서 발급 (한국정보인증/SignKorea, 연 4~5만원)</li>
|
||
<li>홈택스 → 전자세금계산서 ERP 연계 신청 → 테스트 ID/PW 승인</li>
|
||
<li><code>.env.production</code> 에 <code>NTS_ESERO_MODE=test</code>, <code>NTS_ESERO_USER_ID/PW</code>, <code>NTS_ESERO_CERT_PATH/PW</code> 설정</li>
|
||
<li>테스트 환경에서 100건 모범 발행 검증 → <code>NTS_ESERO_MODE=prod</code> 전환</li>
|
||
</ol>
|
||
|
||
<h3>Q. 비밀번호를 까먹었어요</h3>
|
||
<p>A. 관리자가 [관리자 패널 → 사용자 관리]에서 신규 비밀번호로 초기화. 시스템 관리자(<code>admin</code>)도 같은 방법.</p>
|
||
|
||
<h3>Q. 모바일에서 화면이 잘 안 맞아요</h3>
|
||
<p>A. 발주 작성·통계·관리자 화면 모두 반응형으로 설계되어 있습니다 (375px ~). 헤더는 사용자명 + 로그아웃만 노출. 좌측 메뉴는 햄버거 토글로 접기/펴기.</p>
|
||
|
||
<hr/>
|
||
<p style="text-align:right;font-size:11px;color:#94a3b8;margin:0">
|
||
문서 버전: v0.6 — 2026-05-07 · 모모유통 ERP
|
||
</p>
|
||
</section>
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|