As of yesterday we have just released our first capability according to the Universal Commerce Protocol (UCP) spec. What this means is that AI-agents and other platforms soon will be able to shop from Komplett using API’s rather than the traditional UI*.
AI and agents, probably the hottest topic of them all in the IT/development space has caught our attention and we started looking into how we can adapt this new and growing technology when it comes to how users interact with Komplett.no. The specific protocol that caught our eye was Google’s started initiative — UCP. Yet to be released in the EU it looks promising as it has been adopted already by some bigger e-commerce companies in the US already.
So what is Universal Commerce Protocol?
“The Universal Commerce Protocol (UCP) is an open standard for interoperability between commerce entities. It defines a common language and functional primitives so that platforms and businesses can interoperate securely and reliably across commercial verticals.“
It gives shops and customers (AI-agents e.g.) a standardized way of talking to each other over API’s. Its built up by something called capabilities. The current capabilities UCP support are:
checkout — allows the user to create an checkout session, add items, remove items, apply discounts and initiate payments
cart — lets the user add products to a basked without the added complexity of the checkout
catalog — explore the shops product assortment, search, lookup (see lists of products), and view product details
order — review confirmed orders. What was bought, products, prices etc.
The nice part about how the capabilities are built up is that its very flexible and allows for custom or extended capabilities to be supported. The only requirement is that the agent (customer) and shop (us) agree on the supported capabilities and versions during whats called a negotiation process.
The agent fetches our capabilities here https://www.komplett.no/.well-known/ucp and retrieves a full list of the capabilities we support. The agent will then compare our capabilities to its own, and from there it will know if it supports our capabilities and how to use them.
So how did the implementation go?
We decided to give it a try and after confirming that it supports most of what we want to offer our customers we started building. We started by creating UCP as a standalone app rather than trying to fit UCP into our current stack, and integrated service by service. The most complex part of working on UCP is how the customers should be authenticated and how the whole checkout and payment part flows. Thats what we spent the most time on even though its not released yet.
Some hours later (😄) we have shipped our first capability to prod — the catalog capability. It allows users to search, lookup (list products) and view product details. So, yes it was a clickbait title, right now you cannot actually create checkouts or place orders but we have tested the happy paths of that in dev and hope to release it sometime in the future.
Since UCP is not released or widely adopted in the EU yet we are not anticipating a lot of traffic, but it will be interesting to see what kinds of agents that are using it and what they search for. Will it be similar to human searches or not? UCP is also one of multiple standards so hard to tell if that is going to be in the future, but we will have to wait and see.
Testing the UCP using real AI-agents
I have to mention that testing the UCP with an actual agent proved to be more difficult than I anticipated. By default they do not seem to use UCP while accessing our site. I had to specify for both Google Gemini and Claude to use the UCP standard for browsing. The successful prompts I used was e.g.
“I want to buy a Gaming PC on Komplett.no. Use UCP to browse products“
Not sure if that is just because they need to discover that we have launched UCP or if they don’t really use that capability just yet.
Either way, it has been a fun challenge and will be an interesting technology to follow, as well as a cool milestone towards AI shopping on Komplett.