Designing the retail platform that
doubled Shopify’s in-store gpv to $4.2B
The objective
Double GMV year-over-year. Move upmarket to serve larger retailers.
The PROBLEM
Shopify’s Retail segment was growing, but we kept losing our most valuable merchants—the ones operating 20+ locations. The higher a Marchant’s GMV, the higher likelyhood they’d churn. Execs assumed removing a legacy hardcoded location cap would fix most of the churn problem. It didn’t. This was a classic example of data identifying an issue, but not being able to use data to understand the root cause.
I joined a team that was running as a feature factory—no shared vision, no strategic framework for what Shopify Retail could become. The first thing I did was partner with our Staff Researcher to answer the “why?” question before writing a single design brief.
what we learned
Research revealed that scaling merchants weren’t churning because of any single missing feature. They needed a platform, not a product. We organized everything that followed around the four themes identified in research.
🛍️ Scalable solutions. At larger scale, merchants had too many devices across too many locations — each requiring maintenance. The existing hardware model meant redesigning a physical case every time Apple released a new iPhone. It wasn't sustainable.
👨🏻❤️💋👨🏾 An evolving world. Retail merchants wanted to be a part of their community—using personal, face-to-face connections that eCom can’t replicate. Apple Stores had shown how retailers could move beyond the counter to sell on-floor to deepen those connections, but our merchants couldn’t do that because we lacked a mobile on-floor solution.
📦 Inventory at scale. The existing Shopify inventory system was built for ecom. States like "ready for pickup" or "transferring between locations" didn't exist. Optimizing inventory between multiple locations was extremely manual, and merchants hitting 5+ stores hit their breaking point.
📊 Richer retail data. Merchants wanted the same full-funnel intelligence they had online — but for the store floor. But before we could build that, we needed a cleaner data foundation.
Don’t try to solve everything all at once
solve in the right order
We had four problems and limited bandwidth. I led a workshop with my Retail triad partners in Product and Eng to sequence the roadmap around two principles: tackle what we could control first, and unblock future work as we go.
| Track | 2021 | 2022 | 2023 | 2024 |
|---|---|---|---|---|
| Focus | Scalable Solutions | Evolving World | Inventory | More Data |
| Scale | 5 locations | 20 locations | 50 locations | 100 locations |
| Major launch | International Expansion | POS Go | Inventory Optimization | Funnel Management |
I also implemented a horizon planning framework to make sure the team wasn't only shipping reactive Horizon 0 / Horizon 1 work. Concepts that started in Horizon 2 — like POS Go — graduated into Horizon 1 and shipped. Consistency over brilliance.
evolving hardware from
patched-together to purposeful
Before I joined, the hardware lineup was reactive. Every iPhone model release required redesigning a payment case. Third-party terminal quality was inconsistent. The larger “Pro tier” merchants—had no polished or scalable solution at all.
We designed the Retail Kit — a modular, first-party system built to evolve. POS Go (the handheld) could work on the floor for assisted selling, then automatically switch to customer-display mode when docked. The whole system was designed to be future-proof for the roadmap we'd laid out—RFID inventory, loyalty, new markets—all possible without another 18-month hardware redesign cycle.
designing v1 of stripe terminal for stripe
Within the checkout flow, the payment sub-flow was owned by Stripe—who had never designed for physical retail before with a designer only assigned to it part-time. Stripe’s initial cut was built for engineering feasibility, not retail staff and customers in the physical world. PIN verification was missing. Confirmation indicators were too subtle to read at arm's length. The card tap covered the information the customer needed to see.
At this point, we had two options:
OPTION A
Wait for Stripe’s team to iterate, and hope for the best. Give feedback, let their designer revise, ship what we get. Lower conflict, higher risk to launch quality. Honestly, this is what our our Retail VP recommended.
OPTION B
Build the relationship, and do the work. Partner with Stripe Eng directly. Design it ourselves. Give them a “best for the ROI” version, and a “proud to ship” minimum.
I built a direct relationship with Stripe's Eng and Design Directors. My team ended up designing the majority of the flow — working directly with Stripe engineers. We embedded our design values into their product: confirmation above the tap zone, animations to guide next steps, locally-configurable prompts. The Shopify Retail blue call-to-action made it in there too.
When “good enough” wasn’t good enough, I took the initiative. Rather than escalate or complain, I made it a relationship problem—not a design problem. Once I had the right allies on the Stripe side, the work moved fast.
10x Retail GPV to $4.2B in 2 years
GPV was our north star because Shopify's business model at scale is a percentage of transaction volume—not a flat subscription. We far exceeded our goal of 2x year-over-year increases. And we got there by being true to our design team values: being merchant obsessed.