Shopware 6 und idealo: So konfigurieren Sie Ihren Produktfeed ohne Plugin

von Marcel Krippendorf
08. Juni 2026
Shopware 6 und idealo: So konfigurieren Sie Ihren Produktfeed ohne Plugin

idealo ist einer der reichweitenstärksten Preisvergleiche im deutschsprachigen Raum. Wer dort mit korrekten Produktdaten präsent ist, gewinnt Sichtbarkeit in einem kaufbereiten Umfeld. Shopware 6 bietet dafür eine native Lösung über den Produktvergleich, ganz ohne zusätzliche Plugins. Das bedeutet: update-sichere Konfiguration, keine Plugin-Abhängigkeiten und volle Kontrolle über Ihre Feed-Daten. Diese Anleitung zeigt Ihnen Schritt für Schritt, wie Sie einen idealo-Produktfeed anlegen, korrekt konfigurieren und typische Stolperfallen vermeiden.

Die vollständige Spezifikation aller Feed-Attribute finden Sie in der offiziellen idealo-CSV-Dokumentation. Diese Anleitung verweist an den relevanten Stellen darauf.

Vorbereitung: Dynamische Produktgruppe anlegen

Als Basis benötigen Sie eine dynamische Produktgruppe. So gehen Sie vor:

Navigieren Sie im Adminbereich zu Kataloge → Dynamische Produktgruppen. Erstellen Sie hier eine neue Gruppe mit einem aussagekräftigen Namen, z. B. idealo Feed oder Aktive Produkte.

Unter den Bedingungen definieren Sie, welche Produkte in den Feed aufgenommen werden sollen. Damit nur aktive und verfügbare Produkte erscheinen, legen Sie zwei Bedingungen an:

  1. Aktiv → Ja
  2. Lagerbestand → größer/gleich → 1
sw idealo feed

Diese Regeln stellen sicher, dass nur verfügbare Produkte mit Lagerbestand exportiert werden. Den Schwellenwert für den Lagerbestand passen Sie bei Bedarf an Ihr Geschäftsmodell an. Speichern Sie die dynamische Produktgruppe.

Produktvergleich anlegen

Im nächsten Schritt legen Sie den eigentlichen idealo-Feed an. Shopware 6 bringt dafür ein vorgefertigtes idealo-Template mit, das die grundlegende Feed-Struktur bereits enthält.

Klicken Sie in der linken Seitenleiste bei den Verkaufskanälen auf das ⊕-Symbol und wählen Sie Produktvergleich aus. Klicken Sie anschließend auf Verkaufskanal anlegen.

CleanShot 2026 06 08 at 08.44.23 2x

Template-Auswahl

Im ersten Schritt wählen Sie das Template aus. Shopware bietet hier bereits ein vorgefertigtes idealo-Template an. Wählen Sie dieses aus und bestätigen Sie mit Template übernehmen. Das Template enthält die grundlegende Kopfzeile und Produktzeile für den idealo-Feed. Im weiteren Verlauf dieser Anleitung schauen wir uns das Template genauer an und passen es bei Bedarf an.

Grunddaten

Vergeben Sie zunächst einen Namen für den Verkaufskanal, z. B. Idealo. Dieser Name erscheint anschließend in der linken Seitenleiste im Admin-Menü.

Im Bereich Zahlung und Versand konfigurieren Sie:

  • Steuerberechnung: Zeilenweise horizontale Berechnung (Steuer wird pro Produkt berechnet)
  • Storefront Verkaufskanal: Wählen Sie Ihren Shop aus
  • Verkaufsdomain: Wählen Sie Ihre Haupt-Shop-Domain


sw idealo feed 2

Produktexport

Scrollen Sie weiter zum Bereich Produktexport und konfigurieren Sie die folgenden Einstellungen:

  • Dateiname: Im Standard idealo.csv. Sie können den Dateinamen anpassen, die Endung .csv sollte erhalten bleiben.
  • Zeichenkodierung: UTF-8 (idealo unterstützt alternativ ISO-8859-1)
  • Dateiformat: CSV
  • Varianten als eigene Produkte exportieren: Unbedingt aktivieren. Dieser Punkt ist für idealo besonders relevant, da Varianten mit Größen- und Farbangaben auf idealo filterbar gemacht werden können. Ohne separate Varianten im Feed verlieren Sie Sichtbarkeit, sobald Nutzer nach einer bestimmten Größe oder Farbe filtern. In der Praxis hat sich gezeigt, dass die Variantenübertragung die Conversion Rate auf idealo erheblich steigern kann.
  • Generierungsintervall: 1 Tag hat sich als sinnvoller Standardwert für Shops mit stabilen Angebotsdaten bewährt. Passen Sie das Intervall an die Aktualisierungshäufigkeit Ihrer Angebotsdaten an: Ändern sich Preise oder Verfügbarkeiten in Ihrem Shop häufiger, sollte auch der Feed entsprechend öfter neu generiert werden. Andernfalls übermitteln Sie veraltete Preise oder Bestände an idealo, was zu Abweichungen zwischen Preisvergleich und Shop führt. Zur Einordnung: idealo ruft die bereitgestellten Daten in der Regel alle 30 Minuten ab.
  • Per Scheduler generieren: Aktivieren. Der Feed wird dann automatisch im gewählten Intervall aktualisiert, ohne Ihr Zutun.
  • Dynamische Produktgruppe: Wählen Sie die zuvor erstellte Gruppe aus (in unserem Beispiel Idealo)
sw idealo feed 3

Scrollen Sie anschließend zum Bereich Status und aktivieren Sie den Verkaufskanal. Speichern Sie Ihre Einstellungen.

Sobald das erfolgt ist, erscheinen neue Tabs im Produktvergleich, darunter auch der Reiter Template. Dort finden Sie bereits das vorgefertigte idealo-Template mit Kopfzeile und Produktzeile.

Template prüfen und anpassen

Nach dem Speichern wechseln Sie zum Reiter Template. Durch die Auswahl des idealo-Templates im ersten Schritt sind Kopfzeile und Produktzeile bereits vorbefüllt. Prüfen Sie diese Vorgaben und passen Sie sie bei Bedarf an Ihre Anforderungen an. idealo erwartet eine CSV-Datei mit definierten Spaltenüberschriften. Shopware gibt Ihnen über den Twig-Code die volle Kontrolle über das Feed-Format. Welche Attribute idealo im Einzelnen erwartet und welche Anforderungen für jedes Feld gelten, dokumentiert idealo in der CSV-Dokumentation.

Kopfzeile

Klicken Sie auf Template → Kopfzeile und fügen Sie folgenden Code ein:

"categoryPath",{#- -#}
"brand",{#- -#}
"title",{#- -#}
"price",{#- -#}
"basePrice",{#- -#}
"hans",{#- -#}
"eans",{#- -#}
"deliveryCosts",{#- -#}
"url",{#- -#}
"delivery",{#- -#}
"sku",{#- -#}
"imageUrls",{#- -#}
"description",{#- -#}
"paymentCosts_CashInAdvance",{#- Change or add your payment methods -#}
"paymentCosts_CashOnDelivery",{#- Change or add your payment methods -#}
"paymentCosts_Invoice"{#- Change or add your payment methods -#}

Die Kopfzeile definiert die Spaltenüberschriften Ihres Feeds. Ergänzen Sie bei Bedarf weitere Spalten, etwa voucherCode, specialPrice, condition, conditionType oder deliveryComment.

Hinweis zu den Versandkosten: Übergeben Sie im Feed immer die günstigsten Versandkosten je Angebot in einer Spalte. Die Versanddienstleister selbst pflegen Sie im idealo Business Center, nicht über den Feed.

Template der Produktzeile

Scrollen Sie im Reiter Template nach unten zum Produktblock und tragen Sie folgenden Code ein:

"{%- if product.categories.count > 0 -%}
    {{ product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw }}{#- -#}
{%- endif -%}",{#- -#}
"{{ product.manufacturer.translated.name ?? '' }}",{#- -#}
"{{ product.translated.name }}",{#- -#}
{% set price = product.calculatedPrice %}
{%- if product.calculatedPrices.count > 0 -%}
    {% set price = product.calculatedPrices.last %}
{%- endif -%}
"{{ price.unitPrice|number_format(2, '.', '') }}",{#- -#}
"{%- if price.referencePrice is not null -%}
    {{ price.referencePrice.price|currency }} / {{ price.referencePrice.referenceUnit }} {{ price.referencePrice.unitName }}{#- -#}
{%- endif -%}",{#- -#}
"{{ product.manufacturerNumber }}", {#- -#}
"{{ product.ean }}",{#- -#}
"4.95",{#- Change to your delivery costs -#}
"{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}",{#- -#}
"{%- if product.availableStock >= product.minPurchase and product.deliveryTime -%}
    {{ "detail.deliveryTimeAvailable"|trans({'%name%': product.deliveryTime.translation('name')}) }}{#- -#}
{%- elseif product.availableStock < product.minPurchase and product.deliveryTime and product.restockTime -%}
    {{ "detail.deliveryTimeRestock"|trans({'%count%': product.restockTime,'%restockTime%': product.restockTime,'%name%': product.deliveryTime.translation('name')}) }}{#- -#}
{%- else -%}
    {{ "detail.soldOut"|trans }}{#- -#}
{%- endif -%}",{#- -#}
"{{ product.productNumber }}",{#- -#}
"{% if product.cover is not null %}{{ product.cover.media.url }}{% endif %}",{#- -#}
"{{ product.translated.description|striptags|raw|length > 300 ? product.translated.description|striptags|raw|slice(0,300) ~ '...' : product.translated.description|striptags|raw }}",{#- -#}
"0.00",{#- Change or add your payment methods -#}
"0.00",{#- Change or add your payment methods -#}
"0.00"{#- Change or add your payment methods -#}

Versandkosten korrekt konfigurieren

Die korrekte Übermittlung der Versandkosten ist ein häufiger Stolperstein bei Shopware-Feeds für idealo. In vielen Shopware-Installationen wird im Template ein fest hinterlegter Standardwert von 4,95 € ausgegeben, unabhängig von den tatsächlichen Versandeinstellungen des Shops. Dieses Problem entsteht, wenn der Versandkostenwert im Template hartkodiert ist, anstatt aus der Shopware-Versandkonfiguration gelesen zu werden.

So vermeiden Sie diesen Fehler:

Im obigen Template ist die betreffende Stelle die Zeile "4.95",{#- Change to your delivery costs -#}. Der Twig-Kommentar Change to your delivery costs markiert genau den Wert, der angepasst werden muss. Ersetzen Sie den Wert 4.95 durch Ihre tatsächlichen Versandkosten.

Zwei Formatregeln sind dabei zu beachten: Übermitteln Sie Preise und Versandkosten als reine Zahlenwerte ohne Währungszeichen. Verwenden Sie deshalb nicht den Twig-Filter |currency, denn dieser hängt das Währungssymbol an die Ausgabe an. Nutzen Sie stattdessen |number_format oder feste Zahlenwerte, wie im Template oben gezeigt. Außerdem muss bei allen Preisangaben, also bei Preisen und Versandkosten, durchgängig dasselbe Dezimaltrennzeichen verwendet werden. Mischen Sie nicht Punkt und Komma innerhalb eines Feeds.

Im Folgenden finden Sie Templates für die gängigsten Versandmodelle.

Standardfall: Festpreis mit Versandkostenfrei-Grenze

Das häufigste Modell im deutschen E-Commerce: Bis zu einem bestimmten Warenwert fallen feste Versandkosten an, darüber ist der Versand kostenlos.

{% if product.shippingFree or price.unitPrice >= 49 %}0.00{% else %}4.95{% endif %}

In diesem Beispiel: 4,95 € Versandkosten, ab 49 € Warenwert versandkostenfrei. Passen Sie beide Werte an Ihre Konditionen an.

Gestaffelte Versandkosten nach Warenwert

Wenn Ihre Versandkosten je nach Warenwert variieren, bilden Sie die Staffelung mit mehreren Bedingungen ab:

{% if product.shippingFree or price.unitPrice >= 49 %}0.00{% elseif price.unitPrice >= 20 %}3.95{% else %}4.95{% endif %}

Dieses Beispiel zeigt eine dreistufige Staffelung: versandkostenfrei ab 49 €, 3,95 € ab 20 € Warenwert, darunter 4,95 €.

Versandkosten nach Gewicht

Shops mit gewichtsabhängigen Versandkosten können das Produktgewicht aus Shopware im Template auswerten:

{% if product.shippingFree %}0.00{% elseif product.weight is defined and product.weight > 31.5 %}9.95{% elseif product.weight is defined and product.weight > 10 %}6.95{% else %}4.95{% endif %}

In diesem Beispiel: 4,95 € bis 10 kg, 6,95 € bis 31,5 kg, 9,95 € darüber. Voraussetzung ist, dass das Gewicht in Shopware bei Ihren Produkten gepflegt ist. Prüfen Sie die Gewichtsschwellen anhand Ihrer tatsächlichen Versanddienstleister-Konditionen.

Hinweis: In der Praxis sind Versandkosten-Logiken oft komplexer als diese Beispiele. Gewichtsstaffeln mit Freigrenzen, Sperrgut-Zuschläge oder länderspezifische Regeln lassen sich ebenfalls im Template abbilden, erfordern aber eine individuelle Konfiguration.

Ihre Versandlogik passt in keines dieser Beispiele?

Gestaffelte Versandkosten, Sperrgut, mehrere Versanddienstleister: Ich bilde Ihre Versandlogik exakt im Feed-Template ab. Als Shopware-Partner mit neun Jahren Erfahrung erhalten Sie von mir den Feed, der für Sie verkauft.

Jetzt Gespräch vereinbaren

Lieferzeiten korrekt übermitteln

Ein häufiges Problem bei Shopware-Feeds: Als Lieferzeit wird „Nicht mehr verfügbar" übermittelt, obwohl die Produkte im Shop lagernd und bestellbar sind. Die Fehlerquelle steckt im Standardtemplate selbst. Der Lieferzeit-Block greift in drei Stufen:

  1. Ist der verfügbare Bestand größer/gleich der Mindestbestellmenge und eine Lieferzeit am Produkt gepflegt, wird die Lieferzeit ausgegeben.
  2. Ist der Bestand zu niedrig, aber Lieferzeit und Wiederauffüllzeit gepflegt, wird die Wiederauffüll-Angabe ausgegeben.
  3. In allen anderen Fällen greift detail.soldOut, und genau dieser Fallback erzeugt den Text „Nicht mehr verfügbar" im Feed.

Der dritte Fall tritt auch bei lagernden, bestellbaren Produkten ein, wenn keine Lieferzeit am Produkt gepflegt ist. Der Bestand allein reicht nicht: Fehlt die Lieferzeit-Zuweisung, landet das Produkt im Fallback.

Lösung: Stellen Sie sicher, dass jedem Produkt in Shopware eine Lieferzeit zugewiesen ist (im Produkt unter Lieferbarkeit → Lieferzeit). Für Produkte mit Bestandslücken pflegen Sie zusätzlich die Wiederauffüllzeit. idealo erwartet konkrete Zeitangaben in Werktagen, etwa „1-3 Werktage". Angaben wie „versandfertig" oder Relativierungen wie „voraussichtlich" sind laut idealo-Spezifikation nicht zulässig.

Ergänzende Angaben wie Wochenarbeitstage, Cutoff-Zeiten und Versandlagerstandort hinterlegen Sie direkt im idealo Business Center.

Varianten und Textquoting

Die Übertragung von Varianten ist für idealo geschäftskritisch. Wenn ein Kunde auf idealo nach einer bestimmten Größe oder Farbe filtert, erscheinen nur Angebote, die diese Information im Feed liefern. Ohne Varianten im Feed sind Ihre Produkte bei aktiviertem Filter unsichtbar.

In Shopware 6 aktivieren Sie die Variantenübertragung in den Einstellungen des Produktvergleichs unter „Varianten als eigene Produkte exportieren". Jede Variante wird dann als eigene Zeile im CSV-Feed ausgegeben.

Wichtig: Jede Variante muss ihre eigene EAN besitzen. Übergeben Sie nicht die EAN des Hauptprodukts für alle Varianten. Die EAN identifiziert das Produkt in einer spezifischen Ausführung (Größe, Farbe), und nur mit der korrekten Varianten-EAN kann idealo Ihr Angebot dem richtigen Produkt im Katalog zuordnen. Pflegen Sie die EAN in Shopware daher auf Variantenebene, nicht nur am Hauptprodukt.

Textquoting: Die häufigste Fehlerquelle im CSV-Feed

Eines der hartnäckigsten Probleme bei CSV-Feeds aus Shopware betrifft das Textquoting. Dieses Problem ist nicht auf Varianten beschränkt, sondern betrifft jedes Textfeld im Feed: Produktname, Beschreibung, Kategoriepfad, Herstellername und bei Varianten zusätzlich die angehängten Attribute wie Farbe und Größe.

Die Ursache: Shopware gibt Textinhalte so aus, wie sie in der Datenbank stehen. Wenn diese Inhalte Zeichen enthalten, die der CSV-Parser als Steuerzeichen interpretiert, verschiebt sich die Spaltenstruktur. Konkret sind das:

  • Das Trennzeichen (z. B. Semikolon oder Tab) im Text selbst, etwa in Produktnamen wie „Schrank, weiß" bei einem kommaseparierten Feed
  • Anführungszeichen in Produkttexten, die das CSV-Quoting brechen
  • Zeilenumbrüche (\n, \r) in Beschreibungen, die vom Parser als neue Zeile interpretiert werden
  • Tabulatoren (\t) in kopierten Texten
  • HTML-Entities wie &quot;, &amp;, &lt;, &gt;, die aus dem Rich-Text-Editor stammen und im CSV-Feed als Klartext erscheinen sollen

Lösung: Alle Textfelder im Template bereinigen

Jedes Feld, das Freitext enthalten kann, muss im Template mit einer Filterkette versehen werden, die diese problematischen Zeichen ersetzt. Ersetzen Sie dazu in Ihrem Template jede rohe Textausgabe durch die bereinigte Variante:

Statt:

{{ product.translated.name }}

Verwenden Sie:

{{ product.translated.name|replace({(separator): ' ', "\n": ' ', "\r": ' ', "\t": ' ', '"': "'", """: "'", "&": "&", "<": "<", ">": ">"})|trim|raw }}

Diese Filterkette leistet im Einzelnen Folgendes:

  • (separator): ' ' ersetzt das Trennzeichen im Text durch ein Leerzeichen
  • "\n": ' ', "\r": ' ', "\t": ' ' entfernt Zeilenumbrüche und Tabulatoren
  • '"': "'" ersetzt doppelte Anführungszeichen durch einfache
  • "&quot;": "'" wandelt das HTML-Entity für Anführungszeichen in ein einfaches um
  • "&amp;": "&", "&lt;": "<", "&gt;": ">" dekodiert gängige HTML-Entities
  • |trim entfernt führende und abschließende Leerzeichen
  • |raw verhindert, dass Twig die Ausgabe erneut HTML-kodiert

Diese Filterkette gehört an jedes Textfeld im Template. Konkret betrifft das folgende Felder:

  • product.translated.name (Produktname)
  • product.translated.description (Beschreibung, zusätzlich |striptags voranstellen)
  • product.manufacturer.translated.name (Herstellername)
  • product.categories...getBreadCrumb (Kategoriepfad)
  • product.deliveryTime.translated.name (Lieferzeit)

Felder, die ausschließlich Zahlen, URLs oder normierte Codes enthalten (EAN, Artikelnummer, Preis, Bild-URL), benötigen diese Bereinigung nicht.

Prüfen Sie den generierten Feed stichprobenartig, indem Sie ihn in einem Texteditor öffnen (nicht in Excel, da Excel CSV-Fehler maskiert). Ein verschobenes Trennzeichen oder ein unerwarteter Zeilenumbruch fällt dort sofort auf.

Leerzeilen im Feed vermeiden

idealo meldet bei vielen Shopware-Feeds Leerzeilen, die als fehlerhafte Datensätze interpretiert werden. Die Ursache liegt fast immer im Template: Jeder Zeilenumbruch im Twig-Code des Produktblocks wird von Shopware als Zeilenumbruch in der CSV-Datei ausgegeben.

Regel: Der gesamte Inhalt des Produktblocks muss in einer einzigen, durchgängigen Zeile stehen. Verwenden Sie keine Zeilenumbrüche zwischen den Feldern, auch nicht zur besseren Lesbarkeit im Admin. Twig-Kommentare mit Zeilenumbrüchen oder mehrzeilige {% if %}-Blöcke erzeugen ebenfalls ungewollte Leerzeilen.

Falls Sie den Twig-Code zur Bearbeitung in einem externen Editor formatieren, achten Sie darauf, vor dem Einfügen in Shopware alle Zeilenumbrüche wieder zu entfernen.

Filteroptionen: SIZE und COLOUR

idealo bietet Nutzern die Möglichkeit, Produkte nach Größe und Farbe zu filtern. Diese Funktion erhöht die Klicks zum Shop um bis zu 84 %. Angebote ohne Größen- oder Farbangabe werden Nutzern, die den Filter aktiviert haben, nicht angezeigt.

Für die Implementierung benötigen Sie zwei zusätzliche Spalten im Feed: colour und size. Im obigen Template werden diese Werte aus den Shopware-Produkteigenschaften gelesen. Voraussetzung ist, dass Ihre Eigenschaftsgruppen in Shopware korrekt als „Farbe" und „Größe" benannt sind.

Hinweis für Schuhe: idealo empfiehlt für Schuhe die Übermittlung von EU-Größen (z. B. 40, 41.5, 43). UK- und US-Größen sind zulässig, müssen aber entsprechend gekennzeichnet werden, z. B. UK 9.5.

Nach der Feedumstellung informieren Sie das Technische Account Management von idealo unter tam@idealo.de, damit die neuen Spalten in Ihrem Konto freigeschaltet werden.

Freitextfelder: description und deliveryComment

idealo bietet zwei Freitextfelder, über die Sie Ihre Angebote mit zusätzlichen Informationen anreichern. Beide Felder haben klare Vorgaben, deren Nichteinhaltung zu einer fehlerhaften Produktzuordnung oder zur Ablehnung des Angebots führen kann.

description: Die Produktbeschreibung

Die Produktbeschreibung hilft idealo, Ihre Artikel dem richtigen Produkt im Katalog zuzuordnen. Je genauer und ausführlicher die Beschreibung, desto besser die Zuordnung und damit die Sichtbarkeit Ihres Angebots. Es gelten folgende Vorgaben:

  • Maximal 1000 Zeichen reiner Text
  • Kein HTML und keine sonstigen Formatierungen. Der Filter |striptags im Template entfernt HTML-Tags aus der Shopware-Beschreibung.
  • Bei Videospielen und Filmen: Angaben zur Altersbeschränkung gemäß USK/FSK hier übermitteln
  • Bei Spielzeug: die gesetzlichen Warnhinweise hier übermitteln

deliveryComment: Der Versandkommentar

Über den Versandkommentar übermitteln Sie zusätzliche Informationen zu Ihren Versandmodalitäten, etwa „kostenlose Abholung in 39179 Barleben möglich". Es gelten folgende Vorgaben:

  • Maximal 150 Zeichen reiner Text
  • Kein HTML und keine sonstigen Formatierungen
  • Keine Promotions- oder Werbetexte. Das Feld ist ausschließlich für versandbezogene Informationen vorgesehen.

Auch beim Versandkommentar ist der Mindermengenzuschlag ein relevanter Anwendungsfall: Falls Sie einen Mindermengenzuschlag erheben, empfiehlt idealo, im Versandkommentar darauf hinzuweisen, z. B. „Ein Mindermengenzuschlag von X EUR ist bereits in den Versandkosten enthalten. Dieser entfällt ab XX EUR!"

Beide Freitextfelder sind Textfelder im Sinne des oben beschriebenen Textquotings: Wenden Sie auch hier die Bereinigungs-Filterkette an.

Gebrauchte Angebote kennzeichnen

Wenn Sie gebrauchte, generalüberholte oder B-Ware-Artikel anbieten, müssen diese auf idealo eindeutig gekennzeichnet werden. Wichtig zu wissen: Selbst Artikel mit der Kennzeichnung „wie neu" gelten bei idealo als Gebrauchtware. Auch Demo-Ware und Refurbished-Geräte fallen in diese Kategorie. Verstöße gegen die Kennzeichnungspflicht können zum Ausschluss von der Listung führen.

Für die Kennzeichnung stellt idealo zwei Attribute bereit, die immer in Kombination übermittelt werden:

conditionType: Der Zustand des Artikels

Das Attribut conditionType beschreibt, um welche Art von Angebot es sich handelt. Erlaubte Werte:

  • NEW: Neuware mit vollem Lieferumfang (Originalware inkl. Originalzubehör)
  • AS_NEW: Artikel „wie neu", z. B. unversehrte Kundenretouren oder Ausstellungsstücke mit unbeschädigter Ware
  • REFURBISHED: Generalüberholte Geräte, die vom Hersteller oder Händler geprüft, gereinigt und aufbereitet wurden
  • USED: Gebrauchte Artikel

condition: Die Bewertung des Zustands

Das Attribut condition bewertet den konkreten Zustand eines gebrauchten Produkts. Erlaubte Werte:

  • EXCELLENT: Hervorragender Zustand, keine sichtbaren Gebrauchsspuren
  • VERY_GOOD: Sehr guter Zustand, minimale Gebrauchsspuren
  • GOOD: Guter Zustand, sichtbare, aber geringfügige Gebrauchsspuren
  • ACCEPTABLE: Akzeptabler Zustand, deutliche Gebrauchsspuren bei voller Funktionsfähigkeit

Beispiel im Feed

Ein generalüberholtes Smartphone in sehr gutem Zustand würde im Feed so übermittelt:

title price conditionType condition
Apple iPhone 13 128 GB blau (Refurbished) 429.00 REFURBISHED VERY_GOOD

In Shopware pflegen Sie den Zustand am einfachsten über Zusatzfelder am Produkt (z. B. idealo_condition_type und idealo_condition) und geben diese im Template aus:

"{{ product.customFields.idealo_condition_type ?? 'NEW' }}",{#- -#}
"{{ product.customFields.idealo_condition ?? '' }}",{#- -#}

Ergänzen Sie dazu in der Kopfzeile die Spalten "conditionType" und "condition". Ein weiterer Hinweis für Wiederverkäufer: Bei differenzbesteuerten Artikeln verlangt idealo eine eindeutige Kennzeichnung im Angebotstitel. Die Bezeichnung „ggfs. differenzbesteuert" ist nicht zulässig, und zusätzlich muss gekennzeichnet sein, ob der Artikel neu oder gebraucht ist.

Gutscheine für besseres Ranking

Gutscheine bieten auf idealo eine effektive Möglichkeit, das eigene Ranking zu verbessern. Der rabattierte Preis wird direkt im Preisvergleich angezeigt, was zu einer besseren Platzierung und mehr Klicks führt.

Für die Einbindung benötigen Sie zwei zusätzliche Spalten im Feed:

  • VOUCHERCODE: Der Gutscheincode mit Beschreibung und Gültigkeitszeitraum, z. B. SOMMER2026 (10 % Rabatt auf dieses Angebot / gültig bis 30.09.2026)
  • SPECIAL PRICE: Der bereits rabattierte Preis. Nur für Produkte befüllen, die einen aktiven Gutschein haben.

In der Kopfzeile ergänzen Sie entsprechend:

{{ separator }}voucherCode{{ separator }}specialPrice

Im Produktblock fügen Sie am Ende an:

{{ separator }}{% if product.customFields.idealo_voucher_code is defined %}{{ product.customFields.idealo_voucher_code }}{% endif %}{{ separator }}{% if product.customFields.idealo_special_price is defined %}{{ product.customFields.idealo_special_price }}{% endif %}

Dieses Beispiel nutzt Zusatzfelder (customFields) in Shopware, um den Gutscheincode und den Sonderpreis pro Produkt zu pflegen. Alternativ können Sie die Gutscheindaten über eine andere Logik bereitstellen.

Wichtige Hinweise zur Gutscheinübermittlung:

  • Gutscheine dürfen nicht im Voraus übermittelt werden und müssen zum Ende des Aktionszeitraums aus dem Feed entfernt werden.
  • Pro Angebot ist nur ein Gutschein zulässig.
  • Gutscheinaktionen müssen für alle Käufergruppen verfügbar sein. Aktionen nur für Neukunden sind nicht zulässig.
  • Maximal 200 Zeichen pro Gutscheineintrag.
  • Bei erstmaliger Einbindung kontaktieren Sie tam@idealo.de zur Freischaltung der Spalten.

Fußzeile

Die Fußzeile bleibt bei einem CSV-Feed leer. Tragen Sie unter Template → Fußzeile keinen Code ein, da jede Ausgabe hier als zusätzliche Zeile im CSV interpretiert wird und zu Fehlern beim Import führen kann.

Vorschau und Feed testen

Speichern Sie Ihre Änderungen und klicken Sie auf Vorschau generieren. Shopware zeigt Ihnen einige Beispieldaten, anhand derer Sie prüfen können, ob alle Felder korrekt befüllt sind.

Rufen Sie anschließend die Export-URL (im Reiter Allgemein unter API-Zugang) im Browser auf. Prüfen Sie den generierten Feed auf folgende Punkte:

  • Spaltenstruktur: Stimmt die Anzahl der Spalten in jeder Zeile mit der Kopfzeile überein?
  • Versandkosten: Entsprechen die Werte Ihren tatsächlichen Konditionen, nicht dem Standardwert 4,95 €?
  • Lieferzeiten: Werden konkrete Zeitangaben ausgegeben, kein „Nicht mehr verfügbar"?
  • Leerzeilen: Enthält der Feed leere Zeilen zwischen den Produkten?
  • Varianten: Erscheinen Varianten als separate Zeilen mit korrekten Titeln?
  • Sonderzeichen: Werden Anführungszeichen und Trennzeichen in Produkttexten korrekt maskiert?

Tipp: Öffnen Sie den Feed in einem Texteditor (nicht in Excel), um die tatsächliche Struktur zu sehen. Excel interpretiert CSV-Dateien automatisch und maskiert dabei mögliche Formatierungsfehler.

Sie haben Fehler in Ihrem Feed gefunden oder möchten eine zweite Meinung?

Im idealo Feed-Check prüfe ich Ihren bestehenden Feed auf alle in diesem Artikel beschriebenen Fehlerquellen: Versandkosten, Lieferzeiten, Leerzeilen, Textquoting und Varianten. Sie erhalten von mir einen fertigen idealo-Feed, der für Sie verkauft.

Jetzt Gespräch vereinbaren

Feed-Übersicht: idealo-Attribute und ihre Shopware-Zuordnung

Die folgende Übersicht zeigt die wichtigsten idealo-Attribute und ihre Entsprechung in Shopware 6. Die vollständige Spezifikation aller Attribute, einschließlich der Spezialattribute für KFZ-Teile, Reifen, Wein, Kosmetik und pharmazeutische Produkte, finden Sie in der idealo-CSV-Dokumentation.

Grundsatz: Übermitteln Sie alle Daten, die in Ihrem Shop verfügbar sind, auch wenn eine Listung technisch bereits mit weniger Attributen möglich wäre. Je vollständiger Ihr Feed, desto besser kann idealo Ihre Angebote zuordnen, darstellen und in den Filtern ausspielen. Ein bewusst reduzierter Feed kostet Sichtbarkeit.

idealo-Attribut Shopware-Feld
sku product.productNumber
title product.translated.name
brand product.manufacturer.translated.name
price calculatedPrice.unitPrice
delivery product.deliveryTime.translated.name
deliveryCosts Template-Logik (s. oben)
url seoUrl()
eans product.ean (auf Variantenebene gepflegt)
hans product.manufacturerNumber
imageUrls product.cover.media.url
colour Eigenschaft „Farbe"
size Eigenschaft „Größe"
basePrice Grundpreis-Berechnung
categoryPath product.categories Breadcrumb
description product.translated.description
deliveryComment customFields (individuell)
conditionType customFields (individuell)
condition customFields (individuell)
voucherCode customFields (individuell)
specialPrice customFields (individuell)

Feed bei idealo einreichen

Shopware generiert für jeden Produktvergleich eine individuelle Feed-URL. Diese finden Sie im Reiter Allgemein unter API-Zugang. Übermitteln Sie diese URL an idealo. Über diese URL ruft idealo den Feed automatisiert ab. Die Daten werden dabei nach dem von Ihnen konfigurierten Generierungsintervall neu erzeugt, ob alle paar Stunden, einmal am Tag oder einmal pro Woche. Sie müssen also keine Datei manuell auf einem Webserver ablegen; Shopware stellt den Feed direkt über die generierte URL bereit.

Fazit

Shopware 6 bringt alle Werkzeuge für einen vollständigen idealo-Produktfeed nativ mit. Die dynamischen Produktgruppen stellen sicher, dass nur aktuelle, lagernde Produkte im Feed erscheinen. Das Twig-basierte Template gibt Ihnen die volle Kontrolle über Struktur und Inhalt Ihrer Feed-Daten. Die typischen Shopware-Stolperfallen bei idealo-Feeds, hartkodierte Versandkosten, fehlerhafte Lieferzeiten, Leerzeilen und Quoting-Probleme bei Varianten, lassen sich mit den hier beschriebenen Maßnahmen zuverlässig vermeiden. Das Ergebnis: eine update-sichere, wartbare Lösung ohne Plugin-Abhängigkeiten.

Nicht jeder Feed lässt sich mit den hier gezeigten Standardbeispielen abdecken. Wenn Ihre Anforderungen über diese Anleitung hinausgehen, unterstütze ich Sie gern. Typische Szenarien, bei denen eine individuelle Konfiguration sinnvoll ist:

  • Komplexe Versandkosten-Logiken (Sperrgut-Zuschläge, Gewichtsstaffeln mit Freigrenzen, mehrere Versanddienstleister mit unterschiedlichen Konditionen)
  • Gutschein-Anbindung mit automatisierter Steuerung über Zusatzfelder oder Rule Builder
  • Kennzeichnung von Gebrauchtware und Refurbished-Sortimenten über Zusatzfelder
  • Integration von Energieverbrauchskennzeichnungen (EEC-Attribute) für kennzeichnungspflichtige Produkte
  • Mehrsprachige oder länderspezifische Feed-Konfigurationen
  • Bereinigung bestehender Feeds mit Quoting-Fehlern, Leerzeilen oder fehlerhaften Lieferzeiten
  • Anbindung weiterer Preisvergleichsportale neben idealo (Google Shopping, billiger.de, Geizhals)
Marcel Krippendorf
Marcel Krippendorf
Exzellenz in Shopware 6: E-Commerce-Lösungen der Spitzenklasse. Mein Top-Shop-System ist die Lösung für alle, die sich einen Shop wünschen, der ihre Kunden begeistert & auf die Zukunft ausgerichtet ist.

Noch keine Kommentare vorhanden

Schreibe einen Kommentar

Das könnte Sie auch interessieren

Effizienter Shopware-Umzug: Schritt-für-Schritt-Anleitung und Expertentipps

Effizienter Shopware-Umzug: Schritt-für-Schritt-Anleitung und Expertentipps

Inhaltsverzeichnis Vorkehrungen für Ihren Shopware Umzug: Planung und Wartungsmodus Hosting-Lösungen für Sie: Sicher und effizient beim Shopware Umzug Sicherer ...
Weiterlesen
Der Shopware AI Copilot: Das Upgrade für Ihren Online-Shop

Der Shopware AI Copilot: Das Upgrade für Ihren Online-Shop

In dem heutigen Blogartikel möchte ich Ihnen einen Einblick in den Shopware AI Copilot geben. Inhaltsverzeichnis Erlebniswelten mit AI-generiertem ...
Weiterlesen
Shopware 6.6: Entdecken Sie alle Neuerungen für Ihren Online Shop

Shopware 6.6: Entdecken Sie alle Neuerungen für Ihren Online Shop

Willkommen zum neuesten Update von Shopware – Version 6.6. Dieses Update steht kurz vor der Veröffentlichung und bringt eine ...
Weiterlesen

Individuelle Shop-Strategie

Jetzt Ihre kostenlose Beratung anfordern

Sichern Sie sich jetzt Ihren persönlichen Termin, in dem Sie mit Marcel Krippendorf darüber sprechen, wie Ihr Shop zukunftssicher aufgestellt werden kann.

Jetzt unverbindlichen Telefontermin sichern
Zuverlässig
100% Transparent
Marcel Krippendorf Logo
Als zuverlässiger Premium Shopware Freelancer erhalten ambitionierte Onlinehändler modernste Onlineshops auf Basis von Marcel Krippendorfs Top-Shop-Systems.
© 2026 - Marcel Krippendorf