재고 차감 시점
재고 차감 시점은 유통 시스템에서 가장 중요한 설계 결정 중 하나입니다. 같은 주문이라도 주문 접수, 결제 완료, 출고 요청, 피킹, 출고확정 중 어느 시점에 현재고를 줄이느냐에 따라 취소, 부분 출고, 정산, 장애 복구 방식이 달라집니다.
추천 기본안
주문/결제 시점에는 현재고를 바로 줄이기보다 예약재고를 잡고 가용재고를 줄입니다. 실제 현재고 차감은 WMS 출고확정 시점에 처리하는 방식이 추적과 취소 처리에 가장 안정적입니다.
시점별 차감 방식 비교
| 차감 시점 | 장점 | 단점 |
|---|---|---|
| 주문 시점 | 과주문 방지 쉬움 | 결제 실패/취소 복구가 많음 |
| 결제 완료 시점 | 유효 주문만 반영 | 결제 후 출고 전 취소 처리 필요 |
| 출고 요청 시점 | WMS 작업과 연결 | 요청 실패/재전송 시 중복 차감 위험 |
| 출고 지시 시점 | 창고 작업 기준 명확 | 피킹 전 취소 복구 필요 |
| 피킹 시점 | 현장 작업과 가까움 | 검수 실패/반품 처리 복잡 |
| 출고확정 시점 | 수불과 정산 기준 명확 | 예약재고/작업중재고 관리 필요 |
주문 상태별 재고 변화
동시 주문 상황에서의 문제
현재고 10개인 상품에 동시에 8개 주문이 두 건 들어오면 둘 다 성공하면 안 됩니다. 가용재고 계산과 예약 생성은 하나의 트랜잭션으로 묶고, 같은 상품/창고 재고 행에 대해 잠금 또는 버전 검증을 사용합니다.
취소 시 재고 복구 흐름
부분 출고와 반품
부분 출고에서는 확정 수량만 현재고를 줄입니다. 미출고 수량은 예약을 유지할지, 취소할지, 백오더로 남길지 정책을 정해야 합니다. 반품은 창고 도착과 검수 이후 정상재고로 복구할지 불량/폐기로 처리할지 결정합니다.
실무 추천 방식
대부분의 유통 시스템에는 다음 방식이 안정적입니다.
- 주문/결제 시점에는 예약재고를 생성합니다.
- 가용재고는 예약재고만큼 줄입니다.
- WMS 피킹/검수 중에는 작업중재고로 추적합니다.
- 출고확정 시점에 현재고를 차감하고 수불부를 생성합니다.
- 취소와 반품은 원거래 삭제가 아니라 역수불 또는 반품입고로 남깁니다.