본문 바로가기
서비스 웹 서비스 개발 앱 개발 AI 알고리즘 개발 AI 컨설팅 AI 마케팅 프로젝트 인사이트 회사소개 고객게시판
시스템 아키텍처 4 MIN READ

주문은 취소됐는데 피킹은 진행 중이라면: 상태 충돌을 푸는 법

고객 주문 취소와 창고 피킹이 동시에 진행될 때 이중 환불·오출하를 막는 상태 전이 설계입니다.

Category
시스템 아키텍처
Published
Read
4분
Author
네이처프랙탈
주문은 취소됐는데 피킹은 진행 중이라면: 상태 충돌을 푸는 법 대표 이미지

고객 주문 취소와 창고 피킹이 동시에 진행될 때 이중 환불·오출하를 막는 상태 전이 설계입니다.

어디서 문제가 시작될까

고객이 주문 취소 버튼을 누른 순간 창고 직원이 이미 상자를 스캔했을 수 있습니다. 주문 시스템은 취소 완료라고 표시하지만 WMS는 포장 완료로 넘어가면 환불과 출하가 동시에 일어날 수 있습니다. 두 시스템이 각각 정상이어도 전체 업무는 모순될 수 있다는 점이 핵심입니다.

설계의 핵심

주문 상태와 물류 상태를 분리하고 취소 요청, 취소 승인, 피킹 중단, 출하 보류, 취소 불가를 명시적으로 정의합니다. 취소 요청에는 고유 ID를 붙여 재시도해도 중복 환불이 생기지 않게 합니다. WMS가 피킹 시작·포장·출하 확정 이벤트를 보내면 주문 시스템은 현재 물류 상태를 확인해 취소 가능 여부를 결정합니다. 확정 전의 짧은 경계에서는 출하 보류를 먼저 요청하고 결과가 돌아올 때까지 고객에게 '처리 중'으로 표시합니다.

주문은 취소됐는데 피킹은 진행 중이라면: 상태 충돌을 푸는 법 — 상태와 판단 흐름을 정리한 개념도
상태와 판단 흐름을 정리한 개념도

현장에 적용해 보면

고객이 오전 10시에 취소를 눌렀고 10시 1분에 피커가 상품을 집었습니다. 취소 요청이 먼저 기록됐더라도 창고 단말이 오프라인이었다면 실물은 이동할 수 있습니다. 이 경우 단순히 DB 상태를 되돌리기보다 해당 피킹 작업을 중단 지시하고 재고 복귀 확인이 끝나야 취소를 완료합니다. 이미 출하됐다면 반품 흐름으로 전환하며 같은 취소 요청 ID를 추적합니다.

주문은 취소됐는데 피킹은 진행 중이라면: 상태 충돌을 푸는 법 — 실무 적용과 검증 장면
실무 적용과 검증 장면

놓치기 쉬운 점

분산된 두 DB 사이에 '동시에 한 번에 성공'을 가정하면 장애 때 중간 상태가 남습니다. 보상 작업과 조정 큐를 설계하고, 미확정 상태가 오래 지속되면 운영자가 볼 수 있게 해야 합니다. 고객에게 취소 가능 시간을 과장하지 않는 문구도 중요합니다.

도입 전 점검

  • 취소 요청과 취소 확정을 구분하는가
  • 실물 피킹·출하 이벤트와 주문 상태를 대사하는가
  • 환불·재고 복귀에 중복 방지 ID가 있는가

참고 자료: Microsoft의 보상 트랜잭션 패턴

#주문취소 #WMS #피킹 #물류시스템 #상태머신 #분산트랜잭션 #사가패턴 #재고관리 #업무자동화 #시스템통합

/ 다음 단계

이런 문제, 직접 겪고 계신가요?

글로 정리한 방법을 실제 환경에 맞춰 적용하는 일까지 함께 하겠습니다.

영업일 기준 3일 이내 회신 · 상담 및 범위 견적 무료