“재고는 있는데 왜 품절이죠?” SKU 판매가능재고 오류 잡는 법

profile_image
작성자 재고진단실 강해온
댓글 0건 조회 7회

관리자 화면에는 재고가 12개 남아 있는데 상품 페이지에는 품절이 뜹니다. 반대로 창고에는 물건이 없는데 주문은 계속 들어오기도 합니다. 이런 상황에서 수량만 강제로 수정하면 잠시 정상으로 보이지만, 다음 주문이나 반품이 처리되는 순간 같은 문제가 다시 발생합니다.

원인은 대개 실물 재고가 아니라 판매가능재고를 계산하는 규칙에 있습니다. 주문 예약분, 안전재고, 검수 대기품, 채널별 할당량이 서로 다른 시점에 반영되면 하나의 SKU가 여러 숫자를 갖게 됩니다. 아래 순서대로 확인하면 무작정 재고를 덮어쓰지 않고 오류가 생긴 지점을 찾아낼 수 있습니다.

장부 재고와 판매가능재고는 같은 숫자가 아닙니다

먼저 다섯 종류의 재고를 분리합니다

많은 쇼핑몰 운영자가 ‘재고’라는 한 단어로 모든 수량을 관리합니다. 그러나 창고에 존재하는 수량과 지금 고객에게 판매할 수 있는 수량은 다릅니다. 재고의 일반적인 의미는 네이버 지식백과의 재고 정의에서도 확인할 수 있지만, 이커머스 시스템에서는 주문 상태와 품질 상태까지 더해 수량을 세분화해야 합니다.

가장 먼저 확인할 숫자는 실물재고, 장부재고, 예약재고, 보류재고, 판매가능재고입니다. 예를 들어 실물 20개 중 결제 완료 주문에 6개가 예약되고, 반품 검수 대기 3개와 안전재고 2개가 잡혀 있다면 즉시 판매할 수 있는 수량은 9개입니다. 관리자 화면이 실물 20개만 보여주는데 쇼핑몰이 판매가능재고 9개를 기준으로 노출한다면, 화면끼리 숫자가 달라도 오류라고 단정할 수 없습니다.

판매가능재고는 보통 ‘정상 장부재고-주문 예약분-출고 보류분-안전재고’로 계산합니다. 다만 사용 중인 OMS, WMS, 쇼핑몰 솔루션에 따라 취소 요청이나 입금 대기 주문을 예약분에 넣는 기준이 다릅니다. 숫자를 맞추기 전에 어떤 상태가 차감 대상인지 확인해야 하는 이유입니다.

  • 실물재고: 창고 선반과 보관 구역에 실제로 존재하는 전체 수량입니다.
  • 장부재고: 입고, 출고, 이동, 조정을 시스템에 기록한 결과입니다.
  • 예약재고: 주문은 접수됐지만 아직 출고되지 않아 다른 고객에게 팔면 안 되는 수량입니다.
  • 보류재고: 파손, 반품 검수, 유통기한 확인 등으로 판매를 잠시 막은 수량입니다.
  • 판매가능재고: 각종 예약과 보류, 안전재고를 제외하고 채널에 노출할 수 있는 수량입니다.

품절 오류는 간단한 계산표로 재현합니다

오류 SKU 하나를 골라 주문 전후 숫자를 한 줄씩 기록해 보세요. 주문 생성, 결제 완료, 출고 확정, 취소 완료 시점마다 어느 재고 필드가 변했는지 확인하면 중복 차감이나 누락을 빠르게 발견할 수 있습니다. 여러 SKU를 한꺼번에 조사하면 이벤트 순서가 섞이므로 최근 오류가 난 단일 SKU와 단일 주문부터 추적하는 편이 정확합니다.

확인 시점장부재고예약재고보류·안전재고예상 판매가능재고
주문 전12228
결제 완료12327
출고 확정11227
취소 완료11128
진단 팁: 현재 숫자만 캡처하지 말고 주문번호, SKU, 발생 시각, 변경 전후 수량을 함께 남기세요. 재고 오류는 결과보다 ‘어떤 이벤트가 먼저 처리됐는가’를 알아야 고칠 수 있습니다.

흔한 고장 원인을 이벤트 순서대로 제거합니다

중복 차감과 미복구부터 확인합니다

첫 번째 원인은 주문이 들어올 때 재고가 두 번 차감되는 경우입니다. 쇼핑몰에서 결제 완료 시 한 번 차감하고, 주문관리 시스템이 주문을 수집하면서 다시 차감하면 실물보다 시스템 재고가 빠르게 줄어듭니다. 연동 설정에서 재고 차감의 주체를 하나로 지정하고, 나머지 시스템은 결과를 전달받도록 역할을 구분해야 합니다.

두 번째는 취소·반품 수량의 미복구입니다. 결제 취소가 완료됐는데 예약재고가 풀리지 않거나, 반품 입고와 동시에 정상재고로 복구되어 검수 불합격품까지 판매되는 문제가 자주 생깁니다. 취소는 예약 해제, 반품은 검수 대기 구역 입고, 검수 합격 후 정상재고 전환이라는 별도 흐름으로 설계하는 것이 안전합니다. 상품의 생성부터 변경과 폐기까지 데이터를 관리한다는 관점은 피엘엠 소프트웨어 설명과도 연결해 이해할 수 있습니다.

세 번째는 옵션 SKU 매핑 오류입니다. ‘블랙/M’과 ‘검정/M’처럼 이름은 비슷하지만 서로 다른 코드로 연결되거나, 여러 판매 채널의 옵션이 하나의 SKU가 아닌 상품 대표 코드에 묶이면 엉뚱한 옵션 수량이 줄어듭니다. 상품명으로 연동하지 말고 변하지 않는 내부 SKU와 채널 옵션 ID를 일대일로 연결해야 합니다.

  1. 차감 기준 확인: 주문 접수, 결제 완료, 상품 준비 중 가운데 실제 차감 이벤트가 무엇인지 확인합니다.
  2. 중복 호출 검색: 같은 주문번호와 SKU로 차감 로그가 두 건 이상 생성됐는지 찾습니다.
  3. 취소 복구 확인: 전체 취소와 부분 취소가 각각 예약재고를 정확히 반환하는지 시험합니다.
  4. 반품 상태 분리: 반품 도착 즉시 판매 가능으로 바뀌지 않고 검수 대기로 들어가는지 확인합니다.
  5. 옵션 매핑 대조: 내부 SKU, 바코드, 채널 상품번호, 옵션번호를 한 행에 놓고 중복 연결을 찾습니다.

연동 지연과 안전재고 설정도 함께 봅니다

오픈마켓 여러 곳에서 판매하면 재고 동기화 주기가 짧아도 순간적인 초과 판매가 생길 수 있습니다. A채널에서 마지막 상품이 팔린 뒤 중앙 시스템이 이를 수집하고 B채널에 0을 전송하기까지 시간이 필요하기 때문입니다. 특히 할인 행사나 라이브 방송처럼 주문이 몰리는 시간에는 평소 5분 주기가 충분했더라도 사고가 날 수 있습니다.

이때 안전재고를 무조건 크게 잡으면 품절 사고는 줄지만 정상 판매 기회도 잃습니다. 하루 평균 판매량이 아니라 동기화 지연 시간 동안 들어올 수 있는 최대 주문량을 기준으로 SKU별 안전재고를 계산해 보세요. 회전이 느린 고가 상품에는 0~1개, 주문이 짧은 시간에 집중되는 인기 상품에는 최근 피크 구간 판매량을 반영하는 식으로 차등 적용할 수 있습니다.

또한 품절 기준이 ‘0 이하’인지 ‘안전재고 이하’인지 확인해야 합니다. 재고가 3개인데 안전재고가 3개라면 시스템은 정상적으로 품절 처리한 것일 수 있습니다. 문제를 발견했다고 바로 안전재고를 삭제하지 말고, 채널별 버퍼와 중앙 버퍼가 이중으로 적용되는지 먼저 살펴보세요.

  • 연동 실패 알림이 이메일에만 쌓이고 담당자가 확인하지 않는 구조인지 점검합니다.
  • API 호출 제한으로 일부 SKU 업데이트가 다음 주기로 밀리는지 로그에서 확인합니다.
  • 묶음상품의 구성품 하나가 품절돼 전체 세트가 0으로 계산되는지 확인합니다.
  • 예약판매 수량과 즉시출고 수량이 하나의 재고 필드에 섞이지 않게 분리합니다.
  • 재고 수동 수정 후 중앙 시스템이 이전 값으로 다시 덮어쓰는지 시험합니다.
운영 팁: 긴급 수정이 필요해도 판매 채널마다 숫자를 직접 고치지 마세요. 먼저 판매를 일시 중지한 뒤 재고의 기준 시스템에서 한 번 수정하고, 동기화 결과를 확인한 후 판매를 재개하는 편이 재발을 막습니다.

“수량을 매일 맞추면 된다”는 처방이 오히려 문제를 숨깁니다

조정보다 원인 코드와 책임 시스템을 남깁니다

일부 운영자는 매일 아침 실사 수량으로 시스템 값을 덮어쓰면 충분하다고 말합니다. SKU가 적고 단일 창고에서만 판매한다면 현실적인 방법일 수 있습니다. 하지만 주문 채널과 물류 거점이 늘어난 상태에서는 수동 조정이 중복 차감, 스캔 누락, 옵션 오연결 같은 원인을 지워버려 다음 오류를 예측하기 어렵게 만듭니다.

재고를 조정할 때는 단순히 ‘+2’나 ‘-1’로 기록하지 말고 사유 코드를 선택하게 해야 합니다. 입고 누락, 피킹 파손, 오배송, 반품 합격, 반품 폐기, 창고 이동, 시스템 연동 오류처럼 원인을 구분하면 어떤 과정에서 손실이 반복되는지 알 수 있습니다. 인벤토리의 개념을 참고하되, 실제 운영에서는 위치·상태·소유권까지 포함한 기록 체계를 만드는 것이 유용합니다.

기준 시스템도 명확해야 합니다. WMS를 기준으로 정했다면 쇼핑몰과 ERP는 WMS의 판매가능재고를 받아야 하며, 각 채널에서 실행한 수동 변경은 다시 기준 시스템으로 모여야 합니다. 어느 화면에서나 수정할 수 있는 편의성보다 최종 수량을 결정하는 단 하나의 원장이 있는지가 중요합니다.

  • 1단계: 오류가 난 SKU의 판매를 잠시 중지하고 추가 주문으로 숫자가 변하는 것을 막습니다.
  • 2단계: 실물 수량을 정상, 검수 대기, 파손, 출고 대기로 나눠 셉니다.
  • 3단계: 최근 주문과 취소 로그를 시간순으로 배열해 빠진 이벤트와 중복 이벤트를 찾습니다.
  • 4단계: 기준 시스템에서 사유 코드를 붙여 수량을 조정하고 외부 채널로 전송합니다.
  • 5단계: 테스트 주문과 부분 취소를 실행해 차감 및 복구가 각각 한 번만 일어나는지 검증합니다.
  • 6단계: 24시간 동안 수량 차이 알림을 관찰한 뒤 동일 원인이 재발하지 않을 때 판매 제한을 해제합니다.

완전 자동화보다 통제된 예외 처리가 나을 때도 있습니다

모든 재고 이동을 자동화해야 정확해진다는 주장도 절반만 맞습니다. 신선식품, 리퍼 상품, 개봉 반품처럼 사람의 판정이 필요한 SKU는 자동 복구를 적용할수록 판매 불가품이 정상재고로 섞일 위험이 커집니다. 이런 상품은 반품 도착까지만 자동화하고, 검수자가 등급을 선택한 뒤 판매 가능 수량으로 전환하는 편이 낫습니다.

반대로 규격이 일정하고 회전이 빠른 상품은 사람의 승인을 기다리는 동안 품절 시간이 길어질 수 있습니다. 저위험 SKU에는 자동 복구를 적용하고, 고가·파손 민감·유통기한 관리 SKU에는 승인 단계를 두는 위험도 기반 운영이 현실적입니다. 자동화율 자체를 성과로 삼기보다 재고 정확도, 품절 지속시간, 초과 판매 건수, 수동 조정 빈도를 함께 보세요.

재고 정확도가 100%가 아니면 시스템을 교체해야 한다는 의견도 있지만, 교체 전에 이벤트 정의와 SKU 매핑부터 바로잡는 것이 우선입니다. 기존 도구에서도 차감 주체, 상태별 재고, 조정 사유, 동기화 실패 알림이 명확하면 상당수 오류를 줄일 수 있습니다. 다만 여러 시스템이 서로 원장이라고 주장하거나 변경 이력을 추적할 수 없다면, 그때는 기능 수보다 데이터 소유권과 감사 로그를 기준으로 새 솔루션을 검토할 시점입니다.

  • 반품 검수가 필요한 상품은 자동 판매재고 복구 대상에서 제외합니다.
  • 판매 속도가 빠른 SKU는 동기화 주기와 안전재고를 피크 시간대 기준으로 조정합니다.
  • 주 1회 상위 판매 SKU를 순환 실사해 전체 창고를 멈추지 않고 오차를 조기에 찾습니다.
  • 수동 조정률이 갑자기 높아지면 담당자의 실수보다 연동 장애와 프로세스 변경을 먼저 조사합니다.
  • 새 솔루션 도입 전 부분 취소, 교환, 세트 해체, 창고 이동 시나리오를 실제 주문으로 검증합니다.

“재고는 있는데 왜 품절이죠?” SKU 판매가능재고 오류 잡는 법

댓글목록

등록된 댓글이 없습니다.