Verkaufskanal / Produktvergleich für Google Shopping

Guten Abend,

für unseren Shopware Store möchte ich gerne ein Feed für Google Shopping erstellen und bekomme hier immer die folgende Meldung wenn ich das Template teste:

Failed rendering string template using Twig: Failed rendering string template using Twig: Neither the property „url“ nor one of the methods „url()“, „geturl()“/„isurl()“/„hasurl()“ or „__call()“ exist and have public access in class „Shopware\Core\Content\Product\Aggregate\ProductMedia\ProductMediaCollection“ in „6e62476cebd14c5b257f80d8222a4836“ at line 8.

Das Template ist wie folgt angegeben:

<?xml version="1.0" encoding="UTF-8" ?> {{ context.salesChannel.name }} Beschreibung zum Webshop {{ productExport.salesChannelDomain.url }} {{ productExport.salesChannelDomain.language.locale.code }} https://www.LINK zum Logo.de {{ context.salesChannel.name }} {{ productExport.salesChannelDomain.url }}

Die Produktzeile ist wie folgt angegeben:

{{ product.productNumber }} {{ product.translated.name|escape }} {{ product.translated.description|escape }} 4643 {{ product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw|escape }} {{ seoUrl('frontend.detail.page', {'productId': product.id}) }} {{ product.media.url }} new {%- if product.availableStock >= product.minPurchase and product.deliveryTime -%} in_stock {%- elseif product.availableStock < product.minPurchase and product.deliveryTime and product.restockTime -%} preorder {%- else -%} out_of_stock {%- endif -%} {{ product.calculatedListingPrice.from.unitPrice|number_format(context.currency.decimalPrecision, '.', '') }} {{ context.currency.isoCode }} {{ product.manufacturer.translated.name|escape }} {{ product.ean }} {{ product.manufacturerNumber }} DE Standard {{ 2.90|currency }}{# change your default delivery costs #}

Ich komme hier leider nicht darauf was ich falsch mache und würde mich freuen, wenn mir wer behilflich sein würde. Herzlichen Dank vorab!

Viele Grüße

product.media ist die Sammlung alle zugeordneten Medien zum Produkt. Daher kann man nicht direkt daraus die URL gewinnen, da dieses Objekt als Sammlung ja mehrere Einträge enthalten kann. {{ product.media.first.url }} würde z.B. funktionieren. Da vermutlich allerdings das Vorschaubild verwendet werden sollte, kann am einfachsten {{ product.cover.media.url }} verwendet werden, um direkt die URL vom Vorschaubild zu bekommen.

Vielen Dank für deine Antwort!
Sofern ich hier {{ product.media.first.url }} einsetze, bekomme ich die folgende Meldung:

Failed rendering string template using Twig: Failed rendering string template using Twig: Neither the property „url“ nor one of the methods „url()“, „geturl()“/„isurl()“/„hasurl()“ or „__call()“ exist and have public access in class „Shopware\Core\Content\Product\Aggregate\ProductMedia\ProductMediaEntity“ in „2c2813daeaf8ddbfb1b600fe46e52806“ at line 8.

Wenn ich {{ product.cover.media.url }} verwende bekomme ich auch folgende Meldung:

Failed rendering string template using Twig: Failed rendering string template using Twig: Impossible to access an attribute („media“) on a null variable in „846d34f04e96895a4b6ff2bd0cc03ee3“ at line 8.

Eventuell noch eine Idee was es sein könnte? Ich komme leider nicht weiter.

Beim Anlegen eines Verkaufskanals für Produktvergleiche kann man ein bereits fertiges Template für Google Shopping auswählen. Ich würde dazu raten den Verkaufskanal neu anzulegen, erstmal das fertige Template auszuwählen und dann im Nachgang Stück für Stück gegebenenfalls Anpassungen daran vorzunehmen und zwischendrin immer wieder zu testen.

1 „Gefällt mir“

Vielen Dank für die Hilfe. Ich habe das nun so hinbekommen, dass wir das Template erfolgreich testen können und Shopware keinen Fehler mehr findet.

Sobald ich den Feed nun aber aufrufen möchte im Browser unter der Export-URL erhalte ich folgende Meldung:

{„errors“:[{„code“:„0“,„status“:„500“,„title“:„Internal Server Error“,„detail“:„Error: Maximum execution time of 300 seconds exceeded“}]}

Ich habe keine Idee woran das liegen könnte. Haben Sie vielleicht einen Tipp was wir falsch machen?
Im Merchant Center von Google kommt gar nicht an bzw. erhalten wir die Info:

Die Produktdatenspezifikation wird von den für Ihren Feed eingegebenen Produktdaten nicht erfüllt und Ihre Produkte wurden daher nicht freigegeben. Prüfen Sie die Daten und aktualisieren Sie Ihren Feed, damit Ihre Produkte Kunden angezeigt werden. Rufen Sie den Bereich „Diagnose“ auf, um alle Probleme zu sehen.

Unter den Eigenschaften und Attributnamen wird nichts aufgeführt.

Viele Grüße