Zum Inhalt

OpenAI und Google Shopping Produktfeed

Die Erweiterung bringt zwei Verkaufskanal-Typen mit, die einen Produktfeed ohne selbst geschriebenes Template erzeugen. Welche Felder der Feed enthält, legst du über eine Feldzuordnung fest.

Verkaufskanal-Typ Format Zweck Kosten
Google Shopping Produktfeed (Lenz) XML Feed für das Google Merchant Center im Plugin enthalten
OpenAI Produktfeed (Lenz) JSONL Feed für ChatGPT Shopping, Übertragung per SFTP In-App-Kauf „OpenAI Produktfeed"

Beide Typen arbeiten wie ein Shopware-Produktvergleich: Shopware erzeugt die Datei, stellt sie unter der Export-URL bereit und aktualisiert sie nach dem Generierungsintervall. Achte beim Anlegen auf den Zusatz „(Lenz)" im Namen des Typs.

Verkaufskanal anlegen

  1. Lege über Verkaufskanal hinzufügen einen Verkaufskanal vom Typ Google Shopping Produktfeed (Lenz) oder OpenAI Produktfeed (Lenz) an. Wie beim Produktvergleich brauchst du dafür eine dynamische Produktgruppe.
  2. Der neue Verkaufskanal startet mit der Voreinstellung seines Typs: Feldzuordnung, Kopf- und Fußzeile, Dateiname und Dateiformat sind gesetzt. Ist der vorgeschlagene Dateiname schon vergeben, hängt die Erweiterung eine Zahl an (google-shopping-2.xml).
  3. Wähle Storefront-Verkaufskanal, Storefront-Domain und Dynamische Produktgruppe und speichere.
Voreinstellung Google Shopping Produktfeed OpenAI Produktfeed
Dateiname google-shopping.xml openai-products.jsonl
Dateiformat XML JSONL (JSON Lines)
Zeichenkodierung UTF-8 UTF-8
Varianten als eigene Produkte exportieren Shopware-Standard eingeschaltet
Per Scheduler generieren Shopware-Standard eingeschaltet
Generierungsintervall Shopware-Standard 1 Tag

Kundengruppe

Anders als beim Shopware-Produktvergleich kannst du die Kundengruppe des Feeds selbst wählen. Die Preise im Feed werden für diese Kundengruppe berechnet, einschließlich Preisregeln und Brutto- oder Netto-Anzeige. Wechselst du den Storefront-Verkaufskanal, setzt Shopware die Kundengruppe auf dessen Standard-Kundengruppe zurück.

Feldzuordnung

Die Karte Feldzuordnung steht im Tab Template über den Template-Feldern. Aus der Zuordnung erzeugt die Erweiterung beim Bearbeiten automatisch die Produktzeile; dieses Feld kannst du deshalb nicht direkt bearbeiten. Kopfzeile und Fußzeile bleiben frei editierbar. Template testen und Vorschau generieren arbeiten immer mit dem aktuellen Stand.

Admin: Karte Feldzuordnung mit den Einstellungen des OpenAI Produktfeeds

Einstellungen

Unter Einstellungen stehen Angaben, die es in Shopware nicht gibt und die direkt in den Feed übernommen werden.

Google Shopping Produktfeed

Einstellung Bedeutung
Versand je Land Eine Zeile pro Lieferland mit den Spalten Land (z. B. DE), Versandart und Preis (Twig). Der Preis ist eine Twig-Vorlage und kann zum Beispiel vom Gewicht (product.weight) oder vom Preis (productPrice) abhängen; er enthält die Währung. Ohne Zeile wird kein Versand übermittelt. Voreingestellt sind DE und AT mit 4.95 bis zu einem Produktpreis von 100, darüber 0.

OpenAI Produktfeed

Einstellung Bedeutung
Verkäufername Leer lassen, um den Namen des Storefront-Verkaufskanals zu verwenden.
Link zur Datenschutzerklärung Vollständige Adresse der Seite, beginnend mit https://.
Link zu den AGB Vollständige Adresse der Seite, beginnend mit https://.
Link zur Widerrufsbelehrung Vollständige Adresse der Seite, beginnend mit https://.
Rückgabefrist in Tagen Zum Beispiel 14. Leer lassen, wenn keine Rückgabe angeboten wird.

Felder

Admin: Feldgruppen der Feldzuordnung, Gruppe Grunddaten aufgeklappt

Die Felder des Feeds sind nach Themen gruppiert: Grunddaten, Preise, Verfügbarkeit, Bilder, Kategorie und Kennzeichnung, Varianten und Merkmale, Versand und Maße, Verkäufer und Rückgabe, Kampagnen und Weitere. Mit Bearbeiten öffnest du ein Feld:

Angabe Bedeutung
Feld im Feed Name des Felds im Feed. Punkte verschachteln (dimensions.length), [1] oder [*] wiederholen.
Typ Text, Zahl, Ja/Nein, Liste (ein Eintrag pro Zeile) oder Schlüssel-Wert (eine Zeile pro Eintrag im Format Schlüssel: Wert).
Pflichtfeld: Produkt ohne Wert überspringen Fehlt der Wert, kommt das Produkt nicht in den Feed.
Wiederholen für Nur bei Feldnamen mit [*]: der Name einer Tabellen-Einstellung. Das Feld wird für jede Zeile einmal erzeugt; im Twig steht die Zeile als row bereit.
Twig Die Berechnung als Twig-Vorlage. Ihre Ausgabe ohne Leerzeichen am Rand ist der Wert; ist sie leer, fehlt das Feld im Feed. Werte werden automatisch maskiert – verwende kein escape.

Mit Feld hinzufügen ergänzt du eigene Felder (sie landen in der Gruppe „Weitere"), mit Entfernen löschst du eines. Eine Zahl in eckigen Klammern wiederholt einen Eintrag, zum Beispiel shipping[1].country und shipping[2].country für zwei Versandländer: In XML entstehen zwei Elemente, in JSONL eine Liste. Nummeriere dabei entweder alle oder keinen Eintrag eines Namens.

Unter Variablen für eigene Berechnungen legst du Zwischenwerte an, die mehrere Felder nutzen können.

Voreinstellung wiederherstellen ersetzt Feldzuordnung, Kopf- und Fußzeile durch die Voreinstellung des Typs. Eigene Änderungen gehen dabei verloren.

Enthält die Zuordnung Fehler, zeigt die Karte sie an, und die Produktzeile wird erst wieder erzeugt, wenn sie behoben sind. Auch das Speichern des Verkaufskanals bricht dann ab.

Was die Voreinstellungen übertragen

Beide Voreinstellungen lesen die Zusatzfelder der Erweiterung, zum Beispiel Titel, Beschreibung, alternative Bilder, Google-Produktkategorie, Sonderangebotspreis und Custom Labels. Ist ein Zusatzfeld leer, nehmen sie den Wert aus Shopware, etwa den Produktnamen oder den Hersteller als Marke.

Die Verfügbarkeit berechnen beide gleich:

Lagerbestand Verfügbarkeit
verfügbarer Bestand mindestens so groß wie die Mindestabnahme (mindestens 1) in_stock
darunter, Produkt mit Abverkauf out_of_stock
darunter, Produkt ohne Abverkauf backorder

Im Google Shopping Produktfeed sind g:id, g:title, link, g:image_link, g:availability und g:price Pflichtfelder, im OpenAI Produktfeed item_id, title, url, image_url, availability und price. Fehlt einem Produkt einer dieser Werte, wird es übersprungen.

Übertragung per SFTP (OpenAI)

OpenAI ruft keinen Feed ab, sondern erwartet ihn auf einem SFTP-Server, dessen Zugangsdaten du von OpenAI erhältst. Die Karte Übertragung per SFTP gibt es nur beim OpenAI Produktfeed.

Feld Bedeutung
Automatisch hochladen Lädt den Feed hoch, sobald eine neuere Datei generiert wurde.
Server, Port Adresse des SFTP-Servers, Port voreingestellt auf 22.
Benutzername Dein SFTP-Benutzer.
Passwort Mit privatem Schlüssel ist das die Passphrase des Schlüssels.
Privater Schlüssel Optional. Der vollständige Schlüssel im OpenSSH- oder PEM-Format.
Verzeichnis auf dem Server Leer lassen für das Startverzeichnis. OpenAI verarbeitet alle Dateien in diesem Verzeichnis. Das Verzeichnis muss existieren.
Mit gzip komprimieren Lädt die Datei als .gz hoch, zum Beispiel openai-products.jsonl.gz. Voreingestellt eingeschaltet.
  • Ein Scheduled Task prüft alle fünf Minuten, ob eine neuere Datei generiert wurde, und lädt sie dann unter ihrem Dateinamen hoch.
  • Verbindung testen prüft die Anmeldung, Jetzt hochladen lädt die aktuelle Datei sofort hoch (erst nach dem ersten Speichern).
  • Unter der Karte siehst du den Zeitpunkt des letzten Uploads und den letzten Fehler. Die Fehlermeldungen des Uploads sind englisch.
  • Passwort und privater Schlüssel werden gespeichert, aber nie wieder angezeigt. Änderst du Server, Port oder Benutzer, gib Passwort oder Schlüssel neu ein – sonst werden die gespeicherten Zugangsdaten beim Speichern gelöscht.

In-App-Kauf OpenAI Produktfeed

Der OpenAI Produktfeed ist ein In-App-Kauf. Ohne den Kauf

  • öffnet die Auswahl des Typs beim Anlegen den Kauf statt eines neuen Verkaufskanals,
  • zeigt ein bestehender OpenAI-Verkaufskanal den Hinweis In-App-Kauf erforderlich und blendet Feldzuordnung und Template aus,
  • erzeugt Shopware eine leere Feed-Datei, und nichts wird an OpenAI hochgeladen.

Die Einstellungen eines bestehenden Verkaufskanals bleiben dabei gespeichert. Nach dem Kauf arbeitet er mit ihnen weiter.

Für Fortgeschrittene: Twig-Filter

Die erzeugten Templates nutzen zwei Filter der Erweiterung, die du auch in eigenen Feldern verwenden kannst:

Filter Wirkung
lenz_html_decode wandelt HTML-Entitäten wie & in Zeichen um, geschützte Leerzeichen in normale
lenz_combine(keys, values) baut aus zwei Listen eine Zuordnung Schlüssel → Wert