The Price Genie app on a phone, surrounded by fresh produce on a kitchen counter.

Case Study — Pincode

Reimagining how people shop across local stores.

Price Genie explored a new shopping model for Pincode where users could discover the products they wanted first, compare fulfilment options, and let the system construct the best basket across nearby stores.

Role
Product Designer
Scope
Product strategy · UX · Interaction · Prototyping
Platform
Mobile
Type
0→1 product experiment

Product discovery  →  Store comparison  →  Fulfilment

Store comparison — nearby stores ranked by fulfilment, price and delivery.
Product discovery — building a store-agnostic shopping list.
Fulfilment — a multi-store cart grouped by delivery time.

The three surfaces this case study is about: discovering products, comparing fulfilment, and understanding the resulting basket.

02 — Context

Pincode was built around stores.

Pincode is a hyperlocal shopping app. Like most commerce products, it followed the model ecommerce has used for decades: pick a store, then shop inside it. The model worked—unevenly. Whatever a user could discover was bounded by whichever store they happened to open first.

49%
Grocery share
34%
Food share

Two categories carried the app. Penetration across everything else stayed low—discovery was capped by the store-first funnel.

Users don’t necessarily care from which store their orders are delivered.

They care about finding the products they need, at a good price, with a good delivery promise. The store is a means to that end—yet it was the first and most binding decision in the flow.

The store-first model was becoming a constraint on product discovery.

Pincode home — find stores by category.
Category browsing that still resolves to a single store's shelf.

The original entry points: pick a store, or browse a category that still resolves to one store’s shelf.

03 — Problem

The problem wasn’t the cart. It was the shopping model.

Item unavailable

  1. 01Search another store
  2. 02Compromise on product
  3. 03Compromise on price / delivery
  4. 04Abandon the basket

When users begin by choosing a store, their product discovery is constrained by that store’s inventory. The moment the store doesn’t have something, every path forward costs the user.

None of these are interface failures. A better cart, a better search bar, a better store page—none of them fix a sequence that forces the least-informed decision first. The problem was systemic, and it needed a model-level answer.

Instead of asking users where they wanted to shop, Price Genie started with what they wanted to buy.

05 — Hypothesis

Could item-first shopping help users build better baskets?

01

Add more of the products people actually need.

If adding an item no longer commits you to a store, the basket should converge on the real shopping list—not the subset one store happens to carry.

02

Consider multiple stores if it improved fulfilment.

Store loyalty on hyperlocal platforms is thin. Would users accept fulfilment from unfamiliar stores when availability, price, and delivery were clearly better?

03

Trade store preference for better price and delivery.

The model only works if the comparison surface makes the trade obvious—users won’t abandon a known store for an abstract promise.

04

Complete larger baskets without increasing cancellations.

Bigger baskets are only commercially healthy if the marketplace can actually fulfil them. Cancellations were the guardrail metric for the whole experiment.

06 — What we measured

We measured three things.

01
Discovery
Avg. items addedAre users able to find more of what they need?
02
Fulfilment
Avg. stores with all itemsAvg. stores with N−1 / N−2 itemsCan the marketplace actually serve those baskets?
03
Business
Cart value per user per monthCancellations per orderDoes the new model create commercially healthy orders?

The fulfilment metrics are the interesting ones. Item-first shopping is only viable if enough nearby stores can cover all—or nearly all—of a typical basket. N−1 and N−2 coverage told us how often the model would need multi-store fulfilment to keep its promise.

07 — System

The user shouldn’t have to understand the complexity underneath.

Behind one decision surface, Price Genie evaluates the possible fulfilment combinations across nearby stores—availability, price, delivery, and offers—and presents only what the user needs to choose.

User needs · 6 products Price Genie Evaluates fulfilment across multiple signals Availability Price Delivery Offers Best options Cart

A complex system underneath, a simple decision surface above. Values illustrative.

“Expose complexity only when it helps the user make a decision.”

08 — Interface

The store-agnostic list is where the system begins.

Price Genie review list — a store-agnostic shopping list with a Find best stores action.
Product inputStore-agnosticFind best stores

The list is the input the engine evaluates against every nearby store at once.

09 — Design decisions

Six decisions, one principle.

Collapsed store card — 6 of 6 items available, delivery, price, savings and a create-cart action.
Design decision 01

Start with the store that can fulfil the whole basket.

When a store can fulfil 100% of the requested items, we collapse the details and make the fulfilment status immediately scannable.

6 / 6 items60 min₹1,240₹180 saved

Users don’t need to inspect six individual products if the store already satisfies the entire basket. The only questions left are when, how much, and what do I save—so those are the only things the collapsed card shows.

Highlighted values are illustrative.

Design decision 02

Expand only when comparison is useful.

Partial-fulfilment stores are where users actually have to think. Expanding a store gives them a quick inventory snapshot—which items it has, which it doesn’t, at what price—without leaving the comparison. The card expands in place: comparison is a state of the list, not a separate screen.

Collapsed

Collapsed store card.

Expanded

Expanded store card — inventory snapshot with per-item prices and the missing item named.

Availability, price and delivery are the primary decision variables—so the expanded state is built entirely from them.

Design decision 03

Item-first doesn’t mean store-blind.

Stores list stating that all items are not available in a single store, listing stores that carry some items.

The system could have gone further—fully abstracting stores away and just delivering “the basket.” We deliberately didn’t. Even though discovery begins with products, fulfilment stays transparent. At every step, four things are always answerable:

Who — the store
When — the delivery
How much — final price
Saved — the savings

When something goes wrong—a delay, a substitution—the user needs to know who is responsible for what. A system that hides the fulfilling store buys simplicity now and pays for it in the first support ticket.

Abstract the complexity, not the accountability.
Design decision 04

The cart had to stop pretending there was one store.

The multi-store cart is a consequence of the model, not the innovation itself. When no single store can serve the whole list well, the best basket spans stores—and the cart became a representation of how the order would actually be fulfilled.

Delivery 01
60 min · Simply Namdhari’s
Delivery 02
90 min · MK Retail

We grouped by delivery, with the store named inside each group—not the other way around. Delivery time is what the user plans their day around; the store answers “who is bringing it.”

Multi-store cart with items grouped under two deliveries, a savings banner and bill details.
Design decision 05

Make delivery complexity visible, but easy to scan.

Cart showing a 60-minute delivery from one store and a 90-minute delivery from another, each with its own items.

Users need immediate visibility into three things: where the order is coming from, what arrives when, and which items belong to each delivery. The discipline was in what we didn’t show—routing, store handoffs, slot logic all stayed backstage.

These items.
This store.
This time.
Design decision 06

Make the payoff tangible.

₹370
Saved on this order
Multiple offers applied

When users are comparing stores and fulfilment options, savings become part of the decision. We surfaced value throughout—on comparison cards, in the cart, at confirmation—instead of burying it in the bill. The offer engine stopped being a checkout footnote and became a decision input.

The ₹370 shown is illustrative of the treatment, not a measured result.

Cart header showing savings including free delivery and a discount, with a multiple-offers-applied banner.

15 — The walkthrough

From need, to basket, to fulfilment.

Browsing beverages and adding products. 01

Discover products

Shopping begins with what you need—browse categories and add products to a store-agnostic list.

Comparing nearby stores. 02

Compare stores

The system ranks nearby stores by how much of the list they fulfil, at what price, with what delivery.

Inspecting availability in an expanded store card. 03

Inspect availability

Expand a store for an inventory snapshot—what it has, what it doesn’t, at what price—without leaving the comparison.

Building a multi-store basket. 04

Build a multi-store basket

When one store can’t cover the list, the best basket spans stores—grouped by delivery, not hidden.

Reviewing delivery and savings before payment. 05

See delivery + savings

Each delivery reads like a promise—these items, this store, this time—with savings surfaced, not buried.

16 — Experiment

We weren’t redesigning a cart. We were testing a new shopping behaviour.

The core question the experiment was built to answer: can item-first discovery increase product discovery without creating unacceptable fulfilment complexity?

I’m deliberately not publishing outcome numbers here. This was an internal experiment, and directional claims without the underlying data would be exactly the kind of portfolio inflation this page avoids. What I can speak to is what we observed while it ran.

Tracked

Items addedStore fulfilment (N, N−1, N−2)Cart valueCancellations

17 — Learnings

The biggest learning wasn’t about the cart.

Observed

Users care more about finding the right products than choosing a specific store.

Session after session, store choice was instrumental. Users engaged with the comparison surface to complete their list, not to browse merchants.

Observed

Multi-store fulfilment is acceptable when the value is clear.

Users didn’t reject split deliveries outright—they weighed them. When the payoff was visible next to the cost of a second window, the trade was made willingly.

Learned

Marketplace complexity needs to stay behind a simple decision surface.

Every time backend complexity leaked into the interface—slot logic, partial matches, offer conditions—decision confidence dropped. The collapse/expand pattern existed to manage exactly this.

Learned

Price, availability and delivery are one decision, not three.

Users never evaluated these independently. A great price with a missing item isn’t a great price. The card had to present them as a single fulfilment proposition.

Next to test

Where the model breaks: basket sizes the marketplace can’t cover.

How often nearby supply can genuinely serve a full basket determines whether item-first scales beyond dense areas. That’s a supply question as much as a design one.

18 — Reflection

Designing the interface was only half the problem.

Price Genie taught me that marketplace UX isn’t just about helping users navigate products. It’s about making the underlying complexity of supply, fulfilment, price and delivery understandable enough for users to make confident choices.

The design work that mattered most never looked like design: deciding what the system should evaluate versus what the user should decide, where complexity earns its place on screen, and what a cart even is when fulfilment spans stores. The interface was the last mile of a strategy argument.

Want the full walkthrough with screens? Book a call