If you’ve used ChatGPT for shopping recently, you’ve likely noticed something different.
Just in time for Black Friday, ChatGPT introduced a major commerce feature that is likely to affect the shopping behavior of the nearly one billion people who use the platform.
It’s a new, different, and variably opinionated approach to guiding a buyer to a product.
Ask it a shopping-related query, and you’ll get more than a list of linked recommendations. You’ll meet a new “Shopping Assistant” agent that, from behind the curtain, walks you through a personalized quiz and curated recommendations, creating a system that seems to understand just what you’re looking for and decides how you should shop.
I’ve written about ChatGPT search (entities) before and noted that the system has treated product entities differently for a few months.
This is a straightforward extension of that, which signals a couple of things:
- An effort to position ChatGPT in the middle of ecommerce transactions (extending to agentic commerce)
- Hint at the ways ChatGPT may begin to specialize its search experience around other entities in the same way that Google Search did over the years.
Since I first saw product entities appear in October, I predicted this would be the story of the holiday shopping season—a signal of a trend that could redistribute commerce activity away from Amazon and Google to others who play ChatGPT’s game.
If that’s true, it also signals a broader impact on how people buy products and businesses market them.
Why do I care?
I’m watching this closely because this type of disruption creates a first-mover advantage, the kind that digital marketers, like myself, have been taking advantage of since Google powered Yahoo search.
- I help clients figure out their strategy—whether to play, where to compete, and where to win.
- I’m building a tool that provides insights into ChatGPT’s search systems, so marketers can reverse-engineer the process (allowing them to engineer their way towards success).
Enough about me. Let’s start taking this thing apart.
First, I’ll start with a brief overview of the UX. Then dive into the inner workings of the system. Then, I’ll conclude with the implications of all this.
ChatGPT’s new and newer shopping UX
The new shopping conversation flow unfolds in two distinct phases: first, an extension of its standard search-grounded response; then, a personalized agent-led shopping experience designed to flatten the funnel with an efficiency even Jeff Bezos would envy.
Phase 1: Search-Grounded Responses
When you first ask ChatGPT about products, it behaves much as it has for a while, with a bit of added shopping UI:
- Performing a web search across several indexes
- Gathering information from multiple sources and grounding itself based on the results.
- Search a product-specific database to match real products with their textual recommendations.
- Display the product details sidebar if the user clicks the recommended products.
In this post, I demonstrate this with a realistic example from my life: shopping for a Christmas present for my five-year-old son, specifically a soccer-related toy.
This first phase is pretty standardized. The same query is likely to produce very similar results for everyone—the most significant variables are the query it generates and the impact of scraping Google’s geo-specific SERP.
There’s little, if any, personalization happening yet—only if the user has mentioned relevant preferences in past chats.
After presenting these initial findings with citations, ChatGPT suggests clicking “Use shopping research”—a connector that activates the second phase.
Phase 2: Meet the Shopping Agent
This is where things get interesting. When you click the research CTA, a specialized UI powered by a “Shopping Assistant” agent takes over. Internally, the agent is called “mercury” and is responsible for more than just a shopping UI; it orchestrates a preference-extraction system.
Behind the scenes, the Shopping Assistant receives your original query, the entire conversation history, and a crucial piece: your user memories. These aren’t explicit preferences you’ve stated, but inferred patterns—likes, dislikes, style preferences, household composition, past purchase behavior. All of this gets fed into a separate conversation context specifically created for quiz generation.
Based on your query type and these memories, the assistant generates a structured quiz. For my soccer toys example, it asked three questions: budget per toy, preferred play setting, and key features. Each question had exactly four options, and you could select multiple answers.
After your preferences are established, the agent “steers” you through a sequence of products filtered by your responses in real-time through a WebSocket connection. This creates a feedback loop that further refines recommendations.
The final result: a personally-curated set of products that match your explicit answers and implicit preferences, all without a hint of knowledge about your personal data.
Phase 1: How Initial Search and Discovery Works
The first phase is simple. You ask for products, ChatGPT searches the web, considers the search results for context, and presents a response with the confidence of a guy named Chad explaining crypto.
My initial prompt was, “best toys for five year olds who love soccer.”
ChatGPT then goes back and asks itself if it has stored any user memories that are relevant to this conversation so far, and decides if it makes sense to search the web.
A search type classification system then decides if it should call a search tool and which one (simple or complex), and then performs a search.
In this case, it decided to call a simple search.

Search Query Generation
People who follow Google closely will know of this as “query fan out.” But in ChatGPT’s case, the queries don’t necessarily fan out. Frequently, your initial prompt is translated into a single query—especially if it’s simple. (I’ve rarely ever seen non-thinking/deep research queries generate multiple search queries.)
These search queries, because they’re generated by an LLM and because LLMs are not deterministic, may generate one search query one time and another the next.
After running the same initial prompt twice, ChatGPT generated two different queries:
Conversation 1:
Prompt: “best toys for five year olds who love soccer.”
Search Query: “what toys are good for five year olds who love soccer“
Conversation 2:
Prompt: “best toys for five year olds who love soccer.”
Search Query: “what toys are good for 5 year olds soccer skills benefits“
IT IS IMPORTANT TO RECOGNIZE THE VARIABILITY THAT THIS INTRODUCES. It’s likely that if you searched Google with both of those search queries, you’d receive different search results.
The point is that search query generation can introduce variability in results far beyond the inherent variability of LLMs.
So what? A big part of ChatGPT search optimization (aka Answer Engine Optimization, aka AEO) is understanding ChatGPTs’ tendencies in generating these search queries so that you can position content that matches the searches.
Want to see how ChatGPT is generating search queries? Check out ChatGPT Search Insights.
Search Results
I don’t want to go into a ton of depth here, but it’s worth noting that, despite claiming to partner with Microsoft Bing, ChatGPT’s search results tend to resemble Google’s far more than Bing’s.
Want evidence? Here are some that show up frequently.
As you can see below, the snippet ChatGPT uses for the Amazon listing matches Google’s SERP snippet exactly. (Note: Bing does not use the exact text.)
Granted, the text of the snippet is taken from the page, but it looks more than a coincidence that ChatGPT also receives that text in the snippet.


In addition to Google’s search results, they appear to retrieve results from specific domains such as Wikipedia, Arxiv (research papers), and Reddit.
Another interesting facet of ChatGPT’s search results is that they tend to incorporate search results from “news” articles (non-evergreen articles from publishers that appear to be time-bound). Notably, the snippets that accompany these pages are longer (AI-generated) summaries of the page’s contents.

This suggests that ChatGPT is creating its own index-like grounding mechanism (perhaps an embedding-based retrieval layer) that it is not totally reliant upon third-party search providers.
Response Generation
Once ChatGPT receives the search results, it extracts content from the SERP titles and snippets to provide contextual clues for how it should respond.
From there, it uses those clues to infer the topic, typical product categories, and the style of answer the user expects. It draws on its own internal knowledge to generate specific recommendations that weren’t actually present in the search results.
In parallel, ChatGPT queries a separate product database to retrieve structured data for each product entity it lists in the response.

Highlighting brought to you by ChatGPT Search Insights 🙂
Product Recommendation and Retrieval
The metadata suggests that it’s looking up products by their actual product names.
It could also be more than a simple string match. ChatGPT generates a text query representing the product, and the system resolves it using, for example, embedding similarity and catalog matching.
This is an example lookup within the product data.
"product_lookup_data": {
"request_query": "Little Tikes TotSports Soccer Trainer",
"all_ids": {
"p2": [
"2515028666718222576"
]
},
"known_ids": {},
"metadata_sources": [
"p1",
"p3"
],
"variant_options_query": null,
"variant_sources": null
},
This returns structured listings that include prices, ratings, merchants, and images.
{
"id": "2515028666718222576",
"title": "Little Tikes TotSports Soccer Trainer",
"url": "https://www.wlmart.com/ip/TOTS-SOCCER-TRAINER/7769717158wl13=2550&selectedSellerId=0&wmlspartner=wlpa&utm_source=chatgpt.com",
"merchants": "Walmart + others",
"price": "$19.19",
"description": null,
"featured_tag": "basic goal & trainer set for young kids",
"image_urls": [ … ],
"num_reviews": 19,
"rating": 4.8,
"offers": [
{
"merchant_name": "Walmart",
"merchant_subtitle": null,
"product_name": "Little Tikes TotSports Soccer Trainer",
"url": "https://www.walmart.com/ip/TOTS-SOCCER-TRAINER/776971715?wl13=2550&selectedSellerId=0&wmlspartner=wlpa&utm_source=chatgpt.com",
"price": "$19.19",
"details": "In stock online and nearby, Delivery by Mon $6.99",
"price_details": {
"display_price": null,
"base": "$19.19",
"shipping": null,
"tax": null,
"total": "$19.19"
},
"checkout_image_urls": null,
"original_price": null,
"checkoutable": false,
"available": true,
"checkout_payload": null,
"is_digital": null,
"tag": null,
"debug_info": {
"source": "p2",
"p": "1000",
"h": "None"
}
},
…
],
"variants": null,
"variants_error_state_message": null,
"offers_see_more_boundary": 1,
"show_price_disclosure": false
}
You might be wondering where these product entities come from. Well, me too. From everything I’ve seen, it appears that ChatGPT is maintaining its own product database from vendor feeds and its Shopify partnership.
Product Display
Finally, ChatGPT formats the product data into product-specific formats: lists and carousels. The metadata that accompanies the message is used to render all the product-specific details and imagery, as well as the sidebar pullout that’s revealed after the user clicks a product.
Right now, the product metadata includes a “checkoutable” key, which could mean you will soon be able to check out in ChatGPT or allow ChatGPT to make purchases on your behalf in a “Deep Shopping” mode.
That concludes Phase 1 of the typical shopping UX.
If you’re seeing something different, please share in the comments!
Tomorrow: Phase 2: The Shopping Assistant
Since this post has become so long, I’ll cover the Shopping Assistant architecture and instructions in a follow-up post tomorrow.
Want to read more tomorrow? Sign up for updates or follow me on LinkedIn.
