Shopify’s new agentic commerce platform is transforming how developers build shopping experiences by connecting AI-powered agents directly to merchant stores. Instead of customers browsing traditional UIs, AI assistants can now handle everything from product discovery to checkout on the user’s behalf. In this article, we’ll break down the core components of Shopify’s agentic ecosystem – including Shopify Catalog, Storefront MCP, UCP (Universal Commerce Protocol), Checkout MCP, and Checkout Kit – and explore how developers can leverage them. We’ll look at each component’s role, how and when to use them, patterns for headless and multi-region integration, and practical combinations that maximize their effectiveness.
(Note: “MCP” in this context refers to Shopify’s Model Context Protocol servers, which expose commerce capabilities to AI agents, not to be confused with “Multi-Currency Pricing,” though we’ll also discuss multi-currency considerations.)
Agentic commerce refers to AI assistants that can understand a shopper’s needs and carry out the entire shopping journey in a conversational interface. Shopify’s goal is to make every store “agent-ready by default” – providing the “plumbing” to connect millions of merchants with powerful AI platforms. Major AI channels like Google’s Gemini, Microsoft’s Copilot, and OpenAI’s ChatGPT are effectively becoming new storefronts for commerce. Instead of finding a website, the customer can ask an AI (“Find me a waterproof jacket under $200 that ships to Canada”) and the agent will search across Shopify stores, show options, and even complete the purchase within the chat.
Enabling this seamless experience required Shopify to introduce a suite of technologies and an open protocol. At the heart is the Universal Commerce Protocol (UCP) – an open standard (co-developed with Google) that acts as a “universal translator” between AI agents and commerce systems. UCP defines a common language and primitives so that agents, merchants, payment providers, and others can communicate in a consistent, secure way. Without UCP, a merchant or developer would have to build custom integrations for each AI platform; with UCP, you integrate once and work everywhere.
Shopify implements UCP through its own set of tools (collectively called MCP servers) that handle the major stages of the shopping flow. In an agentic transaction, there are typically four actors: the platform/agent, the merchant’s system, a payment service provider, and credential providers (for identity, payment credentials, etc.). UCP covers all interactions between these actors, including:
Product Discovery – Searching for products across merchants, filtering and retrieving details.
Cart & Checkout – Creating a cart or checkout session, collecting buyer info, applying discounts or loyalty points, and securely processing payment.
Orders & Post-purchase – Confirming the order and tracking fulfillment, returns, etc.
Shopify’s agentic stack provides capabilities for each of these. Developers can build end-to-end commerce flows where an AI agent takes the user from discovery to purchase to post-purchase, all within a conversation. Crucially, UCP was designed to handle complex retail scenarios: applying discount codes, using loyalty rewards, selecting subscription options, confirming store policies like pre-order terms – all via chat. It also supports any payment provider and method (via standardized payment handlers, discussed later) so that the agent can flexibly handle payments.
In short, Shopify Agentic commerce is the infrastructure that lets you build shopping experiences inside AI or any headless interface, with minimal custom work. Next, let’s dive into the key components that make this possible and how developers can use them.
At the core of the discovery phase is Shopify Catalog, a massive structured index of products from across all Shopify merchants. Think of it as a real-time, searchable catalog of billions of products globally. This is the foundation for letting agents find “the best products by the best merchants” without each developer having to aggregate or scrape data themselves. In fact, prior to this, a third party trying to build a cross-Shopify product search had to crawl thousands of stores and handle inconsistent data – a daunting task. Now, Shopify Catalog offers a low-latency API where “one query” gives you “endless data” across Shopify’s ecosystem.
What it does: Shopify Catalog allows an AI agent (or any app) to search for products, refine results with filters (price range, categories, shipping destination, etc.), and look up detailed info on specific products. Results are returned in a consolidated format: for example, search results are de-duplicated by a Universal Product ID (UPID) so that if the same item is sold by multiple stores, it shows up once with a combined view. Each result includes essential product data (title, description, images), a price range across all offers, available variants/options, and a list of shops offering that item with their specific prices and checkout URLs. This means an agent can immediately present the user with options (perhaps showing the lowest price or fastest shipping among sellers) and know how to direct the purchase.
When a user picks a product, the agent can use the Lookup capability to get full variant-level details via the UPID or variant ID. The lookup returns all variant options and pricing for each variant at each shop, as well as rich info like descriptions, features, specs, etc., which are often AI-enriched by Shopify to fill in gaps. (Shopify uses its own LLMs to categorize and enrich product data, standardizing attributes so results are relevant and well-described. These AI-inferred fields make the agent’s responses more informative, though Shopify notes they may not always be perfect.)
How to use it: Developers have a few ways to tap into Shopify Catalog, depending on needs:
Catalog MCP: A JSON-RPC API endpoint provided by Shopify that implements UCP discovery. This is the primary tool for agentic commerce. It exposes “tools” (functions) like search_global_products and get_global_product_details for searching and lookup. Catalog MCP requires authentication via a JWT token (obtained with your Shopify developer credentials). This ensures only approved partners/apps query the global catalog. The advantage of using the MCP server is that it’s tightly integrated with the agentic workflow and UCP’s structures.
Catalog REST API: A RESTful API that underpins the Catalog. In fact, the MCP server is essentially a thin layer over this REST API. You could directly use endpoints like /catalog/search and /catalog/lookup if you prefer REST or need a more manual integration. The data returned is the same (UPIDs, product info, etc.). If you’re building outside of an AI agent context (say a web marketplace), the REST API might be convenient. Authentication and rate limiting would be similar to the MCP.
Storefront MCP: This is a variant of the catalog concept but scoped to a single merchant’s store. Every Shopify store now exposes an unauthenticated MCP endpoint (at https://{store_domain}/api/mcp) that an agent can call for store-specific queries. Storefront MCP offers “tools” for searching that one store’s products (search_shop_catalog) and even for querying store info like policies or FAQs (search_shop_policies_and_faqs). The results include product titles, descriptions, images, variant IDs for that store, and prices with currency. This is extremely useful if you’re building an AI assistant for a particular brand (e.g. on a merchant’s own site or app) – you don’t need to sift through global results, and you don’t even need API credentials. It’s also handy for prototyping agent experiences, since you can hit a test store’s MCP without the overhead of auth and without worrying about global rate limits.
When to use which: In general, Catalog MCP (global) is recommended for most use cases, especially if your agent or app is meant to help users discover products from any merchant. It unlocks the full breadth of Shopify’s ecosystem. Use cases include multi-store shopping assistants, comparison tools, or any scenario where the user hasn’t decided on a specific merchant.
However, Storefront MCP shines in a few scenarios:
You are focusing on one merchant (e.g. the brand’s own chatbot or an AI concierge in a single store’s context). Here, hitting the store’s own MCP is simpler and avoids the overhead of the global index.
You want to avoid auth and test things quickly. Since Storefront MCP is open (rate-limited only by the store’s own traffic rules), it’s great for demos or hackathons.
You have concerns about global rate limits. During early phases, Shopify may rate-limit Catalog MCP usage (especially for smaller partners). A store’s own MCP might allow more freedom if you mainly care about that store’s products.
Finally, if you need fine-tuned control or non-agentic use (like building a custom marketplace site), the Catalog REST API is an option. It might allow more custom filtering or integration outside the context of an AI tool call. But for most “agentic” scenarios, the MCP interface (with its predefined tools and UCP compliance) will be the easiest path.
Developer tips: When using Shopify Catalog, note that results are live and dynamic. Caching is disallowed – you shouldn’t store product data or images server-side for long, both to respect merchant updates and because of policy. For instance, prices and availability might change, and image URLs must be used as provided (no downloading and re-hosting). Also, you can tailor queries with various parameters: keywords, price range, desired categories (via taxonomy IDs), shipping location (to find items that can ship to the user), etc. You can even create saved Catalog queries in the Shopify Dev Dashboard for repeated use (e.g. pre-filter to certain categories or list of stores for a niche marketplace). This generates a custom endpoint that encapsulates those filters.
Finally, multi-currency and locale: The Catalog results will include prices in the merchants’ default currency, unless you specify otherwise. If you’re building a global app, you should capture the user’s locale or preferred currency. During checkout (next section), you’ll be able to specify a currency for the transaction, and Shopify will handle conversion or use the merchant’s set international pricing if available. We’ll discuss that more under checkout.
One of the most groundbreaking aspects of Shopify’s agentic approach is the concept of a “Universal Cart”, enabled by UCP’s flexible cart and checkout model. In traditional e-commerce, carts are siloed per merchant – you shop on one site at a time. Universal Cart allows a user (via an agent) to add items from multiple different Shopify stores into one logical cart within a single conversation or interface. For example, a customer could say, “Add that jacket from Store A and those boots from Store B to my cart,” and the agent would handle it. The user can then check out once for all items.
From the user’s perspective, this feels like one seamless transaction – they get a unified checkout experience even though the items come from different merchants. For developers, this is achieved by UCP’s cart and checkout abstraction: the agent can coordinate separate checkout sessions under the hood but present them as one flow. Each merchant remains the seller-of-record (important for legal and compliance reasons), but the agent orchestrates the process so that the hand-offs are minimal.
How does this actually work? UCP defines standard cart semantics and a “unified checkout” capability. An agent can create a cart session that is recognized by the merchant’s backend via UCP. When multiple stores are involved, typically the agent will maintain multiple parallel carts or checkout sessions – one per merchant – but it can manage them concurrently and guide the user through the steps in one combined UI. Shopify’s protocol ensures that “every transaction finds a path to completion” by dynamic handoffs based on the cart context. For example, if a certain item requires user input (like customizing an engraving or selecting a delivery date), the agent knows to prompt for that or escalate to the appropriate interface for that merchant.
Unified Cart & Checkout in practice: Let’s say our user has items from two stores. The agent might initiate a checkout session with Store A’s API and another with Store B’s API (using Checkout MCP, which we cover next). As it gathers info, it might find that Store A’s item ships from Canada and requires a phone number, while Store B’s item has a pre-order disclaimer that must be accepted. The agent can handle these sequentially or in parallel: prompting the user for needed info or confirmations, then updating each checkout. In the end, the agent will obtain a continue_url or checkout link for each store’s order (or use Checkout Kit to embed them). The user might click “Pay Now” once, and behind the scenes the agent triggers the finalization of each order. From the user’s perspective, it felt like one checkout for the “cart” – they maybe entered payment details one time (especially if using a wallet like Shop Pay that can split across orders securely). Under the hood, two separate orders are created (one per merchant). This avoids any “marketplace” intermediary taking custody of funds, keeping things compliant with Shopify’s model (each merchant gets paid directly by the customer).
For developers, the heavy lifting of this orchestration is mostly handled by UCP and Shopify’s tools. You do need to design your agent’s conversation flow to manage multiple items and possibly multiple checkouts, but the Universal Cart concept spares you from building a new combined checkout system from scratch. You don’t have to merge payments or calculate splits – you let Shopify’s backend handle each order. Essentially, the agent acts like a super-client that checks out on multiple sites in a coordinated way.
It’s worth noting that merchants can control their participation in such cross-store experiences. Shopify introduced an Agentic Storefronts section in the admin where merchants can manage how their products appear in AI channels. They can toggle their presence on channels like ChatGPT, Google AI, etc., and presumably they can opt into the Catalog (by default Shopify has made most stores searchable unless they opt out, to populate the Catalog). This means as a developer, you automatically have a vast selection of products to offer, but you should be aware that not every merchant may allow an agent to complete checkout on their behalf. (For example, some might disable the channel if they feel it doesn’t suit their brand, at least initially.) The UCP protocol is open and has support from many platforms, so over time we may see even non-Shopify commerce systems adopt it – but Shopify’s Catalog and Checkout tools give you a head start with thousands of merchants ready to go.
In summary, UCP’s “unified cart and checkout” capabilities mean you can build experiences where shoppers buy from any store, anywhere, in one flow. Use this power carefully: one consideration is to be transparent with users that items might ship separately and potentially incur separate shipping fees. (The LinkedIn discussion around Universal Cart noted that multiple small orders arriving separately could surprise users. It’s wise to have the agent clarify, e.g., “You’ll receive two packages, one from each store.”) As long as the user experience is smooth and clear, the universal cart is a game-changer for convenience.
Moving to the checkout phase: Checkout MCP is Shopify’s API endpoint that lets an agent create and manage a checkout session programmatically. This is where the agent takes the items a user wants and effectively goes through the “Add to cart -> provide details -> place order” steps on behalf of the user. As developers, you can use Checkout MCP to script the checkout flow in a controlled, step-by-step manner.
Key capabilities of Checkout MCP: it provides “tools” (API methods) to:
create_checkout – Start a new checkout session with line items (the products/variants the user wants) and any initial buyer info you have. This returns a checkout session ID and usually a continue_url (the web URL for completing checkout).
get_checkout – Retrieve the current state of an ongoing checkout (useful if you need to poll or display status).
update_checkout – Modify the checkout by adding missing information or changing details. For example, after creation, the checkout might be incomplete and require a shipping address – your agent can call update_checkout with the address, or add a discount code, etc..
complete_checkout – Finalize the checkout and attempt to place the order (i.e., charge payment and create the order).
cancel_checkout – Abort a session if the user changes their mind or times out.
How it works: The Checkout MCP follows a state-machine or status-driven workflow. When you create a session, the response includes a status field (and possibly a list of messages if something is missing). Typical statuses include: incomplete (needs more data), requires_escalation (needs user interaction in UI), ready_for_complete (all set to finalize), complete_in_progress, completed, or canceled. Your agent will loop: check status after each call, and decide what to do:
Create the checkout – You provide at least the line items and a currency (and an initial shipping address or email if you have it). The API responds perhaps saying status = incomplete with messages like “Shipping address is missing” or “Contact email required” etc.. Each message has a severity indicating if the agent can fix it (recoverable) or if it needs buyer input (requires_buyer_input). For example, if shipping is missing, that’s recoverable by asking the user for their address and calling update_checkout. If an item is out of stock (MERCHANDISE_NOT_AVAILABLE), that’s requires buyer input – the agent should ask the user to pick a different item.
Update the checkout – The agent calls update_checkout with any missing info it can gather (address, phone, shipping method choice, etc.). After updating, check the status again. You repeat this until status either becomes ready_for_complete or requires_escalation.
Handle escalations – requires_escalation means something can’t be handled via API. This could be a merchant’s custom checkout extension (for example, requiring age verification, or a custom upsell) or perhaps a payment step that must be done securely by the user. The Checkout MCP response in this case includes a continue_url – a link to the web checkout at the exact stage where input is needed. At this point, the agent should hand off control to a trusted UI for the user to complete those actions. There are two ways:
Open web checkout in a browser or webview (simple, basically just load the continue_url page).
Embedded Checkout using Checkout Kit or the Embedded Checkout Protocol (ECP), which allows the agent’s app to display the checkout UI natively and even listen for certain events (more on Checkout Kit below).
Either way, once the user finishes those required steps (e.g. they complete payment verification or fill a form), the checkout will progress. If using Checkout Kit, you can detect when it’s done; if using a browser, you might rely on a redirect/callback.
Complete the checkout – If status is ready_for_complete (meaning all info is gathered and nothing further is needed from the user), the agent can call complete_checkout via the API to place the order. This triggers the actual purchase. The response may go to complete_in_progress (the backend is charging the card or waiting on something), then to completed if successful. At that point, you have an order confirmation (order ID, etc.) which you can communicate to the user.
Throughout this process, Checkout MCP requires authentication. You must obtain an OAuth client ID/secret from your Shopify Partner dashboard and exchange for a JWT token. The token is then used with each API call (in an Authorization header). Each Shopify store’s checkout endpoint is typically https://{shop-domain}/api/ucp/mcp for UCP-based calls. (This is separate from the storefront’s unauthenticated /api/mcp for product search – the checkout one lives under /api/ucp/mcp and expects auth.)
Use cases for Checkout MCP: You should use the MCP approach when your agent or app needs fine-grained control over checkout or needs to handle multi-step flows. For example:
If you want to implement a conversational checkout where the agent asks for each detail (shipping address, shipping option, payment method choice) one by one and possibly handles errors (“The ZIP code is invalid, please correct it”), MCP is ideal.
If you plan to support multi-merchant carts, you will likely use Checkout MCP to manage each merchant’s checkout session in parallel and keep track of their statuses.
If you need to programmatically apply things like discount codes, gift cards, or choose a specific fulfillment option (pickup vs delivery), MCP lets you do that before finalizing the order.
If you want to detect certain conditions (e.g., out-of-stock, or price changed since added to cart) and maybe handle them in dialogue, the status messages provide those hooks.
On the other hand, if your use case is simpler – say the agent only ever helps purchase a single item in one go – you might not need the full MCP dance. Checkout URLs (Cart permalinks) are an alternative for simpler flows. In fact, the Catalog search results include a checkoutUrl for each shop’s offer. This checkoutUrl is essentially a cart permalink that takes the user straight to that product’s checkout on the merchant’s store (usually with quantity 1). A developer can simply open that URL (in a webview or with Checkout Kit) to let the user pay. This bypasses the need for your agent to collect addresses or call APIs – the merchant’s normal checkout flow handles it. The downside is you can’t easily add more items or interact with the process (unless you scrape the page, which is not recommended). So, for multi-item or interactive flows, MCP is the way to go, whereas for one-click purchases of a single item, using the direct checkoutUrl could suffice.
Multi-currency and regional considerations: When creating a checkout via MCP, you must specify the currency (ISO code) to use. This should match the buyer’s locale or preference. If the merchant has set specific prices for that currency (via Shopify Markets), the API will use those; if not, Shopify will handle currency conversion for the order at the current rate. Additionally, if an item can’t be shipped to the user’s country, the checkout API will likely flag that during address input (and the agent might need to filter such items upfront by using the Catalog’s shipping location filter). Developers should be mindful of collecting the shipping country early and using it in the search query to avoid suggesting items that can’t be delivered. Also, taxes and duties for international orders will be calculated as usual by Shopify during checkout – the agent should surface those if needed in the final price.
Current limitations and beta features: As of Winter ’26, the full programmatic checkout completion (where the agent completes without any user handoff) is in preview for select partners. In many cases, due to security and UX, you will still hand the user to a UI for the final payment entry or certain confirmations (e.g., agreeing to terms). However, the vision is that if the user’s credentials (like a saved card or Shop Pay) are available, the agent might complete the order entirely within chat. Keep an eye on updates to Checkout MCP as Shopify expands what can be done via API – the UCP spec already allows for things like loyalty points redemption, custom fields, etc., but not all may be fully available on day one.
One major thing to note: Payment security. Agents never directly see or handle raw payment details like credit card numbers via the API – that’s by design. Either a payment token (from something like Shop Pay) is used, or the user enters the info into a secure Shopify checkout form (web or embedded). This ensures PCI compliance and that users trust the process. The Checkout MCP will list what payment methods are available for the checkout (in a payment.handlers array) once it has enough info. For instance, it might show that this merchant accepts credit card, Shop Pay, PayPal, etc. An advanced agent could use this to say “Do you want to pay with Shop Pay, since you’ve used it before?” and then use the Shop Pay payment handler to obtain a payment token or approval (Shopify provides a specific integration for Shop Pay in agents). Those payment handler integrations are beyond the scope of this overview, but they exist to allow things like wallet payments in a standardized way.
Even with powerful APIs, sometimes the fastest way to complete a purchase is to use Shopify’s battle-tested checkout UI. Checkout Kit is a toolkit that lets developers embed the Shopify checkout interface directly into their app, website, or agent with minimal code. It’s essentially a ready-made WebView/iframe solution that presents the merchant’s actual checkout (with all their branding, customizations, and payment options) in a contained component. This is huge for conversion: Shopify’s checkout is highly optimized (it boasts some of the best conversion rates in the industry), so reusing it ensures you’re not sacrificing performance or trust by building your own form.
What it provides: Checkout Kit (formerly called Checkout Sheet Kit) supports multiple platforms – iOS, Android, React Native, and Web apps can all use it via provided libraries or web components. The core idea is you supply Checkout Kit with a checkout URL or cart permalink, and it will render a modal checkout window or an inline frame that loads that URL, handling all the tricky parts like cookies, local storage, authentication, etc., across different devices. It “bridges” to Shopify’s web checkout and also provides callbacks for the host app to know the state (e.g., checkout completed or user closed it).
For example, on a mobile app, you might call a function like ShopifyCheckoutSheetKit.present(checkoutURL, from: viewController) (as shown in Shopify’s docs). This pops up a native view that loads the checkout page. On web, Shopify offers a small JS library so you can simply include a <shopify-checkout> web component; clicking a link to the cart URL will open the embedded checkout widget on the page.
Why use it: If you’re building a headless commerce app or custom frontend, Checkout Kit saves you from reinventing the checkout. You don’t need to create forms for shipping or payment or handle validation – the merchant’s existing checkout flow is reused, including all their store customizations (like logo, color scheme), Checkout UI extensions (if the store has apps adding fields or upsells), and Shopify Functions (custom pricing/shipping logic). It’s literally the same checkout that would run on their website, but embedded in your context. This means no trade-offs for the merchant or customer – they get the full feature set, and you get a drop-in solution.
When to use it:
In an AI agent scenario, when the agent hits a point where user input is needed (status = requires_escalation as described earlier), using Checkout Kit to present the continue_url gives a smooth, in-context experience. For example, if the user is chatting in a messaging app that supports webview (like Facebook Messenger or within a mobile app), the agent could open the checkout right there rather than sending the user to an external browser. Microsoft’s Bing Chat (Copilot) integration with Shopify uses a form of embedded checkout like this, so the user never leaves the chat window.
In a mobile app (iOS/Android) that sells products from a Shopify store or multiple stores, you can use Checkout Kit to handle checkout natively. For instance, a game or a lifestyle app might let users buy merchandise without kicking them out to Safari; behind the scenes, it loads the Shopify checkout via the kit.
On a content website or blog, you could embed a “Buy” button that triggers the Checkout Kit overlay. The Winter ’26 announcements highlighted that you can now deliver a merchant’s checkout onto any web page with a lightweight JS library. If you run a media site or an influencer blog, you could integrate direct shopping: readers click “Buy now” on a product mention and the checkout pops up right on your site (the product is perhaps pre-selected via a cart permalink).
Essentially, anytime you want to put checkout where the user is, rather than sending the user to the store’s site, Checkout Kit is the tool.
Integration example: Suppose you built a travel app that suggests local products from Shopify merchants in a city (via the Catalog). A user browsing “Paris” might see a guide with recommended wines from local shops. If they decide to buy one, you can use Checkout Kit to let them purchase it right within your app. The flow might be: use Catalog to get the product and a checkoutUrl for that product from the merchant’s store, then call the Checkout Kit component to present that URL. The user sees the checkout, maybe selects quantity or enters address, pays, and then the kit closes and you get a callback to show an order confirmation in your app. The user never felt like they left your experience, yet the merchant got a normal order through their Shopify backend, and you didn’t have to handle sensitive data.
Checkout Kit also smartly handles things like third-party cookies or cross-site scripting restrictions that could block an embedded checkout in some browsers. It’s built to work around those, so the checkout loads reliably across Safari (which is picky about third-party iframes) and Chrome, etc.. This kind of detail would be a headache to solve DIY.
Below is a quick illustration of how Checkout Kit works on mobile, preserving the store’s branding and supporting wallets like Shop Pay and Apple Pay:
Example of Shopify’s Checkout Kit in a mobile app, preserving the full checkout experience (branding, shipping, payment options) within an embedded sheet.
As you can see, the merchant’s checkout (here “Plant” store) appears seamlessly in the app, and even accelerated payment options (Apple Pay, Shop Pay) are available – all with just a few lines of integration code.
Developer tips: Make sure to retrieve a valid cart or checkout URL to feed into the kit. If you built a cart via the Storefront API (for headless builds), you can use the cart permalink or generate a checkout URL from the Cart API. If you used Checkout MCP, you will get a continue_url when escalation is required – that can be passed into Checkout Kit. The kit will handle user login if needed (Shopify’s checkout might prompt for email verification or Shop Pay login – all that happens in the embedded UI). After completion, you should close the kit’s view and perhaps use the info you get (like order number) to confirm with the user or navigate in your app.
One more thing: Embedded Checkout Protocol (ECP) – this is a standard that Checkout Kit implements, which allows your host app to programmatically get events from the checkout (like “shipping address changed” or “order submitted”). If you need deeper integration – say, updating the app’s UI when shipping options load – ECP has a spec for those events. This is more advanced and typically not required for basic flows, but it’s good to know it exists if you need to fine-tune the user experience.
Now that we’ve covered the individual pieces, let’s paint a picture of how developers can combine them in real-world scenarios. The key is to choose the right tools for your scenario and to understand how they complement each other. Here are some typical patterns:
Use case: You want to build a shopping assistant (text-based or voice) that can help a user find products across many brands and purchase them without going to each website. This could be a chatbot in a messaging app, a voice skill (Alexa/Google Assistant), or a section in a super-app.
Integration pattern: Use Shopify Catalog (MCP or API) for broad product discovery. Let the user search in natural language; the agent converts that to a Catalog query (possibly with filters like price range or category). Present results with a nice UI (could be carousel of product cards in a chat). When user picks a product, use Catalog Lookup to get variant details and the list of merchants offering it. Perhaps you allow the user to choose which merchant (maybe they prefer the one with lowest price or fastest delivery). Once a choice is made, use Checkout MCP to start a checkout with that merchant’s item. If the user wants multiple items from different merchants, maintain a list and initiate separate checkout sessions for each via Checkout MCP (Universal Cart approach). Guide the user through providing any needed info; if any step needs a visual interface (e.g., entering payment), use Checkout Kit to embed it right in the chat app. Once completed, confirm orders. This pattern basically strings together Catalog MCP -> Checkout MCP -> Checkout Kit, possibly repeated for multiple merchants. It’s the full agentic commerce flow.
When to use Storefront MCP: If your assistant is branded for a single store (e.g., “Ask BrandX Bot”), you could skip Catalog and just use that store’s MCP for discovery. But for a marketplace assistant, Catalog is the hero.
Example: Imagine a ChatGPT plugin that enables shopping. The plugin, when invoked, uses Shopify Catalog to fetch answers. A user says: “I need a gift for a 5-year-old under $50.” The agent searches and finds some toys. User picks one, agent checks which store sells it for under $50, finds one, then proceeds to checkout, asking “Shall I ship it to the address on your profile?” If yes, the agent creates checkout, fills address, and says “I’ll open a secure checkout for you to enter payment details.” It then uses Checkout Kit to pop the payment screen. The user pays, and done – all in one conversation.
This scenario is precisely what Shopify envisioned; they even demonstrated it with Microsoft’s Bing Chat (Copilot) where you can buy products in-line, and Google is integrating it into Google Search’s AI results.
Use case: A merchant wants an AI chat assistant on their website or in their mobile app to help customers find products and answer questions about policies, then direct them to purchase on that same site.
Integration pattern: Use Storefront MCP for that merchant to handle discovery and Q&A. For instance, the bot can answer “Do you have organic coffee?” by calling search_shop_catalog on the store’s MCP. It can answer “What’s your return policy?” by calling search_shop_policies_and_faqs. These tools make it easy to incorporate store-specific context. For checkout, since it’s one store, you have options: you might simply generate a cart permalink for the selected item and redirect the user to the normal checkout page (perhaps that’s enough if the chat is on the web). Or for a smoother experience, you might use Checkout Kit within the chat widget to let them complete the purchase without leaving the chat. If you want more conversational control (say the bot collects size and color options in chat), you could use Checkout MCP to create a cart, fill it, and then escalate at payment step.
When to integrate with existing store tech: If the store already has a headless setup or uses Shopify’s Storefront API for their site, you can still use Storefront MCP just for the AI part. It won’t conflict – MCP calls can run alongside GraphQL Storefront API calls. The benefit is MCP is optimized for natural language queries (like it might handle “organic coffee” search intelligently). Also, no authentication means easy client-side integration if needed.
Example: An apparel brand’s website has a chatbot that greets users: “Hi, I’m StyleBot. Looking for something specific?” The user can ask, “I need a summer dress in red, size M.” StyleBot calls the store’s MCP search_shop_catalog with that query, gets results, and shows a few dresses with images and prices. The user says “I like the second one, do you have it in stock in size M?” The bot might have that info from the search result (variant availability). If yes, user says “Great, I want to buy it.” The bot either (a) opens the Checkout Kit with the preloaded cart, or (b) asks for email and shipping address in chat (since it’s a returning user, maybe it knows), fills those via Checkout MCP, then opens payment via Checkout Kit. The order is then placed on the same store as if the user had clicked through normally.
This pattern emphasizes how agentic features can enhance a single merchant’s store – it’s not just about multi-store marketplaces. It can be used for better on-site search (“chat-based search”) and guided selling, especially useful in luxury retail or complex product categories where customers have many questions.
Use case: You have a custom mobile app or web application for e-commerce, possibly using Shopify on the backend (or even multiple backends). You want to allow checkout in-app without redirecting to an external browser, and you want to minimize development on the checkout process.
Integration pattern: Checkout Kit is your friend. Even outside of an AI context, Checkout Kit can be used simply to embed checkout. For example, if you built a mobile app using Shopify’s Storefront API (GraphQL) for the catalog and cart, you can create a cart (or checkout) via that API and then use the Checkout URL with Checkout Kit. Many headless implementations historically would redirect the user to the Shopify web checkout for final payment; Checkout Kit avoids that by popping it up natively. The key integration points: get the checkout URL after the user is ready to pay (Shopify’s Cart API can provide a web checkout URL), then call the kit to present it. Listen for a success callback to know the order went through.
If your app sells from multiple Shopify stores (say you aggregate products from several vendors in one app), you can still use Checkout Kit, but you might have to run a separate checkout per vendor sequentially. You’d handle that in the UI (perhaps showing a progress “1 of 2 orders completed”). Alternatively, if you coordinate via UCP as earlier, you might be able to combine them, but outside an AI agent it might be simpler to just process one after the other.
Example: A fashion influencer app curates items from different Shopify boutiques. A user adds a top from Boutique A and pants from Boutique B into the app’s cart. At checkout, the app detects two merchants. It could show an interface “You will be checking out with Boutique A first, then Boutique B.” For each, it calls Checkout Kit with that boutique’s checkout URL. The user pays for A (order confirmed), then the kit maybe resets for B’s checkout URL (perhaps reusing the same component or opening it again) and the user pays for B. This is a bit of a two-step, but still far smoother than forcing the user to manually visit two websites. You’d probably store both order confirmations and show the user a combined receipt in-app. This is essentially implementing a universal cart manually; using UCP/agentic could automate some of that, but if you already have a headless app, you can incorporate pieces gradually.
Use case: You want to serve users around the world, showing them relevant products and pricing in their local currency, and making sure fulfillment is feasible.
Integration pattern: Shopify’s global Catalog can be filtered by shipping country/region to ensure results include merchants that ship to the user’s area. Use that filter when querying (for example, if you know the user is in Japan, you might restrict results to merchants that have shipping to Japan, or at least you might rank those higher). For currency, you have a few approaches:
Convert and display prices in the user’s currency using Shopify’s FX rates. The Catalog API returns prices in the merchants’ currency by default (and it will specify which currency each price is in). You could use an exchange rate to show an approximate price in the user’s currency for comparison. However, at checkout, what matters is whether the merchant can charge in that currency.
If the merchant uses Shopify Markets and has multi-currency enabled, the checkout can often be done in the customer’s currency. When using Checkout MCP, specify the desired currency (e.g., “EUR” or “JPY”). If the merchant supports it, the prices in the checkout will be the merchant-defined or converted price in that currency. If not supported, the API might error or just use the shop’s base currency.
Use the buyer’s locale information. If your agent collects a shipping address early, the country code can hint at currency. Also, the search_global_products in Catalog might accept a “context” or parameters for currency – the docs don’t explicitly show currency in search, but some implementations may allow it or the upcoming enhancements might. At least, when retrieving details or constructing checkout, you control it.
Example considerations: If a user in Europe is using an AI assistant, they’d likely want prices in Euros and items that ship from or to Europe (to avoid huge shipping costs). Your agent might even automatically apply a filter like shipping_origin=EU or similar if supported, or after getting results, it can prefer merchants on the same continent. Once the user picks an item, you create the checkout with currency: EUR. Shopify will handle currency conversion and any display of duties at checkout. The user will pay in EUR and the merchant will receive either EUR (if they’ve configured to accept/payout in EUR) or their base currency converted via Shopify Payments’ FX.
One thing to watch: tax and regulatory differences in different regions. Some products might not be able to be shipped to certain countries (like certain electronics, plants, etc.). The Catalog might not inherently filter that, but the merchant’s shipping zones would prevent checkout later. So, it’s good for the agent to check early by either filtering or by anticipating errors in Checkout MCP (if you try to set a shipping address in a country the store doesn’t ship to, you’ll get an error message in the messages and can respond accordingly).
This is more conceptual, but it’s worth mentioning how Shopify’s agentic components can play with other tools:
LLM and AI platforms: If you are developing on an AI platform (like building a plugin for ChatGPT or integrating into a voice assistant), Shopify’s UCP and MCP tools act as the “plugin API”. For instance, a ChatGPT plugin could use Catalog and Checkout MCP in response to user queries. If you’re working with an LLM outside of Shopify, you might use the Model Context Protocol (MCP) standard to expose Shopify’s functionality to the LLM. In fact, UCP is designed to be used via either REST or MCP (which is a JSON-RPC-based standard for tools in AI). Shopify’s own implementation provides a UCP-compliant MCP interface, meaning an Anthropic Claude or an OpenAI system that speaks MCP can call tools/search_products or tools/create_checkout and behind the scenes Shopify will do the right thing. For developers, this means if you build a custom AI agent, you can directly call these HTTP endpoints with JSON payloads as the LLM’s “actions”.
Search engines: Google’s integration with UCP suggests future search results will allow direct purchasing. If you run a search or discovery platform, you could integrate Catalog to supplement your results with shoppable items. The open UCP spec means others (maybe Bing or niche search engines) could use it to get commerce results from Shopify merchants. As a developer, tapping into Shopify Catalog can make your app “commerce-aware” – for instance, a recipe app’s search could surface ingredients or cookware from Shopify stores and let users buy them.
Customer Data Platforms (CDPs) or personalization engines: The agentic flow can be enhanced by personalization. Imagine you have a CDP that knows a user’s past purchases or preferences (e.g., they often buy sustainable products, or they are size M). You can feed that context into the agent’s queries – perhaps by using the context field in search (Storefront MCP’s search accepts a context string to tailor results) or by filtering results post-query. You could also customize the conversation (“I see you bought running shoes last month, looking for similar items?”). All this is outside the Shopify tools themselves, but they are flexible enough to let you apply that layer on top.
Other Shopify components (Commerce Components, etc.): Shopify has a product called Commerce Components (for enterprise) where merchants can use individual Shopify services (like checkout, or inventory, etc.) headlessly. Agentic commerce complements this: if an enterprise merchant is on Commerce Components, they can still utilize the agentic ecosystem by plugging their product feed into Catalog (Shopify launched an Agentic Plan for non-Shopify merchants to list in the Catalog) and by using UCP to connect their custom stack. UCP is open, so theoretically a Commerce Components merchant could implement UCP endpoints on their own infrastructure if needed. However, Shopify has made it easy by just letting any brand (even off-Shopify ones) join the Catalog and use Shopify’s own checkout as a service for agentic channels. So, a headless enterprise could leverage just the Catalog and Checkout Kit parts without using Shopify’s online store. This modularity is powerful – you use what you need (e.g., maybe you keep your own website and product database, but you send a feed to Shopify Catalog so that AI agents can discover your products).
In essence, Shopify’s agentic components are designed to integrate with modern, composable architectures. You can treat them as building blocks: product search, cart/checkout, and UI embedding. Whether you slot them into an AI-driven app, a headless commerce solution, or a new mashup (gaming, social commerce, etc.), they handle the heavy commerce logic, letting you focus on the user experience.
While this technology is exciting, developers should keep in mind some current limitations and best practices:
Access and Rate Limits: During the early rollout, Shopify Catalog access may be restricted to partners who have requested access, and it’s subject to rate limits. If you plan for high volume, coordinate with Shopify or use saved catalogs to optimize common queries. Also ensure you handle rate limit responses gracefully (e.g., back off or cache results for a single session if allowed).
Data Freshness and Caching: As noted, don’t cache data long-term. Inventory and price can change, and the protocols disallow using outdated info. Always fetch fresh details before checkout – for example, even if you got a price from Catalog search, the Checkout API will confirm the latest price. Use the IDs (UPID, variant IDs) to fetch updated data if some time has passed.
Merchant Opt-In/Out: Not every Shopify merchant may be immediately available in the Catalog or allow agentic checkout. By default, Shopify included millions of products. But enterprise merchants or those in sensitive verticals might choose not to. The Catalog search tools return “eligible” merchants, which implies some might not be indexed. Also, some merchants might require the agent to adhere to certain rules (like not misrepresent their brand). If you’re building an agent that interfaces with merchants, abide by any developer terms Shopify provides regarding usage of content and portrayal of merchants.
Incomplete Transactions & Fail-safes: UCP is designed so that “no transaction is left behind”. This means if an agent can’t complete something, it should hand off to a human-readable method (web checkout). As a developer, make sure to implement those fallbacks. If your agent crashes or loses context mid-checkout, ensure the user can still recover (maybe via a link to the cart in question). The worst outcome would be a user thinks they bought something but it never went through – so test edge cases where the agent fails after payment, etc. Typically, an order isn’t created unless complete_checkout succeeded or the user finished the web checkout. If something fails, you might need to explain and let them try again.
UI/UX Considerations: While chat or voice commerce is powerful, it’s also new for users. Design your conversational flows to be clear. For multi-item scenarios, help the user understand what’s happening (“I’ve added these 3 items to your cart, from 2 different stores. Ready to check out?”). Use rich cards or quick replies if available in your platform to make selection easier (Shopify’s Catalog even returns image URLs you can use to show product photos in the chat UI).
Beta features: Some features are marked as “coming soon” or in beta in documentation. For example, order tracking via agents (post-purchase) is likely a feature Shopify will expand – e.g., the ability for an agent to answer “Where’s my order?” by querying order status. If available, it would be through UCP’s order APIs. Keep an eye on Shopify’s changelogs and editions updates for when these become generally available. As of now, discovery and checkout are the focus.
Security and Privacy: If you’re building an agent that stores user info (addresses, etc.), handle that data carefully. Though payment is done through Shopify’s secure channels, personal data still flows through your agent. Use Shopify’s guidelines and ensure compliance with any privacy laws when you store or use that data (for example, if you keep a user’s address on file to pre-fill next time, be clear in your privacy policy).
Merchant Relationships: In a multi-merchant aggregator scenario, consider how you surface different merchants. The agent should maintain neutrality or follow any ranking rules (Shopify likely prohibits biasing results unfairly). Also, if you build a marketplace-like app, you might need to handle customer support across multiple orders – which could be tricky. One LinkedIn commenter pointed out that multiple small orders might increase customer service load for merchants. This is more of a business consideration, but as a developer you might mitigate it by bundling info for the user or providing clear contacts for each order.
Shopify’s agentic commerce is evolving rapidly. Given it’s now an open standard, we can expect more platforms and retailers to adopt UCP beyond Shopify’s universe. This could mean an agent built for Shopify’s UCP could eventually transact with, say, Walmart’s catalog or other networks, and vice versa. For now, Shopify’s implementation and huge merchant base give it a strong network effect – a reason developers are jumping in now to build innovative experiences on top of it.
Looking forward, a few developments to watch or imagine:
Deeper AI Understanding: As LLMs improve, agents will get better at understanding complex requests (“I need an outfit for a beach wedding, coordinate accessories too”). Shopify’s enriched product data will help here, and developers might leverage AI re-ranking of Catalog results for relevance. Possibly, Shopify might provide more AI services (e.g., an API to get “similar products” or to summarize product differences – they already enrich descriptions, so maybe they’ll expose more).
Agent-to-Agent Commerce (A2A): Mentioned briefly in Shopify’s announcement is Agent to Agent (A2A) protocols. This envisions multiple agents coordinating – for example, one agent could delegate part of a task to another (like a travel agent booking flights might call a retail agent to buy luggage for the customer). UCP and related protocols might allow such interactions safely. It’s early, but think of scenarios where a personal assistant agent can negotiate with a merchant’s agent directly.
Beyond Retail Products: UCP is designed not just for retail but potentially other commerce (services, digital goods, etc.). We might see adaptations for booking services or handling subscriptions in chat. Shopify’s current focus is physical products, but the protocol’s flexibility (e.g., supporting subscription billing cadence selection in chat) hints at more to come.
Shopify’s Own Apps & Channels: The Shop app and Shopify’s ecosystem will likely integrate agentic features. For example, the Shop app might get a chat bot that uses Catalog to compare across stores. Shopify is also enabling Sidekick (an AI for merchants) – not directly related for buyers, but it shows Shopify’s commitment to AI across the board. For developers, this means more opportunities to integrate: building apps that extend Sidekick, or creating tools that plug into merchant’s AI workflows.
Commerce Components synergy: As more large brands use Shopify’s modular components, agentic commerce might become a standard part of those implementations. E.g., a brand might primarily use Shopify’s checkout component on their site and also use UCP to expose their inventory to external agents. The lines between “channels” will blur: an Instagram post, a ChatGPT conversation, a Google search result – all could become points of sale powered by this tech. Developers who understand how to use these APIs will be in demand to build those integrations.
Community and Examples: We’re likely to see more open-source examples, SDKs, and case studies. For instance, Shopify may release sample agent code (perhaps a reference ChatGPT plugin) or the community will share templates on how to implement common flows. Keep an eye on the Shopify Engineering blog (they have an article “Building the Universal Commerce Protocol”) and developer forums for tips and evolving best practices.
Shopify’s Agentic Commerce platform offers a powerful toolkit for developers to bring commerce to new interfaces and channels. By understanding the roles of Shopify Catalog (global product discovery), Storefront MCP (store-specific queries), UCP and the Universal Cart concept (multi-store, multi-step transactions), Checkout MCP (API-driven checkout), and Checkout Kit (embedded checkout UI), you can design solutions that meet users wherever they are – be it in a chat, a mobile app, or emerging AI platforms.
When deciding “when should I use this?”, consider the context: use Catalog for breadth (or when you need that enriched, deduplicated product search across many stores), use Storefront MCP for depth on one store. Use Checkout MCP if you need to programmatically shepherd the checkout with custom logic; use Checkout Kit whenever you want a quick, proven checkout UI with minimal fuss. Often, the answer is to use them together – they’re designed to dovetail as we’ve described.
We’re at the start of a new era where “conversational commerce” is becoming a reality at scale. Early adopters are already embedding shopping into AI assistants, messaging apps, and beyond. As a developer, plugging into Shopify’s agentic tech means you don’t have to build the commerce engine from scratch – you can focus on crafting a great user experience and let Shopify handle the heavy commerce logic. In the words of Shopify’s CEO Tobi Lütke, this approach means “Commerce just plugs in and feels seamless in conversations… Commerce should be everywhere people are, so we’re making that as easy as possible for the AI age.”
By leveraging Shopify Agentic and its components, you can ride this wave and build the next generation of shopping applications – ones that are intelligent, context-aware, and frictionless across channels. The tools are in your hands; we can’t wait to see what you create with them.
Sources:
Shopify Dev Docs – Agentic Commerce Overview, Shopify Catalog & Search, Storefront MCP, Checkout for Agents, Checkout MCP Reference, Checkout Kit Reference.
Shopify News Announcements – “The agentic commerce platform” (Jan 2026), Winter ’26 Edition (Dev).
Ringly Blog – “What is Shopify agentic commerce and how can I use it?” (Jan 2026).
LinkedIn / Shopifreaks recap – Checkout Kit, Catalog & Universal Cart launch.