So I’ve created a “CreateServer” product that will (one day) let someone purchase a Discourse installation. It adds them to the CreateServer group. When someone creates a server, it removes them from the group. That’s all good.
But if someone wants to get a second server, they can’t because they have already purchased the product. Is there a way to allow purchasing the same product multiple times? Or, perhaps my solution is to have the plugin modify the record that they purchased the subscription, and then they can buy another. It’s already removing them from the CreateServer group after they do the installation. . .
Repeated one-time buy would be great… This would kind of minimise the need for currently non-existing Subscriptions: Pay What You Want Support … Or maybe there is opportunity to merge those two features?
Jay, is this also the case if the first subscription is cancelled and they come back later to re-purchase the same thing? I.e. monthly subscription was cancelled after one cycle and the customer comes back next year.
No - once the subscription is cancelled and processed by Subscriptions, they can come back and purchase it. If they have an active subscription yet (though recurring billing may be cancelled), they will not be able to do so.
One-time purchases are an entirely different mechanism in Stripe, so I’ll have to take a look. I do have an idea, but most of my plugin work is put on hold until after the new year.
Hey Justin. I’m poking at this again. In practice, few customers have purchased multiple installs, so I decided to not worry about multiple purchases. But then I realized that testing whether purchasing a server installation is difficult if a user can do it only once. . .
So it appears that serialize_product is what determines if a product is subscribed, which determines whether you can purchase it.
I guess what needs to happen here is to have subscribed not get set to true of the product that they have purchased is a one-time product? It’s not immediately clear to me how to do that, as it looks like that information is at least a table-join away (or maybe another request away?).
What I’ve done for now is hacked the templates to just always show the payment link/button (something like {{#if product.subscribed_JP_disabled}}), and that’s allowing me to make multiple purchases, for what it’s worth.