주문관리 의사코드

김소연·2026년 4월 23일

1. 주문 생성 의사코드

  • 검증 → 계산 → 재고 차감 → 상품 상태 변경 → 주문 저장

    주문생성(고객ID, 상품ID, 수량, 로그인관리자ID) {
    
        고객 = 고객ID로 고객 조회
        만약 고객이 없으면
            예외 발생 "존재하지 않는 고객입니다."
    
        상품 = 상품ID로 상품 조회
        만약 상품이 없으면
            예외 발생 "존재하지 않는 상품입니다."
    
        만약 수량 < 1 이면
            예외 발생 "수량은 1개 이상이어야 합니다."
    
        만약 상품상태 == 단종 이면
            예외 발생 "단종된 상품은 주문할 수 없습니다."
    
        만약 상품상태 == 품절 이면
            예외 발생 "품절된 상품은 주문할 수 없습니다."
    
        만약 상품재고 < 수량 이면
            예외 발생 "상품 재고가 부족합니다."
    
        주문번호 = 주문번호 생성
        주문금액 = 상품가격 * 수량
        주문상태 = 준비중
        주문일 = 현재시간
    
        상품재고 = 상품재고 - 수량
    
        만약 상품상태 != 단종 이면
            만약 상품재고 <= 0 이면
                상품상태 = 품절
            아니면
                상품상태 = 판매중
    
        주문 = 새 주문 생성(
            주문번호,
            고객,
            상품,
            수량,
            주문금액,
            주문상태,
            주문일,
            로그인관리자
        )
    
        주문 저장
    
        응답 반환
    }

2. 주문 취소 의사코드

  • 검증 → 주문 취소 처리 → 재고 복구 → 상품 상태 변경

    주문취소(주문ID, 취소사유) {
    
        주문 = 주문ID로 주문 조회
        만약 주문이 없으면
            예외 발생 "존재하지 않는 주문입니다."
    
        만약 취소사유가 비어있으면
            예외 발생 "취소 사유는 필수입니다."
    
        만약 주문상태 != 준비중 이면
            예외 발생 "준비중 상태의 주문만 취소할 수 있습니다."
    
        상품 = 주문에 연결된 상품
    
        주문상태 = 취소됨
        주문취소사유 = 취소사유
        주문취소일 = 현재시간
    
        상품재고 = 상품재고 + 주문수량
    
        만약 상품상태 != 단종 이면
            만약 상품재고 <= 0 이면
                상품상태 = 품절
            아니면
                상품상태 = 판매중
    
        변경 내용 저장
    
        응답 반환
    }

3. 주문 상태 변경 의사코드

  • 현재 상태에서 다음 상태로 갈 수 있는지 확인

    주문상태변경(주문ID, 변경할상태) {
    
        주문 = 주문ID로 주문 조회
        만약 주문이 없으면
            예외 발생 "존재하지 않는 주문입니다."
    
        현재상태 = 주문상태
    
        만약 현재상태 == 취소됨 이면
            예외 발생 "취소된 주문은 상태를 변경할 수 없습니다."
    
        만약 현재상태 == 배송완료 이면
            예외 발생 "배송완료된 주문은 상태를 변경할 수 없습니다."
    
        만약 현재상태 == 준비중 AND 변경할상태 == 배송중 이면
            주문상태 = 배송중
    
        아니면 만약 현재상태 == 배송중 AND 변경할상태 == 배송완료 이면
            주문상태 = 배송완료
    
        아니면
            예외 발생 "잘못된 주문 상태 변경입니다."
    
        변경 내용 저장
    
        응답 반환
    }

0개의 댓글