Skip to content
All case studies

02 · E-commerce · Study · 4 min read

Conversion optimization and design integrity: the Shein checkout

A forced sign-up creates abandonment, not leads. I moved the phone number request to after the purchase and fixed the usability and accessibility flaws in the sign-in: the projection is +15% sign-in success, with up to 14% of users won back.

Problem
A mandatory phone number sign-up interrupts the purchase and drives away people who have already decided to buy.
What I did
I fixed usability and accessibility flaws and moved the phone number request to after the purchase.
Projection
+15% sign-in success, winning back people who abandon the purchase over privacy.

Leads or conversion?

To optimize the flow, you have to manage the conflict between Marketing’s goals (SMS leads) and Product’s goals (conversion). I weighed two strategic paths:

  • Option A, incremental adjustment: fix only the visual interface errors and improve how the fields are explained, without changing the data collection journey.
  • Option B, design with integrity (chosen): pay off the usability and accessibility debt, make the user’s choice transparent and add a post-checkout capture.

I found that the interface already had a “Skip” option, but it didn’t work. With no clarity about why the number was being requested, people froze. I turned a “dead option” into an informed decision, reducing psychological friction.

  1. Already a Customer/Register window with a single field for phone or email, a Continue button and sign-in with Google or Facebook.
    Entry: a single field for phone or email.
  2. Sign in to your account window, with the email filled in, a password field and an Already a customer button.
    Sign-in with email and password.
  3. Window asking for a phone number and a verification code, with SMS and WhatsApp already checked, a Send button next to the code, another Send button below and a Skip link.
    After signing in, the phone number request: SMS and WhatsApp come pre-checked, and two “Send” buttons do different things.
  4. The same window with the number typed and the English message Verification code send successfully.
    The code-sent message appears in English, in the middle of a Portuguese screen.
  5. The same window with the code typed and two black buttons, Send next to the code and Send below.
    With the code typed, people have to guess which of the two “Send” buttons to use.
  6. Message Congratulations! Bind was successful! with a Confirm button, over the sign-in window.
    The confirmation uses technical jargon (“bind”) and mixes Portuguese and English.

I accepted a lower immediate volume of leads at the top of the funnel. My thesis is that a customer who completes a purchase today is worth more than a phone number in a lead database from someone who gave up out of frustration.

Picking the battle: why sign-in?

Analyzing Shein’s data on Reclame AQUI, Brazil’s largest consumer complaints website, I found deep pain points: logistics, items different from what was advertised and difficulty exchanging a purchase. I chose to focus on sign-in and sign-up friction. The reason is pragmatic: logistics depends on third parties and infrastructure; sign-in is 100% digital, quick to implement, and it is the “gatekeeper” of the sale. Fixing sign-in is the fastest way to stop the revenue loss at a low implementation cost.

Complaints table: orders not delivered with forged signature, 108,813; late delivery, 39,205; incorrect or incomplete deliveries, 3,213; sign-in and access difficulties, 2,038.
Complaints against Shein on Reclame AQUI, from January to June 2025.

Reducing cognitive load and ending technical debt

I found a critical usability flaw: nearly identical buttons (“Envie” and “Enviar”, both meaning “Send”) for different functions, violating Nielsen’s consistency heuristic [3]. On top of that, the phone field didn’t bring up the numeric keyboard and ignored Tab navigation. My proposal removes these barriers by applying WCAG guidelines [4], making input universal, fast and inclusive.

Two screens of the phone number request, with annotations: the Phone Number label and the Verification code send successfully message in English, the Send button next to the code, which turns into a 58-second countdown, and another Send button below.
“Envie” sends the code and “Enviar” confirms it: two buttons with almost the same name. The field label and the sent message are in English.
Phone number request screen on mobile with the number field selected and the letter keyboard open, both highlighted.
Tapping the phone field opens the letter keyboard, not the numeric one.

Reframing “Skip”: from uncertainty to intention

According to the Baymard Institute, 14% of users abandon checkout if they are forced to give their phone number without a clear reason [1]. The original “Skip” button failed because it didn’t explain the consequences of the choice. My solution added contextual microcopy: the phone number is presented as an optional benefit for order tracking. This removes the fear that skipping the field might affect the delivery.

  1. Already a Customer/Register window, same as the original.
    The entry stays the same.
  2. Sign in to your account window, same as the original.
    So does the sign-in.
  3. Add your phone number window, with the reason in the subtitle, a phone field with area code, SMS and WhatsApp messages unchecked under the heading Optional, and the buttons Code by SMS and Code by call.
    The title says why the number is requested, messages come unchecked and optional, and each button says what it does.
  4. Confirm your number window, with the editable number, six fields for the code, a Confirm number button and a countdown to resend.
    One action per screen: confirm the number, with the time to resend the code in view.
  5. Phone number added! window, explaining that the number can be edited or removed, with a Continue button.
    The confirmation, in plain Portuguese, says how to edit or remove the number.
  6. Two mobile screens of the proposal: Add your phone number and Confirm your number.
    The same proposal on mobile.

The master strategy: post-checkout timing

I moved the capture to the moment of reward. By asking for the phone number on the purchase success screen, the user has already converted and has a real incentive to provide it: getting tracking updates. Reciprocity replaces interruption.

Current flow: Product, Sign-in or sign-up, Add phone number highlighted, Cart, Payment and Order complete.
Current flow: the phone number sign-up interrupts the purchase journey.
Proposed flow: Product, Sign-in or sign-up, Cart, Payment, Order complete and, last, Add phone number highlighted.
Proposal: the phone number sign-up at the end of the purchase journey.
average cart abandonment [2]
70.22%
give up because of a complicated sign-up or sign-in [2]
18%
projected sign-in success
+15%

The financial impact of this decision is supported by global data from 2026. By neutralizing the rejection of the 14% of users who won’t compromise on privacy and reducing the complexity of the sign-in, the projection is a 15% increase in the sign-in success rate, recovering orders that would be lost at the start of the journey.

Conclusion

Impactful design isn’t about covering up flow problems; it’s about tackling the root cause. In Shein’s case, the focus shifted from “How do we reduce abandonment on this screen while keeping lead collection mandatory?” to “How do we make sure nothing stops people who have already decided to buy from converting?”. Ethical, data-backed, performance-focused design is what secures customer profitability in the long run.

References