Skip to content

fondouk-dev/fondouk

Repository files navigation

Fondouk — AI Agent Ready for PrestaShop (UCP, MCP)

🌍 English · Français · العربية

Make a PrestaShop store discoverable and queryable by AI agents — real-time catalog, prices and stock. One click, zero configuration. Fondouk implements published open standards — UCP and MCP — faithfully; it invents no protocol of its own.

CI license prestashop ucp status

Why "Fondouk"

A fondouk was the caravanserai where travelling merchants were housed — the place a town welcomed the agents who came in from the road. Fitting for a module that opens the storefront to AI agents. The name is the metaphor: your shop, hospitable to whoever comes trading.

What it does

When a shopper asks ChatGPT, Gemini or Claude "where can I buy this?", a store that doesn't speak to agents can't be queried in real time — no live prices, no stock, no structured answers. Fondouk fixes that:

  • Serves a UCP discovery manifest at /.well-known/ucp.
  • Exposes the Catalog capability (search / lookup / product) over REST and MCP.
  • Everything is generated by introspection of the store — catalog, variants, stock, public prices, languages, currencies. No settings screen.
  • Read-only and public-only: what an anonymous visitor sees on the storefront is what an agent sees. Nothing more. No customer data, no B2B/group prices, no cart, no checkout.

Free + Pro together?

There is a paid companion, Fondouk Pro (agent dashboard + per-agent control). Since v1.2 the two coexist cleanly: when Fondouk Pro is installed and active, this free module politely stands by — it stops registering its routes so the Pro is the only one serving /.well-known/ucp, the catalog, MCP and llms.txt (no conflict, one telemetry write). Uninstall the Pro and this module resumes serving automatically. You never have to choose one or the other, and you can uninstall either at any time.

Quick start — merchant

  1. Download the module zip (fondouk.zip) from the release, or build it: MODULE_NAME=fondouk ./build/package.sh.
  2. In the PrestaShop back office: Modules → Upload a module → drop the zip.
  3. That's it. The manifest is live at https://your-shop/.well-known/ucp.

Requirements: PrestaShop 8.0 to 9.2, friendly URLs (SEO-friendly URLs) enabled, HTTPS. The module's screen shows an environment diagnostic (URL rewriting, HTTPS, .well-known conflicts).

Quick start — agent

Discover, then query — the endpoint is read from the manifest, never hard-coded:

# 1. Discover
curl -s https://demo.fondouk.dev/.well-known/ucp | jq '.ucp.services."dev.ucp.shopping"'

# 2. Search the catalog (endpoint from the manifest)
curl -s -X POST https://demo.fondouk.dev/fondouk/ucp/catalog/search \
  -H 'Content-Type: application/json' \
  -d '{"query":"t-shirt","pagination":{"limit":2}}' | jq '.products[].title'

MCP (JSON-RPC, Streamable HTTP) exposes the same catalog as tools search_catalog, get_product, lookup_catalog:

curl -s -X POST https://demo.fondouk.dev/fondouk/ucp/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools[].name'

Architecture

A decoupled core + adapters design. The core is framework-agnostic (zero PrestaShop dependency) and produces a neutral Capability Graph; adapters project it into each protocol.

┌──────────────────────────────────────────────┐
│  capability-core  (Fondouk\CapabilityCore)     │
│  DTOs · ports (CatalogSource, ShopProfile)     │
│  Capability Graph (versioned JSON Schema)      │
│  Adapter/Ucp: manifest + catalog mapper        │
└───────────────┬──────────────────────────────┘
                │ implements the ports
┌───────────────▼──────────────────────────────┐
│  prestashop-module  (thin binding)             │
│  introspection via Product/Combination/        │
│  StockAvailable/SpecificPrice + Presenter      │
│  controllers: /.well-known/ucp, REST, MCP      │
└──────────────────────────────────────────────┘

Prices are computed in an anonymous-visitor context (getPriceStatic with the guest group, no customer): public specific prices apply, B2B/group prices never do. The same graph feeds both REST and MCP, so both expose the same catalog data, validated against the published UCP schemas.

Hardening: token-bucket rate limiting (60/min, burst 120) + Retry-After, response cache invalidated by product hooks, request-size and batch caps, local telemetry (IP hashed, never stored in clear).

The Blueprint

Fondouk is also a copyable playbook for making any commerce platform readable by agents — the PrestaShop module is reference implementation #1. See ARCHITECTURE.md and docs/blueprint/: the Capability Graph schema, the adapter contract, the discovery pattern, and the deployment modes (embedded / library / proxy). The Blueprint is a playbook for implementing existing standards (UCP, MCP) — never a competing spec.

Roadmap

  • v1 (now) — free, forever: UCP manifest + Catalog discovery (REST + MCP), llms.txt, read-only, PS 8/9. Making your store visible to agents is the module's identity — and it stays free.
  • v2 — Fondouk Pro (paid), available now: an agent analytics dashboard — observability, per-agent control, audit logs / compliance. A transactional layer (Cart / Checkout, AP2) is backlog: when an agent goes from reading to buying, you pay when money flows, not to be seen.
  • Portability: FondoukBundle for Sylius/Symfony (library mode) — second reference implementation proving the core transposes.

Fondouk Pro

This module (visibility: manifest, catalog, MCP) is free and will stay free. Fondouk Pro adds an agent analytics dashboard on top: which AI agents visit your store, which products they view, structured-vs-storefront adoption ratio, per-agent-family control (allow / throttle / block, quotas), CSV audit export and GDPR tooling. Available on the official PrestaShop Addons marketplace: https://addons.prestashop.com/en/analytics-stats-prestashop-modules/98377-fondouk-pro-ai-agent-analytics-for-your-store.html

Free and Pro coexist safely: if both are installed, the free module automatically stands by while Pro serves; uninstall Pro and the free module resumes. Your store is never silenced, your telemetry history is kept.

Contributing

Issues and PRs welcome. The core carries a versioned JSON Schema and a test suite (composer test in capability-core/); any protocol adapter must respect the adapter contract (read-only, public filter, versioning). See docs/blueprint/adapter-contract.md.

Security

Found a vulnerability? Please report it privately — see SECURITY.md (security@fondouk.dev). Don't open a public issue.

License

MIT — see LICENSE. A Synapsea project.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors