Your Magento store is not disappearing. But the storefront is. AI agents — Gemini, ChatGPT, Claude — are becoming the new product discovery layer. Goofre is the infrastructure that keeps your clients' products visible, trusted, and purchasable inside those agents. And as a Magento developer, you can own that entire layer for your clients.
The Problem: Google AI Mode Just Ate Your Storefront
If you've been watching what's happening to product discovery over the last 18 months, you already feel this. Consumers are asking Gemini "what's the best air fryer under £80" and getting a curated, ranked answer — with a "Buy" button — without ever visiting a website.
The products that appear in that answer aren't there by accident. They're there because their data is UCP-compliant — normalised into the format that Google's AI agents natively understand.
Here's the structural problem for your Magento clients: Getting UCP-compliant is becoming a platform checkbox. Shopify ships it natively. BigCommerce acquired Feedonomics for it. Adobe has a 4-phase roadmap. But staying trusted by AI agents is not a one-time event. It's an operational job:
Goofre is the operations layer that keeps your clients inside the AI's trust radius, every day, automatically. And Magento 2 / Adobe Commerce is one of the first platforms to get a full native adapter.
What Goofre Actually Is (Skip the Marketing)
Goofre is an open-source orchestration engine — BSL 1.1, zero platform lock-in — that wires together the entire Google commerce stack (GMC, GA4, GSC, GBP, Google Ads) into a single, event-driven intelligence layer.
It does not replace Magento. It does not replace Google Merchant Center. It sits between them and does three things:
1. Normalises raw Magento data into UCP types — UCPProduct, UCPInventorySnapshot, UCPOrderEvent, UCPCartEvent — the schema that AI agents consume natively
2. Validates that schema is conformant before it reaches GMC (catching the GTIN mismatches, stock inconsistencies, and pricing errors that cause feed disapprovals)
3. Exposes that normalised data as callable tools to AI agents via UCP, MCP, and the A2A negotiation layer
The result: your clients' Magento catalogues become a first-class citizen inside Gemini, Claude, and Copilot — not as scraped web pages, but as live, structured, queryable commerce data.
The Architecture
The four columns above are the entire mental model:
Column 1 — Google Commerce Stack: GMC, GA4, Search Console, GBP. These are the silos your clients already pay for but barely use together.Column 2 — Goofre Open Source Engine: The ACO (Agentic Commerce Orchestrator) processes events from Magento and normalises them through the UCP Data Normaliser. The Intelligence API Gateway (SwitchboardOrchestrator) is the central router that everything flows through.Column 3 — Inference Layer: Gemini 1.5 Pro as the reasoning core. The Briefing Synthesiser generates structured intelligence outputs — not "here's your data", but "here's what you need to do right now."Column 4 — Developer Apps: This is where you ship value to clients. Custom dashboards, AI shopping agents, your own merchant command centre — built on top of the orchestrated data layer.Core Components You Need to Know
SwitchboardOrchestratororchestrator.process(event) call routes everything correctlyMagentoAdapterPluginUCP Schema v1.2UCPProduct, UCPInventorySnapshot, UCPOrderEvent, UCPCartEvent, UCPIdentityLink, UCPLocalInventoryExtensionGTINEnricherPosSyncEngineA2AListenerMCP ServerWebhookProcessorThe Magento Integration Path
> Key constraint to understand first: Goofre never writes to Magento. It reads via REST API and translates to UCP. Magento remains the merchant of record for all commerce data.
Step 1 — Bootstrap in 2 Minutes
`bashnpx create-goofre-ucp my-client-aco
cd my-client-aco
cp .env.example .env
npm start
`Your admin dashboard is live at http://localhost:3000/admin. It ships with a zero-dependency SQLite database, mock data, and MockPaymentGateway so you can build and test the entire Agentic Commerce pipeline locally — no live GMC account needed.
Or deploy directly to production:
Step 2 — Register the Magento Adapter
`typescriptimport { SwitchboardOrchestrator } from '@goofre/core-engine';
import { MagentoAdapterPlugin } from '@goofre/plugins';
const orchestrator = new SwitchboardOrchestrator();
orchestrator.registerPlugin(new MagentoAdapterPlugin({
baseUrl: process.env.MAGENTO_BASE_URL, // e.g. 'https://shop.client.com'
accessToken: process.env.MAGENTO_ACCESS_TOKEN, // Magento Integration Token
storeViewCode: 'default',
webhookSecret: process.env.MAGENTO_WEBHOOK_SECRET, // For HMAC validation
}));
`The adapter handles:
UCPProduct entries)UCPInventorySnapshot with per-source stock levelsUCPOrderEvent with idempotency keys (AP2 conformance)UCPCartEvent with optional identityLink for loyalty pricing passthroughStep 3 — Subscribe to Normalised Outputs
`typescript// Every Magento product change becomes a UCP event
orchestrator.on('product', (product: UCPProduct) => {
// product.ucpId: 'magento::12345'
// product.gtin: validated GS1 checksum via GTINEnricher
// product.price, inventory, status — all normalised
console.log('Synced to GMC:', product.title);
});
orchestrator.on('inventory', (snapshot: UCPInventorySnapshot) => {
// snapshot.localInventory — per-store BOPIS availability (RFC #375)
// Perfect for clients with physical locations doing click & collect
});
orchestrator.on('order', (order: UCPOrderEvent) => {
// order.idempotencyKey — prevents double-processing on webhook retries
});
`Step 4 — Validate GTIN Before GMC Sync
This is the step 90% of Magento integrations skip, and it's why feeds silently fail:
`typescriptimport { GTINEnricher } from '@goofre/core-engine';
const enricher = new GTINEnricher();
// Before pushing any product to GMC:
const result = enricher.validate('0614141000036'); // GS1 checksum
// result.valid: true | false
// result.format: 'GTIN-13'
// result.error: 'Invalid checksum'
`Goofre's CI pipeline runs 26 UCP conformance tests (mirrored from the official Universal-Commerce-Protocol/conformance baseline) that catch schema errors before they reach production.
Step 5 — Expose to AI Agents via MCP Server
`json// Add to Claude Desktop / Copilot config
{
"mcpServers": {
"goofre-client": {
"command": "node",
"args": ["./node_modules/@goofre/mcp-server/dist/index.js"],
"env": { "GOOFRE_PLUGIN_ID": "magento" }
}
}
}
`This exposes 6 callable tools to any MCP-compatible AI:
goofre_get_productgoofre_get_inventorygoofre_process_ordergoofre_process_cartgoofre_query_local_inventorygoofre_negotiate_commerce_intentThe A2A Layer: When a Gemini Agent Queries Your Client's Stock
This is where the architecture becomes genuinely new. The A2AListener lets any upstream AI agent — a Gemini shopping agent, a procurement bot, a voice assistant — submit a high-level CommerceIntent and receive a structured response:
`typescriptimport { A2AListener, SwitchboardOrchestrator } from '@goofre/core-engine';
const orchestrator = new SwitchboardOrchestrator();
const listener = new A2AListener(orchestrator, {
defaultPluginId: 'magento',
});
// A Gemini Shopping Agent asks: "Is this available for pickup in Brooklyn?"
const response = await listener.receiveIntent({
intentId: 'gemini-query-abc-123', // idempotent — safe to retry
intentType: 'check_inventory',
agentId: 'gemini-shopping-agent-v2',
payload: { productId: 'SKU-001', locationId: 'store-brooklyn' },
constraints: {
requirePickupAvailable: true, // BOPIS required
requiredChannel: 'local',
maxPrice: { amount: 80, currency: 'GBP' },
},
});
// response.status: 'fulfilled'
// response.payload: normalised UCPInventorySnapshot
// response.alternatives: fallback options when constraints can't be met
// response.reason: why partial/rejected (shown to the AI, not the user)
`What this means in practice: Your client's Magento store becomes an intelligent supplier that AI agents can negotiate with, not just scrape. A fulfilled response gets the product surfaced in AI recommendations. A partial response returns the best alternative. A rejected response includes a machine-readable reason — "no BOPIS-capable locations within range" — that the upstream AI can relay to the user.The Merchant PWA: What Your Client Actually Sees
Goofre Enterprise ships with a mobile-first command centre (the Merchant PWA) — a React Progressive Web App that your client installs on their phone and uses as their live commerce intelligence dashboard.
No GMC login. No GA4 report. One screen, one voice interface, one decision queue.
The Dashboard — 2×2 Bento Grid
carouselThe Four Tiles Explained
Each tile is a department entry point — tapping it reveals that department's action queue:
The tiles pull live data from reactiveSync.hydrateFromOpenSource() — Goofre's event-driven hydration engine that syncs intelligence from the OS. Alert badges on each tile are real counts, not placeholder numbers.
The Action Card — The Core UX Pattern
Every intelligence output in Goofre surfaces as an Action Card. This is the most important design decision in the entire PWA:
What you see on the card:SIGNAL SOURCE (top-left, small caps) — e.g. INDEX-TO-SALES PARITY or A2ALISTENER — MOQ GATEROI TAG (top-right chip) — e.g. +$450 Recovery or 32% LTV UpliftSHOW REASONING accordion — expand to see signal, theory, and decision rationaleApprove, Distribute, Launch, ResolveDismiss, Archive, DraftThe reasoning model is explicit: every AI recommendation shows why it was generated — the data signal (GSC index parity violation, GA4 churn threshold, A2A constraint failure), the theory (which heuristic fired), and the recommended decision. Your client is never just clicking Approve on a black box.
The Voice Orb — Six States
The Voice Orb floats at the bottom centre of the PWA. It's the merchant's primary interaction method — tap to ask, listen to the briefing:
`States:
idle → Purple gradient, ring-4 ring-white
listening → Scale-110, emerald ring, animated waveform bars
processing → Loader2 spinner, processing state
speaking → Scale-110, emerald, "Zara responding..." label above orb
sentinel → Scale-105, amber ring, pulse-amber animation (always-on mode)
error → Scale-105, red-500 background, error message badge
`In Sentinel Mode (hold the eye icon), Goofre runs a persistent background listener — the orb pulses amber and the system proactively speaks alerts when new triage items arrive, without the merchant needing to tap.
What "Edge Sovereign Mode" means: If the SaaS connection drops, the orb switches to a blue "sovereign" gradient and the labelEDGE SOVEREIGN MODE appears. The PWA continues functioning with cached intelligence — decisions can still be made, actions still queued for sync when the connection restores.B2B Mode — One Config Change
The entire PWA is dual-mode. For wholesale/manufacturer clients:
`typescript// B2C retail merchant (default)
// B2B manufacturer / wholesaler
`One config change. No code forking. Every layer — dashboard tiles, action cards, voice briefings, API calls — adapts automatically. The B2B Mode badge appears in the header. Operations tile becomes "Supply Chain". Sales tile becomes "Accounts". The A2A layer enforces MOQ gates and Net Terms checks on incoming procurement intents.
What You Can Build for Your Magento Clients
Goofre is primitives, not a locked product. Here's the realistic build path:
Tier 1 — Start Here (4–6 hours to deploy)
Product Feed Health MonitorMagentoAdapterPlugin + GTINEnricherUCPInsight eventsThis alone is a defensible retainer service. Most Magento merchants have no visibility into which SKUs are failing GMC validation and why.
Tier 2 — Add Intelligence (1–2 weeks)
Client Command Centre (Merchant PWA)Shell component headerYour client stops logging into 4 Google tools. They talk to one interface that already knows what needs attention.
Tier 3 — Build the Agentic Layer (2–4 weeks)
Agentic Supply Chain (B2B clients)A2AListener with requireMOQ: true and requireNetTerms: true`typescript// A distributor's procurement agent submits a bulk order intent
const response = await listener.receiveIntent({
intentId: 'po-abc-123',
intentType: 'initiate_cart',
agentId: 'procurement-bot-v1',
businessId: 'CORP-AMAZON-001',
payload: { productId: 'SKU-BULK', quantity: 100 },
constraints: {
requireMOQ: true,
requireNetTerms: true,
authorizedBudget: { amount: 10000, currency: 'USD' }
}
});
// response.status: 'fulfilled' — volume tier pricing applied, Net 30 confirmed
`The API Deprecation You Cannot Ignore
> ⚠️ August 18, 2026 — Content API for Shopping retires. Every Magento client using legacy GMC product feeds needs a migration. Goofre's GoogleMerchantPlugin v2.0 already runs on the new Merchant API v1.
If you're using the old Content API v2.1 endpoints, they stop working in under 4 months. Goofre's migration path: register GoogleMerchantPlugin v2.0, which handles the new Merchant API endpoint structure and authentication automatically. Google's migration guide →
The UCP Conformance Gate
Goofre ships with a CI-blocking conformance suite — 26 tests across 5 categories, mirrored from the official Universal-Commerce-Protocol/conformance baseline (2026-01-23):
`bashnpm run test:conformance # Run the UCP conformance suite locally
npm run validate:conformance # Conformance + full test suite
`schema_testidempotency_testidempotencyKey on orders and carts (AP2 mandate)fulfillment_testlocalInventory BOPIS fields, storeId/locationId consistencyap2_testidempotencyKey is top-level, not nested (AP2 mandate)protocol_testucpId format, dual-timestamp consistency, inventory mathIf your orchestrator fails this gate, it cannot reach production. This is not optional — the CI build job blocks on conformance failures. It's what makes Goofre a trustworthy foundation for client work, not just another integration wrapper.
The Business Model: ACO Operator Economics
This is where the Magento developer path gets specific. Goofre turns custom integrators into Agentic Commerce Orchestrators — managing the agentic trust score for 3–5 merchants at a time, billed as a recurring retainer.
As an ACO Operator, you manage the Goofre instance for your clients and bill the retainer on top. The ACO Collective also runs a 30% recurring rev share on direct operator referrals and an 80% marketplace keep rate on proprietary adapters you build and list.
Technical Quick Reference
Environment Variables
`bashGOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GMC_MERCHANT_ID=
MAGENTO_BASE_URL=https://shop.client.com
MAGENTO_ACCESS_TOKEN= # Magento Integration → Access Token
MAGENTO_WEBHOOK_SECRET= # For HMAC validation on inbound webhooks
GA4_MEASUREMENT_ID= # Feeds behavioural signals into UCPInsight
GOOGLE_ADS_DEVELOPER_TOKEN= # Automated campaign sync
`Docker Dev Environment
`bashdocker compose up # Everything — mock server + core engine in watch mode
docker compose up mock-server # Lightest — perfect for frontend dev without live GMC
docker compose up --build # Rebuild after package changes
`Package Structure
`agentic_commerce_orchestrator_ACO/
├── packages/
│ ├── core-engine/ # @goofre/core-engine — SwitchboardOrchestrator, A2AListener, PosSyncEngine
│ ├── plugins/ # @goofre/plugins — MagentoAdapterPlugin, GoogleMerchantPlugin v2.0
│ ├── mcp-server/ # @goofre/mcp-server — 6 MCP tools for Claude/Copilot/Gemini
│ └── mock-server/ # @goofre/mock-server — zero-key local dev
└── tests/
├── unit/ # 70 unit tests
├── integration/ # End-to-end integration tests
└── conformance/ # 26 UCP Conformance Gate tests
`What's Shipping Next (v2.x — Q3 2026)
These are the items directly relevant to Magento developers:
UCPOrderEventLLMAdapterInterface to swap Gemini for Claude or GPT-4o without changing ACO logicUCPIdentityLink to Magento customer accounts for loyalty pricing passthroughWhere to Start
1. Two-minute bootstrap: npx create-goofre-ucp my-client-aco
2. Read the Magento adapter guide: docs/guides/magento-adapter.md
3. Full technical README: github.com/goofre-opensource/agentic_commerce_orchestrator_ACO
4. Talk to the team: discord.gg/goofre
5. Apply as an ACO Operator: goofre.com/magento-developers
Goofre is licensed under BSL 1.1. You can read, modify, and use it to orchestrate commerce for your clients. You cannot offer it as a competing managed service. On March 14, 2030, the code converts automatically to Apache 2.0.Built with ❤️ by the Goofre team — goofre.com




