SKU별 재고·발주 수량
현재고와 예약·예상수요를 비교해 SKU·옵션·창고별 부족 수량을 찾습니다. 포장입수와 최소발주수량을 반영한 발주 제안, 예상 기말재고, 전체·분류별 CSV 저장을 지원합니다.
입력할 값
- 간단한 목록은 헤더 없이 SKU,현재고,예약·미출고,추가 예상수요,확정 입고,안전재고 순서의 6열로 넣습니다. 자동 구분은 한 줄이 탭으로 6칸이면 탭 입력으로 먼저 읽습니다. SKU 안에 탭이나 따옴표가 있어 모호하면 직접 입력 구분자를 쉼표 또는 탭으로 고르세요. 빈 줄은 건너뛴 기록에 남깁니다.
- CSV는 첫 줄에 서로 다른 열 이름을 넣습니다. 품목을 구분할 SKU·옵션·창고 등 1~3개 열과 현재고 열을 직접 연결하세요. 연결하지 않은 원문 열도 보존합니다.
- TXT·CSV 파일은 기본으로 UTF-8로 읽습니다. 글자가 깨지면 「파일 읽는 방식」에서 한국어 Windows(EUC-KR·CP949), UTF-16LE, UTF-16BE 중 파일에 맞는 방식을 선택하세요. 다시 읽은 미리보기에서 글자와 열 이름을 확인하고 반영해야 현재 목록이 바뀝니다. 붙여 넣은 글이나 이미 반영한 목록은 읽는 방식만 바꿔도 달라지지 않습니다.
- 현재고는 예약 수량을 아직 빼지 않은 실제 출고 가능한 재고입니다. 불량·폐기 등 출고할 수 없는 물량은 입력 전에 제외하세요. 이미 예약을 뺀 가용재고를 현재고에 넣으면 예약이 두 번 차감됩니다.
- 예약·미출고는 이미 잡힌 주문, 추가 예상수요는 그 주문에 아직 포함되지 않은 앞으로의 수요입니다. 확정 입고는 같은 계획기간 안에 도착해 해당 수요에 쓸 수 있는 물량만 넣고, 안전재고는 수요를 채운 뒤 남겨 둘 목표 수량으로 정합니다.
- CSV에서 예약·추가 예상수요·입고·안전재고 열을 연결하지 않으면 각각 0으로 계산합니다. 연결한 열의 빈칸은 0으로 바꾸지 않으므로 실제 0이면 숫자 0을 입력하세요.
- 포장입수는 한 묶음에 든 개수, 최소발주수량(MOQ)은 품목별로 한 번에 주문해야 하는 최소 개수입니다. 기본값은 입수 1·최소수량 0이며 품목별 열을 연결하면 그 행의 값으로 계산합니다. 수량 단위는 현재고와 같게 맞추세요.
- 비교 기준은 원문 그대로입니다. 필요한 경우에만 앞뒤 공백 무시를 켜세요. 같은 SKU·옵션·창고 조합이 중복되면 관련 행을 모두 확인한 뒤 다시 계산합니다.
- 결과에서 전체·부족·추가 발주 불필요 중 필요한 품목을 보고, 저장 범위를 전체 또는 현재 분류로 고릅니다. 화면은 최대 50행을 보여 주지만 선택한 범위의 모든 행을 저장합니다.
엑셀 파일 사용하기
재고표에서 필요한 시트와 품목 범위를 골라 부족 수량과 발주 수량을 계산할 수 있습니다. 「엑셀 파일 열기 (.xlsx)」에서 5 MiB 이하의 파일을 선택하세요. 파일은 이 브라우저에서 처리하며 서버로 보내지 않습니다. XLS·XLSM 파일과 암호로 잠긴 파일은 지원하지 않습니다.
- 가져올 시트를 고르고 열 이름이 있는 행, 마지막 행, 시작 열과 마지막 열을 확인합니다. 위쪽 안내문·제목, 아래쪽 합계와 옆쪽 주석은 필요한 표 범위에서 빼세요. 예를 들어 열 이름이 3행이면 4행부터 선택한 마지막 행까지 가져옵니다.
- 비어 있거나 같은 열 이름은 검토 화면에서 고칠 수 있습니다. 선택할 데이터는 열 이름 행을 제외하고 최대 10,000행·50열입니다. 선택한 표를 CSV로 옮겼을 때의 크기도 UTF-8 기준 5 MiB 이하여야 하며, 넘는 범위를 자동으로 잘라 가져오지 않습니다.
- 열마다 저장된 값과 엑셀에 보이는 값의 예시를 비교하고 가져올 기준을 고릅니다. 화면에는 처음 20개 데이터 행을 보여 주지만 오류는 선택 범위 전체에서 확인합니다. 내용이 잘려 보이는 셀을 누르면 전체 내용을 확인할 수 있습니다.
- 수식 셀이 있으면 파일에 저장된 계산 결과를 사용한다는 안내를 확인해야 적용할 수 있습니다. 도구가 수식을 다시 계산하지 않으므로 최신 값인지 원본에서 확인하세요. 저장된 결과가 없거나 오류 값인 셀이 있으면 적용하지 않습니다. 엑셀에서 다시 계산해 저장하거나 값만 담은 표로 준비하세요.
- 미리보기를 확인한 뒤 「표에 적용」을 누릅니다. 확인한 셀 값이 CSV 표 입력으로 옮겨지며 적용 전에는 현재 목록을 바꾸지 않습니다. SKU·현재고와 필요한 예약·수요·입고 열을 연결하세요. 기존 포장입수·최소발주수량·공백 비교 조건은 유지되므로 값을 확인한 뒤 다시 계산하세요. 취소하면 현재 목록과 결과는 유지됩니다.
기본은 문자를 그대로, 숫자는 저장된 값으로 가져옵니다. 텍스트로 저장된 상품코드 00123은 그대로 유지합니다. 숫자 123을 서식으로 00123처럼 보이게 한 열은 「엑셀에 보이는 값」을 선택해야 앞자리 0이 포함됩니다. 금액이 소수 둘째 자리까지만 보이더라도 저장된 값에는 더 많은 자릿수가 있을 수 있으므로 금액·수량 열의 예시를 함께 확인하세요. 15자리를 넘는 숫자 코드는 원본 엑셀에서 이미 반올림되었을 수 있어 사라진 자릿수를 복원할 수 없습니다.
날짜는 기본으로 통합 문서의 날짜 기준에 따라 2026-10-14 같은 연-월-일 형식으로 가져오며, 저장된 시각이 있으면 함께 표시합니다. 날짜를 숫자로 비교하려면 「저장된 값 · 날짜는 숫자」를, 화면 표기가 필요하면 「엑셀에 보이는 값」을 고르고 예시를 확인하세요. 선택 범위의 숨긴 행·열도 포함됩니다. 병합된 셀이 겹치면 원본에서 병합을 풀거나 해당 부분을 범위에서 제외해야 합니다.
재고 수량은 정수여야 합니다. 저장된 숫자에 소수가 있거나 표시값에 단위가 붙어 있으면 계산할 수 없습니다. 표 안의 빈 행도 가져오므로 불필요한 행은 원본에서 정리하세요. 같은 SKU·옵션·창고가 중복되면 자동으로 합치지 않고 원래 엑셀 행을 확인할 수 있게 표시합니다.
가져온 텍스트의 상품코드·따옴표·셀 안 줄바꿈은 셀 값으로 유지합니다. 결과 JSON과 계산 오류 JSON에는 선택한 기준으로 가져온 셀 값과 파일명·시트명·선택 범위, 가져온 행이 원래 엑셀의 몇 행인지에 대한 대응이 담깁니다. JSON은 원본 엑셀의 서식·수식·파일 전체를 복원하는 파일이 아니므로 원본 XLSX도 따로 보관하세요. 입력창을 직접 고치거나 다른 자료로 바꾸면 원래 시트·행 번호와의 대응은 유지되지 않습니다. 표 복사와 안전 CSV의 처리는 아래 결과 안내를 따릅니다.
파일이 5 MiB 이하여도 압축을 푼 내용이나 셀 수가 읽기 한도를 넘으면 가져오지 못할 수 있습니다. 필요한 표만 별도 XLSX로 저장해 다시 선택하세요.
계산 방법
현재 가용재고는 현재고−예약·미출고입니다. 여기에 확정 입고를 더한 수량과 추가 예상수요+안전재고를 비교해 부족 수량을 구하며, 부족하지 않으면 0입니다. 부족량이 0이면 최소발주수량을 설정해도 발주 제안은 0입니다. 부족하면 부족량과 최소발주수량 중 큰 값을 포장입수의 배수로 올립니다. 예상 기말재고는 현재고+확정 입고−예약·미출고+발주 제안−추가 예상수요이고, 여기에서 안전재고를 뺀 값이 안전재고보다 더 남는 수량입니다. 수량은 정수로 계산하며 품목별 부족량을 먼저 구한 뒤 합산합니다.
계산 예시
SKU 00123의 현재고 20개, 예약 8개, 추가 예상수요 18개, 확정 입고 5개, 안전재고 4개를 입력합니다. 현재 가용재고는 12개, 입고를 더하면 17개이고 필요한 수량은 22개라 5개가 부족합니다. 포장입수 6개·최소발주수량 10개라면 6개의 배수인 12개, 즉 2묶음을 제안합니다. 그 수량을 기간 안에 받아 수요를 채우면 기말재고는 11개이고 안전재고 4개보다 7개 더 남습니다. 7개는 기말재고 전체가 아닙니다. 다른 품목이 현재고 10개·추가 수요 6개·안전재고 2개라면 부족량과 발주 제안은 모두 0개이며, 최소발주수량을 10개로 넣어도 불필요한 발주를 만들지 않습니다.
결과 읽기
부족 수량은 현재 계획을 채우는 데 모자란 개수이고, 발주 제안은 포장입수와 최소발주수량까지 반영한 개수입니다. 현재 가용재고나 입고 후 가용 수량이 음수라면 예약 물량을 감당하지 못하는 상태이므로 먼저 확인하세요. 음수를 0으로 바꾸면 그 부족분을 놓칠 수 있어 그대로 표시합니다. 추가 발주 불필요는 입력한 기간 전체의 수량이 충분하다는 뜻이며 입고 전에 품절되지 않는다는 뜻은 아닙니다. 발주 제안 물량을 필요한 시점 안에 받을 수 있는지, 납기와 자금 여력을 확인한 뒤 실제 주문 수량을 정하세요.
적용 범위
파일 원본과 읽은 내용을 UTF-8로 표현한 크기는 각각 최대 5 MiB입니다. 붙여넣기도 UTF-8 기준 5 MiB까지입니다. 최대 10,000행·50열을 처리합니다. CSV는 헤더를 제외한 데이터 행, 직접 입력은 건너뛴 빈 줄까지 포함해 행 수를 셉니다. 각 입력 수량은 0~10억의 정수이고 포장입수는 1~10억, 최소발주수량은 0~10억입니다. 계산 결과는 입력 상한보다 커질 수 있습니다. SKU·옵션·창고 각 값과 품목명은 1,000자 이하여야 합니다. 숫자 셀의 올바른 천 단위 쉼표는 허용하지만 쉼표로 열을 나누는 입력에서는 해당 셀을 큰따옴표로 감싸거나 탭 구분을 사용하세요. 쉼표 입력의 셀 안 줄바꿈은 큰따옴표로 감쌀 수 있습니다. 탭 입력은 한 줄에 6칸이며 따옴표를 셀 감싸기 규칙으로 해석하지 않습니다. 음수·소수·지수 표기는 입력할 수 없습니다. 적어도 한 품목이 필요하며, 오류가 있는 목록은 일부 행만 합산한 결과를 보여 주지 않습니다. 목록에 없는 품목, 서로 다른 두 파일의 연결, 입고일별 품절 시점, 취소·반품·불량 수량은 자동 추정하지 않습니다. 거래처 최소주문금액이나 여러 SKU를 섞은 발주 조건도 계산하지 않습니다. 입력과 파일은 브라우저 안에서 처리하며 저장하거나 서버에 보내지 않습니다. 결과 파일은 UTF-8로 저장하며 원본 파일의 바이트를 그대로 복제하지는 않습니다. 파일의 문자 형식을 자동으로 추측하지 않습니다.
자주 묻는 질문
현재고와 가용재고 중 무엇을 넣나요?
예약 주문을 빼기 전의 실제 재고를 넣습니다. 불량·폐기처럼 출고할 수 없는 물량은 먼저 제외하되, 따로 남겨 둔 안전재고는 현재고에 포함하고 목표 안전재고도 입력합니다. 판매처마다 현재고·가용재고·판매 불가 재고의 정의가 다르므로 내보낸 열의 의미를 확인하세요. 이미 예약이나 안전재고를 뺀 수량을 그대로 넣으면 같은 물량을 다시 차감하거나 확보하게 됩니다.
예약 수량과 추가 예상수요, 입고는 어느 기간을 기준으로 하나요?
이번 발주로 대비할 기간을 먼저 정합니다. 그 기간에 처리할 예약·미출고 물량과 아직 주문으로 잡히지 않은 추가 수요를 구분하고, 기간 안에 도착해 수요에 쓸 수 있는 확정 입고만 넣으세요. 같은 주문을 예약과 추가 수요에 동시에 넣지 마세요. 날짜별 흐름을 계산하는 도구가 아니므로 기간 중간에 생길 품절은 별도로 확인해야 합니다.
부족량이 0인데 MOQ가 있으면 최소수량만큼 주문하나요?
아니요. 부족량이 0이면 발주 제안도 0입니다. 부족할 때에만 부족량과 최소발주수량 중 큰 수량을 포장입수 배수로 올립니다. 예를 들어 부족 5개·최소수량 10개·입수 6개라면 12개입니다. MOQ가 없으면 0, 낱개 주문이면 입수 1을 쓰세요.
SKU가 같은 행은 자동으로 더해 주나요?
재고표의 중복 행은 같은 재고를 두 번 적은 것일 수 있어 합치지 않습니다. 옵션이나 창고가 다른 재고라면 그 열도 품목 구분에 연결하세요. 같은 조합이 반복되면 관련 원문 행을 모두 오류로 표시합니다. 앞뒤 공백 무시로 같아진 조합도 같습니다. 주문 목록의 수량을 더하려면 별도의 SKU 수량 합계 도구를 사용하세요.
CSV에서 선택하지 않은 열과 연결한 열의 빈칸은 어떻게 되나요?
예약·추가 수요·입고·안전재고 열을 연결하지 않으면 해당 항목을 0으로 사용합니다. 연결한 열에 빈칸이 있으면 입력 오류입니다. 포장입수·최소발주수량을 연결하지 않으면 공통 설정을 사용하고, 연결하면 행별 값이 우선합니다. 품목 구분과 현재고는 반드시 연결하며 같은 열을 다른 역할에 중복 연결할 수 없습니다.
가용재고가 음수이거나 기말재고가 많이 남는 것은 무엇을 뜻하나요?
음수 가용재고는 예약 수량이 현재 재고보다 많다는 뜻입니다. 입고를 더해도 음수이면 확정 입고까지 받아도 예약을 모두 충족하지 못합니다. 발주 후 예상 기말재고는 수요를 채운 뒤 남는 전체 수량이며, 안전재고 초과분은 거기에서 목표 안전재고를 뺀 여유분입니다. 예시의 기말 11개와 안전재고 초과 7개를 구분해서 보세요.
CSV·JSON에는 원문과 화면에 보이지 않는 행도 들어가나요?
선택한 저장 범위에 해당하는 모든 행과 원문 열을 담으며 미리보기 50행으로 제한하지 않습니다. 전체 범위 JSON에는 직접 입력에서 건너뛴 빈 줄 기록도 포함됩니다. 현재 분류를 저장하면 다른 분류의 원문은 들어가지 않습니다. CSV는 수식처럼 시작하는 문자 셀에 보호 표시를 붙이고, JSON은 원문 값을 그대로 유지합니다. SKU 00123은 파일 셀에 보존되지만 Excel이 숫자로 해석할 수 있으므로 해당 열을 텍스트로 가져오세요. 복사 표의 셀 안 탭·줄바꿈은 공백으로 정리됩니다.
저장한 파일을 공급업체에 보내면 주문이 되나요?
이 파일은 입력 조건과 계산 결과를 확인하는 검토표이며 공급업체나 쇼핑몰의 주문 업로드 규격이 아닙니다. 실제 주문을 전송하지 않습니다. 품목별 발주 제안을 확인한 뒤 발주 금액 도구로 총비용을 계산하고, 납기·단가·배송비·공급업체 조건을 확인해 별도로 주문하세요.
단위와 계산 기준의 출처
- Shopify 공식 도움말 · 현재고·가용·예약·판매 불가·입고 재고의 구분
- MDN · 큰 정수를 그대로 계산하는 BigInt
- RFC 4180 · CSV의 열과 인용된 줄바꿈
- OWASP · CSV를 스프레드시트에서 열 때의 수식 처리