Magento – Transaktionsemails Templates Anrede anstelle von ” Hallo ” ” Sehr geehrter ” etc.

Von Haus aus bringt Magento die Templates für Transaktionsemails mit der allgemeinen Anrede “Hallo” mit. Dies mag dem einen oder anderen zu allgemein und unpersönlich sein.

So war es auch bei uns. Somit haben wir die Anrede im ersten Schritt nur durch “Sehr geehrte/r” erstetzt und im Backend eingestellt, dass zur Registrierung bzw. zum Kauf die Anrede “Herr oder Frau” ausgewählt werden muss. Nun steht dort immernoch der Vorname, so dass in der Anrede dann “Sehr geehrte/r Herr Max Mustermann” steht. Auch dies ist nicht optimal.
Nun kann man mit einigen Mühen nur noch den Nachnamen anzeigen lassen, aber dies kann man mit der nachfolgenden Beschreibung auch lassen, da es auch optimal geht. “Sehr geehrter Herr Mustermann” oder “Sehr geehrte Frau Mustermann” ist dann möglich.

Und dies geht mit einer kleinen Extension, die aber nicht über Magento Connect installiert wird, sondern manuell hochgespielt werden muss.

Ich gebe hier den Original Thread an:

Hallo,
auch wenn der Thread schon etwas länger inaktiv ist will ich dennoch meinen Senf hinzugeben, da ich eine korrekte und “personalisierte” Anrede in den Transaktionsemails für wichtig halte. “Hallo Herr Max Mustermann” stieß mir komisch auf.
Deshalb habe ich ein klitzekleines (und wohl auch ungelenk geschriebenes ) Modul erstellt, damit Kunden und Gäste künftig als “Sehr geehrter Herr Mustermann” bzw “Sehr geehrte Frau Mustermann” etc. angesprochen werden – das sowohl als registrierte Kunden als auch als Gastbesteller in Bestellbestätigung, Versandbenachrichtung und Rechnung. Ausserdem habe ich die Anrede für Kunden in der Willkommensemail und den Passwortemails etc. etwas “frisiert”.
Das Modul habe ich als Datei angehängt.

Installation: Den Ordner “Ricordo” nach app/code/local, die Datei “Anrede.xml” nach app/etc/modules verschieben.
Im Backend unter System>Cache Verwaltung den Cache aktualisieren.

Wer sich den Code ansieht wird feststellen: Es sind eigentlich nur IF-Abfragen. Wem die Prefixes (= Anreden) Herr und Frau nicht ausreichen kann ja einfach neue Abfragen hinzufügen.
Jetzt kommt der “wichtige” Teil:

Die Anpassung der Email-Templates. Ein paar Platzhalter müssen ausgetauscht werden. Und zwar:

In System-Emails (Willkommensnachricht, Benachrichtigung über Passwortänderungen etc.)
var=$customer.name muss ersetzt werden durch var=$customer.nameFormal (ergibt “Sehr geehrter Herr Mustermann”) bzw. var=$customer.nameFormalShort (ergibt “Herr Mustermann”)
In Transaktions-Emails (Bestellbestätigung, Versandbenachrichtigung, Rechnung etc.)
var=$order.getCustomerName() muss ersetzt werden durch var=$order.getCustomerNameFormal() (ergibt “Sehr geehrter Herr Mustermann”)

Hier die Datei (Zip gepackt) Datei

Genutzte Version 1.4.1.1
Gefunden unter: http://www.magentocommerce.com/boards/viewthread/37850/P15/

Kleiner Nachtrag vom 03.02.2011:

Wie auch schon oben geschrieben, können weitere Anredearten rel. einfach hinzugefügt werden. Leider dauerte es dann doch einige Zeit, bis klar war, wie es zu bewerkstelligen ist.

1. Im Backend unter System > Konfiguration > Kunden > Kundenkonfiguration > Namens und Adressoptionen    die weiteren gewünschten Prefixes einstellen. Bei uns hier vorliegend Prefixes für Österreich: Herr;Herr Dr.;Herr Ing.;Herr Mag.;Frau;Frau Dr.;Frau Mag.;Frau Ing.

2. Abspeichern.

3. Die Datei Order.php im Ordner /app/code/local/Ricordo/Anrede/Model/Sales öffnen und für jede Anrede eine eigene “if” Funktion einbauen. Für die o.g. Anreden sieht das dann so aus (ca. ab Zeile 18):

if ($this->getBillingAddress()->getPrefix()) {
if ($this->getBillingAddress()->getPrefix()==’Frau’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Frau Dr.’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Frau Mag.’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Frau Ing.’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Herr’) {
$customerNameFormal .= ‘Sehr verehrter ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Herr Dr.’) {
$customerNameFormal .= ‘Sehr verehrter ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Herr Mag.’) {
$customerNameFormal .= ‘Sehr verehrter ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
if ($this->getBillingAddress()->getPrefix()==’Herr Ing.’) {
$customerNameFormal .= ‘Sehr verehrter ‘. $this->getBillingAddress()->getPrefix() . ‘ ‘;
}
$customerNameFormal .=  ‘ ‘ . $this->getBillingAddress()->getLastname();
if ($this->getBillingAddress()->getSuffix()) {
$customerNameFormal .= ‘ ‘ . $this->getBillingAddress()->getSuffix();
}
}
} else {
if ($this->getCustomerPrefix()) {
if ($this->getCustomerPrefix()==’Frau’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Frau Dr.’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Frau Mag.’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Frau Ing.’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Herr’) {
$customerNameFormal .= ‘Sehr geehrter ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Herr Dr.’) {
$customerNameFormal .= ‘Sehr geehrter ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Herr Mag.’) {
$customerNameFormal .= ‘Sehr geehrter ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Herr Ing.’) {
$customerNameFormal .= ‘Sehr geehrter ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Graf’) {
$customerNameFormal .= ‘Sehr geehrter ‘. $this->getCustomerPrefix() . ‘ ‘;
}
if ($this->getCustomerPrefix()==’Familie’) {
$customerNameFormal .= ‘Sehr geehrte ‘. $this->getCustomerPrefix() . ‘ ‘;
}
$customerNameFormal .=  ‘ ‘ . $this->getCustomerLastname();
if ($this->getCustomerSuffix()) {
$customerNameFormal .= ‘ ‘ . $this->getCustomerSuffix();
}
}
}
return $customerNameFormal;
}

}

4. Wichtig ist hier, auf die Klammern zu achten, dass es einmal eine umfassende Klammer für die ganzen if Funktionen gibt und dann jeweils eine Klammer.

5. Abspeichern und wieder hochladen. Anschließend den Magento Cache leeren.

6. Nun kommen Bestätigungsemails mit jeder Art von Anrede durch.

7. Zusätzlich haben wir auch noch die Datei customer.php im Ordner /app/code/local/Ricordo/Anrede/Model/Customer angepasst, dass diese so aussieht (ca. Zeile 17-53):

$nameFormal = ”;
if ($this->getPrefix()) {
if ($this->getPrefix()==’Frau’) {
$nameFormal .= ‘Sehr geehrte ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Frau Mag.’) {
$nameFormal .= ‘Sehr geehrte ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Frau Ing.’) {
$nameFormal .= ‘Sehr geehrte ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Frau Dr.’) {
$nameFormal .= ‘Sehr geehrte ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Herr’) {
$nameFormal .= ‘Sehr geehrter ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Herr Mag.’) {
$nameFormal .= ‘Sehr geehrter ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Herr Ing.’) {
$nameFormal .= ‘Sehr geehrter ‘. $this->getPrefix() . ‘ ‘;
}
if ($this->getPrefix()==’Herr Dr.’) {
$nameFormal .= ‘Sehr geehrter ‘. $this->getPrefix() . ‘ ‘;
}
$nameFormal .=  ‘ ‘ . $this->getLastname();
if ($this->getSuffix()) {
$nameFormal .= ‘ ‘ . $this->getSuffix();
}
return $nameFormal;

 

Nachtrag vom 15.07.2011: Wie man die Anrede / Prefix in verschiedene Sprachen übersetzt, ist hier erklärt.

Published by Covos

Seit 2009 arbeite ich nun intensiv mit Magento. Begonnen habe ich mit der Erstellung und dem Betrieb von B2C-Shops. Ausgeweitet wurde dies durch meine Tätigkeit im Logistik-Sektor. Hieraus entstanden erste spezialisierte B2E-Systeme. Heute arbeite ich tag-täglich mit spannenden B2C-, B2B- und B2E-Projekten und berichte in diesem Blog über Herausforderungen und gebe Insider-Tipps.

4 comments on “Magento – Transaktionsemails Templates Anrede anstelle von ” Hallo ” ” Sehr geehrter ” etc.”

  1. ..das ist das schöne an Magento, irgendwo hat es jemand schon gemacht 😉

    Vielen Dank an Ricardo und den Webmaster

    Gruß
    Abase

  2. Hallo,

    tolles Tool. Gibs davon eigentlich ein Update?
    Ich war anfangs wirklich begeistert, dass ich endlich die Kunden höflich ansprechen kann, allerdings häuften sich die Mails, in denen gar keine Anrede hingeschrieben wurde sondern einfach nur der Nachname.

    Ich bin dann drauf gekommen (zumindest vermute ich das) dass es am Präfix liegt. Entweder weil es nicht gefunden wurde oder weil flauler Benutzer alles Klein geschrieben hat.

    Lösung wäre zum Einen eine case insensitivity Abfrage und zum anderen die Anrede “Guten Tag” im Falle das nichts gefunden wird. Dass einfach nur der Nachname hingeklatscht wird, ist jedenfalls suboptimal.

    Dennoch danke für die Extension und vielleicht hat ja jemand schon eine Lösung gebastelt.

    Gruß Fenghuag

Leave a Reply

Your email address will not be published. Required fields are marked *