kakasoo

커머스에서의 장바구니 금액 계산법 본문

프로그래밍/Backend

커머스에서의 장바구니 금액 계산법

카카수(kakasoo) 2022. 8. 27. 18:25
반응형

커머스마다 돈 계산하는 방법은 다 다르다.

다만, 모든 사이트에서 공통적으로 사용될 수 있도록 다이어그램을 하나 만들어봤다.

 

결제 금액 계산하는 법

 

장바구니 가격 계산

  1. 상품 가격 계산 ( 옵션과 선택 옵션의 가격과 수량 곱의 합 )
    1. 옵션 가격 계산
      1. 상품의 가격과 옵션 수량의 곱
    2. 선택 옵션 가격 계산
      1. 상품 가격과 선택 옵션 수량의 곱
  2. 배송비 책정
    1. 각 상품 당 배송비 책정
      1. 상품 정보나 배송지 정보가 누락된 경우 배송비 0원 ( 비정상적인 경우 )
      2. 도서산간지역인 경우 도서산간지역 배송비를 책정
        1. 도서지역 배송비보다 상품의 배송비가 큰 경우, 큰 쪽을 우선
          1. ex. 배송비가 40,000원인 경우 도서지역 배송비인 5,000원보다 크게 된다.
      3. 배송비가 무료인 경우 0원.
      4. 배송비가 유료인 경우, 상품의 배송비로 고정.
      5. 배송비가 ‘~이상 무료'인 경우, 기준 금액 미만에 상품의 배송비로 고정
        1. 기준 이상의 금액인 경우 배송비 0원
      6. 배송비가 ‘~개 이상 무료'인 경우 기준 갯수 미만에 상품의 배송비로 고정
        1. 기준 이상의 개수인 경우 배송비 0원
      7. 배송비가 수량 별 부과인 경우 기준 n개마다 상품의 배송비 부과
    2. 착불인 경우 배송비 0원으로 변경
  3. 묶음 배송 고려
    1. 묶음 배송의 상품 금액이 총합 0원인 경우 배송비도 0원이 되도록 수정
      1. 비정상적인 경우라 판단하여 0원으로 했는데, 실제로 존재 가능한가?
    2. 묶음 배송비 상태 판단
      1. 묶음으로 된 상품 중 배송비가 가장 큰 것을 기준으로 책정
      2. 묶음으로 된 상품 중 배송비가 가장 낮은 것을 기준으로 책정
      3. 묶음으로 된 상품들의 총합을 더해, ~원 이상인 경우 무료로 책정
    3. 묶음이 없는 상품일 경우
      1. 상품 1개만 담긴 하나의 묶음으로 취급하여 Max, MinCalc 구분 없이 책정
  4. 묶음의 상품 가격 총합과 묶음에 책정된 배송비를 합산

 

주문서 가격 계산

일부 미리 저장된 값을 호출한다.

장바구니와 요청서는, 담긴 시점에서도 가격이 바뀔 수 있어서 미리 저장해두진 않지만,

주문서는 돈을 받은 시점이라 미리 계산해두고 호출만 하면 되기 때문에 처음부터 다시 계산하지는 않는다.

단, 취소 시에는 돈 계산을 처음부터 다시 진행한다.

취소

취소 시에는, 취소된 상품이 없다고 가정하고 처음부터 돈 계산을 다시 해본 다음,

취소 전 주문서에서 상품이 없다 가정된 상태로 계산된 주문서의 가격 차이를 구한다.

이 가격 차이 만큼이 취소로 인해 우리가 돌려줄 돈이 된다.

이 가격 차이가, 상품의 가격보다 적다면,

가격 차이 - 상품의 가격 = 차감비 라는 식이 성립된다.

이 차감비는 배송의 무료 조건이 깨진 경우에 발생한다.

반응형