Verkaufskanal - Produktexport - google.xml

Wir haben einen neuen Verkaufskanal (Produktvergleich) angelegt und wollten die XML abrufen.

Beim Abrufen der XML Datei kommt folgende Meldung:
{"errors":[{"status":"400","code":"FRAMEWORK__STRING_TEMPLATE_RENDERING_FAILED","title":"Bad Request","detail":"Failed rendering string template using Twig: Failed rendering string template using Twig: Impossible to access an attribute (\u0022translated\u0022) on a null variable in \u00228fba023141ae25699a76dafbe15de14e\u0022 at line 25.","meta":{"parameters":{"message":"Failed rendering string template using Twig: Impossible to access an attribute (\u0022translated\u0022) on a null variable in \u00228fba023141ae25699a76dafbe15de14e\u0022 at line 25."}}}]}

Beim Template testen kommt folgender Fehler:

Failed rendering string template using Twig: Failed rendering string template using Twig: Impossible to access an attribute ("translated") on a null variable in "8fba023141ae25699a76dafbe15de14e" at line 25.

Weiß zufällig jemand wie man das lösen kann oder möchte Shopware mit solchen Lücken sein Social Shopping über die Professional Edition bewerben? :rofl:

Hallo zusammen,

Fehler gefunden - wer lesen kann ist schwer im Vorteil lol

@PromoID
Das ist nicht hilfreich :smiley:
Wie hast du das Problem gelöst?

Hi pikaka ^^

Failed rendering string template using Twig: Failed rendering string template using Twig: Impossible to access an attribute ("translated") on a null variable in "8fba023141ae25699a76dafbe15de14e" at line 25.

Auf Template > Produktzeile > Zeile 25 steht

<g:brand>{{ product.manufacturer.translated.name|escape }}</g:brand>

Weiß nicht genau wieso, aber {{ product.manufacturer.translated.name|escape }} kann der anscheinend nicht verarbeiten. Habe da manuell (da alle Produkte im Shop einen gemeinsamen Hersteller haben), den Hersteller eingetragen :rofl:

Wenn man es richtig machen möchte, muss man herausfinden womit das System arbeiten kann. Ich denke {{ product.manufacturer.name|escape }} oder {{ product.manufacturer|escape }} könnte klappen. Welcher Platzhalter zu 100% korrekt ist müsstest du selbst probieren/herausfinden :slight_smile:

PS: Das ganze ist super - damit kann man auch sehr leicht den Feed für Facebook und Co. erstellen ^^

Ich stehe leider gerade vor dem gleichen Problen, nämlich dass Zusatzfelder nicht im Feed akzeptiert werden bzw. offenbar irgendwo in einer dunklen SW6 File gecached werden und dieser Cache nicht geleert werden kann. Ich bekomme nämlich trotz umbenennen meiner Zusatzfelder noch immer die Fehlermeldung mit den alten Feldnamen.

Es wäre also spannend zu wissen, wo SW6 die Felder für die Produktexport-Templates genau ausliest und wie man diese verfügbaren Felder aktualisieren kann.

Ich beantworte mir die Frage mal selbst - vielleicht stösst ja jemand drauf mit dem gleichen Problem.

Wenn man bei Shopware ein Feed-Template testet, wird der erste Artikel des Katalogs als „Testobjekt“ verwendet. Wenn man nun die Zusatzfelder ändert oder erweitert, muss man mind. dieses erste Produkt einmal manuell aktualisieren, damit diese neuen Bezeichnungen der Zusatzfelder aktiv werden.

Ich weiß nicht, wer sich so etwas ausgedacht hat, aber das grenzt an programmiertechnischem Wahnsinn. Da es im SW Forum verboten ist bzw. man verbal gecancelt wird, wenn man sich über fehlende Selbstverständlichkeiten und unmögliche Bugs echauffiert, halte ich mich mit meiner Wut über 2 volle Tage der Fehlersuche zurück. Kann man ja drauf kommen… *sniff

Ich darf nun also 16.000 Artikel über ein Script nach und nach aktualisieren lassen, damit die umbenannten Zusatzfelder erkannt werden.

2 „Gefällt mir“

Hi,
die Fehlermeldung ist quasi ein Folgefehler des Problems:
„Impossible to access an attribute („translated“) on a null variable“ bedeutet der Wert VOR translated ist NULL, sprich leer, nicht angegeben, …

Shopware gibt die Zeile des Fehlers an, falls also dort
„product.manufacturer.translated.name“
steht, ist der Hersteller bei einem Produkt nicht angegeben.

Lösung:
Produktliste nach Produkten ohne Hersteller durchsuchen und für JEDES Produkt Hersteller eintragen.

Wenn der Export auch ohne Pflege des Hersteller ausgegeben werden sollen, muss der Export etwas angepasst werden:
statt
{{ product.manufacturer.translated.name|escape }}
besser mit Prüfung
{%- if product.manufacturer -%}{{ product.manufacturer.translated.name|escape }}{%- endif -%}

Oder. so. Ist product.manufacturer ein Pflichtfeld?

Soweit ich weiß möchte Google einen sehen - man kann da auch einfach seinen eigenen Unternehmensnamen eintragen - dann ist der Hersteller halt der Anbieter :stuck_out_tongue:

Beispiel:
<g:brand>PromoID</g:brand>
So müsste man nicht nachträglich bei jedem Produkt etwas eintragen - es wäre halt immer PromoID der Hersteller bzw. die Brand lol