Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update draftEnterpriseInvoice mutation to include the option for not touching Stripe #9731

Open
1 task
tianrunhe opened this issue May 7, 2024 · 3 comments

Comments

@tianrunhe
Copy link
Contributor

We have a couple of use cases where we need to upgrade an org to enterprise but we do not create new Stripe subscriptions:

  • PPMI where the entire company is within an environment hence all the orgs within that environment should be on the enterprise tier but we only need 1 Stripe customer/subscription
  • Free-trial use cases for companies that are window shopping

Success criteria:

  • Parabol admin can run the draftEnterpriseInvoice mutation with an optional boolean argument (default to true) createStripeSubscription. When sets to false, the mutation upgrades the org to enterprise without creating subscription in Stripe

Estimated effort: X points (see CONTRIBUTING.md)

@mattkrick
Copy link
Member

we'll probably need to change the name here because if draftEnterpriseInvoice doesn't draft an invoice, we're gonna confuse people!

PPMI where the entire company is within an environment hence all the orgs within that environment should be on the enterprise tier but we only need 1 Stripe customer/subscription

i know this is a problem for legacy PPMIs where we don't have access to the DB to update all teams/orgs to enterprise. Moving forward, we set IS_ENTERPRISE=true in the env & this problem is solved, right?

Free-trial use cases for companies that are window shopping

I see there's some logic for trialStartDate, but I don't see anything for trialEndDate? With the goal of not creating a bunch of spaghetti logic, could we lay out the business logic for trials for teams & enterprises? If we have a trialEndDate we can store it on the stripe subscription object instead of in our system. That way, trials would roll over into paid subscriptions automatically & we wouldn't need as much human intervention.

@tianrunhe
Copy link
Contributor Author

we'll probably need to change the name here because if draftEnterpriseInvoice

I agree!

we set IS_ENTERPRISE=true in the env & this problem is solved, right?

I think so! Yeah moving forward this should be the preferred solution

That way, trials would roll over into paid subscriptions automatically & we wouldn't need as much human intervention.

I suggested this to sales before but it does not look like a popular option, especially for some gov users (e.g., this thread🔒). I guess people don't like having a deadline to pay/sign the contract.

@mattkrick
Copy link
Member

talked to Rafa about legacy PPMIs & we can now just directly hit the DB to upgrade them, so the only use case we have to worry about is free trials.

The usecase in the chat is a good one! Seems like it's just for pubsec, but now that we're in Platform 1 I'm not sure if we'll ever have to support that since they can just use Parabol in P1. We'll need to confirm this to make sure.

Is there a usecase we have for private companies? Providing a way to upgrade that isn't tied to a payment method & doesn't have an expiration feels like a dangerous thing to add to the API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

2 participants