주문 프로세스
주문 프로세스는 고객의 구매 요청을 내부 시스템이 처리 가능한 업무 문서로 만들고, 재고 예약과 WMS 출고 요청으로 연결하는 흐름입니다. 실무에서 중요한 지점은 주문 상태 하나로 모든 것을 표현하려 하지 않는 것입니다. 주문, 결제, 출고, 배송, 정산은 서로 다른 속도로 움직입니다.
핵심 관점
주문은 고객과의 약속이고, 출고는 창고 작업이며, 배송은 운송 상태입니다. 세 상태를 분리해야 취소, 부분 출고, 반품을 안전하게 처리할 수 있습니다.
주문 접수부터 출고 요청까지
일반적인 흐름은 다음과 같습니다.
- 외부몰, 자사몰, POS, 영업 시스템에서 주문이 들어옵니다.
- OMS가 상품 코드, 옵션, 거래처, 배송지, 결제 상태를 검증합니다.
- 재고 예약 가능 여부를 확인합니다.
- 주문 수량을 예약재고로 잡고 가용재고를 줄입니다.
- 출고 가능한 주문을 WMS 출고 요청으로 전송합니다.
- WMS는 출고 지시, 피킹, 검수, 패킹, 출고 확정을 진행합니다.
- 출고 결과와 배송 상태가 다시 주문에 반영됩니다.
주문 상태가 중요한 이유
주문 상태는 화면의 라벨이 아니라 허용 가능한 액션을 결정하는 기준입니다. 예를 들어 결제완료 상태에서는 고객 취소가 가능할 수 있지만, 출고진행중 상태에서는 WMS 작업 취소 가능 여부를 확인해야 합니다. 배송완료 상태에서는 취소가 아니라 반품 흐름으로 전환하는 것이 일반적입니다.
주문 상태와 출고 상태를 분리해야 하는 이유
주문 상태는 고객 관점의 약속을 표현합니다. 출고 상태는 창고 작업의 진행도를 표현합니다. 하나의 status 컬럼으로 둘을 합치면 다음 문제가 생깁니다.
| 문제 | 설명 |
|---|---|
| 취소 판단 오류 | 주문은 취소 요청 상태지만 WMS는 이미 출고확정일 수 있음 |
| 부분 출고 표현 어려움 | 주문 라인 일부만 출고된 상태를 표현하기 어려움 |
| 배송 상태 혼선 | 출고완료와 배송완료를 같은 완료로 오해 |
| 정산 오류 | 주문 완료를 매출 확정으로 착각 |
취소, 부분 취소, 주문 변경의 영향
주문 변경은 재고 예약과 출고 요청에 직접 영향을 줍니다.
- 전체 취소: 예약재고를 해제하고 결제 취소 또는 환불을 요청합니다.
- 부분 취소: 주문 라인 일부 수량만 예약 해제하고 금액을 재계산합니다.
- 주소 변경: 송장 생성 전이면 배송지 수정이 가능하지만, 송장 생성 후에는 택배사 취소가 필요할 수 있습니다.
- 수량 변경: 증가 시 추가 재고 예약, 감소 시 예약 해제가 필요합니다.
주문과 재고 예약
대부분의 시스템에서는 주문 접수 시 현재고를 바로 줄이지 않고 예약재고를 증가시킵니다.
현재고 100
주문 10 접수
예약재고 10 증가
가용재고 90
출고확정 시 현재고 90, 예약재고 0
이 방식은 주문 단계에서 고객에게 재고를 약속하면서도 실제 재고 수불은 출고확정 시점에 남길 수 있어 추적이 쉽습니다.
WMS 출고 요청으로 넘어가는 시점
모든 주문이 바로 WMS로 넘어가지는 않습니다. 다음 조건을 만족한 주문만 출고 요청 대상이 됩니다.
| 조건 | 설명 |
|---|---|
| 결제 또는 여신 확인 | 결제완료, 후불 승인, 여신 한도 통과 |
| 상품 매핑 완료 | 외부몰 상품이 내부 상품으로 매핑됨 |
| 배송지 검증 | 주소, 연락처, 배송 제한 여부 확인 |
| 재고 예약 완료 | 가용재고 또는 대체 출고 정책 확인 |
| 취소 보류 없음 | 고객 취소 요청이나 운영 보류가 없어야 함 |