Assinaturas: Permitir que usuários comprem produtos únicos múltiplas vezes

Então, criei um produto “CreateServer” que (um dia) permitirá que alguém compre uma instalação do Discourse. Isso os adiciona ao grupo CreateServer. Quando alguém cria um servidor, eles são removidos do grupo. Tudo isso está bom.

Mas, se alguém quiser obter um segundo servidor, não poderá, pois já comprou o produto. Existe alguma maneira de permitir a compra do mesmo produto várias vezes? Ou, talvez, minha solução seja fazer com que o plugin modifique o registro indicando que a assinatura foi comprada, e então eles possam comprar outra. O plugin já os remove do grupo CreateServer após a instalação…

Algo assim:

product = DiscourseSubscriptions::Customer.find_by(user_id: 2, product_id: create_server_id)
product.product_id = 'install fulfilled'
product.save

Isso permitirá que o usuário compre novamente. Você acha que isso quebrará algo mais?

3 curtidas

Se você estiver usando pagamentos únicos, alterar o ID do produto não deve quebrar nada, exceto a capacidade de ver o histórico de pagamentos.

Estaria aberto a adicionar a possibilidade de os usuários comprarem produtos de compra única mais de uma vez.

5 curtidas

Quão difícil é isso? Fiquei um pouco surpreso com isso. Se alguém puder, digamos, comprar uma nova assinatura para uma que expirou anteriormente?

3 curtidas

Uma compra única repetida seria ótima… Isso minimizaria a necessidade de Subscriptions: Pay What You Want Support, que atualmente não existe. Ou talvez haja uma oportunidade de mesclar essas duas funcionalidades? :slight_smile:

2 curtidas

Jay, isso também é válido se a primeira assinatura for cancelada e a pessoa retornar mais tarde para comprar o mesmo item? Ou seja, a assinatura mensal foi cancelada após um ciclo e o cliente retorna no ano seguinte.

1 curtida

Não — uma vez que a assinatura seja cancelada e processada pelo sistema de Assinaturas, eles poderão retornar e comprá-la novamente. Se ainda houver uma assinatura ativa (embora a cobrança recorrente possa estar cancelada), eles não poderão fazê-lo.

3 curtidas

Então, as compras únicas poderiam simplesmente ser marcadas automaticamente como inativas?

1 curtida

Compras únicas são um mecanismo completamente diferente no Stripe, então terei que dar uma olhada. Tenho uma ideia, mas a maior parte do meu trabalho com plugins está em espera até depois do Ano Novo.

5 curtidas

Ah! Isso explica tudo. Não tive tempo de analisar com cuidado, pois meu plugin tem uma infinidade de outras peças móveis que eu também não entendo.

Não quero ter nada a ver com isso não sendo verdade! :christmas_tree: :tada:

5 curtidas

Olá, Justin. Estou voltando a mexer nisso. Na prática, poucos clientes compraram múltiplas instalações, então decidi não me preocupar com compras múltiplas. Mas então percebi que testar a compra de uma instalação de servidor é difícil se o usuário puder fazê-la apenas uma vez…

Parece que serialize_product é o que determina se um produto é uma assinatura, o que por sua vez define se você pode comprá-lo.

Acho que o que precisa acontecer aqui é fazer com que subscribed não seja definido como true para o produto que o usuário já comprou, caso seja um produto de uso único? Não está imediatamente claro para mim como fazer isso, pois parece que essa informação está, no mínimo, a uma junção de tabela de distância (ou talvez a outra requisição de distância?).

O que fiz por enquanto foi hackear os templates para sempre mostrar o link/botão de pagamento (algo como {{#if product.subscribed_JP_disabled}}), e isso está me permitindo fazer múltiplas compras, pelo que vale.

6 curtidas

Legal — está na minha lista, mas tenho algumas outras funcionalidades de maior demanda planejadas primeiro, nomeadamente cupons.

5 curtidas

Olá,

Eu também estou muito interessado nessa funcionalidade. Aguardo a atualização! :wink:

3 curtidas

Obrigado pelo seu voto e feliz aniversário de criação!

Está na minha lista para o futuro próximo :slight_smile:

6 curtidas

O PR está pronto aqui:

7 curtidas

Desculpe pelo atraso, mas isso já foi mesclado!

5 curtidas