WordPress 구독에서 Discourse 구독으로 전환하기

Discourse Subscriptions에서 이어지는 토론입니다.

Discourse Subscriptions 플러그인이 성숙해짐에 따라, 기존 멤버십을 WooCommerce Subscriptions에서 Discourse Subscriptions로 이전하는 계획을 세우고자 합니다. 아래 과정은 WooCommerce뿐 아니라 다른 WP 멤버십/구독 플러그인에도 적용될 수 있어야 합니다.

이전 과정에서 다루어야 할 세 가지 요소가 있습니다:

  1. Stripe에서 구독 생성
  2. Stripe 구독을 Discourse의 사용자와 연결
  3. SSO를 역전시켜 Discourse를 SSO 제공자로, WordPress를 클라이언트로 설정

(1) Stripe에서 구독 생성

현재 기존 사용자에 대해 Stripe에서 구독을 생성하는 것은 수동 과정인 것으로 보입니다. 제 멤버들은 이미 Stripe에 등록되어 있으므로, 워크플로우는 다음과 같을 것입니다:

  • WooCommerce Subscriptions에서 모든 구독자 및 데이터를 내보내기
  • Stripe 고객 대시보드에서 사용자를 위한 구독을 생성하고, 첫 번째 결제 일정을 기존 WooCommerce 구독의 만료일과 일치하도록 설정하기.
  • WooCommerce에서 해당 사용자의 구독을 취소하기.
  • 모든 사용자를 처리한 후 WooCommerce Subscriptions를 비활성화하기.

Stripe의 마이그레이션 관련 정보.

(2) Stripe 구독을 Discourse의 사용자와 연결

Stripe에서 사용자의 구독이 설정된 후, Discourse에서 이 기존 사용자를 구독 플랜에 추가하는 방법은 무엇입니까? 이는 사용자가 구독을 취소할 수 있도록 하고, Stripe 결제가 실패할 경우 사용자를 그룹에서 제거하기 위해 필요합니다.

(3) SSO 역전: Discourse를 제공자로, WP를 클라이언트로 사용

이 부분은 여기에 설명되어 있습니다.


#2가 가능한지 파악하는 데 막혀 있습니다. 이 전환을 성공적으로 경험하신 분이 계시다면 의견을 듣고 싶습니다.

rake subscriptions:import rake 작업을 확장하거나, 사용자 구독을 가져와 연결하는 다른 작업을 추가할 수 있을까요?

4개의 좋아요

이 작업을 진행해 주셔서 정말 기쁩니다.

네, 이건 플러그인으로 도움을 줄 수 있는 부분이 아닙니다. 다만, 프로그래밍 기술이 있다면 Stripe API를 사용하여 일부 작업을 자동화할 수 있을 것입니다. 그렇지 않다면 수동 방식이 유일한 방법일 수 있습니다.

문제를 명확히 이해했는지 확인하고 싶습니다: Stripe에서 구독을 생성했고, Discourse에서 액세스를 백필(backfill)하고 싶은 것이 맞나요? 맞다면, rake 태스크를 통해 이를 수행할 수 있는 방법이 있을 것 같지만, 안타깝게도 제가 곧바로 처리할 수 있는 상황은 아닙니다. 다만, PR은 환영합니다 :smiley: DiscourseSubscriptions::Customer 레코드를 모든 적절한 정보와 함께 생성한 후, 사용자를 그룹에 추가해야 합니다.

콘솔에서 수동으로 실행하는 것도 가능합니다:

DiscourseSubscriptions::Customer.create(
    user_id: <user id>,
    customer_id: <stripe customer id>
    product_id: <stripe product id>
  )
4개의 좋아요

네, 맞습니다. (1)의 단계가 완료된 후, Stripe의 고객에게 새로운 구독이 할당될 때 이 작업이 이루어집니다.

(제 경우와 같이) WooCommerce Subscriptions가 멤버십 구매 시 Stripe에서 고객을 생성하기 때문에, 해당 고객은 이미 Stripe에 존재하며 카드 정보를 포함한 관련 데이터가 모두 준비되어 있습니다.

하나씩 처리하는 대신 CSV 파일을 입력할 수 있을까요?

기존의 멤버십 기반 커뮤니티를 가진 사람들에게는 이것이 큰 장벽이 될 것 같아서, 결국 신규 커뮤니티에서만 이를 도입하게 될 것으로 보입니다.

2개의 좋아요

레이크(rake) 태스크를 확장하는 작업을 내 목록에 추가할 건데, 전에 말했듯이 아직 처리해야 할 백로그가 꽤 많거든요!

네, 가능합니다. Ruby는 CSV 파일을 읽어들이고 그 내용을 반복할 수 있으므로, 완전히 실현 가능한 방법입니다.

2개의 좋아요

완벽합니다 - 저스틴, 감사합니다. 이해했고, 앞으로의 발전이 기대됩니다. 어쨌든 수작업 단계가 많이 필요할 것 같아서 겨울 프로젝트로 계획하고 있습니다.

2개의 좋아요

정말 축하드립니다, 저스틴! 대단한 성과입니다! 어제부터 직접 사용해 보고 있는데, 본격적으로 활용하게 될 날이 기다려집니다. 또한 WooCommerce 같은 서비스에서 이사로 오는 사람들을 도울 방법도 찾아볼 생각입니다. 현재로서는 이게 (하하!) ‘단순한’ rake 태스크가 될지, 아니면 각 작업이 전부 고유한 형태의 포럼 이주처럼 진행될지 명확하지 않습니다. (후자일 가능성이 높다고 예상합니다.)

4개의 좋아요

정말 고마워요, 제이 :hugs:

핵심은 Stripe에서 고객 정보를 플러그인의 Customer 테이블로 가져와서 매칭하는 거예요. 그 이후에는 대부분 그룹 멤버십을 추가하는 작업이죠. 하지만 매번 상황이 다르다는 점에서는 아마도 맞을 것 같아요.

3개의 좋아요

처음에는 Stripe에 이메일 주소가 있는 것처럼 보이지만, 트릭은 Discourse에서 다른 이메일 주소를 사용한다는 점입니다. . . .

4개의 좋아요

이메일 주소 외에도 Stripe와 WooCommerce Subscriptions는 고객 ID(cus_ABCdefxyz), 카드 ID(src_1234ABxyzasdf), 거래 ID(ch_0123ABCDefgh)를 공유합니다.

기억이 맞다면 PMPro도 동일한 정보를 공유하는 것 같습니다.

제 생각에는 두 앱에서 테이블을 내보낸 후 스프레드시트에서 일치하는지 확인하고, 그 CSV 파일을 기준으로 사용하는 것이 좋겠습니다.

3개의 좋아요

결국 잘 해결되었는지 궁금합니다. 저는 MemberPress에서 다른 서비스로 전환하는 고객을 돕고 있는데, 비슷한 작업을 해야 할 것 같습니다. 비슷한 시도를 해보신 분들의 경험을 듣고 싶습니다.

1개의 좋아요

제 프로젝트는 아직 “할 일” 단계에 머물러 있습니다. 다른 프로젝트들이 끼어들어서 우선순위가 높아지는 것 같아요. @pfaffman 님이 조언을 해 주실 수 있을 것 같습니다.

2개의 좋아요