5개 마켓플레이스에서 파는 셀러 대부분은 재고가 떨어져서 망하지 않는다. 다섯 플랫폼이 같은 재고를 동시에 팔아서 망한다.

작년 11월에 그 장면을 직접 봤다. 아는 셀러가 인기 차량용 충전기를 Amazon, Walmart, eBay, 자기 Shopify 스토어, TikTok Shop에 올렸었다. 인플루언서 영상이 하룻밤에 폭발하며 3,000개가 넘는 주문이 들어왔다. 아침이 되자 모든 플랫폼이 재고 숫자 가득 팔고 있었다. 물론 그 숫자는 허구였다. 환불, 악성 리뷰, 계정 건강도 타격. 풀 콤보였다.

바로 이런 상황을 위해 내가 클라이언트에게 건네는 플레이북이다. 재고를 어떻게 나눌지, 수요가 급증할 때 출혈을 어떻게 막을지. 이 두 반쪽으로 이루어져 있다.

풀 나누기: 다섯 채널, 다섯 장부

규칙은 간단하다. 보관은 함께해도, 장부는 따로 써야 한다.

방법은 두 가지다. 물리적 분리는 채널별로 보관 로케이션을 전용으로 배정하는 것. 월 수만 건을 처리하는 대형 셀러에게는 좋지만, 공간을 낭비하고 이동이 고통스럽다. 논리적 배분은 물리적으로는 재고를 섞고 WMS에서 가상 풀을 나누는 것. 싸고 유연하며, 월 10,000건 이하라면 내가 추천하는 방식이다. 과하게 설계하지 마라.

배분은 감이 아니라 실제 매출 비중으로 정한다. 최근 30일 채널별 매출을 가져와 전체 재고를 그에 맞춰 나눈다. Amazon이 매출의 60%를 냈다면 판매 가능 수량의 60%를 가져간다. 그리고 누구 것도 아닌 5~10% 플렉스 풀을 따로 떼어둔다. 어느 채널이 급증하면 플렉스 풀에서 재배정한다. 매주 검토하고, 잘 나가는 쪽으로 풀을 이동시킨다.

여기서 사람들이 틀리는 게 두 가지다. 첫째, Amazon FBA 창고에 들어간 재고는 더 이상 네가 통제할 수 없다. 자가배송 풀과 섞지 말고 별도 장부에 둔다. 둘째, 운송 중 재고는 판매 가능한 재고가 아니다. 해상 운송 중인 화물과 공장에서 막 출고한 카톤은 스프레드시트의 별도 행에 둔다. 입고와 적치가 끝난 뒤에야 풀에 들어간다. 운송 중 재고를 판매 가능으로 세는 것은 내가 본 초과판매 원인 2위다.

지금까지는 매출 이력이 있다는 전제였다. 신상품은 다른 게임이다. 론칭 SKU는 매출 일수가 0이라 30일 규칙이 아무것도 주지 않는다. 내 방식은 이렇다. 같은 카테고리에서 가장 비슷한 기존 상품의 채널 믹스를 빌려온다. 예전 보조배터리가 매출의 70%를 Amazon에서 냈다면, 새 충전기의 첫 5,000개를 똑같이 배분한다. 대신 오차 여유를 위해 플렉스 풀을 15% 수준으로 두 배로 늘린다. 그리고 월말이 아니라 2주 실데이터가 나오면 배분을 다시 짠다. 클리어런스 재고는 세 번째 경우다. 다섯 플랫폼에 흩뿌리지 마라. 가장 빨리 움직이는 한두 채널에 집중하고 나머지는 품절 표시를 한다. 느리게 움직이는 재고는 얇게 흩어지면 죽는다. 집중 포화가 가장 빨리 현금으로 바뀐다.

출고를 위해 여러 플랫폼의 소포를 분류하는 포장 스테이션

서킷브레이커: 세 단계, 순서대로

풀만으로는 살 수 없다. 브레이크가 필요하고, 순서대로 작동해야 한다.

1단계는 플랫폼별 판매 가능 수량 상한이다. WMS가 각 마켓플레이스에 업데이트된 판매 가능 수량을 15~30분마다 전송한다. 배정 수량에서 판매완료 미출고를 빼고 리저브를 뺀 것이다. 그 동기화 주기를 SOP에 적어둔다. 마켓플레이스 피드에는 지연이 있다. 지연을 정상으로 보고 계획하고, 연동을 구축하기 전에 각 플랫폼의 재고 피드 한도를 확인한다.

2단계는 플렉스 풀 알람이다. 플렉스 풀이 바닥나거나 채널의 판매 가능 수량이 안전선 아래로 떨어지면 전부 조인다. 모든 플랫폼의 판매 가능 수량을 자동으로 삭감하거나, 운영 책임자가 추가 출고를 수동으로 승인한다. 이 단계가 2023년 블랙프라이데이에 내 클라이언트를 살렸다. TikTok이 하룻밤에 8,000개를 팔아치웠을 때 2단계가 Amazon과 DTC 스토어의 판매 가능 수량을 잠가 전체 초과판매를 막았다.

3단계는 완전 정지다. 정말 팔 게 하나도 없으면 주저하지 마라. 리스팅을 중단하거나 약속한 출고일을 늘리고, 고객 응대 스크립트를 준비한다. 초과판매 한 건의 환불+악성 리뷰 비용은, 놓친 몇 건의 매출 마진보다 훨씬 크다. 그 계산을 한 번만 해보면 3단계를 다시는 건너뛰지 않게 된다.

한 가지 더. 어느 브레이크를 누가 거는지 적어둔다. 1단계는 자동. 2단계는 운영 책임자의 판단. 3단계는 대표 직결이다. 위원회 결정으로 만들지 마라. 초과판매가 일어나는 중에는 회의할 시간이 없다.

2단계에는 설계로 피해야 할 부작용이 있다. 오작동이다. 프로모 급증은 정상이다. 플래시 세일은 10분 만에 수백 개를 태워 한 동기화 사이클 만에 판매 가능 수량을 안전선 아래로 끌어내릴 수 있다. 그때 브레이커를 걸면 건강한 재고를 리스팅에서 내려 자기 트래픽을 죽이는 꼴이다. 그래서 2차 확인을 넣는다. 작동 조건이 발동하면 판매 가능 수량을 깎지 말고 15분간 동결한 뒤, 시스템이 실제 잔여 재고를 다시 계산한다. 보유 재고에서 판매완료 미출고를 빼고, 미결제 장바구니 몫을 대충 빼는 것이다. 아직 여유가 있으면 풀고 운영 책임자에게는 경고만 보낸다. 정말 바닥났으면 세 단계를 돌린다. 2차 확인은 누군가의 감이 아니라 숫자로 움직인다. 진짜 초과판매는 막고, 자기 프로모에 대한 오사는 피할 수 있다.

창고와의 악수: 숫자가 맞지 않으면 나머지는 아무것도 안 된다

이 모든 것은 하나의 전제 위에 서 있다. WMS 숫자가 맞다는 것이다. 그래서 창고와의 관계가 진짜 기반이다.

매주 대사한다. WMS의 보유 재고는 전 플랫폼 판매 가능 합계 + 판매완료 미출고 + 운송 중 + 플렉스 풀과 같아야 한다. 맞지 않으면 어딘가 새고 있다. 가장 흔한 누수는 반품이다. 반품된 상품이 창고로 돌아왔는데 누구의 판매 가능 풀에도 돌아가지 않아, 재고는 선반에 있는데 리스팅은 0으로 뜬다.

고정된 5열 시트를 추천한다. SKU, 보유 재고, 전 플랫폼 판매 가능 합계, 판매완료 미출고, 운송 중 + 플렉스 풀. 매주 월요일 아침 그룹 채팅에 올린다. 맞지 않는 건 빨간색으로 표시하고, 그날 안에 누군가 설명한다.

또 다른 함정. 3PL의 리저브 재고다. 일부 창고는 WMS 안에서 대형 클라이언트를 위해 조용히 재고를 확보해 둔다. 그 리저브 로직이 투명하지 않으면 판매 가능 숫자는 허구다. 계약할 때 물어보고 문서로 남긴다.

숫자가 맞지 않을 때 나는 세 체크포인트를 밟는다. 첫째, 풀에 돌아오지 않은 반품. 반품 구역의 보유 재고를 판매 가능 풀과 대조해 갭을 찾는다. 입고와 시스템 적치가 같은 날 이뤄졌는지 확인한다. 하룻밤의 간격이 재고가 사라지는 곳이다. 둘째, 일찍 센 운송 중. 판매 가능 수량이 보유 재고보다 큰 SKU를 찾는다. 거의 확실히 누군가 해상의 화물을 센 것이다. 셋째, 불투명한 3PL 리저브. 창고에 리저브 내역을 익스포트하게 하고 계약상 리저브량과 SKU별로 대조해 선을 넘은 것은 설명하게 한다. 셋을 다 밟으면 열 번 중 아홉 번은 근본 원인을 찾는다.

오늘 밤 한 가지만 하자. 대표 SKU를 가져와 보유 재고, 플랫폼별 판매 가능, 운송 중 세 숫자를 표에 넣는다. 내일 아침 창고에 전화해 한 줄씩 대조한다. 맞으면 멀티채널 재고는 건강하다. 맞지 않으면 일주일은 성장을 잊고 먼저 장부를 고쳐라.

영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.