본문 바로가기
서비스 기획/바닥부터 이커머스 시스템 기획

07. 주문 데이터 설계

2021. 1. 4.

카페24 어드민의 주문관리는 입금전부터 배송완료까지의 단계를 모두 포함한다. 따라서 배송이 시작되는 단계부터 배송완료 단계까지는 이번 분석에서 제외하기로 했다.

1단계: 주문 데이터 나열하기

전체 주문 내역과 주문 접수 단계, 상품/배송 준비 단계에서의 데이터를 나열했다. 주문은 여러 단계가 맞물려 있어 몇 가지 이슈가 있었다.

- 주문의 기준이 무엇일까?
=>요즘은 온라인에서 카드결제나 간편결제가 활성화되어 주문과 동시에 결제가 이루어진다. 가령 아래 이미지를 보면 카드 결제의 경우 주문과 동시에 입금(결제)이 확인되고 출고 요청까지 실시간으로 처리됨을 확인할 수 있다.

카드 결제 주문 내역. 출고 요청 후 출고 처리(상품 및 배송준비)까지 짧게는 10분, 길게는 8시간 정도 소요되었다.

한편 아래는 무통장 결제 선택 후 입금 기한 내 주문 취소한 내역이다. 당연히 입금이 이루어지지 않았기 때문에 결제 정보가 없다.

무통장 결제 주문 취소 내역.

이처럼 무통장 결제의 사례를 바탕으로 주문은 주문서가 작성된 시점, 결제는 입금 확인이 이루어진 시점으로 정의했다. (물론 무통장도 실시간 입금 확인이 가능하다) 그리고 데이터 생성 시점이 다르다면 주문과 결제 테이블을 각각 분리하는게 맞겠다고 생각했다.

- 하나의 주문 건이 다음 단계로 이동하는 기준은 무엇일까?
=>여러 단계가 연쇄적으로 진행되기 때문에 프로세스 분석을 선행하지 않을 수 없었다. 카페24 어드민의 각 단계에서는 수동으로 주문상태를 관리할 수 있었다. 따라서 이 주문상태를 기준으로 각 단계를 구분지었다.

2021.01.25 이미지 수정

전체 주문 내역과 주문 접수, 상품/배송 준비 단계의 데이터주문과 결제 테이블로 구분했다. (노란색: 주문/녹색: 결제) 그외 데이터들은 상품이나 배송, 할인 등의 테이블에 속할 것이다. 참고로 상품 준비 단계는 생략이 가능하다. 보통 상품 준비와 배송 준비가 출고 처리 단계로 통합될 수 있기 때문이다.

2021.01.25 이미지 수정
2021.01.25 이미지 수정
2021.01.25 이미지 수정


2단계: 주문 관련 테이블 구성하기

앞서 주문과 결제 정보를 구분했기 때문에 각각 테이블을 구성했다. 그 밖에 이슈는 상품과 맞물리는 주문 상세 내역이었다. 이 부분은 주문과 상품 간 N:M 다대다 관계가 형성되기 때문에 주문 상세 테이블을 교차 엔티티로 생성했다.

그런데 앞서 옵션 정보 테이블을 정의했었다. 이 옵션 정보에는 각 상품별 옵션항목과 옵션값이 들어있다.

따라서 상품 테이블이 아닌 옵션 테이블을 주문 상세 테이블과 연결해주었다. 결과적으로 구성한 주문/주문상세/결제 테이블은 다음과 같다.


3단계: 테이블 간 관계 설정하기

상품 옵션이나 할인같은 다른 테이블은 일단 제외하고 생성한 테이블만 관계를 설정했다. 앞서 상품 테이블 설계 당시 테이블명에 불필요하게 '정보'라는 단어를 넣어서 이번에는 한 단어로 네이밍했다.

마치며
주문 모듈은 여러모로 거대하게 느껴져서 부담스러웠다. 본격적인 분석에 앞서 주문 프로세스를 먼저 정의한 것이 도움이 많이 되었다. 확실히 분석하고 작성하는데 걸리는 시간이 조금씩 단축되고 있다. 기준을 세운 것 그리고 생각의 흐름을 나열하여 근거를 구체적으로 제시한 것이 시간 단축에 도움이 되었다고 생각한다.

참고자료

 

08/24 쇼핑몰 판매 부분 DB모델링과 구축, 카드 결제 시스템 구축을 위한 조건

@ 데이터베이스가 어려운 경우 일단 테이블 하나로 구성해보고 그것을 효율성과 중복 문제를 고려해 테이블을 나눠본다 지속적으로 관리할 데이터는 테이블로 빼야한다. @ DB구축시에 정답이란

priceless.tistory.com

 

DB 테이블구조 > cmall_order ‐ 씨아이보드 매뉴얼

© Copyright 2016, 씨아이보드 코드이그나이터(CodeIgniter) 기반 PHP 오픈소스 게시판 : 씨아이보드 이 매뉴얼은 배포버전 1.6.4 기준으로 작성되었습니다

www.ciboard.co.kr

 

일반적인 쇼핑몰의 주문 및 결제 프로세스는 어떻게 이뤄지나요? | 전문 지식 검색은 아하!

프로그래밍, 결제, 데이터베이스, 쇼핑몰, 주문 - 일반적인 쇼핑몰의 주문 및 결제 프로세스에 대해 질문이 있습니다.아래와 같이 주문, 주문상품, 상품 테이블이 있습니다. (최대한 간략화)대략

www.a-ha.io

 

영화 예매 프로그램 (DB 설계, 프로그램 연동)

작성일 : 2014년 하반기 작성자 : 2015년 03월 기준 대학 3년생 연락처 : eugene@dcafe.xyz 팀 과제로 진행했던 것입니다. DB 설계와 연동, 과정 중 어려웠던 점에 대한 내용이 있습니다. 제가 맡았던 부분

www.slideshare.net


변경이력

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

댓글