Zum Inhalt

Google Shopping für Shopware einrichten (Shopware 5)

Unser Plugin "Google Shopping PRO für Shopware 5" unterstützt Dich bei der Pflege der Produktdaten für Deine Produkte im Google Shopping.

Google Shopping für Shopware 5 im Shopware Community Store

Funktionalitäten

  • Pro Artikel/Variante alle notwendigen Werte für Google Shopping angeben
  • Produktname und Produktbeschreibung festlegen
  • Google Shopping Kategorien einfach per Dropdown-Menü auswählen
  • Bis zu 5 Custom Labels verwenden

Installationsanleitung

  1. Installiere und aktiviere das Plugin "Google Shopping für Shopware".
  2. Richte anschließend einen neuen Produktexport ein (Im Backend unter Marketing → Produktexporte).
    • Eine genaue Anleitung findest Du im nächsten Abschnitt.
  3. Der Produktfeed muss im Google Merchant Center hinterlegt werden.

Google Shopping für Shopware 5 einrichten

Um Google Shopping mit den passenden Produktdaten aus Deinem Shopware Shop zu befüllen:

  1. Installiere zunächst das Plugin "Google Shopping für Shopware" aus dem Shopware Community Store.
  2. Richte einen neuen Produktexport ein (Backend: Marketing → Produktexporte) mit den folgenden Daten:

Formatierung

  • Zeichenkodierung: UTF-8
  • Dateiformat: XML

Kopfzeile

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
    <atom:link href="http://{$sConfig.sBASEPATH}/engine/connectors/export/{$sSettings.id}/{$sSettings.hash}/{$sSettings.filename}" rel="self" type="application/rss+xml" />
    <title>{$sConfig.sSHOPNAME|escape}</title>
    <description>Beschreibung im Header hinterlegen</description>
    <link>http://{$sConfig.sBASEPATH}</link>
    <language>DE</language>
    <image>
        <url>http://{$sConfig.sBASEPATH}/templates/_default/frontend/_resources/images/logo.jpg</url>
        <title>{$sConfig.sSHOPNAME|escape}</title>
        <link>http://{$sConfig.sBASEPATH}</link>
    </image>

Fusszeile

</channel>
</rss>

Template (DE)

{* if $sArticle.lenz_google_shopping_active == 1 *}
{assign var="string" value=$sArticle.articleID|articleImages:$sArticle.ordernumber:1:"##"|escape}
{assign var="productVariantImage" value="##"|explode:$string}

<item> 
    <g:id>{$sArticle.ordernumber|escape}</g:id>
    <title>{if $sArticle.lenz_google_shopping_title}{$sArticle.lenz_google_shopping_title|escape}{else}{$sArticle.name|strip_tags|strip|truncate:80:"...":true|escape}{if $sArticle.additionaltext} {$sArticle.additionaltext|strip_tags|strip|escape}{/if}{/if}</title>
    <g:description>{if $sArticle.lenz_google_shopping_description}{$sArticle.lenz_google_shopping_description|escape}{else}{$sArticle.description_long|strip_tags|strip|truncate:900:"..."|escape}{/if}</g:description>
    <link>{$sArticle.articleID|link:$sArticle.name|escape}{if $sSettings['partnerID']}&amp;amp;{else}?{/if}number={$sArticle.ordernumber}</link>
    <g:image_link>{if $productVariantImage[0]}{$productVariantImage[0]}{else}{$sArticle.image|image:1|escape}{/if}</g:image_link>
    {foreach $productVariantImage as $key => $value}
        {if $key != 0 && $key < 11}
            <g:additional_image_link>{$value}</g:additional_image_link>
        {/if}
    {/foreach}
    <g:availability>{if $sArticle.esd}in stock{elseif $sArticle.instock>0}in stock{elseif $sArticle.releasedate && $sArticle.releasedate|strtotime > $smarty.now}preorder{elseif $sArticle.lenz_google_shopping_availability_date && $smarty.now < ($sArticle.lenz_google_shopping_availability_date|strtotime)}backorder{elseif $sArticle.shippingtime}in stock{else}out of stock{/if}</g:availability>
    {if $sArticle.pseudoprice > $sArticle.price}
        <g:price>{$sArticle.pseudoprice|format:"number"} EUR</g:price>
        <g:sale_price>{$sArticle.price|format:"number"} EUR</g:sale_price>
    {else}
        <g:price>{$sArticle.price|format:"number"} EUR</g:price>
    {/if}
    {if $sArticle.purchaseunit && $sArticle.referenceunit}
        {$purchaseUnit = $sArticle.purchaseunit}
        {$referenceUnit = $sArticle.referenceunit}
        {$unit = $sArticle.unit}
        {if $unit == "g" && $referenceUnit == 1000}
            {$purchaseUnit = $purchaseUnit / 1000}
            {$referenceUnit = $referenceUnit / 1000}
            {$unit = "kg"}
        {/if}
        {if $unit == "ml" && $referenceUnit == 1000}
            {$purchaseUnit = $purchaseUnit / 1000}
            {$referenceUnit = $referenceUnit / 1000}
            {$unit = "l"}
        {/if}
        <g:unit_pricing_measure>{$purchaseUnit|escape} {$unit|replace:"Stck.":"ct"|replace:"Stück":"ct"|replace:"m²":"sqm"|replace:"Milliliter":"ml"|replace:"Liter":"l"|replace:"Kilogramm":"kg"|replace:"Gramm":"g"|replace:"Zentimeter":"cm"|replace:"Meter":"m"|escape}</g:unit_pricing_measure>
        <g:unit_pricing_base_measure>{$referenceUnit|escape} {$unit|replace:"Stck.":"ct"|replace:"Stück":"ct"|replace:"m²":"sqm"|replace:"Milliliter":"ml"|replace:"Liter":"l"|replace:"Kilogramm":"kg"|replace:"Gramm":"g"|replace:"Zentimeter":"cm"|replace:"Meter":"m"|escape}</g:unit_pricing_base_measure>
    {/if}
    <g:google_product_category>{$sArticle.lenz_google_shopping_category|escape}</g:google_product_category>
    <g:product_type>{$sArticle.articleID|category:" > "|escape}</g:product_type>
    <g:brand>{$sArticle.supplier|escape}</g:brand>
    <g:gtin>{$sArticle.ean|replace:"|":""}</g:gtin>
    <g:identifier_exists>{if $sArticle.ean || ($sArticle.supplier && $sArticle.suppliernumber)}yes{else}no{/if}</g:identifier_exists>
    <g:mpn>{$sArticle.suppliernumber|escape}</g:mpn>
    <g:condition>{if $sArticle.lenz_google_shopping_condition}{$sArticle.lenz_google_shopping_condition|escape}{else}new{/if}</g:condition>
    <g:adult>{if $sArticle.lenz_google_shopping_adult}yes{else}no{/if}</g:adult>
    {if $sArticle.lenz_google_shopping_multipack}<g:multipack>{$sArticle.lenz_google_shopping_multipack|escape}</g:multipack>{/if}
    {if $sArticle.lenz_google_shopping_is_bundle}<g:is_bundle>yes</g:is_bundle>{/if}
    {if $sArticle.lenz_google_shopping_energy_efficiency_class}<g:energy_efficiency_class>{$sArticle.lenz_google_shopping_energy_efficiency_class|escape}</g:energy_efficiency_class>{/if}
    {if $sArticle.lenz_google_shopping_age_group}<g:age_group>{$sArticle.lenz_google_shopping_age_group|escape}</g:age_group>{/if}
    {if $sArticle.lenz_google_shopping_color}<g:color>{$sArticle.lenz_google_shopping_color|escape}</g:color>{/if}
    {if $sArticle.lenz_google_shopping_gender}<g:gender>{$sArticle.lenz_google_shopping_gender|escape}</g:gender>{/if}
    {if $sArticle.lenz_google_shopping_material}<g:material>{$sArticle.lenz_google_shopping_material|escape}</g:material>{/if}
    {if $sArticle.lenz_google_shopping_pattern}<g:pattern>{$sArticle.lenz_google_shopping_pattern|escape}</g:pattern>{/if}
    {if $sArticle.lenz_google_shopping_size}<g:size>{$sArticle.lenz_google_shopping_size|escape}</g:size>{/if}
    {if $sArticle.lenz_google_shopping_size_type}<g:size_type>{$sArticle.lenz_google_shopping_size_type|escape}</g:size_type>{/if}
    {if $sArticle.lenz_google_shopping_size_system}<g:size_system>{$sArticle.lenz_google_shopping_size_system|escape}</g:size_system>{/if}
    {if $sArticle.lenz_google_shopping_item_group_id}<g:item_group_id>{$sArticle.lenz_google_shopping_item_group_id}</g:item_group_id>{/if}
    <g:custom_label_0>{$sArticle.lenz_google_shopping_custom_label0|escape}</g:custom_label_0>
    <g:custom_label_1>{$sArticle.lenz_google_shopping_custom_label1|escape}</g:custom_label_1>
    <g:custom_label_2>{$sArticle.lenz_google_shopping_custom_label2|escape}</g:custom_label_2>
    <g:custom_label_3>{$sArticle.lenz_google_shopping_custom_label3|escape}</g:custom_label_3>
    <g:custom_label_4>{$sArticle.lenz_google_shopping_custom_label4|escape}</g:custom_label_4>
    {if $sArticle.lenz_google_shopping_promotion_id}<g:promotion_id>{$sArticle.lenz_google_shopping_promotion_id|escape}</g:promotion_id>{/if}
    {if $sArticle.lenz_google_shopping_availability_date}}<g:availability_date>{$sArticle.lenz_google_shopping_availability_date|escape}</g:availability_date>{/if}
    <g:shipping>
        <g:country>DE</g:country>
        <g:service>Standard</g:service>
        <g:price>{$sArticle|@shippingcost:"prepayment":"de"|escape:number} EUR</g:price>
    </g:shipping> 
    {if $sArticle.weight}
        <g:shipping_weight>{$sArticle.weight|escape:number} kg</g:shipping_weight>
    {/if}
</item>
{* /if *}

Template (US)

{* if $sArticle.lenz_google_shopping_active == 1 *}
{assign var="string" value=$sArticle.articleID|articleImages:$sArticle.ordernumber:1:"##"|escape}
{assign var="productVariantImage" value="##"|explode:$string}

<item> 
    <g:id>{$sArticle.ordernumber|escape}</g:id>
    <title>{if $sArticle.lenz_google_shopping_title}{$sArticle.lenz_google_shopping_title|escape}{else}{$sArticle.name|strip_tags|strip|truncate:80:"...":true|escape}{if $sArticle.additionaltext} {$sArticle.additionaltext|strip_tags|strip|escape}{/if}{/if}</title>
    <g:description>{if $sArticle.lenz_google_shopping_description}{$sArticle.lenz_google_shopping_description|escape}{else}{$sArticle.description_long|strip_tags|strip|truncate:900:"..."|escape}{/if}</g:description>
    <link>{$sArticle.articleID|link:$sArticle.name|escape}{if $sSettings['partnerID']}&amp;amp;{else}?{/if}number={$sArticle.ordernumber}</link>
    <g:image_link>{if $productVariantImage[0]}{$productVariantImage[0]}{else}{$sArticle.image|image:1|escape}{/if}</g:image_link>
    {foreach $productVariantImage as $key => $value}
        {if $key != 0 && $key < 11}
            <g:additional_image_link>{$value}</g:additional_image_link>
        {/if}
    {/foreach}
    <g:availability>{if $sArticle.esd}in stock{elseif $sArticle.instock>0}in stock{elseif $sArticle.releasedate && $sArticle.releasedate|strtotime > $smarty.now}preorder{elseif $sArticle.shippingtime}in stock{else}out of stock{/if}</g:availability>
    {if $sArticle.pseudoprice > $sArticle.price}
        <g:price>{$sArticle.pseudoprice|format:"number"} EUR</g:price>
        <g:sale_price>{$sArticle.price|format:"number"} EUR</g:sale_price>
    {else}
        <g:price>{$sArticle.price|format:"number"} EUR</g:price>
    {/if}
    {if $sArticle.purchaseunit && $sArticle.referenceunit}
        {$purchaseUnit = $sArticle.purchaseunit}
        {$referenceUnit = $sArticle.referenceunit}
        {$unit = $sArticle.unit}
        {if $unit == "g" && $referenceUnit == 1000}
            {$purchaseUnit = $purchaseUnit / 1000}
            {$referenceUnit = $referenceUnit / 1000}
            {$unit = "kg"}
        {/if}
        {if $unit == "ml" && $referenceUnit == 1000}
            {$purchaseUnit = $purchaseUnit / 1000}
            {$referenceUnit = $referenceUnit / 1000}
            {$unit = "l"}
        {/if}
        <g:unit_pricing_measure>{$purchaseUnit|escape} {$unit|replace:"Stck.":"ct"|replace:"Stück":"ct"|replace:"m²":"sqm"|replace:"Milliliter":"ml"|replace:"Liter":"l"|replace:"Kilogramm":"kg"|replace:"Gramm":"g"|replace:"Zentimeter":"cm"|replace:"Meter":"m"|escape}</g:unit_pricing_measure>
        <g:unit_pricing_base_measure>{$referenceUnit|escape} {$unit|replace:"Stck.":"ct"|replace:"Stück":"ct"|replace:"m²":"sqm"|replace:"Milliliter":"ml"|replace:"Liter":"l"|replace:"Kilogramm":"kg"|replace:"Gramm":"g"|replace:"Zentimeter":"cm"|replace:"Meter":"m"|escape}</g:unit_pricing_base_measure>
    {/if}
    <g:google_product_category>{$sArticle.lenz_google_shopping_category|escape}</g:google_product_category>
    <g:product_type>{$sArticle.articleID|category:" > "|escape}</g:product_type>
    <g:brand>{$sArticle.supplier|escape}</g:brand>
    <g:gtin>{$sArticle.ean|replace:"|":""}</g:gtin>
    <g:identifier_exists>{if $sArticle.ean || ($sArticle.supplier && $sArticle.suppliernumber)}yes{else}no{/if}</g:identifier_exists>
    <g:mpn>{$sArticle.suppliernumber|escape}</g:mpn>
    <g:condition>{if $sArticle.lenz_google_shopping_condition}{$sArticle.lenz_google_shopping_condition|escape}{else}new{/if}</g:condition>
    <g:adult>{if $sArticle.lenz_google_shopping_adult}yes{else}no{/if}</g:adult>
    {if $sArticle.lenz_google_shopping_multipack}<g:multipack>{$sArticle.lenz_google_shopping_multipack|escape}</g:multipack>{/if}
    {if $sArticle.lenz_google_shopping_is_bundle}<g:is_bundle>yes</g:is_bundle>{/if}
    {if $sArticle.lenz_google_shopping_energy_efficiency_class}<g:energy_efficiency_class>{$sArticle.lenz_google_shopping_energy_efficiency_class|escape}</g:energy_efficiency_class>{/if}
    {if $sArticle.lenz_google_shopping_age_group}<g:age_group>{$sArticle.lenz_google_shopping_age_group|escape}</g:age_group>{/if}
    {if $sArticle.lenz_google_shopping_color}<g:color>{$sArticle.lenz_google_shopping_color|escape}</g:color>{/if}
    {if $sArticle.lenz_google_shopping_gender}<g:gender>{$sArticle.lenz_google_shopping_gender|escape}</g:gender>{/if}
    {if $sArticle.lenz_google_shopping_material}<g:material>{$sArticle.lenz_google_shopping_material|escape}</g:material>{/if}
    {if $sArticle.lenz_google_shopping_pattern}<g:pattern>{$sArticle.lenz_google_shopping_pattern|escape}</g:pattern>{/if}
    {if $sArticle.lenz_google_shopping_size}<g:size>{$sArticle.lenz_google_shopping_size|escape}</g:size>{/if}
    {if $sArticle.lenz_google_shopping_size_type}<g:size_type>{$sArticle.lenz_google_shopping_size_type|escape}</g:size_type>{/if}
    {if $sArticle.lenz_google_shopping_size_system}<g:size_system>{$sArticle.lenz_google_shopping_size_system|escape}</g:size_system>{/if}
    {if $sArticle.lenz_google_shopping_item_group_id}<g:item_group_id>{$sArticle.lenz_google_shopping_item_group_id}</g:item_group_id>{/if}
    <g:custom_label_0>{$sArticle.lenz_google_shopping_custom_label0|escape}</g:custom_label_0>
    <g:custom_label_1>{$sArticle.lenz_google_shopping_custom_label1|escape}</g:custom_label_1>
    <g:custom_label_2>{$sArticle.lenz_google_shopping_custom_label2|escape}</g:custom_label_2>
    <g:custom_label_3>{$sArticle.lenz_google_shopping_custom_label3|escape}</g:custom_label_3>
    <g:custom_label_4>{$sArticle.lenz_google_shopping_custom_label4|escape}</g:custom_label_4>
    {if $sArticle.lenz_google_shopping_promotion_id}<g:promotion_id>{$sArticle.lenz_google_shopping_promotion_id|escape}</g:promotion_id>{/if}
    {if $sArticle.lenz_google_shopping_availability_date}<g:availability_date>{$sArticle.lenz_google_shopping_availability_date|escape}</g:availability_date>{/if}
    <g:shipping>
        <g:country>DE</g:country>
        <g:service>Standard</g:service>
        <g:price>{$sArticle|@shippingcost:"prepayment":"de"|escape:number} EUR</g:price>
    </g:shipping>   
    <g:tax>
      <g:country>US</g:country>
      <g:rate>0.00</g:rate>
      <g:tax_ship>no</g:tax_ship>
    </g:tax>
    {if $sArticle.weight}
        <g:shipping_weight>{$sArticle.weight|escape:number} kg</g:shipping_weight>
    {/if}
</item>
{* /if *}

Weitere Filter

Weitere Filter

Aktiviere nur aktive Artikel und Artikel mit Bildern für Google Shopping.

Voraussetzungen

Als Voraussetzung für das Plugin benötigst Du ein Google Merchant Konto.

Individuelle Anpassungen (nur sofern vom Kunden gewünscht)

<link>{$sArticle.articleID|link:$sArticle.name|escape}{if $sArticle.configurator != null}{if $sSettings['partnerID']}&amp;{else}?{/if}number={$sArticle.ordernumber}{/if}</link>

Lieferdatum aus lenz_delivery_date (Lieferzeiten Experte) soll ausgegeben werden

<g:availability>{if $sArticle.instock > 0}Sofort lieferbar{elseif $sArticle.lenz_delivery_date}Lieferbar ab {$sArticle.lenz_delivery_date|date_format:"d.m.Y"}{elseif $sArticle.shippingtime}{$sArticle.shippingtime} Werktage{else}3-5 Werktage{/if}</g:availability>

Größere Bilder an Google senden

Wenn Du unser Google Shopping Plugin für Shopware 5 nach unserer Anleitung eingerichtet hast, kannst Du die Bildgröße wie folgt ändern:

  1. Öffne im Backend das Menü Marketing → Produktexporte und wähle den passenden Produktexport aus.
  2. Bei Template muss eine Zeile ausgetauscht werden:

Vorher:

{assign var="string" value=$sArticle.articleID|articleImages:$sArticle.ordernumber:1:"##"|escape}

Nachher

{assign var="string" value=$sArticle.articleID|articleImages:$sArticle.ordernumber:2:"##"|escape}

Damit werden nun als Produktbilder die Thumbnails in "Größe 2" zu Google geschickt.

Standard-Thumbnail-Größen in Shopware 5

  • 0: 200x200
  • 1: 600x600
  • 2: 1280x1280

Weitere Größen können über die Medienverwaltung hinzugefügt werden.

Nur Artikel mit aktiver Option "GS aktiv" zu Google übertragen

Damit nur Artikel mit der aktiven Option "GS aktiv" zu Google übertragen werden und nicht alle Artikel, muss das Template in der ersten und letzten Zeile angepasst werden.

Erste Zeile

Bisher im Template: {* if $sArticle.lenz_google_shopping_active == 1 *}

geändert im Template: { if $sArticle.lenz_google_shopping_active == 1 }

ACHTUNG: Die geschweiften Klammern dürfen nach der Änderung kein Leerzeichen enthalten!

Letzte Zeile

bisher im Template: {* /if *}

geändert im Template: { /if }

ACHTUNG: Die geschweiften Klammern dürfen nach der Änderung kein Leerzeichen enthalten!