주문 결제
2차 오설록 코드 참고
[erd 테이블- 간략 설명]
order- 상품 없고
order detail - 상품 관련해서
[흐름]
cart --> order -> order detail -> 'cart 에서 갯수만큼 삭제'
[결제 후 'cart 에서 갯수만큼 삭제']
로직: order_details에서 order_id, product_id가 일치하는 것을 가져와서 장바구니에서 삭제 --> 이건 장바구니와 관련 없는 로직
설명 : 프론트에서 cart 후에 '상품 정보 + 주문 상세내역' 주는 거 백이 db에 저장
저장한 갯수만큼 카트에서 삭제
카트 정보를 몰라도 되는 게
- order한 만큼 삭제해줘 요청만
- 카트에서 삭제 (조건부로)
[경로] 프론트에서 global로 하겠다고 해서,
장바구니 -> 결제
상품 상세 -> 결제
메인-> 결제
목록 -> 결제
(백엔드는 일단 '장바구니 -> 결제'만 신경쓰기)
order table vs. order detail table
order table-> erd diagram의 정보들은 (user /배송/ 가격/ 결제 수단/ 생성 날짜)
아래의 오설록 주문 페이지와 같이,
일단 product 정보를 제외한 주문/결제 정보들을 받는 것
user id는 우리가 늘 갖고 있을 것이다.
order table, order detail table 따로 빼는 이유는,
만약에 안 빼면,
한 번의 주문에 여러 상품들이 담길 수 있으니까,
order table 에 같은 주문 번호로 product1,2,3,4 쌓이니까, 복잡해지니까
order detail table로 따로 빼서,
- 주문번호 199 / product_id 1 / quantity 2
- 주문번호 199 / product_id 3 / quantity 2
- 주문번호 199 / product_id 4 / quantity 2
이렇게 쌓이도록
[구현 순서]
1. order table 에서 먼저 시작 (product 관련 정보 없이, 회원정보/배송유형/ 결제수단 정보만 받는 거)
프론트도 받는 거니까 app.post
: user id 는 늘 갖고 다닐꺼니까 받을 필요 없고,
프론트에서 넘어오는
'주문정보(결제수단, 날짜, 배송유형: '직접수령, 방문수령', 배송상태, 가격), product id, 수량'으로 order 테이블 저장
2. order detail에 order id로 연동해서 '수량, product id' 저장
3. 장바구니에서 삭제 : order detail 에서 order_id, product_id 일치하는 거 골라서 삭제
4. transaction code 추가 (롤백 되게)
동시다발적으로 실행 됨
1. 정보 받아와서 order에 저장 (insert into)
2. order detail에 저장
- 저장된 order id로 가져와서, (연동을 어떻게 할 것인가)
저장되는 값의 형태:
'order id 1, product id 1, quantity1'
'order id 2, product id 2, quantity2'
이렇게 하나씩 입력 (한줄씩 추가) --> 한줄씩 데이터 들어감
우선순위
(수)
- sql notion (terminal로 치면서- > 현업에서 query builder로 해서 쓸 일 없어서 내가 친 코드 이해하기 어렵다고 해서)
- 과제1, 과제 2-1 까지
- 초기화 세팅 올라오면 어떻게 된 건지 공부 (초기화 세팅만 따로 project repository)
(목)
- layered
- 주문 결제 공부
(금)
- 주문 결제 api 완료
- aws
- 위치 기반 공부 병행
(월)
- 2차 프로젝트로 상세페이지 혼자 짜보기
-
(빨리 끝내고) 통신 기다리며
- 2차 프로젝트로 메인페이지 혼자
begin - commit 사이에
로직이 2개 있더라도
두번째 로직이 안 되면,
첫번째 로직이 실행 안 되는 거 (아무것도 실행이 안 되는 거 )
--> 그래서 보통 은행 거래에서 많이 쓰임
그래서 주문/결제에서도 필요하고,
장바구니에서 차감되는 것도 필요한가? --> 준우님
https://pm-developer-justdoit.tistory.com/127
Project 2- 3일차: Database 세션 심화 [Indexing, Transaction, ACID] **
filtering/ordering/pagination/searching : database를 찾는거고, 실시간으로 하는 거고, index/searching은 검색의 효율화를 위한 설정이 그런거고, 미리 동적으로 걸어주는 게 Index, transaction 찾는게 다름. 1. Indexin
pm-developer-justdoit.tistory.com
'Wecode - Project 3 (부트캠프) > Project 3 과정' 카테고리의 다른 글
Project 3 - 장바구니 구조화 ** (0) | 2023.10.12 |
---|---|
Project 3 - sprint 1주-3일차 : 기능정의요구서 1차 (0) | 2023.10.11 |
Project 3 - 주문 / 결제 flow (0) | 2023.10.11 |
Project 3: sprint 1주- 3일차 - standing meeting (0) | 2023.10.11 |
Project 3: sprint 1주- 2일 차: 프- 백 ERD modeling (0) | 2023.10.10 |