결제 대행사 중단 후 미결제 우커머스 주문 복구 자동화 시스템 구축 사례
며칠 전, 저의 결제 대행사인 u/stripe가 갑자기 계정을 중단시키고 저를 MATCH 목록에 올렸습니다.
이는 스트라이프 결제, 카드 결제, 그리고 저의 우커머스 스토어에서의 체크아웃 결제가 하룻밤 사이에 불가능해졌음을 의미했습니다.
주문은 계속 들어왔지만, 고객들이 실제로 결제를 완료할 방법이 없었습니다.
모든 고객에게 일일이 송장을 보내는 이메일을 보내는 수동적인 방식(이는 순식간에 혼란으로 변했습니다) 대신, 저는 이 모든 것을 처리할 작은 자동화 시스템을 구축하기로 결정했습니다.
그래서 저는 우커머스용 파이썬 기반 미결제 주문 복구 시스템을 만들었습니다.
**자동화 기능**
이 자동화 시스템은 우커머스를 모니터링하고 미결제 주문을 자동으로 처리합니다.
**작동 방식:**
* 매시간 자동으로 실행됩니다.
* 우커머스 REST API를 통해 미결제 주문을 가져옵니다.
* 고객에게 즉시 송장 이메일을 보냅니다.
* 미결제 상태일 경우 후속 알림을 보냅니다.
**알림 일정:**
* 최초 송장 발송
* 24시간 후 알림
* 48시간 후 알림
* 72시간 후 최종 알림
이후에도 주문이 미결제 상태로 남아 있으면, '포기된 주문'으로 표시됩니다.
**송장의 결제 옵션**
더 이상 카드 결제를 처리할 수 없으므로, 이메일에는 여러 가지 대체 결제 옵션이 포함되어 있습니다:
* 페이팔
* 레볼루트
* 은행 송금 (고객 국가에 따라 USD / EUR / GBP)
* 인터랙 이체 (캐나다 전용)
고객들은 가장 편한 방법을 선택할 수 있습니다.
**기술 스택**
완전히 파이썬으로 구축되었습니다:
* 파이썬
* 우커머스 REST API
* 구글 시트 API (주문 추적)
* Brevo SMTP (이메일 발송)
* cron (매시간 실행)
**인프라 세부 사항:**
* .env 파일에 보안 정보 저장
* 전체 로깅 (automation.log, payment.log)
* 현재는 로컬에서 실행 중이지만 VPS로 이전할 계획입니다.
**주문 추적**
모든 주문은 전용 구글 시트에 기록되며, 다음을 추적합니다:
* 주문 ID
* 이메일 발송 여부
* 알림 단계
* 결제 상태
* 포기 상태
이를 통해 미결제 주문의 상황을 빠르게 확인할 수 있습니다.
**구축 이유**
카드 결제 처리를 잃으면 우커머스는 사실상 체크아웃이 아닌 카탈로그로 변합니다.
이 자동화는 이를 수동 송장 결제 워크플로우로 바꿔주었습니다.
놀랍게도 꽤 괜찮은 수의 주문을 복구하고 있습니다.
**궁금한 점**
다른 우커머스 스토어 운영자분들은 미결제/결제 대기 중인 주문을 많이 다루시나요?
만약 그렇다면:
* 고객에게 어떻게 후속 조치를 취하시나요?
* 수동 이메일?
* 플러그인?
* 아니면 다른 방법이 있으신가요?
코드를 보고 싶으신 분들을 위해 리포지토리는 댓글에 남기겠습니다.