지난 블랙프라이데이, 생활용품 셀러 한 곳에서 구조 요청이 왔다. 그들의 OMS는 5개 라인 주문 하나를 캘리포니아, 텍사스, 뉴저지 세 창고에서 출고되는 세 개의 소포로 분할해 버렸다. 고객이 낸 배송비는 1건분. 회사가 낸 배송비는 3건분——그리고 별점 1점짜리 리뷰를 받았다. 「상품 5개가 사흘에 걸쳐 도착했다. 장난하는 가게인가」. 사장은 물었다. 「시스템이 자동으로 최적 창고를 고르는 거 아니었나?」 규칙대로 한 건 맞다. 다만 그 규칙은 3년 전에 대충 설정된 뒤 한 번도 손대지 않은 것이었다.
OMS의 멀티 창고 소싱 규칙은, 잘못 설정하면 매일 돈을 새게 하고 제대로 설정해도 칭찬 한 마디 못 받는 모듈이다. 규칙이 실제로 가져야 할 축이 무엇인지, 우선순위를 어떻게 매기는지, 그리고 현장에서 내가 가장 자주 보는 세 가지 전형적인 설정 실수를 정리한다.
규칙 1: 거리가 우선——단 '거리'는 직선거리가 아니다
거의 모든 OMS는 '고객에게 가장 가까운 창고'를 규칙 1번으로 탑재하고 있다. 맞는 말 같지만, 악마는 '가까움'을 계산하는 방식에 있다. 직선 마일로 계산하면 LA 주문이 샌버너디노 창고에서 소싱될 수 있다——서류상으로는 60마일이다. 하지만 택배사 요금은 ZIP-to-ZIP 구간으로 매겨지고, 실제 청구액은 피닉스에서 소싱하는 것보다 클 수 있다.
해법은 택배사 구간표에서 역산하는 것이다. 주요 택배사의 구간 매트릭스를 OMS에 넣어 마일이 아니라 예상 운송비 순으로 정렬한다. 하루 3,000건을 처리하는 한 고객사는 이 한 가지 변경만으로 월 운송비를 9% 줄였다. 실제 숫자다. 정렬 로직 한 곳을 고친 것뿐이다.

규칙 2: 재고의 깊이——마지막 1개를 팔아치우지 마라
재고를 무시한 거리 우선은 두 번째로 큰 함정이다. 창고 A가 가장 가깝다. 하지만 해당 SKU 재고는 2개 남았고, 그중 1개는 이미 다른 대기 주문에 할당된 상태다. 가용재고(available-to-promise)를 무시하는 OMS는 그래도 주문을 그곳으로 보낸다. 피킹에서 부족이 나고, 주문은 다시 분할되고, 출고일은 날아간다.
소싱 규칙에는 재고 워터라인이 필요하다. 안전재고 아래(예: 7일치 판매량)인 창고는 아무리 가까워도 자동으로 후순위로 밀린다. 워터라인은 ABC 등급별로 설정한다——A 등급은 높게, C 등급은 낮게. 많은 OMS 플랫폼이 등급별 워터라인을 지원하는데도, 구축할 때 대충 전 품목 단일 수치로 설정한다. 그건 설정 안 한 것과 같다.
규칙 3: 비용은 운송비만이 아니다
성숙한 소싱 규칙은 합계로 계산한다. 운송비 + 창고 핸들링비 + 포장 차이. 예: 동부 해안 주문은 서부 해안 거점에서 내면 운송비가 $2 더 든다——하지만 서부 거점은 직영이라 동부 3PL보다 핸들링비가 $3 싸다. 순수익: $1 절약. 운송비만 보는 규칙은 틀리게 고른다.
더 교묘한 건 3PL 요금표다. 멀티피스 주문 할증료, 대형품 핸들링 수수료. 이것들을 소싱 비용 모델에 반영하지 않으면, 시스템은 부피 큰 주문을 죄다 '운송비는 싸고 핸들링은 비싼' 거점으로 보내고, 손실은 월말 정산에서야 드러난다.
규칙 4: 납기 약속은 전용 레인을 탄다
납기 약속이 있는 주문——프리미엄 배송, TikTok Shop 정시 출고 스코어——은 별도 소싱 로직이 필요하다. 가장 싼 창고가 아니라 기한 내 출고 가능한 창고를 고른다. 지연 패널티와 계정 제재는 몇 달러 운송비보다 훨씬 비싸다.
두 가지 규칙 템플릿을 권장한다. 일반 주문용은 비용 최적, 약속 주문용은 납기 우선으로, 주문 태그에 따라 OMS가 전환한다. 둘 다를 하나의 혼합 규칙으로 처리하려 하면 반드시 둘 다 실패한다.
실전 튜닝: 우선순위 정하기는 장인 기술이다
이 네 가지 규칙은 OMS 안에서 우선순위대로 실행된다. 내 권장 순서는: 납기 약속 태그 → 재고 워터라인 → 총비용 → 동점자 처리용 거리. 이유: 약속은 레드라인이다. 재고 얇은 창고로의 소싱은 인시던트를 만든다. 비용은 매일의 최적화 주전장이다. 거리가 의미를 갖는 건 그 위가 전부 동점일 때뿐이다.
한 번에 하나의 규칙만 조정하고, 일주일 돌려보고, 데이터를 읽는다. 분할률, 평균 운송비, 지연율. 셋을 함께 읽는다. 분할률은 내려갔는데 운송비가 올랐다면 워터라인이 너무 빡빡한 것이다. 운송비는 내려갔는데 지연이 늘었다면 비용 규칙이 납기 규칙을 짓누르고 있는 것이다. 두세 라운드 돌리면 수렴한다.
마지막으로 하나——폴백이다. '소싱 가능한 창고가 없음' 경로가 반드시 있어야 한다. 모든 거점이 재고 부족이거나 시스템이 막혔을 때 주문이 허공에 사라지면 안 된다. 예외 풀로 보내 수동 처리하고 보충 알림을 울린다. 폴백 없는 설정을 본 적이 있다. 주문이 시스템에 나흘간 머물렀고, 창고가 알기도 전에 고객에게는 이미 환불이 끝난 상태였다. 완벽한 규칙도 폴백이 없으면 0과 같다.
당신의 OMS 소싱 규칙을 확인해 보라——마지막으로 튜닝한 게 언제인가? 답이 '가동 개시 때'라면, 이 글은 당신을 위해 쓴 것이다.
영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.






