PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gambio GX2 - Anrede in Emailrechnung



Pittler
04.02.2012, 10:25
Guten Tag,

ich möchte bei Gambio GX2 die Anrede bei Rechnung per Email in der Vorlage eine persönliche Anrede einbringen.

also aus Sehr geehrte/r Frau/Herr Max Mustermann

ein z.B. Sehr geehrter Herr Mustermann machen.

Über eure Hilfe würde ich mich sehr freuen.

Gruss Karsten

jay-ar
05.02.2012, 14:20
Hallo
die gleiche Frage hattest Du Doch schon einmal von 'nem knappen Jahr gestellt. Ich habe Dir eine von vielen Lösungen gegeben, welche Du als perfekt angesehen hattest.

Pittler
05.02.2012, 17:01
Hallo jay-ar,

ja damals war meine Frage ähnlich und bezog sich auf die Emailvorlage "Bestellbestätigung":


Vorlage Bestellbestätigungs-Email anpassen

Jetzt geht es aber im Bereich Bestellungen um die Anrede in der Email mit welcher
eine PDF-Rechnung per Email gesendet werden kann. Diese kann man dann im linken
Menu unter Rechnung/Lieferschein konfigurieren.

Dank dir nochmals für deine Hilfe damals aber ich konnte die Einstellungen der
Bestellbestätigungs-Email nicht für die PDF-Rechnung per Email anwenden.


Gruss Karsten

jay-ar
05.02.2012, 17:22
Du hattest damals auch mit keiner Silbe PDF erwähnt. Da ich den PDF Generator von Gambio nicht kenne, kann ich Dir da leider gerade nicht konkret helfen. Vieleicht postest Du mal die Datei in der das generiert wird.
Wenn es um die Rechnung geht, die man sich Ausdrucken kann, ist es nach dem gleichen Prinzip wie damals nur jetzt in der print_orders.php


list($anrede) = mysql_fetch_array(xtc_db_query("SELECT entry_gender FROM ".TABLE_ADDRESS_BOOK."
WHERE entry_lastname = '".$order->customer['lastname']."'
AND entry_firstname = '".$order->customer['firstname']."'
AND customers_id = '".(int) $_GET['oID']."' ; "));
if ($anrede == 'm') $smarty->assign('ANREDE', 'Sehr geehrter Herr');
else $smarty->assign('ANREDE', 'Sehr geehrte Frau');
$smarty->assign('NACHNAME', $order->customer['lastname']);

und danach in der module/print_order.html im template die {ANREDE} {NACHNAME} eintragen.

Das ganze geht, so denke ich, ebenso adäquat einfach auch bei PDF. Also schieb mal die Datei rüber.

jay-ar

Pittler
05.02.2012, 18:27
Hallo jay-ar,

die Datei könnte diese hier sein: admin/gm/gm-pdf/gm_pdf_preview.php ?

Für den Text habe ich keine html gefunden der steht aber in der Datenbank in der Tabelle:

gm_contents im GM_PDF_EMAIL_TEXT - Sehr geehrte/r Frau/Herr {CUSTOMER}, ....


Vieleicht kannst du das ja wieder knacken ;-)

jay-ar
05.02.2012, 18:39
Bitte überprüfe, ob die Datei die richtige ist. Dazu reicht es einfach in die erste Zeile irgendein Müll reinzuschreiben.
Wenn es zum Fehler bei Generierung der PDF kommt, solltest Du die richtige erwischt haben.

Schick mir dann mal die Datei, die Registrierung bei denen möchte ich nicht machen.
Oder kopiere zumindest mal den Code hier rein.

jay-ar

Pittler
05.02.2012, 19:10
Es ist die Datei admin/gm_pdf_order, Codeausschnitt:

/*
* -> parse email text
*/
$mail_text = nl2br(gm_get_content('GM_PDF_EMAIL_TEXT', $_SESSION['languages_id']));

if(strstr($mail_text, '{CUSTOMER}')) {
$mail_text = str_replace('{CUSTOMER}', $order_check['customers_firstname'].' '.$order_check['customers_lastname'], $mail_text);
}

jay-ar
06.02.2012, 09:06
Hallo
Mit dem Auszug kann ich so nicht viel anfangen.
Der Inhalt "$mail_text" wird in der "function gm_get_content" generiert. Bevor ich Da jetzt weiter mit Dir von einem zum anderen hangele,
registriere ich mich bei denen, und installiere mal den Shop und schaue genau nach.
Kann ein bisschen dauern.

jay-ar

jay-ar
07.02.2012, 14:08
Hallo
Ich habe mir die Dateien entpackt und mal hinein geschaut. (also nicht selbst ausprobiert)
Meine weiteren Erklärungen beziehen sich auf die Standardeinstellungen im Shop. Sprich in der Tabelle gm_contents ist dafür eine Anrede mit dem Schlüssel
GM_PDF_EMAIL_TEXT konfiguriert die original so lautet.


Sehr geehrte/r {CUSTOMER},\n\nSie erhalten mit dieser E-Mail Ihre Rechnung Nr. {INVOICE_ID} von der Bestellung Nr. {ORDER_ID} vom {DATE}.\n\nMit freundlichem Gruss\n\nIhr Ansprechpartner

Wir müssen also nur das geehrte/r ersetzen.
Dazu in der admin/gm_pdf_order.php
oberhalb die erste SQL Frage $order_query_check um die Spalte customers_id erweiteren:


SELECT customers_id,
gm_packings_id,
gm_orders_id,
.
.
.

Dann nach der Zeile, welche Du schon für richtig befandest

$mail_text = nl2br(gm_get_content('GM_PDF_EMAIL_TEXT', $_SESSION['languages_id']));
Das einfügen


list($anrede) = mysql_fetch_array(xtc_db_query("SELECT entry_gender FROM ".TABLE_ADDRESS_BOOK."
WHERE entry_lastname = '".$order_check['customers_lastname']."'
AND entry_firstname = '".$order_check['customers_firstname']."'
AND customers_id = '".$order_check['customers_id']."' ; "));
if ($anrede == 'm') $mail_text = str_replace('geehrte/r','geehrter Herr',$mail_text ) ;
elseif ($anrede == 'f') $mail_text = str_replace('geehrte/r','geehrte Frau',$mail_text ) ;

Wenn du noch den Vornamen aus der Anrede weglassen möchtest, musst du die Anweisung ( 3 Zeilen drunter)


$mail_text = str_replace('{CUSTOMER}', $order_check['customers_firstname'].' '.$order_check['customers_lastname'], $mail_text);

in dieses hier ändern


$mail_text = str_replace('{CUSTOMER}', $order_check['customers_lastname'], $mail_text);

Wie gesagt, ich habe es nicht live getestet, aber es müßte, sofern ich keine Syntaxfehler gemacht habe, so gehen.

jay-ar

jay-ar
07.02.2012, 14:26
Im Allgemeinen wäre für die XTC basierenden Shops schon grundlegend festzuhalten, das Geschlecht gleich bei Bestellung mit in die orders Tabelle zu schreiben.
Das ist nicht nur bei Gambio so, die anderen Kandidaten, die ich kenne, machen das auch nicht. Als Kunde möchte ich nämlich gern richtig und nicht als "Neutrum" angesprochen werden.

jay-ar

Pittler
07.02.2012, 16:21
Hallo jay-ar,

bingo dass passt jetzt perfekt.

Nur schade das man nur immer eine Rechnung bzw. ein Lieferschein senden kann.

Also vielen Dank für deine Mühe!!!

Gruss Karsten