Hero owned a de

WebMCP für Storefronts: deklarativ vs. imperativ bauen

Ist eine Storefront-Aktion ein HTML-Attribut oder eine JS-Funktion? Bei WebMCP ist das keine Stilfrage, sondern eine Architektur-Entscheidung, die jedes Frontend-Team vor dem ersten Sprint treffen sollte. Dieser Guide beantwortet sie praktisch: zwei Code-Beispiele, eine Entscheidungsmatrix, keine neue Grundsatzdebatte über Governance oder GEO. Die haben wir in den verlinkten Posts unten schon geführt.

Zwei Wege, einen Storefront agentenfähig zu machen

WebMCP macht Storefront-Aktionen für AI-Agenten ausführbar. Wie eine Aktion dem Agenten zur Verfügung gestellt wird, entscheidet sich zwischen zwei Mustern:

  • Deklarative Annotation: Die Aktion steht als Attribut direkt im HTML-Markup. Ein WebMCP-Runtime-Script liest das Attribut aus und macht die Aktion sichtbar, ohne dass zusätzlicher JS-Code pro Aktion geschrieben wird.
  • Imperative Tool-Actuation: Die Aktion ist eine registrierte JS-Funktion mit eigenem Namen, Parametern und Rückgabewert. Der Agent ruft die Funktion auf wie eine API.

Beide Muster erzeugen dasselbe Ergebnis, der Agent führt eine Aktion im Storefront aus, aber mit unterschiedlichem Aufwand, unterschiedlicher Kontrolle und unterschiedlicher Fehleranfälligkeit.

Der deklarative Weg: HTML-Annotation

Deklarative Annotation eignet sich für Aktionen, die 1:1 an ein sichtbares UI-Element gebunden sind, kurzlebig sind und keinen mehrstufigen State-Übergang brauchen. Ein Warenkorb-Button ist das Standardbeispiel:

<button
  data-webmcp-action="cart.add"
  data-webmcp-target="product"
  data-webmcp-params='{"variantId": "{{variant.id}}", "quantity": 1}'
  data-webmcp-result="cart.summary"
>
  In den Warenkorb
</button>

Die Annotation beschreibt vollständig, was passiert: Aktion-Name, Ziel-Entity, Parameter, erwartetes Ergebnis. Kein separates Tool-Setup, kein Import, kein Build-Step. Das Runtime-Script scannt das DOM, registriert die Aktion, fertig. Der Nachteil: Jede Logik, die nicht im Attribut-Wert ausdrückbar ist, Validierung, mehrstufige Bedingungen, asynchrone Zwischenschritte, passt hier nicht rein.

Der imperative Weg: JS-Tool-Actuation

Imperative Tool-Actuation eignet sich, sobald eine Aktion Business-Logik, mehrere Backend-Calls oder Fehlerbehandlung braucht:

webmcp.registerTool({
  name: "cart.add",
  description: "Fügt eine Produktvariante zum aktiven Warenkorb hinzu.",
  parameters: {
    variantId: { type: "string", required: true },
    quantity: { type: "number", default: 1 }
  },
  async execute({ variantId, quantity }) {
    const stock = await storefront.inventory.check(variantId);
    if (stock.available < quantity) {
      throw new Error("insufficient_stock");
    }
    const cart = await storefront.cart.addLine(variantId, quantity);
    return { cartId: cart.id, itemCount: cart.itemCount, subtotal: cart.subtotal };
  }
});

Die Funktion kapselt Prüfung, Backend-Call und Antwortformat. Der Agent sieht nur Name, Parameter-Schema und Rückgabewert, nicht die Implementierung. Das gibt volle Kontrolle über Fehlerfälle und State-Übergänge, kostet aber Setup-Aufwand pro Aktion: Registrierung, Typisierung, Testing.

Entscheidungsmatrix: wann was?

KriteriumDeklarative AnnotationImperative Tool-Actuation
Aktions-KomplexitätNiedrig, 1:1 zu UI-ElementHoch, mehrstufige Logik
Backend-CallsKeine oder ein CallMehrere, ggf. sequenziell
FehlerbehandlungKaum abbildbarVollständig im Code
Setup-Aufwand pro AktionMinimal, Attribut setzenMittel bis hoch, Registrierung, Typen, Tests
Wartung bei UI-ÄnderungAttribut wandert mit dem ElementFunktion unabhängig vom Markup
Typisches BeispielWarenkorb-Button, Filter, SortierungCheckout-Flow, Rabatt-Berechnung, Bestandsprüfung
AuditierbarkeitDirekt im HTML sichtbarBraucht Tool-Registry-Log

Faustregel fürs Team: Wenn die Aktion in einem Satz beschreibbar ist und keine Bedingung enthält, deklarativ annotieren. Sobald ein "wenn X, dann Y, sonst Z" im Spiel ist, imperativ registrieren.

Typische Fehler beim Annotieren

  • Annotation-Overload: zu viele data-webmcp-*-Attribute auf einem Element ohne klare Namenskonvention, der Agent kann Prioritäten nicht mehr unterscheiden.
  • Tool ohne Fehlerpfad: registrierte Tools, die bei einem Fehlschlag keine strukturierte Antwort liefern, der Agent interpretiert dann einen Absturz als Erfolg.
  • Doppelte Wahrheit: dieselbe Aktion gleichzeitig deklarativ annotiert und imperativ registriert, das Runtime-Script weiß nicht, welches Muster gilt.
  • Fehlendes Ergebnis-Schema: der Agent bekommt Erfolg oder Misserfolg nicht strukturiert zurück und muss den Text der UI raten.

Beide Muster im selben Storefront kombinieren

In der Praxis mischen produktive Storefronts beide Muster. PDP-Aktionen wie In den Warenkorb, Merkzettel oder Variante wechseln laufen deklarativ, weil sie einfach und UI-gebunden sind. Checkout-, Rabatt- und Bestandslogik läuft imperativ, weil sie Backend-Zustand prüft und Fehler behandeln muss. Genau diese Trennung ist der Grund, warum Laioutr als Frontend Management Platform Annotation und Tool-Registry im selben Component-Layer anbietet. Component-Autoren entscheiden pro Aktion, welches Muster passt, ohne zwei getrennte Systeme pflegen zu müssen. Das Frontend bleibt ein Composable Headless Frontend, nicht zwei parallele Stacks.

Wer WebMCP als Betriebsmodell versteht statt als Einzel-Feature, findet die breitere Einordnung unter Frontend as a Service: Annotation und Tool-Actuation sind zwei Bausteine der Agent-Layer-Schicht, die dort von Anfang an mitgedacht ist.

Build-Checkliste

  • Liste alle Storefront-Aktionen, die Agenten ausführen dürfen sollen: Warenkorb, Merkliste, Checkout-Schritte, Rabattcode.
  • Sortiere jede Aktion nach der Matrix oben: deklarativ oder imperativ.
  • Annotiere deklarative Aktionen direkt im Component-Template, nicht in separaten Config-Files.
  • Registriere imperative Tools mit vollständigem Parameter-Schema, nicht nur mit Namen.
  • Teste beide Pfade mit echtem Agent-Traffic, nicht nur mit manuellen Klicks.
  • Dokumentiere Rückgabewerte pro Aktion, damit Agenten Ergebnisse verlässlich interpretieren.

Wer die Grundlagen der Frontend-Agent-Actuation nachlesen will, findet sie im Post WebMCP: Wenn Frontends zu Agent-Aktionen werden. Für die GEO-Perspektive, wie Agent-Ready-Frontends in AI-Overviews zitiert werden, gibt es Agent-Ready Frontend: GEO trifft WebMCP. Die Abgrenzung WebMCP vs. MCP im Commerce-Kontext, Browser- vs. Server-Actuation, steht in WebMCP vs. MCP Commerce: Browser vs. Server. Und wie Frontends Agenten sicher schreiben lassen, Governance und Guardrails, ist Thema von MCP Commerce Frontends: Agenten sicher schreiben lassen.

Dieser Guide ist bewusst implementierungsfokussiert: Annotation-Pattern, Tool-Actuation-Pattern, Entscheidungsmatrix. Wer die Boundary- und Governance-Fragen klären will, findet sie in den vier Posts oben. Wer heute bauen will, hat mit der Matrix und den zwei Code-Beispielen den direkten Einstieg. Mehr zur gesamten Plattform dahinter gibt es auf der Laioutr-Startseite.

Mehr interessante Frontend Artikel

Praxiswissen für Frontend-Entwicklung, smarte Agenten und Headless

Shopify
Shopify ist eine Commerce-Plattform zum Verkaufen online und im stationären Handel.
Shopware
Shopware ist eine flexible E-Commerce-Plattform aus Europa für Produktkataloge und Omnichannel-Commerce.
Planned
Scayle
SCAYLE ist eine Commerce-Engine, mit der Marken und Händler ihr Geschäft skalieren.
Planned
Commerce Layer
Commerce Layer ist eine Headless-Commerce-Plattform, um Bestände und Kataloge online verfügbar zu machen.
Planned
Salesforce Commerce Cloud
Salesforce Commerce Cloud ist eine cloudbasierte Enterprise-Commerce-Plattform für Unternehmen jeder Größe.
Commercetools
Commercetools ist eine SaaS-basierte, headless E-Commerce-Plattform mit weltweitem Einsatz.
Sylius
Sylius ist ein entwicklerfreundliches E-Commerce-Framework für B2C- und B2B-Shopping-Erlebnisse.
OXID eShop
OXID eShop ist eine erweiterbare Commerce-Plattform für komplexe B2B- und B2C-Anforderungen.
Emporix
Emporix ist eine composable, API-first Commerce-Plattform für skalierbare B2B- und B2C-Szenarien.
Adobe Commerce
Adobe Commerce ist eine Enterprise-Commerce-Plattform für komplexe, globale B2C- und B2B-Szenarien.
Coming Soon
VTEX
Cloud-native, composable Commerce-Plattform für B2B und B2C im großen Maßstab.
Planned
Spryker
Composable Commerce-Plattform für anspruchsvolle B2B- und B2C-Geschäftsmodelle.
Planned
SAP Commerce Cloud
Enterprise-Commerce-Plattform für komplexe Kataloge, Preismodelle und Omnichannel-Journeys.
Planned
Websale
Stabiles, enterprise-taugliches Commerce-Backend für komplexe Handelsumgebungen.
Planned
Intershop
Enterprise-Commerce-Plattform für komplexe B2B- und B2C-Geschäftsmodelle.
Planned
Magento 2
Weit verbreitete, erweiterbare Commerce-Plattform für B2C- und B2B-Szenarien.
Planned
B2Bsellers
B2B-Suite für Shopware, die den Online-Shop zur professionellen B2B-Commerce-Plattform macht.
Planned
Saleor
Open-Source-, API-first-Commerce-Plattform auf GraphQL-Basis für Custom-Storefronts.
Planned
Prestashop
Open-Source-Commerce-Plattform für kleine und mittlere Händler in Europa und darüber hinaus.
Planned
Vendure
Vendure ist eine Headless-Commerce-Plattform für Unternehmen mit komplexen Anforderungen.
Planned
Patchworks
Patchworks ist eine Low-Code-iPaaS, die E-Commerce, ERP, WMS, 3PL und Marktplätze verbindet.
Planned
HCL Software
Enterprise-Suite für digitalen Commerce und Experience mit hoher Konfigurierbarkeit.
Book a demo mobile
Strategie-Gespräch

Bereit, Dein Frontend zur Steuerebene zu machen?

Zeig uns Deinen Stack, Deine Roadmap, Dein Replatforming-Szenario, wir zeigen Dir, wie Laioutr passt, was es kostet und wie schnell ihr live geht.

"Nach 30 Minuten wussten wir, dass Laioutr unser Replatforming machbar macht." - Daniel B., CEO, hygibox.de

SEO / GEO / AEO Ready
Performance & Core Web Vitals
WCAG 3.0 Ready
Tracking & Analytics
Brand Consistency