-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[UBP] Disable subscriptions to old plans after UBP has been enabled #15092
Conversation
started the job as gitpod-build-jx-disable-chargebee.1 because the annotations in the pull request description changed |
5c2609a
to
3f02783
Compare
Hint for reviewers: Reviewing while ignoring indentation changes is easier -- https://github.com/gitpod-io/gitpod/pull/15092/files?w=1 |
After UBP GA do we actually want to allow any kind of plan changes other than cancellation? |
This PR disables all individual Plan actions when you're on UBP (i.e. Downgrade, Upgrade). You can still cancel via the Billing interface as usual. I don't think the Billing interface allows any other change than cancel. EDIT: Ah, I guess you're asking whether we could do this (disable all plan changes) earlier, i.e. when the UBP flag is turned on, and not wait for when you've successfully cancelled all Chargebee plans? That would also make sense to me. 👍 EDIT 2: Done, let's try that. |
3f02783
to
25c8bc8
Compare
Hmm, my new change doesn't do exactly what I expected. Back to draft. |
a746f04
to
a6793f7
Compare
Alright -- Chargebee upgrades in To test:
As requested in the issue, I've also added a blue infobox at the top of both pages when usage-based is enabled:
|
I tried to downgrade to free after upgrading the UBP while on a personal paid plan. Before (hovering over downgrade to free) |
Many thanks for the feedback @jldec! The billing link part had me quite worried (should not happen and would break the cancellation UX), but if it came back I agree that it might be some delay or React state bug. In any case, a simple page reload should fix this. Also, I agree that the Free card action should not get disabled, since downgrading to free is similar to cancelling from 'billing'. Will adjust this. EDIT: Done ✅ |
a6793f7
to
75f90ad
Compare
@jankeromnes, when I first opened the team plans page, https://jx-disable-chargebee.preview.gitpod-dev.com/teams in the preview env, I got the dialog to create the new plan, and did not see the blue UBP enabled banner. Refreshing the page, then disabled the green button, and showed the banner The page now appears to be stuck on "payment in progress". I believe this is due my script blocker preventing the initial Chargebee interaction to create the 2nd plan (it flashed briefly but did not show any error). Normal browsers would have succeeded, and I expect the "payment in progress" message to time out eventually. |
Thanks! Then I guess this PR behaves mostly as expected. The fact that a refresh is needed is likely due to a bug in how the dashboard-side feature flags are implemented (they don't seem to be using a "React dispatch", and they don't seem to be eagerly updated in App.tsx or Menu.tsx). In any case, this problem is out-of-scope for this PR. I guess the most important thing is that, once you have UBP enabled, eventually it's no longer possible to upgrade to new Chargebee plans. This seems to be the case.
It should automatically time out in every browser after a few minutes. If not, that's a but in the Teams page (which is also out of scope here). |
We should say that the current plan is deprecated and will be cancelled by End of March 2023. The disabled cards are still showing a hover effect that suggests they are clickable. Maybe we should not show those cards at all? Just have a big 'Cancel' button. |
Back to Draft to implement the reword / redesign suggestion. |
@jankeromnes Note that we already limit API interactions based on BillingMode. I did not read the whole context on this PR, but wanted to mentioning it because it make sense to keep that in sync with what we do in the UI. |
75f90ad
to
ea611f2
Compare
@svenefftinge Okay, here is my counter-proposal:
I've removed the hover effect by adding the On the other hand, while I like your more radical proposal of only having a big 'Cancel' button (or, even better, having a new UI that takes users through a single flow from Chargebee cancellation to Stripe re-upgrade), I don't think it's trivial to get the UI right in a short time. It might also be confusing to significantly change the Plans page layout, making it unrecognizable and confusing. Thus, I'd argue that we merge this PR as is now, and figure out whether a better disabled UI is needed or desirable after GA. 😇 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a comment on the copy used in the alert. 🚨
<Alert type="message" className="mb-4"> | ||
Your account has been enabled for usage-based billing. Discover faster workspace classes and | ||
only pay for what you actually use.{" "} | ||
<a className="gp-link" href="https://www.gitpod.io/docs/configure/billing/usage-based-billing"> | ||
Learn more | ||
</a> | ||
<br /> | ||
<br /> | ||
The old monthly plans are deprecated and will be cancelled by End of March 2023. | ||
</Alert> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @jankeromnes! Some thoughts on the copy used here:
- Too verbose, or uses unnecessary empty space.
- Focus on the personal account, not team plans or team billing.
- Sounds like the user has been part of a closed beta list and not accessing a GA feature on Gitpod.io.
- Voice and tone is not direct, using terms like discover.
- Lack of clear action. Do we want to provide an action for users or nudge to perform an action?
What do you think of the following copy?
BEFORE | AFTER |
---|---|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not call our pricing as a whole "pay-as-you-go". the pay as you go bit is only the mode where you pay later. We have a free plan and a personal plan with a certain amount of credits that is not pay-as-you-go. We'll likely have other ways to prepurchase credits in the future.
"Usage-based" is ok but I'd prefer to generally just talk about (new) pricing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DEAL 🤝
@jankeromnes - The notification copy to use is:
Thanks @gtsiolis and @svenefftinge for your inputs. Details behind this wording are in this RFC (internal) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. I know there is an ongoing discussion about the exact wording, but the current state is good already and we can do the adjustments in even smaller PRs later.
Description
Once UBP has been enabled for a user:
/plans
)/teams
)Related Issue(s)
Fixes #14940
How to test
billing
⏩billing
⏩Release Notes
Documentation
Werft options:
If enabled this will build
install/preview
Valid options are
all
,workspace
,webapp
,ide
,jetbrains
,vscode
,ssh