E-Mail Bestellbestätigung Anrede

Irgendwie schaffe ich es nicht das die Unter else eingetragenen Dinge abgerufen werden

 {% if order.orderCustomer.salutation %}
    {{ order.orderCustomer.salutation.translated.letterName ~ ' ' }} {{ order.orderCustomer.lastName }},<br>
{% else %}
  Sehr geehrte Familie {{ order.orderCustomer.lastName }},<br>
{% endif %}

ich habe es auch so probiert

 {% if order.orderCustomer.salutation != "" %}
    {{ order.orderCustomer.salutation.translated.letterName ~ ' ' }} {{ order.orderCustomer.lastName }},<br>
{% else %}
  Sehr geehrte Familie {{ order.orderCustomer.lastName }},<br>
{% endif %}

Was mache ich falsch? Ich möchte doch auch eine gescheite Anrede haben wenn das Feld Anrede mit keine Angabe ausgefüllt wird.

Schon mal vorab vielen Dank für eure Hilfe

Hallo Paltinium,
Du kannst den Display_name abfragen (Herr, Frau, Familie etc). Der Letter_name ist die Briefanrede (Sehr geehrte Frau …, Sehr geehrter Herr…) und es gibt noch den Salutation_key /Salution, das ist das „Kürzel“ der Anrede unabhängig von der Übersetzung.

An sich kannst Du Dich daran orientieren: https://docs.shopware.com/de/shopware6-de/einstellungen/importexport#objekttyp-kunde.

Dieser Part {% if order.orderCustomer.salutation %}{{ order.orderCustomer.salutation.translated.letterName ~ ' ' }} fragt ja nur ab, ob eine Briefanrede vorhanden ist, wenn nicht muss es sich um einen Firmenkunden handeln, bei allen anderen kannst Du ja unter Einstellungen > Shop > Anreden einen Text vorgeben dann verwendet werden soll.

Viele Grüße
Markus

Vielen Dank Markus für die Hilfe.

Nach so einer Seite habe ich schon die ganze Zeit gesucht. Und das man die Briefanreden unter Einstellungen einstellen kann habe ich übersehen. Ich finde die Einstellungen extrem unübersichtlich. Alphabetisch untereinander währe schön.

Ich habe gerade einen Test gemacht. Bei mir redet er auch die Firmenkunden mit einer andrede an. Daher kann ich mir zum glück die If-Abfragen sparen.

Funktionieren denn alle Opteratoren (z. B. {if},{elseif},{else} | Smarty) in einer E-Mail Vorlage.

Hallo Paltinium,
nur um sicher zu gehen: Shopware 6 verwendet als Templatesprache TWIG. https://twig.symfony.com/.

Einige Erklärungen zu den Variablen für die E-Mails findest Du hier: https://docs.shopware.com/de/shopware-6-de/einstellungen/e-mail-vorlagen#variablen-im-mail-text. Die TWIG Funktionen können alle in der Vorlage eingesetzt werden, bei den Variablen kann es sich bei Bedarf lohnen ein wenig auszuprobieren (jedoch immer erst als Kopie).

Viele Grüße
Markus

Hallo,
wie mache ich das mit der Lettername Anrede bei Newsletteranmeldungen?
Denn da kann User ja auch sein Geschlecht angeben.
„order.orderCustomer.salutation.translated.letterName“ und "order.orderCustomer.salutation " sind da natürlich unsinnig. Gibt es bei the way irgendwo eine Liste mit Variablennamen oder habe ich die nur übersehen?

Danke und beste Grüße
Peter

Hallo Herr Knobloch,

hier die Liste. Wie ich Sie mir als Link gespeichert habe: Shopware 6 - Einstellungen - Import/Export. Dort finden Sie im Folgenden alle Variablen auch die verfügbaren für Newsletter.

Ich wüsste gerade kein Anwendungsgebiet als den Export. Wo soll die Variable verwendet werden?

mfg
Paltinium

Danke,
ich brauche es für die Newletteranmeldung, wenn ich nicht mit Hallo sondern mit sehr geehrte(r) Frau/Herr arbeiten will.
Beste Grüße

Die Beschreibung „Hinter salutation kann ein Punkt gesetzt und so auf weitere Felder zugegriffen werden.“ ist für mich wenig hilfreich, ja auf welche Felder denn? Ich hätte am liebsten newsletterRecipient.salutation.translated.letterName … aber das gibt’s dann wohl nicht?

Und wenn ich beispielsweise das hier ausprobiere,
{% if newsletterRecipient.salutation %} Sehr geehrte(r) {{newsletterRecipient.salutation}} {% endif %} {{ newsletterRecipient.lastName }}

bekomme ich nichts aus der Klammer, also nur den Nachnamen, keine Sehr geehrte(r) Herr/Frau

Hat da jemand Erfahrungen?

in den Gelb markierten kann man alle Felder einsehen die in den aktuellen E-Mail-Vorlage verfügbar sind.

Meine Sieht so aus:

{% if newsletterRecipient.salutation %}
   {{ newsletterRecipient.salutation.translated.letterName ~ ' ' }} {{ newsletterRecipient.firstName }} {{ newsletterRecipient.lastName }},<br>
{% endif %}

Ich meine mich zu erinnern das ich schleifen If schleifen mit Else nicht zum laufen bekommen habe. Daher habe ich dann einfach die Anrede weggelassen. Ist zwar keine schöne lösung aber eine andere habe ich spontan auch nicht.

Laut einen ersten schnelltest scheint es aber zu gehen, aber das Feld was ich bei mir im Code verwendet habe scheint es nicht mehr zu geben komisch. Wenn ich zeit habe werde ich mich damit mal befassen ob mein Code überhaupt noch was tut.

Hallo Paltinium,

Vielen lieben Dank, der Hinweis auf das Seitenmenü bewirkt doch Wunder. Ich hatte tatsächlich einen ähnlichen Skriptschnipsel erstellt und war enttäuscht worden. Aber jetzt sehe ich, es gibt im Backend eine Vorschau und die suggeriert, dass der Scriptteil funktioniert. Während es im realitätscheck mit einer Wegwerfmailadresse scheitert. Die Anreden sind korrekt angelegt und funktionieren wie gesagt genau so bei bestellbestätighungen nur halt mit präfix/Klasse „order.orderCustomer“

Das schmeichelt mir zwar, ist aber noch keine Lösung.
Trotzdem vielen Dank, die Lerktion war bereichernd.
Wenn wer, besonders von Shopware eine Idee hat, wie es zu diesem Widerspruch kommen kann. Meldet Euch gerne!

Was sagt den der Log dazu?