opencloset / OpenCloset-Share-Web

OpenCloset::Share::Web
https://share.theopencloset.net
Artistic License 2.0
2 stars 2 forks source link

열린옷장 대여쿠폰으로 택배대여 결제시 오류 #310

Closed pingpongworks closed 1 year ago

pingpongworks commented 2 years ago

열린옷장 대여쿠폰으로 택배대여 주문이 불가능한 상황입니다. 결제단계에서 쿠폰번호를 입력한 후 입력을 누르고 난 후 쿠폰을 사용합니다가 눌려야 하는데 눌러지지가 않습니다. 다른 지자체쿠폰은 문제가 없는데 열린옷장 쿠폰만 이런 현상이 있어서 문제 해결 부탁드립니다.

스크린샷 2021-11-04 오후 10 06 01
aanoaa commented 2 years ago

내부적으로는 500 에러를 응답하고 있습니다.

{
  "error": "Unknown coupon type: price"
}

쿠폰 종류로

가 있는데,

가 쓰여서 입니다. default 가 price 가 맞긴합니다.

여태까지 suit 타입 쿠폰만 쓰여서 착각해서 default<->price 로 섞여서 설명했거나 사용된 것 같습니다.

또한 에러가 발생했을때에 에러 메세지가 표시 되었다면 추적하기가 더 수월했을텐데 에러처리 없이 성공 케이스만을 고려하고 있습니다.

쿠폰 타입이 price 로 쓰였을때의 문제가 없는지를 검토해보고, 클라이언트에서의 에러가 발생했을때 표시하도록 패치해야 합니다.

aanoaa commented 2 years ago

쿠폰 타입 pricedefault 로 변경해야 합니다. 사용된 라이브러리에서 쿠폰 타입을 체크할때에 default 라는 문자열로 체크하고 있습니다.

if ( $type eq 'default' ) {
  ...
}
elsif ( $type =~ m/(rate|suit)/ ) {
  ...
}

이는 일괄 쿼리로 해결할 수 있습니다. 클라이언트에서 에러메세지를 나타낼 수 있도록 작업한 후에 일괄 쿼리를 작성해서 수행하겠습니다.

@keedi 다음부터 쿠폰을 발행할때에 price 쿠폰의 type 을 default 로 해주셔야 합니다.

aanoaa commented 2 years ago

클라이언트에서 에러메세지를 나타낼 수 있도록 작업한 후에 일괄 쿼리를 작성해서 수행하겠습니다.

311 에서 진행합니다.

aanoaa commented 2 years ago

아래 쿼리로 price 타입의 쿠폰을 default 타입의 쿠폰으로 변경해주고 난 이후에는 쿠폰을 사용할 수 있었습니다.

UPDATE coupon SET `type` = 'default' WHERE `type` = 'price';

이후에 발생한 문제. 자켓+셔츠+구두 해서 25,000 + 배송비 3,000 에 대해서 30,000 원 default 쿠폰을 적용했습니다. 합계금액은 28,000 원 이지만 현재 share 시스템에서는 배송비가 결제되지 않아서 결제대기 상태로 남아있습니다.

사용자입장에서는 이해되지 않는 상황일 수 있습니다. 또한 얼마를 결제해야 하는지에 대한 안내도 없습니다.

기획 초기에 테스트했던 쿠폰의 타입은 suit 타입이었습니다. 지금은 default 타입의 쿠폰이고 이에 대한 테스트가 충분하지 않습니다.

aanoaa commented 2 years ago

이러한 문제들이 해결되고 난 이후에 쿠폰이 사용되는 것이 좋겠습니다. 일단은 price 쿠폰을 그대로 두겠습니다.

aanoaa commented 2 years ago

event 를 생성하는 스크립트에 coupon-type 에 price 라고 명시되어 있어서 혼란이 있었습니다.

pingpongworks commented 2 years ago

열린옷장 쿠폰으로 택배대여 주문을 하는 경우 다음과 같은 사항이 고려되어 쿠폰 결제가 되었으면 합니다.

  1. 기본적으로 열린옷장 쿠폰은 현금처럼 사용할 수 있도록 함
  2. 배송비, 연장비 포함해서 총액에서 쿠폰 금액만큼 할인이 적용되고 잔액을 결제할 수 있도록 함
  3. 3만원권을 사용하는 경우 벨트는 무조건 0원 처리함
  4. 배송비, 연장비 포함해서 총액에서 쿠폰금액 할인 후 환불금액이 총액의 60% 이상 남는 경우 계좌번호 입력란이 보이도록 함 잔액은 자동환불되지 않습니다. 계좌번호를 남겨주시면 의류 발송시 입금해드립니다. 안내 문구 노출
keedi commented 2 years ago

@keedi 다음부터 쿠폰을 발행할때에 price 쿠폰의 type 을 default 로 해주셔야 합니다.

이거 default 가 있는 것은 알고 있었는데, default와 price가 동일하다고 보기 힘들어서 price로 한정 짓고 있습니다. default 쿠폰에 대한 정의를 지금까지 한적이 없었으니까요. 기존 쿠폰을 default 로 바꿀게 아니라 price 쿠폰에 대한 로직이 추가되어야할 것 같습니다. 물론 그것이 default 와 로직이 동일한 것은 상관없습니다.

aanoaa commented 2 years ago

price 타입의 쿠폰이 없었는데 사용되었습니다. (사용 및 발행된 적이 없어서 default 타입의 쿠폰도 없었습니다.)

app 과 lib 에서는 default 로 고려되어 있었는데, 쿠폰 발행 스크립트에서는 price 로 발행했습니다. (홀리..)

기존 app 과 lib 에서 바꿀 것이냐 vs 발행하는 쿠폰을 바꿀 것이냐 인데, 발행하는 스크립트를 변경하는 것이 더 간단합니다. (둘 다 간단하다)

기능에 대한 요구사항을 먼저 해결하고 쿠폰의 타입문제는 이후에 편의성을 고려해서 작업하겠습니다.

aanoaa commented 2 years ago

3만원권을 사용하는 경우 벨트 는 무조건 0원 처리함

30,000 이 특별한 경우인가요? 35,000 일때는 어떻게 하나요?

pingpongworks commented 2 years ago

3만원권을 사용하면 자켓, 바지, 셔츠, 구두, 타이, 벨트까지 32,000원 품목을 30,000원에 대여할 수 있습니다. 그래서 3만원권 사용시 밸트를 0원 처리하는 로직이 팔요합니다.

3만5천원인 경우에는 3만원권+ 구두 or 셔츠 금액 5천원일거라서 마찬가지로 벨트는 0원이어야합니다. 아니면 결제금액이 3만7천원이 나오게 됩니다.

pingpongworks commented 2 years ago

열린옷장 쿠폰의 택배사이트 사용이 시급합니다. 오프라인매장에서만 사용가능하다고 고지를 한 후에 판매가 전혀 되지 않고 있습니다. 위에서 로직 추가가 필요하다고 하셨는데 어떤 로직을 정리하면 될까요? 필요한 부분이 있다면 정리하겠습니다.

aanoaa commented 2 years ago
aanoaa commented 2 years ago
pingpongworks commented 2 years ago
  • 결제 후에 취소 하고자 할때의 환불정책

    • 현재는 가상계좌의 경우에만 자동으로 환불가능
    • 쿠폰의 경우 취소하면 운영자가 입금해줘야 함
    • 쿠폰가격의 60% 이상 사용한 경우에는 환불계좌를 입력받지 않음

현재 택배대여는 본인이 주문을 취소할 경우 카드, 가상계좌 모두 아임포트를 통해서 자동 환불됩니다. 열린옷장 쿠폰은 결제 자체가 홈페이지 쇼핑몰에서 이루어지기 때문에 어차피 택배대여 사이트 내에서 자동환불은 불가능합니다.

aanoaa commented 2 years ago

쿠폰가격의 60% 미만으로 사용한 경우에는 어떻게 되나요?

pingpongworks commented 2 years ago

쿠폰가격의 60% 미만으로 사용한 경우에는 어떻게 되나요?

60% 이하로 사용하면 잔액 환불되지않습니다. 구매자가 사용기한 전에 쿠폰을 환불받을 수는 있지만 선물받은 쿠폰을 현금으로 돌려받을 수 없습니다. 60% 이상 사용해야 잔액 환불이 가능합니다. 일반적으로 모든 쿠폰이 그렇습니다.

https://theopencloset.net/shop 쿠폰 이용약관을 쿠폰 구매나 발송시 참고하도록 하고 있습니다.

pingpongworks commented 1 year ago
열린옷장 쿠폰_택배대여 오류

열린옷장을 택배대여에 사용하면 이런 오류가 뜹니다. 복구작업시 참고가 될까 해서 남깁니다.