← All help topics

Agent storefront (UCP) on any platform

AI agents discover stores through the /.well-known/ucp manifest. WooCommerce stores get it from the Botmetria plugin, custom PHP and Node.js stores — from the open-source SDKs. This guide covers the fully static / self-hosted path: how to serve the files and the wire format. The no-code path runs from a product feed via the dashboard (card below).

No code at all? Use the storefront from a feed

If you have a Google Shopping or YML product feed, the Botmetria cloud can build and host the agent catalog for you — you only place the manifest. Step-by-step: Storefront from a feed →

Serving the manifest

The file has no extension, so tell your web server to serve it as JSON:

nginx

location = /.well-known/ucp {
    default_type application/json;
    alias /var/www/your-site/ucp-manifest.json;
    add_header X-Robots-Tag noindex;
}

Apache (.htaccess)

<Files "ucp">
    ForceType application/json
    Header set X-Robots-Tag noindex
</Files>

Put the .htaccess rules inside the .well-known directory (create the plain file named “ucp” next to it).

The static way (no Botmetria account needed)

Small catalog or no feed? Publish both files by hand. The manifest (put your real domain and currency; endpoints.catalog may point to any URL on your site):

{
  "ucp_version": "1",
  "profile": {
    "name": "your-store.com",
    "url": "https://your-store.com/",
    "currency": "EUR",
    "country": ""
  },
  "capabilities": { "catalog": true, "checkout": false, "payment": false },
  "endpoints": {
    "catalog": "https://your-store.com/ucp-catalog.json",
    "feed": ""
  },
  "policies": {},
  "payment_methods": []
}

And the catalog itself — a JSON page of products in the canonical format (price is a decimal string, availability is in_stock / out_of_stock / unknown):

{
  "data": [
    {
      "id": "101",
      "name": "Product name",
      "description": "Short plain-text description.",
      "description_full": "Full plain-text description.",
      "url": "https://your-store.com/product/101",
      "sku": "SKU-101",
      "gtin": "",
      "brand": "",
      "category": ["Category"],
      "currency": "EUR",
      "price": "49.00",
      "availability": "in_stock",
      "stock_qty": null,
      "images": ["https://your-store.com/img/101.jpg"],
      "attributes": {},
      "rating": null
    }
  ],
  "next_cursor": null
}

Check that it works

  1. Open https://your-domain/.well-known/ucp in a browser — you should see the JSON (not a 404 page).
  2. Run the agent purchase demo on your domain: with a storefront the agent passes “manifest → catalog → pick” and honestly reports that checkout is off.

Want full agent checkout?

Storefront mode makes you visible; full checkout lets agents build a cart in your store. It ships with the WooCommerce plugin — and for custom platforms as open-source SDKs (MIT, ~50 lines of adapter: your products + your cart): PHP — composer require botmetria/ucp (Packagist · GitHub; Laravel / PSR-15 / plain PHP) and Node.js — npm install @botmetria/ucp (npm · GitHub; Express / plain http, analytics collector bundled). Need a hand integrating? Write to us.

Didn't find your answer?

Email us your store address and a screenshot of the problem — we'll help you get connected: info@botmetria.com