Google.xml Fehlerhaft Impossible to access an attribute ("media") on a null

Haben heute mal wieder meine Export Dateien gechecht und bekomme die folgende Fehlermeldung, obwohl nix verändert wurde…hat jemand eine Idee was daran wieder falsch ist bzw. ich kann die Meldung nicht deuten. Dubliziere ich ein Produktvergleich kommt die Meldung auch, obwohl alles identisch eingestellt ist:

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

der Body sieht folgerdermaßen aus:

<g:id>{{ product.productNumber }}</g:id>
{{ product.translated.name|escape }}
{{ product.translated.description|escape }}
<g:google_product_category>554</g:google_product_category>
{% if product.categories.first %}
{{ product.categories.first.getBreadCrumb|slice(1)|join(’ > ')|raw|escape }}
{%- endif -%}
{{ seoUrl(‚frontend.detail.page‘, {‚productId‘: product.id}) }}
<g:image_link>{{ product.cover.media.url }}</g:image_link>
<g:condition>new</g:condition>
<g:availability>
{%- 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 -%}
</g:availability>
{% set price = product.calculatedPrice %}
{% if product.calculatedPrices.count > 0 %}
{% set price = product.calculatedPrices.last %}
{% endif %}

<g:price>{{ price.unitPrice|number_format(context.currency.itemRounding.decimals, '.', '') }} {{ context.currency.isoCode }}</g:price>
<g:brand>{{ product.manufacturer.translated.name|escape }}</g:brand>
<g:gtin>{{ product.ean }}</g:gtin>
<g:mpn>{{ product.manufacturerNumber }}</g:mpn>
<g:shipping>
    <g:country>DE</g:country>
    <g:service>Standard</g:service>
    <g:price>{{ 0.00|currency }}{# change your default delivery costs #}</g:price>
</g:shipping>

Genau das gleiche Problem habe ich auch. Das Object media scheint nicht mehr da zu sein und somit passt auch der Imagelink nicht mehr
<g:image_link>{{ product.cover.media.url }}</g:image_link>

Das scheint mir ein wenig unlogisch. Ich habe eine xml die funktioniert. Sobald ich eine neue Exportdatei anlege und die gleichen Einstellungen nehme, erhalte ich diese Meldung.
Wenn ich es lösche, dann ist es fehlerfrei, aber ich brauche doch den BildLink…
In der einen Exportdatei klappt es und in einer anderen nicht…das erschließt sich mir nicht

Hab die Lösung gefunden … einem Artikel wurde kein bild zugewiesen. Jetzt klappt alles @H.Umling

Hi, klappt bei mir aber irgendwie nicht. Wie hast du das denn gemacht?
Habe schon versucht bei der Dynamischen Produktgruppe alle Produkte ohne Bilder zu filtern. Irgendwie komme ich da nicht an das Feld dran.
Dann habe ich versucht im Template eine IF Bedingung einzufügen, geht auch nicht.

Wie ist deine Lösung?

LG
Holger

Hallo Holger,

ich glaube du denkst viel zu kompliziert. Bei mir hat es so geklappt: gehe in dein admin unter Kataloge / Produkte und schaue einfach auf der rechten Seite nach wo das Bild beim Produkt fehlt und ersetzte dieses…hoffe es klappt bei dich auch.

Hey, danke für den Tip. Bei den aktiven Produkten sind die Bilder vorhanden, aber ich habe auch zu den Produkten noch einige Varianten. Die kann ich leider nicht in der Übersicht sehen und wir reden hier von knapp 10 Tsd Produkte.
Es muss doch eine Möglichkeit geben die Produkte/Varianten ohne Bild raus zu filtern. Eine If Bedingung im Template funktioniert nicht, da das Objekt media bei einem fehlenden Bild nicht existiert und somit die IF Bedingung auch nicht greifen kann. Hat denn niemand eine Idee?

Also ich habe damals im Template der Produktzeile vor dem Item-Tag unter anderem folgende Bedingung eingefügt:

 {% if (product.cover.media.url is defined and product.cover.media.url is not empty) %}
<item>
...
</item>
{% endif %}

Das heißt ohne Cover Url wird das Produkt im Feed übersprungen.

1 „Gefällt mir“

Hallo Jörg,

klar, das macht Sinn, da bin ich gar nicht drauf gekommen :slight_smile:
Hast du vielleicht noch eine Idee wie ich an Farbe und Größe dran komme? Das wird bei dem Kunden in Varianten gelöst und ich würde gerne die Informationen auch an Google Shopping weitergeben.
Danke dir für deine Unterstützung.

LG
Holger