결론부터 말하겠다. 3PL 창고의 WMS 다중 고객 청구는 한 가지로 성패가 갈린다. 청구 로직이 시스템 안에서 자동으로 돌아가는가이다. 월말 프로세스가 재무 분석가가 보고서에서 숫자를 뽑아 스프레드시트에서 인보이스를 다시 만드는 방식이라면, 고객과의 논쟁은 리스크가 아니라 일정이다. 해법은 말하기는 쉽고 속이기는 어렵다. 요금표, 청구 이벤트, 인보이스가 모두 동일한 고객 차원 위에 있어야 하고, 시스템이 매일 요금을 적립해야 하며, 월말은 계산이 아니라 대사여야 한다. 바로 그 실행 체크리스트이다.
먼저 프로젝트 이야기부터 하겠다. 2024년 초, 캘리포니아 인랜드 엠파이어에 있는 3PL 창고가 우리를 찾아왔다. 약 80,000제곱피트 규모에 의류부터 소형 가전까지 6개 고객을 두고 있었다. 이들의 WMS는 재고와 작업을 처리했지만, 청구는 WMS 보고서와 수기 기록을 짜깁기한 재무 스프레드시트에 살고 있었다. 우리가 검토한 첫 달에 2개 고객이 동시에 인보이스에 이의를 제기했다. 한 고객은 파렛트 수가 틀렸다고 했고, 다른 고객은 피킹 요금이 300건 이상 과다 청구됐다고 했다. 재무팀은 2주간 서류를 추적했고 진짜 원인을 찾았다. 반품 검수 주문이 피킹 요금으로 이중 청구됐고, 다른 고객의 크로스독 주문은 청구 로직에 아예 들어가지 않았던 것이다. 창고 매니저의 말이 기억에 남는다. 고객들이 까다롭게 구는 게 아니라, 우리는 그저 증거를 제시할 수 없었을 뿐이다.
WMS 다중 고객 청구가 월말에 항상 터지는 이유
근본 원인은 요금이 너무 높기 때문인 경우가 거의 없다. 측정 기준에 대해 아무도 합의하지 못했기 때문이다. 운영팀은 파렛트를 세고, 재무팀은 로케이션을 세며, 고객 계약은 단위를 센다. 기준 3개, 숫자 3개, 그리고 아무도 신뢰하지 않는 인보이스가 나온다. 따라서 WMS 다중 고객 청구의 첫 번째 규칙은 냉혹하고 타협이 없다. 각 요금 유형마다 기준은 정확히 하나이며, 그 기준은 반드시 시스템 이벤트여야 하고, 누군가 손으로 입력한 숫자가 되어서는 안 된다.
두 번째 근본 원인은 시간 기준이다. 보관은 월초 재고, 월말 재고, 일평균 점유율, 최대 점유율 중 무엇으로 청구하는가? 많은 계약이 그저 ‘월별 정산’이라고만 적고, 창고는 말일 스냅샷으로 청구한다. 고객이 월말 마지막 3일에 대량 출고하면 인보이스는 절반으로 줄고, 창고는 조용히 수익을 내준다. 나는 이 함정을 3번 봤고, 매번 계약에는 모호한 문장 하나가 있었고, 시스템에는 실제 의미를 표현할 필드가 없었다.
세 번째 근본 원인은 무료 허용량이다. 어떤 계약은 월 200회 무료 피킹을 포함하고, 어떤 계약은 14일 무료 보관을 포함한다. 시스템에 허용량 원장이 없으면 재무팀은 기억에 의존해 차감한다. 너무 많이 빼면 고객이 항의하고, 너무 적게 빼면 창고가 비용을 떠안는다. 허용량에도 재고 같은 원장이 필요하다. 기초 잔액, 소진, 잔여 잔액, 그리고 모든 소진은 특정 주문과 연결돼야 한다.
WMS 다중 고객 청구: 5단계 실행 체크리스트
이 체크리스트는 30개가 넘는 실행 프로젝트에서 나왔다. 순서대로 따르면 월말 마감이 보통 2주에서 2일 이내로 줄어든다.
1단계: 요금을 이벤트로 쪼개고 기준을 고정한다. 모든 계약 요금을 시스템 이벤트로 분해한다. 보관은 일일 재고 스냅샷이나 평균 점유율에 연결하고, 피킹은 완료된 출고 작업에, 포장은 완료된 포장에, 부가가치 서비스는 완료된 작업 지시에 연결한다. 각 요금마다 4가지를 적는다. 무엇을 청구하는지, 유발 이벤트, 측정 단위, 예외 규칙이다. 4가지를 모두 적을 수 없다면 계약 자체가 모호한 것이다. 소프트웨어가 그 간극을 메워주지 않으므로, 시스템을 설정하기 전에 계약부터 고쳐야 한다.
2단계: 고객별 버전 관리 요금표를 만든다. 창고 전체 공통 요금표는 허구이다. 요금표는 고객별로, 효력 발생일 기준으로 버전 관리돼야 하므로, 갱신이나 가격 변경이 이력을 다시 쓰지 않는다. 예전 요금은 그대로 남고, 새 요금은 효력 발생일부터 적용되며, 과거 인보이스는 절대 다시 계산되지 않는다. 최소 4개 계층으로 구성한다. 보관, 핸들링, 부가가치 서비스, 기타이다. 기타 항목에서 통제가 무너지므로 엄격한 규칙을 세운다. 작업 지시 없이는 기타 요금 없고, 모든 조정에는 승인자가 필요하다.
3단계: 청구 엔진을 월별이 아니라 매일 돌린다. 엔진은 매일 밤 돌아야 한다. 당일 완료된 작업 이벤트와 재고 스냅샷을 가져와 요금표를 적용하고, 적립된 요금을 요금 상세 테이블에 기록한다. 재무팀은 한 달 내내 누적 합계를 보고, 포털 접근 권한이 있는 고객도 당월 누적 적립액을 보므로 월말에 surprises는 없다. 실행 당일 밤 체크리스트에는 3가지 관문이 있다. 같은 날을 두 번 돌려도 결과가 동일하고, 요금 버전 변경이 과거 상세 라인을 건드리지 않으며, 무료 허용량은 소진되면 자동으로 멈춘다.
4단계: 인보이스는 요약과 대사만 담당하게 한다. 월별 인보이스는 해당 월의 요금 상세 합계에서 허용량 소진을 빼고 조정을 더한 것과 같다. 조정은 사유와 승인자와 함께 별도로 기재해야 하며, 상세 라인의 금액을 그 자리에서 수정해서는 안 된다. 상세 다운로드 파일을 첨부한다. 모든 요금은 주문, 작업, 스냅샷 증거까지 파고들 수 있어야 한다. 고객이 한 라인에 이의를 제기하면 지원팀은 3분 안에 원천 이벤트를 찾아야 한다. 그 증거 연결 고리가 좋은 청구의 진짜 결과물이지, 인보이스 자체가 아니다.
5단계: 전환 전에 한 달을 통째로 병행 운영한다. 새 시스템과 기존 방식을 한 달 내내 병행하고 라인별로 비교한다. 모든 차이를 3가지 버킷으로 나눈다. 기준 차이(계약이나 설정을 고친다), 데이터 차이(인터페이스나 누락된 이벤트를 고친다), 이해 차이(대사 노트에 기록한다). 차이율이 1% 아래로 떨어질 때만 전환한다. 병행 운영 한 달을 건너뛴 모든 프로젝트가 후회하는 것을 나는 봤다.
아래 표는 예시적인 요금 구조이다. 업계 표준이 아니라 예시 로직이다. 서명 전에 자신의 원가와 현지 시장을 기준으로 숫자를 다시 짜야 한다.
| 요금 | 단위 | 기준 출처 | 대표적 실패 |
|---|---|---|---|
| 보관 | 파렛트당 1일 | 일일 재고 스냅샷 | 일평균 대신 월말 스냅샷 |
| 피킹 | 주문당 / 단위당 | 완료된 출고 작업 | 반품 검수 주문 이중 청구 |
| 포장 | 카톤당 | 완료된 포장 이벤트 | 작업 지시 없는 재포장 및 카톤 변경 |
| 라벨링 / QC | 단위당 | 완료된 부가가치 작업 지시 | 작업 지시나 승인 없는 구두 요청 |
| 무료 허용량 | 월 고정 수량 | 허용량 원장 소진 | 월간 이월 규칙 미정의 |
내가 3번 본 청구 함정
함정 하나: 나눌 수 없는 공유 로케이션. 한 파렛트나 한 로케이션에 2개 고객의 상품이 있고 보관을 로케이션 기준으로 청구하면 공정하게 배분할 수 없다. 유일한 해법은 고객 + 제품 + 로트 수준에서 청구하는 것이며, 혼합 재고에 대한 배분 규칙을 계약에 문서로 남기고 시스템에서 자동 배분하는 것이다. 사후에 손으로 배분해서는 안 된다.
함정 둘: 취소와 부분 출고. 피킹이 끝난 뒤 고객이 취소하면 피킹 요금을 부과하는가? 출고가 절반만 나갔으면 주문당인가 단위당인가? 두 규칙 모두 실행 전에 요금표에 적어야 한다. 실행 당일 밤 체크리스트에는 각 유형별 테스트 주문이 3건씩 포함돼야 한다. 취소, 부분, 반품이다. 요금 라인 하나라도 틀리면 준비가 안 된 것이다.
함정 셋: 합계만 있고 상세가 없는 인보이스. 내가 아는 가장 비싼 함정이다. 한 창고가 6줄짜리 요약 인보이스를 보냈고, 고객들은 3개월 연속 라인별 검증을 요구했으며, 재무 직원 3명이 2개월을 대사에 썼고, 창고는 그래도 주요 고객 하나를 잃었다. 역설적인 판단은 이렇다. 인보이스가 투명할수록 고객은 가격 가지고 덜 흥정한다. 모든 요금에 작업과 스냅샷 증거가 붙으면 논쟁은 ‘계산을 틀렸다’에서 ‘요금을 논의해보자’로 이동한다. 그리고 두 번째만이 정상적인 상업 협상이다. 첫 번째는 신뢰 위기이다.
마지막 사례로 마무리하겠다. 2025년 중반, 같은 캘리포니아 창고가 이 5단계로 청구를 다시 구축했다. 고객별 버전 관리 요금표, 야간 청구 엔진, 다운로드 가능한 상세가 있는 인보이스이다. 첫 온전한 달에 6개 고객 중 5개 고객이 분쟁을 0건 제기했고, 여섯 번째 분쟁은 당일 양측이 옳다고 합의한 카톤 변경 작업 지시로 추적됐다. 월말 마감은 2주에서 2일로 줄었고, 창고 매니저는 확보한 시간으로 신규 고객 2곳을 계약했다. WMS 다중 고객 청구가 제대로 돌아갈 때 모습이 바로 이것이다. 월말은 싸움이 아니게 되고, 싸움에 쓰던 에너지가 판매에 쓰이는 에너지가 된다.
Lin Xiao, WMS 구축 컨설턴트 지음 영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.







