🏢 Magento / Adobe Commerce UCP Guide

Implement UCP on your enterprise Magento or Adobe Commerce store. Enable AI agents to discover and transact with your catalog.

🤖 AI Agent Ready🏢 Enterprise Grade🔧 Developer Required📊 GraphQL Support

Validate Your Magento UCP Profile Free

Check if AI shopping agents can discover and transact with your Adobe Commerce store. Instant results, no signup required.

Run Free Validation →

Why Add UCP to Magento?

Magento (Adobe Commerce) powers some of the world's largest online stores. Adding UCP support positions your enterprise for AI-driven commerce, allowing AI agents to discover products, check inventory, and complete transactions.

  • Enterprise Scale: UCP works with Magento's multi-store, multi-language setup
  • GraphQL Ready: Magento's GraphQL API integrates seamlessly with UCP
  • B2B Support: Expose B2B catalogs and pricing to AI agents
  • Headless Compatible: Works with PWA Studio and headless setups
⚠️ No Native UCP Support Yet

Magento / Adobe Commerce does not have native UCP support as of January 2026. Full UCP implementation requires custom development to build UCP-compatible REST API endpoints. The code in this guide creates a discovery profile, but functional AI agent checkout requires additional API development work.

🏢 Adobe Commerce Cloud

This guide works for both Magento Open Source and Adobe Commerce Cloud. Cloud users should deploy via the standard module deployment process.

Prerequisites

  • Magento 2.4+ or Adobe Commerce
  • SSH/CLI access to your Magento installation
  • Composer installed
  • Basic understanding of Magento module structure

Implementation

1Generate Your UCP Profile

Generate Your UCP Profile

Create a customized UCP profile for your Magento store.

Open Generator →
2Create the Module Structure

Create a new module to serve the UCP profile:

# Create module directories
mkdir -p app/code/Vendor/Ucp/Controller/WellKnown
mkdir -p app/code/Vendor/Ucp/etc
3Create Module Registration

Create app/code/Vendor/Ucp/registration.php:

<?php
use Magento\Framework\Component\ComponentRegistrar;

ComponentRegistrar::register(
    ComponentRegistrar::MODULE,
    'Vendor_Ucp',
    __DIR__
);
4Create module.xml

Create app/code/Vendor/Ucp/etc/module.xml:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_Ucp" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Store"/>
        </sequence>
    </module>
</config>
5Create Routes Configuration

Create app/code/Vendor/Ucp/etc/frontend/routes.xml:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="wellknown" frontName=".well-known">
            <module name="Vendor_Ucp"/>
        </route>
    </router>
</config>
6Create the Controller

Create app/code/Vendor/Ucp/Controller/WellKnown/Ucp.php:

<?php
namespace Vendor\Ucp\Controller\WellKnown;

use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\Controller\Result\JsonFactory;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Framework\App\Config\ScopeConfigInterface;

class Ucp implements HttpGetActionInterface
{
    private JsonFactory $jsonFactory;
    private StoreManagerInterface $storeManager;
    private ScopeConfigInterface $scopeConfig;

    public function __construct(
        JsonFactory $jsonFactory,
        StoreManagerInterface $storeManager,
        ScopeConfigInterface $scopeConfig
    ) {
        $this->jsonFactory = $jsonFactory;
        $this->storeManager = $storeManager;
        $this->scopeConfig = $scopeConfig;
    }

    public function execute()
    {
        $store = $this->storeManager->getStore();
        $baseUrl = $store->getBaseUrl();
        
        $profile = [
            'profile_version' => '1.0',
            'merchant' => [
                'name' => $this->scopeConfig->getValue('general/store_information/name'),
                'url' => $baseUrl,
                'contact' => [
                    'email' => $this->scopeConfig->getValue('trans_email/ident_general/email')
                ]
            ],
            'capabilities' => ['browse', 'search'],
            'policies' => [
                'returns_url' => $baseUrl . 'returns',
                'shipping_url' => $baseUrl . 'shipping-policy',
                'privacy_url' => $baseUrl . 'privacy-policy'
            ],
            'service_bindings' => [
                [
                    'type' => 'REST',
                    'base_url' => $baseUrl . 'rest/V1'
                ],
                [
                    'type' => 'GraphQL',
                    'base_url' => $baseUrl . 'graphql'
                ]
            ]
        ];

        $result = $this->jsonFactory->create();
        $result->setHeader('Access-Control-Allow-Origin', '*');
        $result->setData($profile);
        
        return $result;
    }
}
7Enable the Module
# Enable the module
bin/magento module:enable Vendor_Ucp

# Run setup upgrade
bin/magento setup:upgrade

# Clear cache
bin/magento cache:clean
⚠️ Production Deployment

For Adobe Commerce Cloud, commit the module to your repository and deploy through the standard pipeline.

GraphQL Integration

Magento's GraphQL API is ideal for AI agents. Expose your GraphQL endpoint in the UCP profile for efficient product queries.

Sample GraphQL Query for AI Agents

{
  products(search: "laptop", pageSize: 10) {
    items {
      name
      sku
      price_range {
        minimum_price {
          final_price {
            value
            currency
          }
        }
      }
      image {
        url
      }
      stock_status
    }
  }
}
💡 Pro Tip

Consider creating a dedicated GraphQL schema for AI agents with optimized queries for product discovery.

Multi-Store Configuration

For multi-store setups, each store view can have its own UCP profile. The module automatically uses the current store context.

Store ViewUCP Endpoint
Defaulthttps://store.com/.well-known/ucp
Frenchhttps://store.com/fr/.well-known/ucp
Germanhttps://store.com/de/.well-known/ucp

Validate Your Implementation

Validate Your Magento Store

Check your UCP implementation and AI commerce readiness.

Run Validation →

Common Issues & Solutions

IssueSolution
404 on /.well-known/ucpRun bin/magento cache:clean and check routes.xml
Module not loadingRun bin/magento setup:upgrade
Empty store nameConfigure store name in Stores → Configuration → General
Varnish caching issuesAdd /.well-known/ucp to cache bypass rules

Still seeing errors?

Run our 4-level validation (structural, rules, network, SDK) to find every issue blocking AI agents from your Magento store.

Validate Now →

🤖 Test with AI Agents

Run AI Agent Simulation

Test how AI shopping agents will interact with your Magento store.

Open Simulator →

Frequently Asked Questions

Does Magento support UCP natively?

Not yet. Adobe Commerce (Magento) does not have built-in UCP support as of 2026. You need to create a custom module or use the manual implementation methods described in this guide to serve the UCP profile at /.well-known/ucp.

What Magento version is required for UCP?

UCP works with Adobe Commerce (Magento) 2.4 and above. You need access to the GraphQL API (available since 2.3.1) and REST API for full AI agent checkout capabilities.

How do AI agents interact with Magento via UCP?

AI agents read your UCP profile to discover your store, then use Magento GraphQL API for product search/browsing and the REST API for cart and checkout operations. The UCP profile tells agents which endpoints to use.

Can I use UCP with Magento headless commerce?

Yes. UCP is ideal for headless Magento setups. Serve the UCP profile from your frontend domain and point the service_bindings to your Magento GraphQL/REST endpoints. This works with PWA Studio, Vue Storefront, and other headless frontends.

What are the most common Magento UCP validation errors?

The most common errors are: missing profile_version field, HTTP endpoints instead of HTTPS, trailing slashes on API URLs, missing signing keys, and misconfigured CORS headers. Use the free UCPtools validator to detect all these automatically.

Resources