결제 대행사 문제로 안 들어온 주문 복구 자동화 툴을 파이썬으로 만들었어요
며칠 전에 쓰던 결제 대행사(u/stripe)에서 갑자기 계정을 정지시키더니 저를 MATCH 목록에 올려버렸어요.
이 말은 곧바로 스트라이프도 안 되고, 카드 결제도 안 되고, 제 우커머스 스토어에서 결제 자체가 안 된다는 뜻이었죠.
주문은 계속 들어오는데 고객들이 결제를 완료할 방법이 없는 거예요.
모든 고객에게 일일이 송장을 보내는 수작업(이건 금방 혼란에 빠지더라고요) 대신에, 저는 이 모든 걸 처리해 줄 작은 자동화 프로그램을 만들기로 결정했어요.
그래서 우커머스용 파이썬 기반 미결제 주문 복구 시스템을 만들게 된 거죠.
**이게 하는 일**
이 자동화 프로그램은 우커머스를 모니터링하면서 미결제 주문을 자동으로 처리해 줘요.
**작동 방식:**
* 매시간 자동으로 실행돼요
* 우커머스 REST API를 통해 미결제 주문을 가져와요
* 고객에게 즉시 송장 이메일을 보내요
* 여전히 미결제 상태라면 후속 알림을 보내요
**알림 주기:**
* 초기 송장 발송
* 24시간 후 알림
* 48시간 후 알림
* 72시간 최종 알림
그 후에도 주문이 미결제 상태라면 '포기된 주문'으로 표시돼요.
**송장에 포함되는 결제 옵션**
이제 카드 결제를 처리할 수 없으니, 이메일에는 여러 대체 결제 수단을 포함했어요.
* 페이팔
* 레볼루트
* 은행 송금 (고객 국가에 따라 USD / EUR / GBP)
* 인터랙 전자 송금 (캐나다 한정)
고객이 가장 편한 방법을 선택할 수 있도록 했어요.
**기술 스택**
전부 파이썬으로 만들었어요.
* 파이썬
* 우커머스 REST API
* 구글 시트 API (주문 추적용)
* Brevo SMTP (이메일 발송용)
* cron (매시간 실행)
**인프라 세부 정보**
* 설정값은 .env 파일에 저장
* 전체 로깅 기능 (automation.log, payment.log)
* 현재는 로컬에서 돌리고 있는데 VPS로 옮길 계획이에요
**주문 추적**
모든 주문은 전용 구글 시트에 기록돼서 아래 내용을 추적할 수 있어요.
* 주문 ID
* 이메일 발송 여부
* 알림 단계
* 결제 상태
* 포기 상태
그래서 미결제 주문 현황을 빠르게 파악할 수 있거든요.
**만든 이유**
카드 결제 기능이 없어지면 우커머스는 사실상 카탈로그 역할만 하게 되잖아요. 이 자동화 프로그램 덕분에 수동 송장 결제 방식으로 바꿀 수 있었던 거죠.
놀랍게도 꽤 괜찮은 수의 주문을 복구하고 있어요.
**한 가지 궁금한 점**
다른 우커머스 사용자분들은 미결제/보류 중인 주문을 많이 다루시나요?
그리고 만약 그렇다면, 고객들에게 어떻게 후속 조치를 취하는지 궁금해요.
* 수동 이메일로 하시나요?
* 플러그인을 사용하시나요?
* 아니면 다른 방법이 있으신가요?
코드 확인하고 싶으신 분들을 위해 리포지토리는 댓글에 남길게요!