Allow customers that purchased via Reseller to access Customers Portal
[[_TOC_]] ## :mountain: OKR This epic is related to https://gitlab.com/gitlab-com/gitlab-OKRs/-/work_items/1823+ OKR. ## :white_check_mark: Epic complete - current customer experience As of 2023-06-28 10:00 UTC, we have rolled out the main functionality for this epic, and the following customers started to get access to the Customers Portal by default: 1. New customers that purchase subscription from reseller. 2. Existing customers that renew or purchase a new subscription from reseller. 3. Existing customers that amend a reseller-purchased subscription in any way ([add seats](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/6560#note_1450119885 "Monitoring of login access to reseller customers to CustomersDot"), for example). 4. All remaining existing customers that had the login disabled (via [script](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/6556 "[Reseller] Run script to update existing customer accounts")). 5. On 2023-09-20, we [followed up with enabling login](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/6863 "[Reseller] Update backfill_reseller_accounts_to_allow_login script for any active subscription") for another batch of customers that needed to get access. As of this day, the only customer records with disable login are those without a billing account/subscription, who were most likely blocked by GitLab CustomersDot Admin. Customer will receive the [following emails](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/6559#note_1446063147 "Manual testing of scenarios for Reseller Access"). Once logged in, they will see that all subscription management buttons are hidden (except for `Change linked namespace` for SaaS, and License/Activation Code for SM), `New subscription` button is hidden ([logic](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/5074#proposal "[Reseller] Hide `Buy new subscription` button for customers who have purchased subscription through reseller")), and an info banner is displayed. `Change Linked Namespace` flow has been [updated](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/5015 '[Reseller] Update "change linked namespace" flow') to not require payment for overages. Experience in gitlab.com to prevent SaaS subscription changes has been [updated](https://gitlab.com/groups/gitlab-org/-/epics/10513 "[Reseller] Add message letting user know that they can't renew, purchase storage, CI minutes, seats on GitLab"). <details> <summary>Click to see a screenshots</summary> **SaaS subscription:** ![CleanShot_2023-02-20_at_19.20.33](/uploads/e82f446419be34ee9c2fa55094c891df/CleanShot_2023-02-20_at_19.20.33.png) **Self-Managed subscription:** ![CleanShot_2023-02-20_at_19.22.25](/uploads/30fe240ea0b4553b2d5bb76afcf52902/CleanShot_2023-02-20_at_19.22.25.png) **Change Linked Namespace flow:** ![Screenshot_2023-04-27_at_14.29.13](/uploads/2c3106e8e49c413cbb8368fcf076aa8e/Screenshot_2023-04-27_at_14.29.13.png) </details> ## Problem Reseller customers are not able to login to the Customers Portal, which creates a lot of friction: 1. Customers don't have visibility into their purchased subscriptions. 2. Customers cannot associate subscription to their namespace, and must contact Support. This creates a burden on the Support team, and delays access to the purchased plan. 3. Customers cannot download their SM licenses or get an activation code. This information is only available from the purchase confirmation email. 4. Customers might try to `Reset password` to Customers Portal. While it looks like they succeeded, [they never receive the email](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/3554 "Inform customers with reseller subscriptions why they are not able to login"). Additionally: 1. If customer purchased direct and then via Reseller, their access to Customers Portal remains "unlocked" ([issue](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4763 "Re-seller user has access to customers.gitlab.com and is able to view GitLab.com pricing models")). This will be solved with https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4946. 2. If customer uses SSO to login to Customers Portal, their access to Customers Portal also remains "unlocked" ([issue](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/3250 'SSO as dotcom user circumvents "login disabled"')). This too will be solved with https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4946. ## Proposal / Solution This issue https://gitlab.com/gitlab-org/fulfillment-meta/-/issues/809 has screenshots of what the experience would be like for Reseller customers, were they able to login today. Before we can allow reseller customers to login to Customers Portal, we need to remove their ability to make subscription purchases or changes (see [this discussion](https://gitlab.com/groups/gitlab-org/-/epics/8941#note_1135229635 "Allow customers that purchased via Reseller to access Customers Portal") about the Why). 1. Customer should not be able to purchase a new subscription. 2. Customer should not be able to purchase CI Minutes or Storage. 3. Customer should not be able to modify the subscription. 4. If customer needs to do any of the above, direct them to their Reseller / Sales. Please see the issues in this epic for additional context and what needs to be done. **Technical details:** We have a `subscription.managed_by_reseller?` method in the code. Refer to this [documentation](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/main/doc/zuora/zuora_tips_and_tricks.md#create-a-subscription-sold-via-reseller) to create a reseller subscription locally. ## Previous work and related issues 1. https://gitlab.com/gitlab-com/customer-success/csm/-/issues/627+ 2. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4763+ 3. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/1169+ 4. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4883+ 5. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/3554+ 6. https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4880+ 7. https://gitlab.com/gitlab-com/support/ticket-attention-requests/-/issues/3095+ ## Follow-up * [x] `@tgolubeva`: Comment on https://gitlab.com/gitlab-org/gitlab/-/issues/368496+, and see if we are able to reduce the use of `Force reassociation` mechanizer function. * [x] `@tgolubeva`: Comment on https://gitlab.com/gitlab-com/channel/partners/emea/emea-internal/-/issues/238+ after this epic is done. --- **Support Priority Score:** 20 (Based on highest score of children)
epic