Suscripciones: Permitir a los usuarios comprar productos de pago único varias veces

Así que he creado un producto “CreateServer” que (algún día) permitirá a alguien comprar una instalación de Discourse. Esto los añade al grupo CreateServer. Cuando alguien crea un servidor, se les elimina del grupo. Eso está bien.

Pero si alguien quiere obtener un segundo servidor, no puede porque ya ha comprado el producto. ¿Existe alguna forma de permitir la compra del mismo producto varias veces? O, tal vez, mi solución es que el plugin modifique el registro indicando que han comprado la suscripción, y así puedan comprar otra. Ya los está eliminando del grupo CreateServer después de realizar la instalación…

Algo como:

product = DiscourseSubscriptions::Customer.find_by(user_id: 2, product_id: create_server_id)
product.product_id = 'instalación cumplida'
product.save

Eso permitiría al usuario comprarlo de nuevo. ¿Crees que podría romper algo más?

3 Me gusta

Si estás utilizando pagos únicos, cambiar el ID del producto no debería romper nada, excepto la capacidad de ver el historial de pagos.

Sin embargo, estaría abierto a agregar la capacidad de que los usuarios compren productos de pago único más de una vez.

5 Me gusta

¿Qué tan difícil es eso? Me sorprendió un poco. ¿Acaso alguien puede, por ejemplo, comprar una nueva suscripción para una que expiró anteriormente?

3 Me gusta

Una compra única repetida sería genial. Esto minimizaría en cierta medida la necesidad de la actualmente inexistente Subscriptions: Pay What You Want Support. O quizás haya una oportunidad para fusionar esas dos características? :slight_smile:

2 Me gusta

Jay, ¿esto también aplica si la primera suscripción se cancela y la persona vuelve más tarde para volver a comprar lo mismo? Es decir, si la suscripción mensual se canceló después de un ciclo y el cliente regresa el próximo año.

1 me gusta

No: una vez que la suscripción se cancela y es procesada por el sistema de Suscripciones, pueden volver y comprarla. Si aún tienen una suscripción activa (aunque la facturación recurrente pueda estar cancelada), no podrán hacerlo.

3 Me gusta

Entonces, ¿podrían las compras únicas marcarse automáticamente como inactivas?

1 me gusta

Las compras únicas son un mecanismo completamente diferente en Stripe, así que tendré que echar un vistazo. Tengo una idea, pero la mayor parte de mi trabajo con plugins está en espera hasta después del Año Nuevo.

5 Me gusta

¡Ah! Eso lo explica. No he tenido tiempo de revisarlo con detenimiento, ya que mi plugin tiene un millón de otras piezas en movimiento que tampoco entiendo.

¡No quiero tener nada que ver con que eso no sea cierto! :christmas_tree: :tada:

5 Me gusta

Hola Justin. Estoy revisando esto de nuevo. En la práctica, pocos clientes han comprado múltiples instalaciones, así que decidí no preocuparme por las compras múltiples. Pero luego me di cuenta de que probar si la compra de una instalación de servidor es difícil si un usuario solo puede hacerlo una vez…

Parece que serialize_product es lo que determina si un producto está suscrito, lo cual a su vez determina si puedes comprarlo.

Supongo que lo que necesita ocurrir aquí es que subscribed no se establezca en true si el producto que han comprado es de un solo uso. No me queda claro de inmediato cómo hacer eso, ya que parece que esa información está al menos a una unión de tablas de distancia (o quizás a otra solicitud de distancia).

Lo que he hecho por ahora es modificar los plantillas para que siempre muestren el enlace/botón de pago (algo como {{#if product.subscribed_JP_disabled}}), y eso me está permitiendo realizar múltiples compras, por lo que vale la pena.

6 Me gusta

Genial, está en mi lista, pero primero tengo algunas otras funciones de mayor demanda en camino, concretamente cupones.

5 Me gusta

¡Hola!

También estoy muy interesado en esta función. ¡Espero la actualización! :wink:

3 Me gusta

¡Gracias por tu voto y feliz cumpleaños de la comunidad!

Está en mi lista para el futuro cercano :slight_smile:

6 Me gusta

El PR está disponible aquí:

7 Me gusta

¡Perdón por el retraso, pero esto ya está fusionado!

5 Me gusta