Passaggio a Discourse Subscriptions da WordPress Subscriptions

Continuando la discussione da Discourse Subscriptions

Mentre il plugin Discourse Subscriptions matura, voglio iniziare a pianificare il trasferimento delle mie membresie esistenti da WooCommerce Subscriptions a Discourse Subscriptions. Il processo descritto di seguito dovrebbe essere applicabile anche ad altri plugin di abbonamento/membresia di WordPress, non solo a WooCommerce.

Ci sono tre elementi di questa transizione che devono essere affrontati:

  1. Creazione degli abbonamenti in Stripe
  2. Collegamento dell’abbonamento Stripe all’utente in Discourse
  3. Inversione dell’SSO in modo che Discourse diventi il provider SSO e WordPress il client

(1) Creazione degli abbonamenti in Stripe

Sembra che al momento la creazione degli abbonamenti in Stripe per utenti esistenti sia un processo manuale. I miei membri sono già presenti in Stripe, quindi il flusso di lavoro sarebbe più o meno questo:

  • Esportare tutti gli abbonati e i dati da WooCommerce Subscriptions
  • Creare un abbonamento in Stripe per un utente dal dashboard clienti di Stripe e programmare il primo pagamento in modo che corrisponda alla data di scadenza dell’abbonamento WooCommerce esistente.
  • Annullare l’abbonamento dell’utente su WooCommerce.
  • Disabilitare WooCommerce Subscriptions una volta completata l’operazione per tutti gli utenti.

Ulteriori informazioni da Stripe sulle migrazioni.

(2) Collegamento dell’abbonamento Stripe all’utente in Discourse

Una volta configurato l’utente con un abbonamento in Stripe, come possiamo aggiungere questo utente esistente a un piano di abbonamento in Discourse? Questo è necessario per consentire all’utente di annullare l’abbonamento e per rimuovere l’utente dal gruppo se il pagamento su Stripe fallisce.

(3) Inversione dell’SSO per utilizzare Discourse come provider e WP come client

Questa parte è descritta qui.


Sono bloccato nel capire se il punto #2 è realizzabile e sarei felice di sapere se qualcuno ha già effettuato questo passaggio.

È possibile estendere il task rake rake subscriptions:import o aggiungere un altro task per importare e collegare anche gli abbonamenti degli utenti?

4 Mi Piace

Sono entusiasta di vedere che stai facendo questo.

Sì, non è qualcosa che il plugin potrà gestire, tuttavia, se hai competenze di programmazione, potresti utilizzare l’API di Stripe per automatizzare parte di questo processo. Altrimenti, il metodo manuale potrebbe essere l’unica via percorribile.

Solo per essere sicuro di aver capito il tuo problema: hai già creato le sottoscrizioni in Stripe e vuoi retrocedere l’accesso su Discourse? È corretto?

Penso che dovrebbe esserci un modo per farlo tramite il task rake, ma purtroppo non sarò in grado di occuparmene a breve. Sarebbe comunque un pr-welcome :smiley: Dovresti creare un record DiscourseSubscriptions::Customer con tutte le informazioni appropriate e poi aggiungere l’utente al gruppo.

Potresti persino eseguirlo manualmente dalla console, anche:

DiscourseSubscriptions::Customer.create(
    user_id: <user id>,
    customer_id: <stripe customer id>,
    product_id: <stripe product id>
  )
4 Mi Piace

Sì. Questo avverrà dopo il completamento dei passaggi di cui al punto (1), quando al cliente in Stripe verrà assegnato un nuovo abbonamento.

Il cliente esiste già in Stripe (nel mio caso) perché WooCommerce Subscriptions crea un cliente in Stripe con un acquisto di abbonamento, quindi i dati pertinenti sono già presenti, incluse le informazioni sulla carta di credito.

È possibile fornire un file CSV invece di farlo uno alla volta?

Penso che questo rappresenti un grande ostacolo per chiunque abbia una comunità consolidata basata su abbonamenti; pertanto, vedremo solo nuove comunità adottarlo.

2 Mi Piace

Aggiungerò l’estensione del task rake alla mia lista, ma come ho già detto, ho ancora un backlog piuttosto lungo da smaltire!

Sì, potrebbe. Ruby può leggere un file CSV e iterare sui suoi contenuti, quindi sarebbe assolutamente possibile.

2 Mi Piace

Perfetto, grazie Justin. Capisco e non vedo l’ora di vedere gli sviluppi futuri. Sto pianificando questo come un progetto invernale, perché in ogni caso richiederebbe molti passaggi manuali.

2 Mi Piace

Congratulazioni, Justin! È un traguardo enorme! Ho iniziato a provarlo ieri e non vedo l’ora di iniziare a usarlo. Inizierò anche a valutare modi per aiutare nel processo di migrazione da piattaforme come WooCommerce. Al momento non è chiaro se si tratti di un semplice (eh sì!) task rake o se assomiglierà di più a una migrazione di forum in cui ogni lavoro è unico (mi aspetto che sarà quest’ultimo).

4 Mi Piace

Grazie mille, Jay :hugs:

La sfida sarà recuperare le informazioni dei clienti da Stripe e inserirle nella tabella Customer del plugin, assicurando la corretta corrispondenza. Da lì, si tratterà principalmente di aggiungere l’iscrizione ai gruppi. Ma hai probabilmente ragione: ogni caso sarà unico.

3 Mi Piace

A prima vista sembra che Stripe abbia un indirizzo email, quindi il trucco sarà che avranno un indirizzo email diverso in Discourse…

4 Mi Piace

Oltre all’indirizzo email, Stripe e WooCommerce Subscriptions condividono anche l’ID cliente: cus_ABCdefxyz, l’ID della carta: src_1234ABxyzasdf e l’ID della transazione: ch_0123ABCDefgh

Se non sbaglio, anche PMPro condivide gli stessi dati.

A mio avviso, la soluzione migliore è esportare una tabella da entrambe le applicazioni e verificare che corrispondano in un foglio di calcolo, per poi utilizzare quel file CSV come fonte.

3 Mi Piace

Sono curioso di sapere se questo ha funzionato. Sto cercando di aiutare un cliente a passare da MemberPress e sembra che dovrò fare qualcosa di simile. Mi piacerebbe imparare da chiunque abbia provato qualcosa di simile.

1 Mi Piace

Il mio è ancora in modalità “da fare”. Altri progetti sembrano intromettersi e avere la priorità. @pfaffman probabilmente ha qualche indicazione.

2 Mi Piace