지난 11월, 선전의 스마트홈 브랜드에서 다급하게 전화가 왔다. 상품이 캘리포니아 온타리오의 3PL 창고에 3주째 묶여 있고, 블랙프라이데이 트래픽이 코앞인데 재고 숫자가 맞지 않았다. 자사 시스템에는 80,000개가 있다고 나오는데, 창고 시스템에는 65,000개로 표시됐다. 15,000개가 사라진 것이다 — 적어도 장부상으로는. 정산 리포트를 뽑아보니 진짜 이유가 드러났다. SKU 코드, 측정 단위, 카톤 사양이 전부 제각각이었다.

이건 예외적인 사례가 아니다. 수년간 국경 간 셀러들의 미국 풀필먼트 창고 연동을 도와왔는데, 같은 패턴이 계속 반복된다. API 구축은 보통 전체 노력의 20% 정도다. 나머지 80%는 마스터 데이터에 들어간다. SKU 코드 체계, 한 카톤에 몇 개가 들어가는지, 기본 단위가 낱개인지 세트인지, 박스의 바코드가 이너 카톤 코드인지 아우터 카톤 코드인지. API가 고장 나면 에러 메시지가 나온다. 마스터 데이터가 틀려도 시스템은 불평하지 않는다. 그냥 조용히 잘못된 상품을 출고하고, 잘못된 수량을 입고하며, 정산은 영원히 맞지 않는다.

API는 2주면 된다. 마스터 데이터는 2개월이 걸린다.

창고의 API가 열려 있거나 IT팀이 2주 동안 연동을 만들면 시스템이 "연결됐다"고 생각하는 창업자가 많다. 직설적으로 말하겠다. 이게 이 업계에서 가장 큰 오해다.

API는 그냥 파이프다. 그 안을 흐르는 게 맞는지 틀린지 신경 쓰지 않는다. ERP에서 "US-PLUG-BLK-01"이라는 SKU를 보내도, 창고 시스템에는 "PLUG-BLK-US-01"로 등록돼 있다. 데이터는 통과하지만 창고 시스템은 인식하지 못하고, 입고 오더는 멈춘다. 더 나쁜 건 비슷한 구 SKU에 자동으로 매칭돼 상품이 잘못된 슬롯에 들어가는 것이다. 알아챘을 때는 이미 수천 개의 카톤이 잘못된 SKU로 출고된 뒤라 되돌릴 방법이 없다.

진짜 시간을 잡아먹는 건 양쪽을 한자리에 앉혀 마스터 데이터를 한 줄씩 맞추는 작업이다. SKU 코드 체계, 측정 단위(낱개·세트·카톤의 3단계), 카톤 사양(아우터 카톤당 수량, 총중량과 순중량), 바코드 규칙(이너와 아우터 코드 체계, SSCC 라벨 사용 여부, 누가 인쇄하는지). 내가 참여한 프로젝트에서는 이 단계가 최단 3주, 최장 2개월 걸렸다. 셀러의 데이터가 얼마나 엉망인지에 전적으로 달려 있다. 데이터가 엉망이면 SKU 리스트 정리만으로 내부 논쟁이 3라운드, 창고와의 논쟁이 또 1라운드 벌어진다.

바코드는 또 다른 지뢰밭이다. 중국 공장은 이너 카톤 바코드를 인쇄하는 경향이 있는데, 미국 창고가 원하는 건 아우터 카톤 코드와 팔레트 단위 관리를 위한 SSCC 라벨이다. 코드가 맞지 않으면 입고 작업은 박스 하나하나 수작업으로 라벨을 다시 붙이는 지옥이 된다. 둥관의 가구 셀러는 첫 출하 — 40 컨테이너, 2023년 11월 — 의 바코드를 사전에 아무도 확인하지 않았다. 창고는 카톤당 재라벨링 수수료를 청구했다. 박스당 몇십 센트가 40 컨테이너 분이면 수만 달러로 불어난다. 돈도 아팠지만, 입고 처리에서 날아간 2주가 더 아팠다.

내 결론은 간단하다. 3PL을 고를 때는 먼저 기성 마스터 데이터 템플릿과 SKU 매핑 시트가 있는지 확인하라. 없으면 가격이 아무리 매력적이어도 론칭 일정에 한 달을 더 잡아라. 이 단계는 지름길이 없다. 여기서 아낀 시간은 출고 오류와 재고 차이로 반드시 돌아온다.

돌아가는 API는 결승선이 아니라 출발선이다

API는 만들었다. 사전 출하 통지(ASN)가 흐르고, 재고는 매일 동기화된다. 이제 끝인가? 어림도 없다.

내가 본 가장 지독한 실패 패턴: 연동은 실시간인데 창고의 입고 확정과 자사 ERP의 입고 처리가 별개의 액션으로 돼 있다. 상품이 도착하고 창고가 스캔하면 재고가 하나 늘어난다. 그런데 ERP는 재무가 입고 서류를 승인해야 비로소 입고를 잡는다 — 2일의 시차다. 그 2일 동안 창고에 아직 실재하지 않는 "가용" 재고를 상대로 주문이 계속 들어온다. 과잉 판매, 취소, 나쁜 리뷰 — 연쇄 반응 풀코스다. 문제는 인터페이스가 아니다. 양쪽이 "재고"의 정의를 다르게 하고 있다는 것이다.

그래서 통합 계획에서는 인터페이스 자체보다 정산 메커니즘이 더 중요하다. 내가 양보하지 않는 세 가지가 있다. 첫째, 자동 일일 정산 리포트. SKU 단위로 한 줄씩, 합의한 임계값을 넘는 차이는 빨간색으로 플래그 — 그리고 플래그가 붙은 줄은 당일 중에 반드시 누군가 처리한다. 둘째, 월간 "재고 확정일". 양쪽이 창고의 실사 재고에 맞춰 정산하고, 차이에 이의가 있으면 증거를 대는 쪽. 책임 떠넘기기 금지. 셋째, ASN에는 카톤 사양과 배치 번호를 반드시 넣고, 창고는 개봉해서 낱개로 세지 않고 카톤 단위로 입고한다 — 개봉 카톤의 차이 책임은 계약서에 명기한다. 관료적으로 들릴 것이다. 피크 시즌에는 이 세 가지에 모두 감사하게 될 것이다.

3PL 시스템 연동

론칭 전 체크리스트: 이게 맞춰질 때까지 본가동하지 마라

본가동 일주일 전, 양쪽을 모아 정합 회의를 열고 이 체크리스트를 항목별로 하나씩 부순다. 하나라도 탈락하면 주문량을 올리지 않는다. 일주일 늦게 본가동하면 며칠 치 매출을 잃는 것뿐이다. 해결되지 않은 구멍을 안고 본가동하면 피크 시즌 전체의 평판과 반품 배송비 청구서를 잃는다.

리스트는 이렇다.

  1. SKU 마스터 데이터 시트가 양쪽 승인 완료. 코드 체계, 상품명, 3단계 측정 단위(낱개·세트·카톤), 카톤 사양, 총중량과 순중량. 1대1 매핑. 1대다는 금지.
  2. 바코드 규칙이 문서로 확정. 이너·아우터 카톤 코드 형식, SSCC 라벨을 누가 생성·인쇄하는지, 라벨 부착 위치도를 창고에 보내 수령 확인 완료.
  3. ASN 필드 매핑을 실제 ASN으로 테스트 완료. 창고 시스템이 모든 필드를 정확히 파싱하고, 카톤 수, 배치, (해당 시) 유통기한이 모두 무사히 도착.
  4. 재고 정의가 일치. 양쪽이 "가용 재고"의 의미에 합의(이송 중은 포함? 품질 보류는? 예약 주문은?). 동기화 빈도와 최대 지연은 SLA에 명기.
  5. 정산 프로세스가 엔드투엔드로 돌았다. 첫 일일 정산 리포트가 생성됐고, 차이별 담당자와 대응 기한이 할당 완료.
  6. 예외 플로우가 리허설 완료. 입고 차이 메모, 출고 오류 보상, 반품 입고 — 각각 한 번씩 통째로 확인했고, 창고 팀도 자사 고객 서비스도 "누구에게 전화할지"를 정확히 파악.
  7. 단계적 론칭 계획이 있다. 첫 주에는 주문량의 10~20%만 흘리고, 깨끗하게 돌면 풀 볼륨으로. 한 번에 전부 전환하지 마라 — 뭔가 틀렸으면 전부 다 틀린다.

이 일곱 항목을 인쇄해 벽에 붙여라. 시스템 연동은 결국 기술의 이야기가 아니다. 인내의 이야기다. 빛나지 않는 마스터 데이터 작업을 끝까지 해내면, 피크 시즌에도 편히 잘 수 있다.

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