cart and order

장바구니와 주문은 클라이언트 UI가 아니라 서버 검증 흐름이 핵심이다

버튼은 클라이언트 컴포넌트가 누르지만, 재고 확인, 수량 변경, 주문 확정, 캐시 재검증은 서버 액션에서 끝나야 한다.

1

click

AddToCartButton이 bookId와 quantity를 서버 액션에 넘긴다.

2

session

사용자 세션이 없으면 로그인으로 보낸다.

3

stock

Book을 조회해 재고와 존재 여부를 검증한다.

4

upsert

CartItem을 만들거나 수량을 증가시킨다.

5

refresh

cart와 books 경로를 재검증해 화면을 최신화한다.

동작서버에서 막아야 할 것화면에서 보여줄 것
장바구니 추가없는 책, 재고 초과, 미로그인로딩 상태와 오류 메시지
수량 변경0 이하 수량, 다른 사용자 항목 수정낙관적 UI 또는 pending 상태
주문 생성빈 장바구니, 가격/재고 불일치성공 페이지와 장바구니 초기화