Bug? SW6.4 Zahlungsart im Bestell-Email wird nicht ausgegeben

Hier nochmal kurz, was das Ergebnis der Überprüfung war. Wenn man mit Übersetzungen arbeitet und auch mit Fallbacks auf die Hauptsprache, muss man {{ order.transactions.first.paymentMethod.translated.name }} nutzen. Sonst wird kein Fallback gemacht. Alternativ kann man auch den Namen in die jeweilige Sprache übersetzen.

Falls es hilft: Wir sind dann mit (order.transactions|first).paymentMethod.name ans Ziel gekommen…

1 „Gefällt mir“

Wir bedanken uns bei Moritz Naczenski für die rasche und professionelle Überprüfung, der Fehler lag an der doppelten Sprache im System durch die Migration.

„Als Standardsprache wurde „Deutsch“ verwendet und dem Sales-Channel ist eine Fallbacksprache zugewiesen. Dadurch gibt es 2x Deutsch im System und das führt sicherlich immer wieder zu fehlenden Konfigurationen. Das war auch hier die Ursache - die Fallbacksprache „Deutsch“ (habe mal ein „-“ zur Kennzeichnung angefügt, kann unter Einstellungen > Sprachen wieder entfernt werden) hatte keine Übersetzung für „Vorkasse“. In diesem konkreten Beispiel funktionierte daher die Prüfung auf den Namen der Zahlungsart nicht. Nachdem ich eine Übersetzung für „Deutsch-“ hinterlegt habe, funktionierte dies auch direkt. Alternativ muss man bei einem Fallback, jeweils mit translated.name arbeiten, hier also konkret: order.transactions.first.paymentMethod.translated.name, dann wird auch der Fallback geladen.“

Hallo zusammen,

Ich habe eine kurze Frage, vielleicht wisst ihr, wo das Problem zu finden ist. Ich habe in unserem 3-sprachigen Shop Übersetzungen für die Zahlungsmethoden gemacht, aber es wird nur Deutsch in den Dokumenten angezeigt. Zum Beispiel auf dem Lieferschein.

document.paymentShippingInfo.paymentMethod - %paymentMethod%

Die %paymentMethod% - wird also in den Dokumenten nicht übersetzt.

Auch der Name: order.transactions.first.paymentMethod.translated.name wurde nicht in die ausgewählte Sprache übersetzt, sondern zeigt die Standardsprache Deutsch an.

Weist ihr, was das Problem verursachen kann? (Shopware 6.3.5.2)

Vielen Dank im Voraus für Hilfe!

Hallo zusammen. Wisst ihr, was das obige Problem verursachen kann, oder wo ich anfangen sollte, das Problem zu finden? Ich bin euch für eure Hilfe im Voraus sehr dankbar.

Variable ist in alle drei Sprachen übersetzt?

Hallo Max,

Du meinst die Snippets? Ja, die sind übersetzt. Oder wenn die Variable etwas anderes ist, wo kann ich sie im Backend oder in den Serverdateien finden?

Vielen Dank für deine Antwort im Voraus!

Entschuldige bitte, nebenher sollte man lieber keine Fragen beantworten, sonst wird’s ungenau :grinning_face_with_smiling_eyes:

Ja, ich meinte damit Snippets.

Würde er order.transactions.first.paymentMethod.translated.name nicht finden, dann würde ja kein Text stehen. Daher bin ich davon ausgegangen, dass er als Fallback auf die Standardsprache zugreift, wenn die Übersetzung fehlt.

Sonst kann ich nur empfehlen per dump alle Variablen ausgeben zu lassen und schauen, ob sich daran das Problem erkennen lässt.

Perfekt, danke!

Jetzt weiss ich, wie ich mit dem Problem weitermachen kann.
Vielen Dank, hoffentlich kann ich es lösen.

Hast du damals eine Lösung für das Problem gefunden?
Wir haben nach wie vor das Problem, dass z.B. bei Nachnahme-Zahlungen die Bezeichnung „Cash on delivery“ in den deutschen Mails drin steht, da Englisch bei uns die Fallback-Sprache ist. Die dazugehörige Variable in den Templates lautet bei uns {{ (order.transactions|first).paymentMethod.translated.name }}. Die deutsche Übersetzung ist in den Shopware-Optionen unter Zahlungsarten aber definitiv vorhanden.
Wir nutzen die aktuelle Version 6.4.14.0.
Kennt hier jemand mittlerweile eine Lösung?

Auch bei der Version 6.5.1 wird die Zahlungsweise nicht in der Bestellbestätigung ausgegeben.

Variable für die Mail haben wir jetzt folgende verwendet:

{{ (order.transactions|first).paymentMethod.translated.name }}.

sieht auch nicht wirklich korrekt aus.

Einfach mal das nutzen, was @Moritz_Naczenski vorgeschlagen hat: {{ order.transactions.first.paymentMethod.translated.name }}

{{ (order.transactions|first).paymentMethod.translated.name }} funktioniert aber

Hi zusammen,
ich habe irgendwie ein Fehler in Zeile 14 (also hier 3)

<!-- Vorkasse Anfang -->

{ % if order.transactions.first.paymentMethod.translated.name == 'Vorkasse' % }

<br>
Inhaber:<br>
Name der Bank: <br>
IBAN: DE...<br>
BIC: <br>
<br>
Geben Sie als Verwendungszweck bitte die Bestellnummer  an.
{% endif % }

<!-- Vorkasse text ende -->

Kann jemand bitte mal rüberschauen?

Vielen Dank

Hallo tzProfi,

{ % if order.transactions.first.paymentMethod.translated.name == 'Vorkasse' % }

Hier brechen die Leerzeichen zwischen { und % die Syntax.

{% endif % }

Hier auch.

Müsste so sein:

{% if order.transactions.first.paymentMethod.translated.name == 'Vorkasse' %}

<br>
Inhaber:<br>
Name der Bank: <br>
IBAN: DE...<br>
BIC: <br>
<br>
Geben Sie als Verwendungszweck bitte die Bestellnummer  an.
{% endif %}

ich hätte noch empfohlen statt order.transactions.first.paymentMethod.translated.name sowas wie order.transactions.first.paymentMethod.id zu nutzen. Dann wäre es unabhängig von dem übersetzten Namen.

1 „Gefällt mir“

1000 Dank dafür.
Habe ich geändert.

Habe scheinbar noch ein anderes Problem, habe ich gerade festgestellt.
Irgendwie mit emailAdresse und Kontaktformular…

Mal sehen.
Vielen Dank hedenfalls