PS PrestaShop Mittel

AI People Also Ask — Vollständige Dokumentation (dfaipaa)

Vollständige Anleitung zum Modul dfaipaa: Installation, Scraping-Anbieter (SerpApi, DataForSEO) und KI-Anbieter (Mistral, OpenAI, Anthropic), redaktioneller Workflow, FAQ-Anzeige, FAQPage JSON-LD und Cron-Automatisierung.

Aktualisiert Modulversion 1.0.0

Überblick

AI People Also Ask (technischer Slug: dfaipaa) erfasst die Fragen, die Ihre Kunden tatsächlich bei Google stellen — die „People Also Ask“-Blöcke —, generiert die Antworten mit der KI Ihrer Wahl und veröffentlicht eine schema.org-ausgezeichnete FAQ auf Ihren Produkt- und Kategorieseiten.

Das Modul industrialisiert eine vollständige Pipeline in vier Schritten:

  • Scraping — Erfassung der PAA-Fragen zu Ihren Ziel-Keywords über SerpApi, DataForSEO oder manuelle Eingabe.
  • KI-Generierung — Formulierung der Antworten über Mistral, OpenAI oder Anthropic, mit konfigurierbarem Ton und Markenstimme.
  • Redaktioneller Workflow — Prüfung, Zuweisung zu Produkten und Kategorien, Veröffentlichung (manuell oder automatisch).
  • Veröffentlichung — barrierefreies FAQ-Akkordeon im Shop plus FAQPage JSON-LD für Google und generative Engines.
Hinweis — Es ist kein composer install erforderlich. Ein minimaler PSR-4-Autoloader ist im Modul unter dem Namespace DataFirefly Dfaipaa enthalten.

Voraussetzungen

  • PrestaShop 8.0.0 → 9.99.99
  • PHP 8.1, 8.2 oder 8.3
  • MySQL 5.7 / MariaDB 10.4 oder höher
  • Ein API-Schlüssel für mindestens einen KI-Anbieter (Mistral, OpenAI oder Anthropic)
  • Optional: ein SerpApi-Schlüssel oder ein DataForSEO-Konto zur Automatisierung des Scrapings
  • Ausgehende HTTPS-Verbindungen (cURL) müssen von Ihrem Hoster erlaubt sein
Tipp — Der manuelle Eingabemodus ermöglicht die Nutzung des Moduls ohne jedes Scraping-Abonnement: Sie geben die Fragen selbst ein, die KI übernimmt die Antworten.

Installation

  1. Laden Sie das ZIP dfaipaa.zip aus Ihrem DataFirefly-Konto herunter.
  2. Gehen Sie im PrestaShop-Backoffice zu Module › Modul-Manager › Modul hochladen.
  3. Ziehen Sie das ZIP hinein, warten Sie auf die Bestätigung und klicken Sie auf Installieren.
  4. Ein neues Menü AI People Also Ask erscheint in der linken Spalte mit drei Reitern: Konfiguration, Keywords, Fragen.

Die Installation legt 4 Tabellen an (Präfix ps_dfaipaa_), setzt die Standardkonfiguration und installiert 4 Admin-Reiter (ein Elternteil plus drei Kinder) mit in FR, EN, ES, DE, IT und NL lokalisierten Beschriftungen.

Wichtig — Wenn Ihr Entpackungswerkzeug vendor/-Ordner überspringt, fehlt der Autoloader und das Modul wirft einen „Class not found“-Fehler. Entpacken Sie mit unzip oder laden Sie das ZIP direkt über das Backoffice hoch, das die Struktur korrekt verarbeitet.

Konfiguration — Scraping

Reiter AI People Also Ask › Konfiguration, erster Abschnitt.

Feld Beschreibung Standard
Anbieter serpapi, dataforseo oder manual serpapi
API-Schlüssel SerpApi-Schlüssel oder DataForSEO-Zugangsdaten im Format login:password leer
Sprache Zweibuchstabiger ISO-Code für die Google-Abfrage fr
Land Zweibuchstabiger ISO-Code des Zielmarkts FR
Max. Fragen pro Keyword Grenze pro Scraping-Vorgang 8
Aktualisierungsintervall In Tagen, danach gilt ein Keyword als veraltet 30

SerpApi-Schlüssel erhalten

Erstellen Sie ein Konto auf serpapi.com. Der kostenlose Plan bietet 100 Anfragen pro Monat, also etwa 100 gescrapte Keywords. Den Schlüssel finden Sie im Dashboard unter „Your Account“. Das Modul fragt den Google-Such-Endpunkt ab und nutzt den Block related_questions der Antwort.

DataForSEO-Konto erhalten

Erstellen Sie ein Konto auf dataforseo.com. Sie erhalten ein Benutzername-/Passwort-Paar, das Sie im Feld API-Schlüssel als login:password eintragen (das Modul übernimmt die HTTP-Basic-Authentifizierung). DataForSEO rechnet nutzungsbasiert ab, was bei hohen Volumina besser passt. Das Modul verwendet den Endpunkt SERP Google organic live advanced und extrahiert die people_also_ask-Elemente.

Das Mapping der Standortcodes ist für folgende Märkte integriert: FR, BE, CH, LU, CA, US, UK, IE, ES, PT, IT, DE, AT, NL, PL, BR und MX.

Manueller Eingabemodus

Wählen Sie manual, um alle externen Aufrufe zu deaktivieren. Sie fügen die Fragen dann selbst im Reiter Fragen hinzu; die KI-Generierung bleibt voll funktionsfähig.

Konfiguration — Künstliche Intelligenz

Zweiter Abschnitt des Reiters Konfiguration.

Feld Beschreibung Standard
Anbieter mistral, openai oder anthropic mistral
Modell Modellkennung beim Anbieter mistral-large-latest
API-Schlüssel Schlüssel des gewählten Anbieters leer
Temperatur 0.0 bis 1.0 — niedriger bedeutet faktentreuer 0.3
Max. Tokens Maximale Länge der generierten Antwort 500
Tonalität Freitext: fachkundig, pädagogisch, verkaufsorientiert, herzlich… leer
Markenstimme Zusätzliche Anweisungen zur Angleichung des Redaktionsstils leer
Auto-Veröffentlichung Veröffentlicht jede generierte Antwort automatisch deaktiviert

Empfohlene Modelle

  • Mistralmistral-large-latest für Qualität, mistral-small-latest zur Kostensenkung bei großen Mengen.
  • OpenAIgpt-4o-mini bietet ein hervorragendes Preis-Leistungs-Verhältnis; gpt-4o für anspruchsvolle technische Kataloge.
  • Anthropicclaude-sonnet-4-6 für nuancierte, gut strukturierte Antworten.

Dem Modell auferlegte Vorgaben

Das Modul erstellt einen strikten System-Prompt, unabhängig vom Anbieter: Antworten von 60 bis 120 Wörtern, ausschließlich einfaches HTML (Absätze, fett, kursiv, Listen), kein Markdown, keine Überschriften-Tags, keine Skripte. Der Entitätskontext (Name und Beschreibung des Produkts oder der Kategorie, auf 1200 Zeichen gekürzt) sowie das Ursprungs-Keyword werden eingespeist, um die Antwort zu verankern. Das ursprüngliche Google-Snippet wird als Referenz mitgegeben, mit der ausdrücklichen Anweisung umzuformulieren — niemals zu kopieren.

Tipp — Falls ein kleineres Modell dennoch Markdown zurückgibt, senken Sie die Temperatur auf 0.2 und ergänzen Sie „nur HTML, kein Markdown“ im Feld Markenstimme.

Konfiguration — Anzeige

Dritter Abschnitt des Reiters Konfiguration.

Feld Beschreibung Standard
Produktmodus tab (Reiter) oder footer (Block am Seitenende) tab
Auf Produkten aktivieren Zeigt die FAQ auf Produktseiten aktiviert
Auf Kategorien aktivieren Zeigt die FAQ am Ende von Kategorieseiten aktiviert
Reitertitel Lokalisierte Beschriftung des Produktreiters „Häufig gestellte Fragen“
Produkttitel Blocktitel im Footer-Modus lokalisiert
Kategorietitel Titel des Kategorieblocks lokalisiert
JSON-LD ausgeben Fügt die FAQPage-Auszeichnung ein aktiviert

Im Modus tab stützt sich das Modul auf den nativen Mechanismus ProductExtraContent von PrestaShop: Die FAQ erscheint als Reiter neben „Beschreibung“ und „Produktdetails“, ohne Template-Überschreibung.

Redaktioneller Workflow

Schritt 1 — Keywords hinzufügen

Reiter Keywords. Fügen Sie Ihre Liste in das Textfeld ein, ein Keyword pro Zeile, und bestätigen Sie. Duplikate werden automatisch ignoriert (das Hinzufügen ist idempotent pro Keyword, Sprache und Shop).

Wählen Sie Keywords mit Kaufabsicht: „Kaffeevollautomat“, „bester Kaffee ganze Bohne“, „Kaffeemaschine entkalken“. Vermeiden Sie reine Markenabfragen, die selten PAA-Blöcke auslösen.

Schritt 2 — Scrapen

Zwei Möglichkeiten:

  • Scrapen — Einzelbutton in jeder Keyword-Zeile, praktisch zum Testen der Konfiguration.
  • Alle veralteten scrapen — verarbeitet in Stapeln von 20 die Keywords, deren letzte Erfassung das Aktualisierungsintervall überschreitet.

Jede erfasste Frage wird mit einem Eindeutigkeits-Hash gespeichert (Frage + Sprache + Shop): Ein erneutes Scrapen erzeugt nie Duplikate, sondern aktualisiert lediglich das Datum der letzten Erfassung.

Schritt 3 — Antworten generieren

Reiter Fragen. Filtern Sie nach Status pending, wählen Sie die Fragen über die Kontrollkästchen aus und starten Sie die Massenaktion Generieren. Auch ein Einzelbutton steht in jeder Zeile bereit.

Der Entitätskontext wird aus der ersten Zuweisung der Frage aufgebaut. Für bessere Antworten weisen Sie die Frage einem Produkt oder einer Kategorie zu, bevor Sie generieren: Die KI verfügt dann über Name und Beschreibung der Entität.

Schritt 4 — Prüfen und zuweisen

Klicken Sie auf eine Frage, um das Bearbeitungsformular zu öffnen. Sie können:

  • die HTML-Antwort im Rich-Editor korrigieren;
  • die Frage einem oder mehreren Produkten und Kategorien zuweisen (N-zu-N-Beziehung);
  • die Zuweisungen umsortieren, um die Reihenfolge im Akkordeon zu steuern;
  • eine themenfremde Frage ablehnen (Status rejected, bleibt in der Datenbank, wird aber nie angezeigt).

Schritt 5 — Veröffentlichen

Setzen Sie den Status auf published. Die FAQ erscheint sofort im Shop, zusammen mit ihrem JSON-LD.

Ist die Option Auto-Veröffentlichung aktiviert, verschmelzen die Schritte 4 und 5: Die Generierung veröffentlicht direkt. Praktisch für eine vollautomatische Pipeline, empfehlenswert nur bei Katalogen, in denen die menschliche Durchsicht nicht kritisch ist.

Status der Fragen

Status Bedeutung Im Shop sichtbar
pending Frage erfasst, noch keine KI-Antwort Nein
generated Antwort generiert, Freigabe ausstehend Nein
published Freigegeben und veröffentlicht Ja
rejected Manuell verworfen Nein

Anzeige im Shop

Das Akkordeon basiert auf den nativen HTML-Elementen details und summary, was Folgendes garantiert:

  • funktionierende Tastaturnavigation ohne JavaScript;
  • von Suchmaschinen indexierbare Inhalte, auch im zugeklappten Zustand;
  • Kompatibilität mit allen modernen Browsern.

Das erste Element ist standardmäßig geöffnet. Eine schlanke CSS-Datei wird geladen und lässt sich vollständig aus Ihrem Child-Theme überschreiben. Alle Klassen verwenden das Präfix dfaipaa-faq, um Kollisionen zu vermeiden.

JavaScript-Events

Das Frontend-Skript sendet zwei benutzerdefinierte Events, die Sie an Ihr Analysewerkzeug anbinden können:

document.addEventListener('dfaipaa:open', function (e) {
  // e.detail.question, e.detail.index, e.detail.type, e.detail.entityId
  gtag('event', 'faq_open', { question: e.detail.question });
});

document.addEventListener('dfaipaa:close', function (e) {
  console.log('FAQ geschlossen:', e.detail.question);
});

Die Datei views/js/front.js enthält außerdem eine Konstante SINGLE_OPEN (standardmäßig false): Setzen Sie sie auf true, damit jeweils nur ein Panel geöffnet ist.

Deep-Linking

Ein Anker der Form #dfaipaa-q-123 öffnet automatisch die passende Frage und scrollt die Seite dorthin. Praktisch, um eine bestimmte Antwort aus einer E-Mail oder einem Support-Ticket heraus zu teilen.

FAQPage JSON-LD-Auszeichnung

Bei jedem Aufruf einer Produkt- oder Kategorieseite mit mindestens einer veröffentlichten Frage fügt das Modul einen JSON-LD-Block direkt vor dem Schließen des Dokumentkörpers ein (Hook displayBeforeBodyClosingTag).

Ausgegebene Struktur: ein FAQPage-Knoten, ein mainEntity-Array und für jeden Eintrag ein Question-Knoten mit einer acceptedAnswer vom Typ Answer. Der HTML-Inhalt der Antworten wird vor der Ausgabe bereinigt: Script- und Style-Tags sowie Event-Attribute werden entfernt.

Tipp — Validieren Sie Ihre Auszeichnung mit dem Test für Rich-Suchergebnisse von Google. Beachten Sie, dass Google die Anzeige von FAQ-Rich-Snippets auf Behörden- und Gesundheitsseiten beschränkt hat, die Auszeichnung aber für generative Engines (ChatGPT, Perplexity, Gemini) weiterhin wertvoll ist, die sie aktiv auswerten.

Cron-Automatisierung

Ein CLI-Skript wird mitgeliefert, um die Pipeline ohne manuelles Eingreifen auszuführen.

# Veraltete Keywords scrapen (standardmäßig max. 20)
php modules/dfaipaa/cli/cron.php scrape --limit=20

# KI-Antworten für ausstehende Fragen generieren
php modules/dfaipaa/cli/cron.php generate --limit=10

# Scraping und Generierung verketten
php modules/dfaipaa/cli/cron.php all --limit=20

Beispiel-Crontab, nächtlicher Lauf um 3 Uhr:

0 3 * * * cd /var/www/prestashop && php modules/dfaipaa/cli/cron.php all --limit=30 >> /var/log/dfaipaa.log 2>&1
Wichtig — Passen Sie den Parameter --limit an Ihre API-Kontingente an. Ein Stapel von 30 Keywords verbraucht 30 SerpApi-Anfragen; beim kostenlosen Plan (100 pro Monat) passt ein wöchentlicher Lauf besser als ein täglicher.

Mehrsprachigkeit und Multishop

Fragen werden nach id_lang und id_shop indexiert. Konkret:

  • dasselbe Keyword, auf Deutsch und Englisch gescrapt, ergibt zwei verschiedene Fragensätze;
  • Antworten werden in der Sprache der Frage generiert, wobei der Prompt eine explizite Sprachdirektive anwendet (fr, en, es, de, it, nl, pt, pl);
  • im Multishop erscheinen Fragen und Zuweisungen eines Shops nie in einem anderen;
  • die Anzeigetitel (Reiter, Produkt, Kategorie) werden als lokalisierte Konfiguration gespeichert.

Fehlerbehebung

Das Scraping liefert keine Fragen

  • Prüfen Sie Ihr Kontingent beim Anbieter: SerpApi bricht jenseits des kostenlosen Plans stillschweigend ab.
  • Prüfen Sie die Stimmigkeit von Sprache und Land: „de“ mit „US“ liefert erratische Ergebnisse.
  • Manche Keywords lösen bei Google schlicht keinen PAA-Block aus. Testen Sie die Abfrage manuell in einem privaten Fenster.
  • Prüfen Sie bei DataForSEO das Format login:password im Feld API-Schlüssel.

Die KI liefert Markdown statt HTML

Senken Sie die Temperatur auf 0.2 oder wechseln Sie zu einem leistungsfähigeren Modell. Der Prompt erzwingt bereits strikte HTML-Regeln, die leichtesten Modelle können sie jedoch teilweise ignorieren.

Die FAQ erscheint nicht im Shop

  • Prüfen Sie, ob mindestens eine Frage den Status published hat.
  • Prüfen Sie, ob sie der aufgerufenen Entität (Produkt oder Kategorie) zugewiesen ist.
  • Prüfen Sie, ob die Anzeige für diesen Entitätstyp in der Konfiguration aktiviert ist.
  • Leeren Sie den Smarty-Cache unter Erweiterte Parameter › Leistung.

Das JSON-LD erscheint nicht im Quelltext

Stellen Sie sicher, dass die Option „JSON-LD ausgeben“ aktiviert ist und Ihr Theme den Hook displayBeforeBodyClosingTag tatsächlich aufruft. Manche Drittanbieter-Themes lassen ihn weg: Fügen Sie in diesem Fall {hook h='displayBeforeBodyClosingTag'} vor dem Schließen des Körpers in Ihrer layouts/layout-both-columns.tpl ein.

Fehler „Class not found“ nach der Installation

Der Ordner vendor/ wurde nicht entpackt. Installieren Sie das Modul neu, indem Sie das ZIP über das Backoffice hochladen, statt es manuell zu entpacken.

Betriebsprotokolle einsehen

Alle Vorgänge (Scraping, Generierung, Veröffentlichung) werden protokolliert. Zur Untersuchung:

SELECT * FROM ps_dfaipaa_log ORDER BY date_add DESC LIMIT 50;

Deinstallation

Klicken Sie unter Module › Modul-Manager auf Deinstallieren. Der Vorgang löscht die 4 Tabellen ps_dfaipaa_*, die 4 Admin-Reiter und alle Konfigurationsschlüssel DFAIPAA_. Generierte Inhalte gehen endgültig verloren: Exportieren Sie Ihre Fragen vorher, wenn Sie sie behalten möchten.

Technische Referenz

  • Technischer Slug: dfaipaa
  • Namespace: DataFirefly Dfaipaa (PSR-4, integrierter Autoloader)
  • Erstellte Tabellen: ps_dfaipaa_keyword, ps_dfaipaa_question, ps_dfaipaa_assignment, ps_dfaipaa_log
  • Verwendete Hooks: displayHeader, displayProductExtraContent, displayFooterProduct, displayCategoryFooter, displayBeforeBodyClosingTag, actionFrontControllerSetMedia, actionAdminControllerSetMedia, actionProductUpdate, actionProductSave, actionCategoryUpdate, actionObjectProductDeleteAfter, actionObjectCategoryDeleteAfter
  • Backoffice-Reiter: AdminDfaipaa (Eltern), AdminDfaipaaConfig, AdminDfaipaaKeywords, AdminDfaipaaQuestions
  • Konfigurationsschlüssel: DFAIPAA_SCRAPER_PROVIDER, DFAIPAA_SCRAPER_API_KEY, DFAIPAA_SCRAPER_LANG, DFAIPAA_SCRAPER_COUNTRY, DFAIPAA_SCRAPER_MAX_PER_KEYWORD, DFAIPAA_AI_PROVIDER, DFAIPAA_AI_MODEL, DFAIPAA_AI_API_KEY, DFAIPAA_AI_TEMPERATURE, DFAIPAA_AI_MAX_TOKENS, DFAIPAA_AI_TONE, DFAIPAA_AI_BRAND_VOICE, DFAIPAA_AUTO_PUBLISH, DFAIPAA_REFRESH_INTERVAL, DFAIPAA_PRODUCT_MODE, DFAIPAA_EMIT_JSONLD, DFAIPAA_TAB_TITLE, DFAIPAA_PRODUCT_TITLE, DFAIPAA_CATEGORY_TITLE
  • CLI: modules/dfaipaa/cli/cron.php (Befehle scrape, generate, all)
  • Frontend-Template: views/templates/hook/faq.tpl

DSGVO-Konformität

Das Modul erhebt und speichert keinerlei personenbezogene Daten: Erfasst werden ausschließlich Keywords, Fragen, generierte Antworten und technische Betriebsprotokolle. Im Shop wird kein Cookie gesetzt. Die Aufrufe externer APIs (Scraping, KI) übermitteln nur das Keyword, die Frage und den Produktkontext — niemals Kundendaten.

Support

Bei technischen Fragen wenden Sie sich an das DataFirefly-Team unter [email protected] oder besuchen Sie Ihren Kundenbereich auf datafirefly.com.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren