I have a subscription system for my website, and I am using stripe. I have no idea how to deal with 2 plans : a free plan and a paid plan for my users.
I wanted to use a stripe plan, with a amount of 0€ but Stripe doesn’t accept it in Bubble, I can not change to this plan. So I have to cancel the subscription. The problem is that the user pay for the month when he is subscribing the plan, so if he clic on “free plan” he has to finish his month first !
is it possible to prevent downgrade and automatically switching it on the end of period ?
contrary to this, is it possible to immediately switch to pay plan when you come from free plan ?
The problem is to keep the paid plan “ON” until its end and migrate automatically to the new plan at the end of the period. And to deal with a user who click to free plan and prefer after few day to go back to paid plan (still running with the month paid…)
If you are using Stripe billing it takes care of a lot of this for you. Make sure to read their documentation thoroughly.
Make sure to save the customer information to your user, you can get a lot of info here, including their plan info. Refresh it when you want to check if their plan is still valid. That’s a simple way to check if they have paid and their plan is still active.
You can of course if you want, implement a system in your app which makes them go back to a free plan while still being on a paid plan. Just keep an extra data point in your database. Along with the stripe user data.
Although I don’t see the point of that, just force them to use the premium plan for the rest of the period, why would they ever want to go back early? Are you removing features that are in your free plan? Basically I don’t recommend doing that.
Exactly, the idea is a premium plan and the capacity to downgrade if needed because I want 3 plans with different capacity and I want to let people test the best plans for first month and if they want to keep it they pay. If they don’t want, the free plan is selected.
My need is to “push” the change of plan. Because I can not trigger the change with an only condition “if expiration date is > current date : change plan” because it will suppose the connexion of user to run that ?
My advice is just don’t over complicate it, just get your MVP out there and test it. Probably don’t need a bunch of plans and advanced picking phase where you switch plans every second.
MVP maybe but it is a basic function to let the user change a plan, no ? If you subscribe a 1 month plan and you make a mistake and you click on the basic plan, it is important not to loose all the functions you paid for !
Yeah I think you can make it so users can upgrade or switch their plan instantly, and if someone cancels their plan it expires after the billing cycle is over.
Thank you for the doc, I read it and I see my problem came from the difference of options between Bubble plugins (Stripe.js and STRIPE) and the Stripe manual.
You are waiting for options but you don’t see them after in Bubble, it is a little bit annoying… For example, for updating a subscription with the UPDATE SUBSCRIPTION worflow :
in stripe.js plugin : you have the prorate option available, but you don’t have the field to tell what is the targeted plan…
in stripe plugin : you have the targeted plan field, but not the prorate option.
Little bit disturbing, maybe the API connector is better to give you the full control instead of small piece of control somewhere. I think I will look to that direction.
Did you ever solve this? I am also using stripe.js plugin but I don’t see a field for the subscription id or plan id. I see lots of Subscription options in the plugin itself but they aren’t listed in bubble for some reason.