Shopware Produktexport für Google Shopping

·

·

Shopware und Google Shopping

Allgemeine Einführung

google shopping
Was ist Google Shopping?

Google Shopping ist wie erwartet eine Produktsuche von Google. Die Ergebnisse erscheinen dabei sowohl in der allgemeinen Suche (siehe Bild links), als auch speziell in der Kategorie Shopping. Vor allem die Platzierung in der allgemeinen Suche macht Google Shopping für Online-Händler so interessant.

Wie sicherlich bekannt ist, orientieren sich die gängigen (Produkt-)Preissuchmaschinen am Preis. Google Shopping stellt hier aber die Relevanz zum Suchbegriff in den Vordergrund.

Das soll die Qualität der Suchergebnisse erhöhen und dadurch mehr Benutzerfreundlichkeit bringen. Was Google unter Relevanz versteht, ist ein kombinierter Wert aus Gebotshöhe, Aktualität des Datenfeeds, Kunden-Bewertungen, Klickrate usw.

Wie werden Produkte bei Google Shopping gelistet?

Dieser Vorgang hat in aller Regel mindestens drei Beteiligte:

  1. In unserem Beispiel Shopware: das Shopsystem liefert alle wichtigen Daten über das Produkt. Das geschieht mittels Produktfeed, um den es im weiteren Verlauf des Artikels noch  ganz ausführlich geht.
  2. Da Google Shopping nicht kostenlos ist, verwaltet Adwords das Budget, welches man den Produktplatzierungen einräumen möchte. Hier können später auch Optimierungen an der Google Shopping Kampagne vorgenommen werden.
  3. Kurz GMC. Das GMC sorgt dafür, dass die per Feed importierten Produktdaten über Adwords ausgeliefert werden. Es prüft die Datenqualität des Feeds und leistet Hilfestellung bei der Problemlösung.

Diese Beteiligten kommunizieren wie folgt miteinander: Shopware liefert seine Produktdaten per Feed an das Google Merchant Center. Dort wird geprüft, ob die Daten technisch und inhaltlich (gem. Google Richtlinien) korrekt sind. Danach geht der Produktfeed an Google Adwords, wo die Budgeteinstellungen vorgenommen werden können. Nach einer abschliessenden Überprüfung durch Google findet man dann seine Produkte auch bei Google Shopping:

google-shopping-workflow

Shopware Produktexport für Google Shopping

Shopware liefert für wichtige deutsche Preissuchmaschinen bereits ein vorgefertigtes Export-Template. Diese Templateliste findet man unter Marketing => Produktexport

shopware produktexport für google shopping

Für Google Shopping werden hier zwei Varianten angeboten: Google Produktsuche export.txt und Google Produktsuche export.xml. Im weiteren Verlauf geht es um die XML Exportmöglichkeit. Vorab allerdings hier die wichtigsten Ressourcen zu diesem Thema:

Shopware Produktexport XML für Google Shopping

Vorbereitungen in und an Shopware

Zunächst sollten Sie Google Produkt Taxonomien herunterladen und feststellen, in welche Google Shopping Kategorie(n) Ihre Produkte gehören. In diesem Fallbeispiel geht es um einen themespezifischen Shop, dessen Produkte alle in die Google Kategorie Gesundheit & Schönheit > Körperpflege > Kosmetika > Nagelpflege gehören.

Wenn Sie bei der Eingabe Ihrer Produkte noch keine Google Shopping Produktkategorie eingegeben haben, müssen Sie das an dieser Stelle nachholen. Da das aber je nach Shop sehr aufwändig sein kann, empfehle ich die direkte Arbeit in der Datenbank. Zuerst sollten Sie aber über Einstellungen => Grundeinstellungen => Artikel => Artikel-Freitextfelder ein freies Textfeld für die Google Shopping Kategorien vorsehen. Shopware kann hier bis zu 20 Freitextfelder verwalten, von daher ist die Wahrscheinlichkeit hoch, dass Sie noch eines übrig haben:

shopware-freitextfeld-google-kategorie

Als Default Wert in Shopware setzen wir im Beispiel folgendes ein:

Gesundheit & Schönheit > Körperpflege > Kosmetika > Nagelpflege

Sie sehen, wir haben die Sonderzeichen & (Kaufmanns-UND) sowie die > (Grösserzeichen) durch HTML ersetzt. Eine gute Übersicht über die HTML Sonderzeichen finden Sie hier. Das hat damit zu tun, dass die Ausgabe der Sonderzeichen später reibungslos funktioniert. Wenn Sie nun folgerichtig die Frage nach den Umlauten stellen, muss ich sagen, dass dieser Weg wohl der einfachere ist, als darüber einen Platzhalter Ausdruck im Template zu platzieren. Wer mag, darf das gerne im Kommentar ergänzen.

Die Crux mit dem Shopware Default Wert ist allerdings, dass der nur bei neu angelegten Produkten künftig platziert wird. Heisst im Umkehrschluss, dass alle bisher angelegten Produkte den nötigen Google Shopping Kategorie-Eintrag noch nicht haben. Da kommt die Datenbank ins Spiel. Wie Sie im Freitextfeld sehen, haben wir Attribut 1 (attr1) in Shopware für die Google Shopping Produktkategorie gewählt. Die entsprechende Spalte finden wir in der MySQL Datenbank-Tabelle s_articles_attributes.

Loggen Sie sich bei phpMyAdmin in Ihre Shopware Datenbank ein, gehen Sie links in der Tabellen-Liste auf s_articles_attributes und dann auf den Reitern oben SQL auswählen. Jetzt geben Sie nachfolgenden Code in das Textfeld. Hinweis: ersetzen Sie zunächst Datenbankname durch den Namen Ihrer Shopware Datenbank und tragen Sie Ihre Google Shopping Kategorie ein!

UPDATE  `Datenbankname`.`s_articles_attributes` SET  `attr1` =  'Gesundheit & Schönheit > Körperpflege > Kosmetika > Nagelpflege'

Durch diese Zeile setzen Sie den Inhalt des Attribut 1 (attr1) für alle bestehenden Produkte auf die benötigte Google Shopping Kategorie. Klicken Sie dann rechts unten in phpMyAdmin auf «OK» und der Befehl wird ausgeführt. MySQL meldet in der Regel Fehler rot und Erfolge grün zurück und gibt Details dazu aus. Wenn alles gut verlaufen ist, sieht die Erfolgsmeldung etwa so aus:

Attribut in der Datenbank mit Inhalt füllen

[av_notification title=» color=’orange› border=» custom_bg=’#444444′ custom_font=’#ffffff› size=’normal› icon_select=’yes› icon=’ue81f› font=’entypo-fontello›] Je nachdem, wie stark Ihr Shopware Seiten-Template angepasst ist, kann es sein, dass das Freitextfeld im Frontend sichtbar wird. Das müssen Sie später ggf. über eine Korrektur an der Layout Datei nachbessern.

Shopware Produktexport für Google Shopping konfigurieren 

Jetzt geht’s zurück ins Shopware Backend zu  Marketing => Produktexport. Sie können sich den originalen Feed zunächst duplizieren, um Ihre Kopie dann anzupassen. Durch Klick auf den Bleistift rechts können Sie den Google Shopping Produktfeed bearbeiten. Shopware öffnet den Feed-Konfigurator in einem neuen Fenster:

Feed Konfigurator

  1. Name des Exports (relevant für die Bezeichnung in der Produkt-Export-Übersicht). Am besten, Sie duplizieren zuerst den originalen Shopware Feed und bearbeiten dann die Kopie unter einem eigenen Titel.
  2. Bezeichnung der zu erstellenden Datei auf dem Server. Diesen Namen brauchen Sie später, um den Feed an das Google Merchant Center zu übergeben.
  3. Die PartnerID wird an den jeweiligen Artikellink zum Shop angehängt. Somit entsteht beim Kauf des Artikels die Zuordnung zu einem Partner. Dieses wird ebenfalls in den Statistiken berücksichtigt und macht Verkäufe zudem transparenter.
  4. Der Zugriffschlüssel wird beim Anlegen eines neuen Produkt-Exports automatisch generiert. Dieser Schlüssel wird in die URL zur XML/CSV Datei eingebunden (Hash-Wert). Durch Ändern dieses Zugriffsschlüssels kann das Preisportal nicht mehr auf die Datei zugreifen. Dadurch verhindern Sie, dass ggf. alte und nicht mehr aktuelle Produktfeeds übergeben werden.
  5. Aktivieren oder Deaktivieren Sie den Export
  6. Wahlweise können Varianten und Konfiguratorartikel vom Export ausgeschlossen werden. Geschieht dies, so werden Variantenartikel ausgeschlossen, und immer nur der Preis des Vaterartikels exportiert. Wichtig ab Shopware 4.1.0: Wenn Varianten nicht exportiert werden, so wird bei einem Variantenartikel die Vorauswahl exportiert. Abweichende Variantenpreise werden in diesem Fall nicht angezeigt.
  7. Bei Verwendung von Subshops mit verschiedenen URL’s/Domains wird im Export die Artikel- und Bildverlinkung angepasst. Wenn Sie nur einen deutschen Shop nutzen, sollten Sie hier «Deutsch» anwählen. Hinweis: Diese Funktion ist nur bei reinen Subshops mit eigener Domain möglich. Bei Sprachsubshops mit einer virtuellen Domain ist dieses Verhalten mit ein wenig Anpassungen im Datenfeed auch möglich. Ab Version 4.1.4 werden Virtuelle URL´s bereits direkt unterstützt.
  8. Definiert die Kundengruppe aus der die Preise entnommen werden (default: Shopkunden). Hier sollten Sie genau darauf achten, was Sie auswählen, wenn Sie mehrere Kundengruppen verwalten. Da Google Shopping hauptsächlich ein Endverbraucher-Portal ist, sind hier immer die B2C Preise auszuwählen (siehe Standard).
  9. Die zu exportierende Währung
  10. Hiermit ist ein Export für eine bestimmte Kategorie möglich. Bei Subshop wird hier für einen gesamten Export die Hauptkategorie des jeweiligen Shops ausgewählt. Hinweis: Durch doppelte Kategoriezuweisungen der Artikel kann es beim Export mit Kategorie-Filterung zu abweichenden Ergebnissen kommen. Artikel mit mehrfacher Kategoriezuweisung werden bei einem Filterscoring nicht exportiert.
  • A: Zeichenkodierung und Dateiformat. In unserem Fall, beim Google Shopping XML Export, sollte die Zeichencodierung UTF-8 sein und das Format XML.
  • B: Kopfbereich der Feed-Datei. Hier finden sich u.a. der Start Tag, sowie der Name und eine Beschreibung Ihres Shops.
  • C: Im Template werden alle Variablen definiert, die zum jeweiligen Artikel exportiert werden sollen. Das Template wird via Schleife auf jeden Artikel angewendet. Bei einem XML-Export z.B. Google, ist jeder Artikel durch einen Start- und Endtag eingefasst. So ist es möglich die Exporte, ja nach Struktur und Anforderung anzupassen.
  • D: Schliesst den Datenfeed.
  • E: Hier können Sie einzelne Kategorien vom Export ausschliessen.
  • F: Falls Sie Auflagen in Sachen Werbeverbot mit Markennamen o.ä. haben, können Sie hier Hersteller oder Marken ausschliessen, sofern Sie diese Funktion in Shopware nutzen.
    G: Ermöglicht das gezielte Ausschliessen von einzelnen Artikeln. Diese Funktion kann später sehr hilfreich sein, wenn das Google Merchant Center z.B. erkennt, dass einige Artikel nicht alle geforderten Daten enthalten.
  • H: Bestimmen Sie weitere Filtereinstellungen, anhand derer Produkte vom Export ausgenommen werden sollen. Hinweis: wählen Sie in jedem Fall «Nur aktive Artikel» aus, um späteren Problemen mit dem Google Merchant Center vorzubeugen.
google shopping import
Um möglichst wenig Fehlermeldungen beim Import ins Google Merchant Center zu erhalten, sind einige Anpassungen am Standard-Template für den XML Export in Shopware nötig.

Wir erstellen nun ein im Fallbeispiel voll funktionsfähiges Google Shopping Feed-Template in Shopware. Dabei werden alle Schritte einzeln aufgelistet, so dass der Vorgang transparent wird. Am Ende finden Sie dann das angepasste Template, um es für Ihre Zwecke zu kopieren. Wir raten aber dazu, sich die einzelnen Schritte genau durchzulesen. Das erleichtert eine spätere Fehlersuche ungemein.

Google Shopping Feed Kopfzeile anpassen

Im Reiter Kopfzeile finden Sie folgenden Code:

<description>Beschreibung im Header hinterlegen</description>

Hier können Sie direkt Ihre Shop-Beschreibung eintragen und speichern.

Google Shopping Feed Template in Shopware

Das ist der originale Template Code für Shopware 4.2.1, Stand März 2014, den wir nun anpassen werden:

<item> 
    <g:id>{$sArticle.articleID|escape}</g:id>
	<title>{$sArticle.name|strip_tags|strip|truncate:80:"...":true|escape}</title>
	<description>{$sArticle.description_long|strip_tags|strip|truncate:900:"..."|escape}</description>
	<g:google_product_category>Wählen Sie hier Ihre Google Produkt-Kategorie</g:google_product_category>
	<g:product_type>{$sArticle.articleID|category:" > "|escape}</g:product_type>
	<link>{$sArticle.articleID|link:$sArticle.name|escape}</link>
	<g:image_link>{$sArticle.image|image:4}</g:image_link>
	<g:condition>neu</g:condition>
	<g:availability>{if $sArticle.esd}bestellbar{elseif $sArticle.instock>0}bestellbar{elseif $sArticle.releasedate && $sArticle.releasedate|strtotime > $smarty.now}vorbestellt{elseif $sArticle.shippingtime}bestellbar{else}nicht auf lager{/if}</g:availability>
	<g:price>{$sArticle.price|format:"number"}</g:price>
	<g:brand>{$sArticle.supplier|escape}</g:brand>
	<g:gtin>{$sArticle.suppliernumber|replace:"|":""}</g:gtin>
	<g:mpn>{$sArticle.suppliernumber|escape}</g:mpn>
	<g:shipping>
       <g:country>DE</g:country>
       <g:service>Standard</g:service>
       <g:price>{$sArticle|@shippingcost:"prepayment":"de"|escape:number}</g:price>
    </g:shipping>
  {if $sArticle.changed}<pubDate>{$sArticle.changed|date_format:"%a, %d %b %Y %T %Z"}</pubDate>{/if}		
</item>

Google Produktkategorie aus Shopware Freitextfeld auslesen

Analog zu den Google Merchant Produkt Feed Spezifikationen wird klar, dass wir die ersten 4 Zeilen nicht anfassen müssen. Zeile 5 mit den google_product_category enhält bislang nur einen Text. Die Zeile 5 müssen Sie ersetzen durch:

<g:google_product_category>{$sArticle.attr1|escape:"xml"}</g:google_product_category>

Damit laden wir den Inhalt des Freitextfeldes, das wir vorhin angelegt haben und welches unsere korrekte Google Produktkategorie enthält.

Verfügbarkeit berechnen lassen oder Standard-Wert setzen

Wenn Sie Neuware verkaufen, beginnen die weiteren Anpassungen ab availability, Zeile 10. Hier fragt Shopware standardmässig den Lagerbestand ab. Bei meinem Fallbeispiel brachte diese Abfrage kein gültiges Ergebnis und das Google Merchant Center hatte immer etwas zu beanstanden. Deshalb habe ich einen von Google erlaubten Wert direkt hinterlegt:

<g:availability>available for order</g:availability>

Google erklärt, für den Verfügbarkeitsstatus gibt es nur vier zulässige Werte:

  1. ‹Auf Lager› [in stock]: Geben Sie diesen Wert an, wenn Sie sicher sind, dass der Artikel innerhalb von höchstens 3 Werktagen versendet werden kann oder sich auf dem Weg zum Kunden befindet. Beispiel: Der Artikel befindet sich in Ihrem Lager.
  2. ‹Bestellbar› [available for order]: Geben Sie diesen Wert an, wenn der Versand zum Kunden mindestens 4 Werktage in Anspruch nimmt. Beispiel: Wenn Sie den Artikel derzeit nicht in Ihrem Lager haben, jedoch sicher sind, dass er innerhalb der nächsten Tage eintrifft. Verwenden Sie den Wert ‹Vorbestellt› [preorder] für noch unveröffentlichte Produkte.
  3. ‹Nicht auf Lager› [out of stock]: Sie nehmen derzeit keine Bestellungen für dieses Produkt an. Wichtiger Hinweis: Entfernen Sie Produkte nicht aus Ihrem Daten-Feed, wenn sie auf Ihrer Website nicht auf Lager sind. Geben Sie stattdessen diesen Wert an.
  4. ‹Vorbestellt› [preorder]: Sie nehmen Bestellungen für dieses Produkt an, es wurde jedoch noch nicht veröffentlicht.

Darstellung des Preises mit der Währung

Die nächste Korrektur muss in Zeile 11 beim Preis vorgenommen werden. Google braucht die Währungsangabe direkt hinter dem Preis. Der originale Shopware Code gibt nur einen numerischen Wert, ohne ISO Währungskürzel aus. Ersetzen Sie die originale Zeile der Preisangabe durch diesen Code hier:

<g:price>{$sArticle.price|format:"number"} {$sCurrency.currency}</g:price>

Somit wird die Währung in EUR oder CHF nach dem Preis ausgegeben, also beispielsweise 4,99 CHF

Shopware Produktidentifikation konfigurieren

Google erwartet beim Produkt Feed, dass ein Produkt eindeutig zugeordnet wird. Diese Zuordnung kann dabei in maximal vier Schritten erfolgen. Zwei der drei zuerst gelisteten Identifikatoren sind dabei in den meisten Fällen Pflicht:

  1. Marke: Brand. Marke des Artikels
  2. GTIN: Global Trade Item Number des Artikels. In Europa wird die EAN Nummer dafür verwendet, bei Büchern die ISBN
  3. MPN: Manufacturer Part Number. Das kann die interne Artikelnummer des Herstellers sein.
  4. Kennzeichnung existiert: über diese Variable lassen sich auch Sonderanfertigungen einreichen, die keine standardisierten Nummern tragen. In diesem speziellen Fall können Sie GTIN und MPN weglassen. Anstelle dessen sollten Sie folgende Zeile in das XML Export-Template einfügen:
<g:identifier_exists>FALSE</g:identifier_exists>

Im zugrunde liegenden Fallbeispiel ist der Inhalt der GTIN die EAN. Shopware bietet dafür ein eigenes Feld bei der Produktkonfiguration. Dieses lässt sich also hier auslesen. Auf eine Übertragung der Herstellernummer habe ich verzichtet, da die EAN für Google Shopping ausreichend ist. Somit wurden Zeile 12-14 (einschliesslich) des originalen Shopware Templates ersetzt durch:

<g:brand>{$sArticle.supplier|escape}</g:brand>
<g:gtin>{$sArticle.ean|replace:"|":""}</g:gtin>

Die Forderung nach zwei von drei Identifikatoren ist damit erfüllt: Marke und EAN. Abweichende Anforderungen gibt es für einige Kategorien. Details dazu finden Sie in der Google Merchant Hilfe.

Versandangaben und -kosten an Google Shopping übermitteln

Zwingend erforderlich für diesen Teil der Angaben für Google Shopping sind das Land und der Preis. Das Shopware Template stimmt in der originalen Fassung bis auf eine Kleinigkeit: die Währungsangabe beim Versandpreis. Diese müssen Sie einfügen (Zeile 18 im o.g. Template):

<g:price>{$sArticle|@shippingcost:"prepayment":"de"|escape:number} {$sCurrency.currency}</g:price>

Durch die Ergänzung sCurrency.currency wird das ISO Währungskürzel neben dem numerischen Versandpreis dargestellt, siehe Anpassungen der Preisausgabe oben.

Fertiges Shopware XML Export Template für Google Shopping

Damit sind die Änderungen abgeschlossen. Das fertig angepasst Template, welches in unserem Beispiel erfolgreich zum Google Merchant Center exportiert wurde, sieht wie folgt aus:

<item> 
    <g:id>{$sArticle.articleID|escape}</g:id>
	<title>{$sArticle.name|strip_tags|strip|truncate:80:"...":true|escape}</title>
	<description>{$sArticle.description_long|strip_tags|strip|truncate:900:"..."|escape}</description>
	<g:google_product_category>{$sArticle.attr1|escape:"xml"}</g:google_product_category>
	<g:product_type>{$sArticle.articleID|category:" > "|escape}</g:product_type>
	<link>{$sArticle.articleID|link:$sArticle.name|escape}</link>
	<g:image_link>{$sArticle.image|image:4}</g:image_link>
	<g:condition>new</g:condition>
	<g:availability>available for order</g:availability>
	<g:price>{$sArticle.price|format:"number"} {$sCurrency.currency}</g:price>
	<g:brand>{$sArticle.supplier|escape}</g:brand>
	<g:gtin>{$sArticle.ean|replace:"|":""}</g:gtin>
	<g:shipping>
       <g:country>DE</g:country>
       <g:service>Standard</g:service>
       <g:price>{$sArticle|@shippingcost:"prepayment":"de"|escape:number} {$sCurrency.currency}</g:price>
    </g:shipping>
  {if $sArticle.changed}<pubDate>{$sArticle.changed|date_format:"%a, %d %b %Y %T %Z"}</pubDate>{/if}		
</item>

Import ins Google Merchant Center

Der Import ins Google Merchant Center sollte nun ohne grössere Probleme funktionieren. Da dies aber unter Umständen ebenfalls ein aufwändiger Prozess sein kann, würden ich tiefergehende Details (ggf. einen fortsetzenden Teil zu diesem Tutorial) von Ihren Kommentaren abhängig machen. Somit schliesse ich mit einer Zusammenfassung der im GMC notwendigen Schritte:

  • Neuen Datenfeed anlegen und mit Shopware Export-URL verknüpfen
  • Eventuelle Fehler im GMC Debugger anzeigen lassen (werden rot dargestellt) und nach der Ursache im Template schauen
  • Im GMC unter Einstellungen = > Adwords den Assistenten zur Verknüpfung des Produkt Feeds mit Google Adwords durchlaufen
  • In Adwords: auf Freischaltung der Produktanzeigen warten (bis zu 3 Werktagen) und ein Adwords Conversion Tracking zur Erfolgsmessung im Shop einrichten

Viel Erfolg bei der Platzierung Ihrer Google Shopping Produktanzeigen aus Shopware heraus.