Reducing the cart abandonment rate & improving retention for Zepto: A Case Study

This case study outlines my approach to reducing the cart abandonment rate & improving retention by Streamlining zepto’s delivery address management

Swapnil Jagtap
UXM Community
12 min readMar 7, 2023

--

Hey there!
Just wanted to let you know that the case study is divided into two parts, but don’t worry you can easily jump to the section you’re most interested in by clicking on the headline in the index. Enjoy!”

Index

👉For a quick understanding of the project, refer to this section
-
Introduction
- Why did I choose to work on delivery address management?
- Understanding the problem area
- Finalised problems & their solution
- Prototype of redesigned flow
- Learning from the projects

👉For more information on the detailed design process, please refer to this section
- Problem statement
- Identifying possible areas of improvement and issues in the current flow
- Gaining a deeper understanding of the possible problem areas
- Validating hypothesis with actual users
- Research Synthesis
- Prioritizing problem to be solved
- Wireframing
- Testing prototype with actual users & feedback

Introduction

About Project

This is my attempt to evaluate the existing flow & impact-specific business metrics. This is a solo project I submitted for the two-week sprint challenge under the guidance of Mr.Anudeep Ayyagari.

About Zepto

Zepto delivers groceries quickly to meet the fast-paced lifestyle needs of millennials and Gen Z residing in tier-1 cities.

Why did I choose to work on delivery address management?

I was assigned the app ‘Zepto’ & my first task was to choose one user flow. As I didn't have access to actual app analytical data, I searched review sites to get an understanding of the general problem area & I found that users' struggle was around Delivery address management, Delivery tracking and applying coupons & promo codes.

I prioritized addressing the delivery address management issue since it is a crucial step in the conversion funnel, and any friction in this step can lead to a drop in conversion.

The core function of the Delivery Address Management feature is to allow users to add new addresses or select saved ones during checkout.

I chose 2nd use case as after primary research I felt that it was not optimized and included a segment of users who may be ordering for their elderly parents, family members living in a different location, or friends who cannot order for themselves.

Understanding the problem area

The selected use case has two scenarios:
1. Delivery address exists in the saved list
2. Delivery address needs to be added

The following diagram showcases the use flow (Happy path) for both scenarios:

Existing flow: Selecting address (1,2,3), Adding address (1–5)

Key business metrics
There were many business metrics involved but I decided to target these two business metrics by improving the flow.

  1. Reduce Cart abandonment rate:
    By improving this flow, I can simplify the checkout process, making it more likely that users will complete their purchases. This, in turn, could lead to increased sales and revenue.
  2. Improve retention:
    I am aiming to retain customers who are switching to a competitor because the process of sending orders is streamlined with them.

Initially, I performed a heuristic analysis to understand the usability problem associated with the flow. Afterward, I conducted secondary research to gain insights into common design patterns and available features.
To confirm the assumptions derived from the heuristic analysis and secondary research, and to delve deeper into the issues faced by users, I conducted user interviews involving both current users and users of competitors.

From the research findings, the following observations were made:
I. The system limitations make it challenging to add and select addresses:
The user skipping the step of changing the area from the homepage forces the user to rebuild the whole cart again.
II. Key information required for successful delivery is missing:
The communication gap between the delivery person & receiver
III. Poor address searching experience
while adding a new address.
IV. Address recognition is difficult:
The address format shown in the saved list of multiple addresses with the same label leads to difficulties in address recognition.
V. Modifying the address is a challenging task.

Finalized problems & their solution

Let's see the problems in the context & the final solution I come up with to solve them.

I. The system limitations make it challenging to add and select addresses :

Problem: Users are forced to rebuild the whole cart again

I feel users forget to change their location when ordering for someone else because GPS detects their location by default on the homepage, and ordering for others is less frequent than ordering for oneself. Hence, users tend to add items to their cart without changing the location.

To adapt this user behavior & in order to make the app more flexible I have added the functionality of cart update based on the area selected.

I could have solved this problem by asking the user where they want to deliver when they add the first product to the cart or by improving the visibility of the delivery address on the homepage but I think it will become repetitive & will lead to frustration in other scenarios.

II. Key information required for successful delivery is missing

Problem: The communication gap between the delivery person & receiver

The new design allows users to add receiver details which improve the delivery experience and reduces the communication gap.

III. Poor address search experience while adding a new one.

When a user makes a mistake in their search, they are forced to manually type in the entire query again, which can be time-consuming and frustrating.

This problem becomes crucial for users who have less understanding of the address and area. For instance, if the user is not familiar with the area they are sending the grocery delivery to someone, they might make a mistake in their search.

In the new design, I have displayed the previously searched keywords in the search box and added a recent search function to make the address search process efficient.

IV. Address recognition is difficult

Making sure an address is easy to recognize from a saved address list & avoid factors that can cause confusion.

Problem: Users find it difficult to identify addresses

In the new design, I changed the address format and added radio buttons as signifiers, making address recognition and cross-verification easier. This way users gained confidence in selecting and sending accurate deliveries to others.

Problem: User saving multiple addresses with ‘Other’ labels -

The user thinks they only have three options and doesn’t realize a new input appears after clicking on “Other”.

To communicates different behavior of the ‘OTHER’ tab I tried different options from the existing design language.

V. Modifying the address is a challenging task.

Problem: When a user receives new information or makes an error while entering their address details, they have to switch between pages to make changes, which slows down the checkout process.

In the new design, the user can edit the address & recipient contact details easily which does not hinder the checkout process.

Redesign flow prototype

Selecting other area addresses from the saved list (Auto-cart update feature)
Adding different area addresses with an auto-cart update feature & improved label textbox interaction
Updating receiver contact & address

Assumptions :
1. The problem faced by even one user during primary research is faced by a big set of similar users.
2. The business has the technology to implement new functionality.
3. Assuming that this segment is related to a significant revenue stream for the company. It seems that competitors have a more streamlined experience when ordering from someone else.

Learning from the projects.

1. Instead of just looking at competitor features, try to understand the rationale behind them by involving their app users in primary research
2. Involving competitor app users in primary research can uncover problems in their features and turn them into opportunities.
3. Research synthesis is essential for converting user interview notes into actionable steps that align with user and business needs.
4. I have learned the importance of empathizing with users and understanding their perspectives. As a designer, it’s crucial for me to identify their core problems and prioritize them based on the business goals.

Design process:

I was assigned the app ‘Zepto’ & my first task was to choose one user flow.

Before even selecting any flow for the project I did research on how Zepto business works & who are the users. What is Zepto Unique Value proposition & why app exists in the first place?

As I didn’t have access to actual app analytical data, I searched review sites to get an understanding of the general problem area & I found that user’s struggle was around Delivery address management, Delivery tracking, and applying coupons & promo codes.

I prioritized addressing the delivery address management issue since it is a crucial step in the conversion funnel, and any friction in this step can lead to a drop in conversion.

Problem statement :

Evaluate the checkout flow of Zepto, which include
Cart > Change address > select address/add new address > Search location > Input details of address & label it > checkout page - and redesign the experience to make the product design better.

Targetted business metrics
There were many business metrics involved but I decided to target these two business metrics by improving the flow.

  1. Reduce Cart abandonment rate:
    By improving this flow, I can simplify the checkout process, making it more likely that users will complete their purchases. This, in turn, could lead to increased sales and revenue.
  2. Improve retention:
    I am aiming to retain customers who are switching to a competitor because the process of sending orders is streamlined with them.

Identifying possible areas of improvement and issues in the current flow

As I started to use the app I came to know there are two use cases for address delivery management & laid down the existing user flow.

To understand the usability issue in the existing flow I decided to do a heuristic analysis.
I used different lenses like clarity, relevancy, and friction point to understand usability issues users might face while performing the task.

After conducting a heuristic analysis, I identified broad areas where problems might exist. some of the areas were the flexibility to select & adding addresses, clarity of language around screen purpose, and flexibility to modify.

Gaining a deeper understanding of the possible problem areas

To gain a deeper understanding of the problem areas from heuristics analysis, I decided to conduct a competitor analysis & searched articles around the area. Through this process, I was able to evaluate how competitors were addressing similar challenges, what features they had implemented, and what new opportunities.
One of the interesting articles i read — Article link

I observed common design patterns being used & how competitors are solving the issue that I have observed in the Zepto app.

Validating hypothesis with actual users

Heuristic & competitor analysis gave me an understanding of the problem area but to validate whether those problems are really faced by users or not, I conducted primary research.

I decided to conduct primary research in two parts
1. Usability testing-
I conducted usability testing to understand pain points faced by existing users in the flow. To do that gave them two tasks & kept the observation points ready with me.
1st task — Select an address to order for yourself & someone else
2nd task — Add a new address to order for yourself & someone else

2. User interviews-
Asking open-ended & probing questions to understand & get clarity on the questions.
1. When did you use the app last time?
2. Why did you choose zepto?
3. How was her delivery experience using the app till now?
4. When was the last time you sent a parcel to someone else?
5. Under what situation did you send the product to someone else? Etc.
As conversion went ahead with each user I asked for multiple ways to get a deeper understanding of the issue.

After conducting primary research, I found that users face the most difficulties in selecting & adding an address when they want to deliver an order to someone else.

I have decided to scope down 2nd use case ordering for someone else as I felt that it was not optimized and included a segment of users who may be ordering for their elderly parents, family members living in a different location, or friends who cannot order for themselves.
This use case has two scenarios, users may either have an existing address or want to add a new one.

Synthesis

Here is a user journey map for adding new addresses when ordering for someone else

I started formulating ‘How might we?’ questions for the pain points that got validated in the primary research, and secondary research & which I felt are important to solve.

Prioritizing problem to be solved

Before heading for ideation I sorted ‘How might we?’ questions which will be impacting my targetted business metrics.

I used the crazy 8 methods to brainstorm and chose a solution with greater impact.
Ex. I could have resolved the issue of a user having to rebuild their cart by adding notifications asking “ordering for you or someone else?” or by motion graphics to the homepage around the area section, but these solutions could cause errors in other scenarios. Instead, I implemented an auto-cart update based on the selected area which will streamline the process on a bigger level.

Wireframing

As I finalized solutions I started to create low-fidelity wireframes. I used references to understand other people's approaches to solving the same problems & as inspiration for different elements while making high-fidelity prototypes.

Check the final solutions here

While making the prototype I tried to integrate everything in one but due to the complexity of output & variables, I decided to create 3 separate prototypes for each task.

Testing prototype with actual users

As I finalized the prototype I started looking for a user to test it. Due to time limitations, I conducted only two usability testing. I got a couple of feedback -
1. Confirmation notification being missing after the address has been updated,
2. Users were tapping on the text instead of the radio button I provided
. Users were expecting interaction with the text as well.
So I revised the prototype with both the input as they are crucial changes.

Check the final flow here
Click here to check my Learning from the project

Thank you for your time, and if you like it or have any feedback, please leave it in the comments section.

👉 Check my portfolio here: https://zaap.bio/swapniluxd
👉 My Linkedin Profile: www.linkedin.com/in/swapniluxd
👉 My Email address: swapniluxd@gmail.com

--

--

Swapnil Jagtap
UXM Community

Product designer fueling business growth through actionable research, scalable solutions, & intuitive experiences. Lets connect : www.linkedin.com/in/swapniluxd