Email anrede ändern und ein paar fragen

hallo und guten morgen

habe mir einen test shopvon der neuen oxid version 4.2.x ce installiert und läuft auch alles super, nur ein paar sachen bräuchte ich hilfe und zwar:

  1. wenn ich eine test bestellung tätige dann ist die anrede des “kunden” Mr. oder Mrs. statt Herr oder Frau, wo kann ich dieses ändern? habe auch schon inder lang.php nach geschaut aber nix gefunden.

  2. ich möchte gerne meine rechnungsnummern mit follgender zusammenstellung erstellen:
    jahr/monat/lf nr
    ich habe das mal probiert bei den bestellungen wo ich die nummer der bestellung ändern kann aber wenn ich dort die rechnungsnummer ändere ist es nur für diese bestellung und nicht allgemein gültig.

  3. gibt es eigentlich ein kostenloses modul für die paypal anbindung?

  4. was ich gerne hätte wäre, z.b. bei einem artikel die möglichkeit zusatz produkte hinzuzufügen.
    also zb. eine konsole, und dann darunter optional mit einer checkbox, spiele oder filme usw. hinzu zu bestellen, ist dies mit einem geringen aufwand möglich?

  5. ich möchte gerne an die versand email eine pdf rechnung automatisch angehängt haben aber ich kann die ja wenn ich den knopf zur pdf rechnungs erzeugung nur lokal auf meinem rechner speichern und nicht zb im export ordner, wie kann ich dieses automatiesieren?

so das wären dann mal meine fragen.

bis dahin

gruss

shiko

Ich habe das selbe Problem in den E-Mails, habe schon geschaut, in der Lang steht das richtige und beim Benutzer steht auch herr drin und auch beim Bestellvorgang steht herr, abe rin der E-Mail wird MR. genutzt.

Ich weiss aber das es bei der Version 4.1.6 dieses Problem nicht gab.

Ich habe das Problem gefunden, da bei der neuen version ja dieser Bereich abgeändert wurde und es keine einzelnen Anrede mehr gibt (REGISTER_MR) sondern nur noch (SALUTATION_MR) und das template diesbezüglich angepasst wurde hat sich da wohl ein Fehler eingeschlichen.


<select name="[{$name}]" [{if $class}]class="[{$class}]"[{/if}]>
        <option value="MR"  [{if $value|lower  == "mr"  or $value2|lower == "mr" }]SELECTED[{/if}]>[{ oxmultilang ident="SALUTATION_MR"  }]</option>
        <option value="MRS" [{if $value|lower  == "mrs" or $value2|lower == "mrs"}]SELECTED[{/if}]>[{ oxmultilang ident="SALUTATION_MRS" }]</option>
    </select>

Dort steht bei value ja MR & MRS drin, denke das da der Fehler liegt und man bei value das übergeben werden muss.


[{ oxmultilang ident="SALUTATION_MR"  }]

thx für deine antwort. aus welcher datei hast du denn den code auszug editiert?

gruss

shiko

Hey Shiko, bin noch am suchen das war es net, bin dem übeltäter aber auf der Spur, sage dir besheid wenn ich es gefunden habe.

So, nach längerem Suchen habe ich es gefunden.

Das ding ist, vor Version 4.2.0 wurden die Anreden warscheinlich direkt in der Datenbank gespeichert(je nach Sprache), dies ist jetzt nicht mehr so, sondern es wird bei einem Mann “Mr” eingetragen und bei einer Frau “Mrs”.

In den E-Mail Templates(email_order_custom_html.tpl & email_order_owner_html.tpl) wird das neue System aber nicht richtig umgesetzt.

Wir wissen, dass die Konstante in der Sprachdatei(lang.php) “SALUTATION_MR” oder “SALUTATION_MRS” heisst.

Das Beispiel kommt aus der order.tpl:


[{assign var=_sal value=$oxcmp_user->oxuser__oxsal->value}]
[{oxmultilang ident="SALUTATION_$_sal" noerror="yes" alternative=$_sal }] [{ $oxcmp_user->oxuser__oxfname->value }] [{ $oxcmp_user->oxuser__oxlname->value }]

In der ersten Zeile wird in Smarty eine Variable mit den Namen “_sal” erstellt und der Wert(value) aus der Datenbank, der bei Anrede(In unserem Fall “MR”) gespeichert ist zugewiesen.

In der zweiten Zeile ist nur das erste stückchen bis zum ersten " " für uns interessant. Hier wird jetzt einfach die aus unserer Sprachdatei(lang.php) stammende Konstante erzeugt(je nach Geschlecht). In unserem Fall ist in der Variable $sal, welche in der ersten Zeile erzeugt wurde “MR” enhalten und wie man sieht wird die Konstante aus der Sprachdatei so erzeugt "SALUTATION$_sal". Das bedeutet nach Auflösung der Variable $_sal “SALUTATION_MR” ensteht und dies entspricht in der Sprachdatei bei uns “Herr”.

Diese Anderungen wurden aber in den E-Mail Templates(email_order_custom_html.tpl & email_order_owner_html.tpl) vergessen.Ich ändere diese sachen jetzt in etwa wie oben ab, da bei der Rechnungs - und Lieferanschrift eine andere Klasse als “oxuser” verwendet wird können wir “$oxcmp_user” nicht verwenden, weil ich denke das cmp für Compare steht was auf Deutsch vergleichen heisst und dieser vergleich kann nur mit einer Klasse “oxuser” ausgeführt werden.

Hier die änderungen:
email_order_custom_html.tpl (Die E-Mail die der Kunde bekommt, nach einer Bestellung)
Nach


[{ $order->oxorder__oxbillcompany->value }]<br>

machen wir eine neue Zeile und fügen das ein


[{assign var=_billsal value=$order->oxorder__oxbillsal->value}]

In der Zeile darunter steht


[{ $order->oxorder__oxbillsal->value }]

dieses ersetzt du hiermit


[{oxmultilang ident="SALUTATION_$_billsal" noerror="yes" alternative=$_billsal }] 

Es gibt ein stück weiter unten noch die Lieferaddresse, die so aussieht


[{ $order->oxorder__oxdelcompany->value }]

dort musst du das selbe tun, nur mit diesen code


[{assign var=_delsal value=$order->oxorder__oxdelsal->value}]

und


[{oxmultilang ident="SALUTATION_$_delsal" noerror="yes" alternative=$_delsal }] 

So, dies musst du nun auch noch in der “email_order_owner_html.tpl” tun, mit selben Prinzip.

Damit hasst du die Bestellmails fertig, du solltest im Adminbereich unter Kundeninformation->CMS-Seiten wo “[{ $user->oxuser__oxsal->value }]” steht dies auch tun, aber mit dem Code.


[{assign var=_sal value=$oxcmp_user->oxuser__oxsal->value}]

und


[{oxmultilang ident="SALUTATION_$_sal" noerror="yes" alternative=$_sal }] 

Ich hoffe ich konnte helfen.

Ich ändere diese Sachen jetzt in etwa wie oben ab, da bei der Rechnungs - und Lieferanschrift eine andere Klasse als oxuser verwendet wird können wir $oxcmp_user nicht verwenden, weil ich denke das cmp für Compare steht was auf Deutsch vergleichen heisst und dieser vergleich kann nur mit einer Klasse oxuser ausgeführt werden.

das cmp steht für component :wink: alles mit cmp im namen ist eine komponente die quasi immer da ist. (bei der user komponente nur wenn ein user da ist)

Aber die email salutation ist wirklich vergessen worden. in den bestellungen ist das datenbankupdate auch nicht gewesen, da steht bei alten bestellungen immer noch Herr / Frau.

Danke für den Hinweis!

Danke für den Hinweis, in Assembler steht cmp für vergleiche und da dacht ich das wäre hier genauso, man lernt ja nie aus und bin selber uahc erst seit kurzem mit dem Shop am arbeiten.

Für die nachfolgenden Leser, dass tut aber meinem Code nix böses, dieser ist trotzdeben soweit richtig, ob es natürlich von Oxid so geplant war weiss ich net oder ob es bessere Möglichkeiten gibt, aber sie funktioniert.

Ich weiss nicht ob nicht auch die varinate geht


[{oxmultilang ident="SALUTATION_$order->oxorder__oxbillsal->value" noerror="yes" alternative=$_sal }]   

Mit welcher man sich die erste Zeile sparen könnte.

Danke für den Hinweis, in Assembler steht cmp für vergleiche und da dacht ich das wäre hier genauso, man lernt ja nie aus und bin selber uahc erst seit kurzem mit dem Shop am arbeiten.

ja ich habs vor oxid auch immer mit compare assoziiert, lustigerweise auch wegen assembler :smiley:

ich hab da mal nen bugreport zu erstellt:

https://bugs.oxid-esales.com/view.php?id=1439

hi

danke an alle für eure hilfe, werde dass ganze dann mal heute ändern habe auch etwas gefunden im bugtracker.

he way to solve this problem:
Replacing
[{ $order->oxorder__oxbillsal->value }]
with
[{assign var=sal value=$order->oxorder__oxbillsal->value}]
[{oxmultilang ident="SALUTATION
$_sal" noerror=“yes” alternative=$_sal }]
in email templates and ‘oxordersendplainemail’, ‘oxordersendemail’ CMS templates.

Similary you should replace:
[{ $user->oxuser__oxsal->value }]
with
[{assign var=sal value=$user->oxuser__oxsal->value}]
[{oxmultilang ident="SALUTATION
$_sal" noerror=“yes” alternative=$_sal }]
in ‘oxnewsletteremail’, ‘oxnewsletterplainemail’, ‘oxregisteremail’, ‘oxregisterplainemail’, ‘oxupdatepassinfoemail’ and ‘oxupdatepassinfoplainemail’ CMS pages.

Also you should use translations with any salutation fields (oxuser__oxsal, oxorder__oxbillsal, oxorder__oxsal)

da ist noch erklärt wie ich die newsletter email abändern kann, das es funktioniert.

gruss

shiko

ps punkt 1 ist nun gelöst, und noch mal danke an alle hier die mir geholfen haben

Ja, das habe ich dir aber oben auch erklärt, hätte ich gewusst das es im Bugtracker steht hätte ich mir arbeit erspart^^ Naja nun habe ich nen bissel was gelernt auch net schlimm.

In seinem beispiel fehlt auch die leiferungsadresse, er handelt nur die normale und rechnungsanschrift ab.

was dazu, zu lernen ist nie verkehrt. ich persöhnlich habe immer probleme php code zu lesen.
kann auch daran liegen, dass ich seid der ausbildung nett mehr programmiert habe :wink: .

die anderen punkte werde ich wohl mal später in angriff nehmen.

mal eine andere frage, mit welcher wawi kann man den shop am kostengünstigsten anbinden, mit xml export, ist das lexware faktura nur welche version?

gruss

shiko

So, ich bins nochmal.

Diese Veränderrungen funktionieren nur in den Template Datein, in den CMS Seiten funktioniert es nicht, da bleibt Mister stehen, warum ist mir auch ein Rätsel.

storage darf ich dich mal fragen welche wawi du einsetzt oder einsetzen möchtest mit dem web shop?

gruss

shiko

hi

ich kann erstmal bestätigen das jetzt in allen emails die anrede auf deutsch ist “herr” “frau”

nur die anrede in der versand email ist immer noch auf english. lt bugtracker gibt es da auch noch keine lösung.

gruss

shiko

Hallo,

Ich möchte das Thema nochmal aufwärmen. Bei mir passiert folgendes:

Wenn ein User angemeldet ist wird in der order.tpl auch schön die Variable SALUTATION ausgelesen. Sobald sich der User aber über die com_login_right auf der Seite order.tpl abmeldet, dann wird bei der Rechnungsadresse SALUTATION_ ausgegeben.

Hat vielleicht einer eine Lösung dafür ???

Hi,

ist der Wert dafür richtig in der lang.php gesetzt?

Gruß

Hallo zusammen,

ich bei mir werden seit dem Update auf 4.2.0 auch nur noch die Anreden Mrs. und Mr. angezeigt.

Ich habe alles wie oben beschrieben abgeändert, bekomme jedoch dann nur Salutation angezeigt woran kann das liegen? :confused:

Danke für eure Hilfe!

Exxhange

Hallo,

kann sich bitte jemand für mich erbarmen?? Wäre
super nett… in diesem Sinne push :smiley:

Hallo Leute,

erst einmal danke an alle, die zuvor geantwortet haben.

Nun gebe ich mal meinen Senf so ausführlich wie möglich dazu.

Von diesem Anrede-Problem sind alle E-Mail Templates betroffen, die auch eine Anrede beinhalten (nicht verwechseln mit Bein-halten :slight_smile: ) und das wären:

  • oxnewsletteremail (Newsletter eShop)
  • oxnewsletterplainemail (Newsletter eShop Plain)
  • oxregisteremail (Vielen Dank für Ihre Registrierung)
  • oxregisterplainemail (Vielen Dank für Ihre Registrierung Plain)
  • oxordersendemail (Ihre Bestellung wurde versandt)
  • oxordersendplainemail (Ihre Bestellung wurde versandt Plain)
  • oxupdatepassinfoemail (Ihr Passwort im eShop)
  • oxupdatepassinfoplainemail (Ihr Passwort im eShop Plain)

Alle diese Templates findet Ihr unter Administration -> Kundeninformation -> CMS-Seiten
In der Selectbox “E-Mails” auswählen, dann ist es leichter.

Nun wird aber nicht in allen Templates das Gleiche eingetragen.

Wir ersetzen
[I][{ $user->oxuser__oxsal->value }][/I]

durch
[I][{assign var=sal value=$user->oxuser__oxsal->value}] [{oxmultilang ident="SALUTATION$_sal" noerror=“yes” alternative=$_sal }][/I]

in den folgenden Templates:

  • oxupdatepassinfoplainemail
  • oxupdatepassinfoemail
  • oxregisterplainemail
  • oxregisteremail
  • oxnewsletterplainemail
  • oxnewsletteremail

Wir ersetzen
[I][{ $order->oxorder__oxbillsal->value }][/I]

durch
[I][{assign var=sal value=$order->oxorder__oxbillsal->value}] [{oxmultilang ident="SALUTATION$_sal" noerror=“yes” alternative=$_sal }][/I]

in den folgenden Templates:

  • oxordersendplainemail
  • oxordersendemail

Und Voila! Alle E-Mails sind nun OK :slight_smile: