※카페24 어드민의 주문관리는 입금전부터 배송완료까지의 단계를 모두 포함한다. 따라서 배송이 시작되는 단계부터 배송완료 단계까지는 이번 분석에서 제외하기로 했다.
1단계: 주문 데이터 나열하기
전체 주문 내역과 주문 접수 단계, 상품/배송 준비 단계에서의 데이터를 나열했다. 주문은 여러 단계가 맞물려 있어 몇 가지 이슈가 있었다.
- 주문의 기준이 무엇일까?
=>요즘은 온라인에서 카드결제나 간편결제가 활성화되어 주문과 동시에 결제가 이루어진다. 가령 아래 이미지를 보면 카드 결제의 경우 주문과 동시에 입금(결제)이 확인되고 출고 요청까지 실시간으로 처리됨을 확인할 수 있다.
한편 아래는 무통장 결제 선택 후 입금 기한 내 주문 취소한 내역이다. 당연히 입금이 이루어지지 않았기 때문에 결제 정보가 없다.
이처럼 무통장 결제의 사례를 바탕으로 주문은 주문서가 작성된 시점, 결제는 입금 확인이 이루어진 시점으로 정의했다. (물론 무통장도 실시간 입금 확인이 가능하다) 그리고 데이터 생성 시점이 다르다면 주문과 결제 테이블을 각각 분리하는게 맞겠다고 생각했다.
- 하나의 주문 건이 다음 단계로 이동하는 기준은 무엇일까?
=>여러 단계가 연쇄적으로 진행되기 때문에 프로세스 분석을 선행하지 않을 수 없었다. 카페24 어드민의 각 단계에서는 수동으로 주문상태를 관리할 수 있었다. 따라서 이 주문상태를 기준으로 각 단계를 구분지었다.
전체 주문 내역과 주문 접수, 상품/배송 준비 단계의 데이터를 주문과 결제 테이블로 구분했다. (노란색: 주문/녹색: 결제) 그외 데이터들은 상품이나 배송, 할인 등의 테이블에 속할 것이다. 참고로 상품 준비 단계는 생략이 가능하다. 보통 상품 준비와 배송 준비가 출고 처리 단계로 통합될 수 있기 때문이다.
2단계: 주문 관련 테이블 구성하기
앞서 주문과 결제 정보를 구분했기 때문에 각각 테이블을 구성했다. 그 밖에 이슈는 상품과 맞물리는 주문 상세 내역이었다. 이 부분은 주문과 상품 간 N:M 다대다 관계가 형성되기 때문에 주문 상세 테이블을 교차 엔티티로 생성했다.
그런데 앞서 옵션 정보 테이블을 정의했었다. 이 옵션 정보에는 각 상품별 옵션항목과 옵션값이 들어있다.
따라서 상품 테이블이 아닌 옵션 테이블을 주문 상세 테이블과 연결해주었다. 결과적으로 구성한 주문/주문상세/결제 테이블은 다음과 같다.
3단계: 테이블 간 관계 설정하기
상품 옵션이나 할인같은 다른 테이블은 일단 제외하고 생성한 테이블만 관계를 설정했다. 앞서 상품 테이블 설계 당시 테이블명에 불필요하게 '정보'라는 단어를 넣어서 이번에는 한 단어로 네이밍했다.
마치며
주문 모듈은 여러모로 거대하게 느껴져서 부담스러웠다. 본격적인 분석에 앞서 주문 프로세스를 먼저 정의한 것이 도움이 많이 되었다. 확실히 분석하고 작성하는데 걸리는 시간이 조금씩 단축되고 있다. 기준을 세운 것 그리고 생각의 흐름을 나열하여 근거를 구체적으로 제시한 것이 시간 단축에 도움이 되었다고 생각한다.
참고자료
변경이력
2021.01.25 주문 프로세스 플로우차트 수정
'서비스 기획 > 바닥부터 이커머스 시스템 기획' 카테고리의 다른 글
09. 주문 플로우차트 (0) | 2021.01.07 |
---|---|
08. 주문 정책 정의 (0) | 2021.01.05 |
06. 상품 플로우차트 (0) | 2021.01.03 |
05. 상품 정책 정의 (0) | 2020.12.31 |
04. 상품 데이터 설계 (2) | 2020.12.29 |
댓글