Google-Shopping-Feed aus Shopware: mit Bordmitteln, und woran er scheitert
Shopware bringt eine Vorlage für Google Shopping mit. Der Feed entsteht über einen eigenen Verkaufskanal, ist schnell eingerichtet — und hat eine Einstellung, die über Aktualität entscheidet, sowie feste Werte für Kategorie und Versand. Dazu die Produktdaten, die Google verlangt, und wie man prüft, ob Feed und Shop dasselbe sagen.

Für Google Shopping braucht ein Shop vor allem eines: einen Produktfeed, den das Merchant Center ohne Fehler annimmt. Shopware hat dafür eine Bordlösung. Ob sie im Alltag trägt, entscheiden die Produktdaten, ein paar feste Werte in der Vorlage und eine einzige Einstellung.
So entsteht der Feed in Shopware
Der Feed ist in Shopware ein eigener Verkaufskanal vom Typ „Produktvergleich“. Beim Anlegen wählt man eine Vorlage. In Shopware 6.6 und 6.7 bringt die Administration drei mit:
| Vorlage | Format | Dateiname ab Werk |
|---|---|---|
| Google Shopping (XML) | XML | google.xml |
| billiger.de (CSV) | CSV | billiger.csv |
| idealo.de (CSV) | CSV | idealo.csv |
Die Google-Vorlage gibt unter anderem ID, Titel, Beschreibung, Link, Bild, Preis, Verfügbarkeit, Marke, GTIN, Herstellernummer, Zustand, Google-Produktkategorie, Produkttyp und Versand aus. Ab Shopware 6.7.12 kommt ein Feed-Label hinzu, wenn eines gepflegt ist. Der Inhalt jeder Zeile ist ein Twig-Template und lässt sich anpassen.
Abrufbar ist der Feed danach unter einer Adresse der Form /store-api/product-export/{Zugangsschlüssel}/{Dateiname}. Diese Adresse hinterlegen Sie im Merchant Center als Datenquelle mit geplantem Abruf.
Die Einstellung, die über Aktualität entscheidet
Die Vorlage setzt ein Generierungsintervall von 86400 Sekunden, also einen Tag. Die Option „Per Scheduler generieren“ ist dabei nicht aktiv. Was das bedeutet, haben wir im Quelltext nachgelesen — zuerst in 6.7.2.2, am 30.10.2026 erneut in den aktuellen Versionen 6.7.15.1 und 6.6.10.30, mit demselben Ergebnis:
- Der Abruf der Feed-Adresse erzeugt die Datei nur, wenn sie fehlt — oder wenn das Intervall auf 0 („Live“) steht.
- Die geplante Aufgabe für Produktexporte erneuert nur Exporte mit aktiver Option „Per Scheduler generieren“, sobald das Intervall abgelaufen ist.
Am 02.11.2026 haben wir das in einem Wegwerf-Shop mit Shopware 6.7.2.2 nachgestellt: ein Testprodukt, ein Export mit verkürztem Intervall von 60 Sekunden, Abruf über die Feed-Adresse. Ausschlaggebend war der Last-Modified-Header der Antwort und der Preis in der Datei.
| Einstellung | Was wir getan haben | Feed danach |
|---|---|---|
| „Per Scheduler generieren“ aus | Preis von 10,00 auf 12,00 € geändert, sofort abgerufen | alt (10.00) |
| aus | erneut abgerufen, 75 Sekunden später, Intervall abgelaufen | alt (10.00) |
| aus | geplante Aufgabe für Produktexporte ausgeführt | alt (10.00) |
| an | geplante Aufgabe erneut ausgeführt | neu (12.00) |
| Intervall 0 („Live“) | Preis geändert, abgerufen | neu |
Mit den Werten der Vorlage hat in diesem Test also weder der Abruf noch die geplante Aufgabe den Feed erneuert. Das gilt für die getestete Version 6.7.2.2. Für 6.7.15.1 und 6.6.10.30 haben wir den Quelltext verglichen, nicht laufen lassen. Einen Shop über Tage haben wir nicht beobachtet. Im eigenen Shop prüfen Sie es genauso: Last-Modified der Feed-Adresse notieren, einen Preis ändern, nach Ablauf des Intervalls erneut abrufen. Bleiben Datum und Preis gleich, wird die Datei nicht erneuert.
Von Hand erneuern lässt sich der Feed auf der Konsole, im Hauptverzeichnis des Shops:
bin/console product-export:generate --force <ID-des-Storefront-Verkaufskanals>
--force erzeugt die Datei auch dann neu, wenn sie noch als gültig gilt. Ausnahme in älteren Versionen: Ist „Per Scheduler generieren“ aktiv, ließ der Befehl in unserem Test mit 6.7.2.2 die vorhandene Datei trotz --force stehen; ohne die Option erneuerte er sie. Laut Quelltext ändert sich das ab Shopware 6.7.14.0, dort erzwingt --force die Neuerzeugung immer.
Feste Werte in der Vorlage
Einige Angaben stehen nicht als Feld im Produkt, sondern als fester Wert im Template. Sie sind als Platzhalter gedacht und tragen dort den Kommentar, sie anzupassen:
| Angabe | Wert ab Werk | Was zu prüfen ist |
|---|---|---|
| Google-Produktkategorie | 950 für jedes Produkt | passende Kategorie je Sortiment, etwa über eine Zuordnung aus der Shop-Kategorie |
| Zustand | new | gebrauchte oder aufbereitete Ware braucht used oder refurbished |
| Versand | Deutschland, „Standard“, 4.95 in der Shop-Währung; 0.00 bei versandkostenfreien Produkten | eigene Versandkosten und Lieferländer — oder Versand im Merchant Center pflegen und das Feld entfernen |
| Preis | bei Staffelpreisen der letzte Eintrag der Staffel | ob dieser Preis dem entspricht, was die Produktseite für ein Stück zeigt |
| Verfügbarkeit | preorder, wenn der verfügbare Bestand unter der Mindestabnahme liegt, aber Lieferzeit und Wiederauffüllzeit gepflegt sind | Google verlangt bei preorder und backorder ein Verfügbarkeitsdatum (availability_date), das die Vorlage nicht ausgibt |
Die Produktdaten, die Google verlangt
Laut Googles Produktdatenspezifikation gehören ID, Titel, Beschreibung, Link, Bildlink, Verfügbarkeit und Preis zu den Pflichtangaben. Für die übrigen Kennzeichnungen gilt nach der Merchant-Center-Hilfe von Google (abgerufen am 02.11.2026):
- Marke: erforderlich für Produkte mit eindeutig zugeordneter Marke oder eindeutig zugeordnetem Hersteller; optional etwa bei Filmen, Büchern und Musik.
- GTIN: empfohlen für alle Produkte, denen der Hersteller eine GTIN zugewiesen hat. Fehlt sie bei einem solchen Produkt, kann Google es ablehnen. Hat ein Produkt keine GTIN, empfiehlt Google Marke und Herstellernummer; mehr dazu unter eindeutige Produktkennzeichnungen.
- Artikelgruppen-ID (
item_group_id): erforderlich für Varianten, bei Shopping-Anzeigen unter anderem in Deutschland. Alle Varianten eines Produkts tragen denselben Wert.
Die Vorlage gibt diese Felder bis auf die Artikelgruppen-ID aus — aber nur mit dem, was im Shop gepflegt ist.
| Feld | typisches Problem in Shopware |
|---|---|
| Marke | Hersteller im Produkt nicht gepflegt |
| GTIN | EAN-Feld leer oder mit Leerzeichen |
| Preis | Preis der falschen Kundengruppe oder Währung |
| Varianten | keine gemeinsame Gruppen-ID, Google sieht lauter Einzelprodukte |
Wie gut Produktseiten von Shopware-Shops ausgezeichnet sind, haben wir an 47 Seiten gemessen (zur Messung): Die Pflichtangaben für Händlereinträge im Markup hatten 41 von 47 Seiten, eine GTIN 31 von 47. Das betrifft das Markup auf der Seite, nicht den Feed — es zeigt aber, wo die Daten in dieser Stichprobe lückenhaft waren.
Feed und Shop müssen dasselbe sagen
Google vergleicht den Feed mit der Produktseite. Weicht der Preis ab oder ist ein Artikel im Feed verfügbar und auf der Seite ausverkauft, kann das Merchant Center den Artikel ablehnen. Mögliche Ursachen in Shopware:
- Veralteter Feed — siehe oben.
- Andere Preisregel im Feed als für den Besucher, etwa durch einen Verkaufskanal mit anderer Kundengruppe oder durch Staffelpreise.
- Feste Versandkosten aus der Vorlage, die nicht zu den Versandkosten im Checkout passen.
- Strukturierte Daten auf der Produktseite, die etwas anderes sagen als Feed und sichtbarer Preis.
Was Google an strukturierten Daten erwartet, erklärt dieser Ratgeber.
Kurze Checkliste
- Verkaufskanal „Produktvergleich“ mit Vorlage „Google Shopping (XML)“ anlegen, die dynamische Produktgruppe mit den Feed-Artikeln sowie Domain und Währung wählen.
- „Per Scheduler generieren“ aktivieren und prüfen, ob die geplanten Aufgaben laufen.
- Im Template Google-Produktkategorie, Zustand und Versand an den eigenen Shop anpassen; bei Varianten eine Gruppen-ID ergänzen.
- Marke und GTIN in den Produkten pflegen.
- Feed-Adresse im Merchant Center als Datenquelle mit geplantem Abruf hinterlegen.
- Nach einer Preisänderung prüfen, ob
Last-Modifiedund Inhalt sich ändern. - Diagnose im Merchant Center nach Ursache sortieren: Feed, Shop-Einstellung oder Produktdaten.
Die Vorlage liefert die Felder, der Shop liefert die Daten — und einige Werte stehen fest im Template. Ohne „Per Scheduler generieren“ blieb der Feed in unserem Test auf dem Stand des ersten Abrufs.
Häufige Fragen
- Brauche ich für Google Shopping ein Plugin?
- Nicht unbedingt. Die Vorlage im Kern gibt die Pflichtfelder aus, wenn die Produktdaten gepflegt sind und die festen Werte für Kategorie und Versand angepasst werden. Eine erweiterte Vorlage oder ein Plugin braucht es etwa für Varianten mit Gruppen-ID, mehrere Länder oder Felder, die die Vorlage nicht ausgibt.
- Wo finde ich die Feed-Adresse?
- Im Verkaufskanal vom Typ Produktvergleich. Die Adresse hat die Form /store-api/product-export/{Zugangsschlüssel}/{Dateiname}. Diese Adresse hinterlegen Sie im Merchant Center als Datenquelle mit geplantem Abruf.
- Wie oft sollte der Feed aktualisiert werden?
- So oft, wie sich Preise und Bestände ändern; das Intervall der Vorlage ist ein Tag. Wichtig ist, dass die Erneuerung tatsächlich stattfindet — dafür „Per Scheduler generieren“ aktivieren und prüfen, ob die geplanten Aufgaben laufen.
- Kann ich den Feed von Hand neu erzeugen?
- Ja, auf der Konsole mit bin/console product-export:generate --force und der ID des Storefront-Verkaufskanals. Ist „Per Scheduler generieren“ aktiv, ließ der Befehl in unserem Test mit 6.7.2.2 die vorhandene Datei trotz --force stehen; laut Quelltext wirkt --force dann erst ab Shopware 6.7.14.0. Das ersetzt keine regelmäßige Erneuerung.
- Was ist mit Varianten?
- Jede Variante ist ein eigener Artikel im Feed. Für Varianten verlangt Google eine gemeinsame Artikelgruppen-ID (item_group_id), bei Shopping-Anzeigen unter anderem in Deutschland. Die Vorlage gibt sie nicht aus; sie muss dafür ergänzt werden.
- Kostet das Merchant Center etwas?
- Nein. Das Merchant Center selbst ist kostenlos, Kosten entstehen erst für Anzeigen. Kostenlose Produkteinträge laufen über denselben Feed.
