Jump to content
xt:Commerce Community Forum
Sign in to follow this  
Snatch

Alle Daten der Kundenanmeldung in der Bestätigungs- Email anzeigen

Recommended Posts

Da es wahrscheinlich viele im Forum interressiert, wie man alle Daten, die während der Kundenanmeldung eingegeben werden auch im Anschluss dem Kunden in der Bestätigungs Email anzeigen kann, gibt´s hier ne kurze Erklärung.

Datei: \create_account.php

Suche nach (ca. Zeile 310):


// assign data to smarty

$smarty->assign('language', $_SESSION['language']);

Diesen smarty Absatz komplett ersetzen mit folgendem Code. Auch die restlichen "$smarty->assign" aus diesem Abschnitt, die noch folgen. Diese können sich unterscheiden, deshalb habe ich nicht alle aufgeführt.

// assign data to smarty

$smarty->assign('language', $_SESSION['language']);

$smarty->assign('logo_path',HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/');

$smarty->assign('content', $module_content);

$smarty->assign('PASSWORT', $password);

$smarty->assign('VORNAME', $firstname);

$smarty->assign('NACHNAME', $lastname);

$smarty->assign('STRASSE', $street_address);

$smarty->assign('ZIP', $postcode);

$smarty->assign('STADT', $city);

$smarty->assign('COUNTRY', $country);	

$smarty->assign('EMAIL', $email_address);

$smarty->assign('TEL', $telephone);

$smarty->assign('COMPANY', $company);

$smarty->assign('VAT', $vat);

$smarty->assign('GENDER', $gender);

$smarty->assign('NEWSLETTER', $newsletter);

$smarty->assign('START_CID', $start_cid);

$smarty->assign('FAX', $fax);

$smarty->assign('DOB', $dob);

$smarty->caching = false;

Mit diesem Code werden alle eingegebenen Daten an das Email Template übergeben. Jetzt könnt Ihr zum Beispiel eine Tabelle in der Email erstellen, wo übersichtlich nochmals alle Daten aufgeführt sind. Das könnte so aussehen (mit if Abfragen -> falls nix eingegeben wurde, wird auch in der Email nix angezeigt) Datei: /templates/dein-template/mail/german/create_account_mail.html Diese Tabelle an beliebiger Stelle einfügen:

 <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">


         {if $START_CID}

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Kundennummer 

        / Login:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$START_CID}</font></td>

      </tr>   {/if}


      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">

        Email-Adresse / Login: </font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$EMAIL}</font></td>

      </tr>



      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Passwort:        </font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$PASSWORT}</font></td>

      </tr>

      {if $COMPANY}

      <tr>

        <td width="200">         </td>

        <td width="400">         </td>

      </tr>

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Firma:        </font> </td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$COMPANY}</font></td>

      </tr>   {/if}

   {if $VAT}    

  <tr>

        <td width="200">       

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">UST-ID:        </font></td>

        <td width="400">   

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$VAT}        </font> </td>



      </tr>  {/if}

      <tr>

	    <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Anrede:</font></td>

    	<td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{if $GENDER == 'm'}Herr {else}Frau {/if}</font></td>

	    </tr>

 <tr>

  	<td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Vorname:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$VORNAME}</font></td>

      </tr>

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nachname:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$NACHNAME}</font></td>

      </tr>

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">

        Geburtsdatum:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$DOB}</font></td>

      </tr>

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Strasse:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$STRASSE}</font></td>

      </tr>

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">PLZ, Ort:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$ZIP}, {$STADT}</font></td>

      </tr>

      <tr>

        <td width="200">         </td>

        <td width="400">         </td>

      </tr>

         {if $TEL}

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">

        Telefonnummer:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$TEL}</font></td>

      </tr>   {/if}

       {if $FAX}

      <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Faxnummer:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$FAX}</font></td>

      </tr>{/if}



	        <tr>

        <td width="200">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">

        Newsletter bestellen:</font></td>

        <td width="400">

        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">{if $NEWSLETTER == '1'}Ja {else}Nein {/if}</font></td>

      </tr>   



    </table>


Schwieriger wird es jetzt nur, wenn wir das Land des Kunden in der Email darstellen möchten. In der Template Datei (html) können wir das Land mit folgender Variable abrufen:

{$COUNTRY}

Leider kriegen wir so nur die Kennzahl für das jeweilige Land. Wollen wir dem Kunden in der Email also das Land als Wort darstellen, müssen wir wieder mit If Abfragen arbeiten. Um genau zu wissen, welche Kennzahl für welches Land steht, müsst Ihr eure Datenbank öffnen (Phpmyadmin) und in die Tabelle "countries" wechseln und dort nachschauen. Jetzt müsst Ihr entscheiden, welche Länder für euch wichtig sind. Denn wir müssen für jede Kennzahl, bzw. jedes Land eine eigene If Abfrage kreeieren. Bei über 200 Ländern ziemlich viel Arbeit und wirklich unnötig. Also die If Abfrage für das Land in der /templates/dein-template/mail/german/create_account_mail.html könnte so aussehen:

{if $COUNTRY == '81'}Deutschland{elseif $COUNTRY == '73'}France{elseif $COUNTRY == '21'}Belgique{elseif $COUNTRY == '204'}Schweiz{elseif $COUNTRY == '150'}Niederlande{elseif $COUNTRY == '14'}Österreich{else}{$COUNTRY}{/if}

Die Kennzahlen müssen angepasst und die Abfrage eventuell noch um andere Länder erweitert werden. Das Ganze an passender Stelle in die Mail einfügen.

---------------------

So das war´s !! Jetzt haben wir wirklich ALLE vom Kunden eingegebenen Daten an die Email übergeben. Außer Ihr habt eigene Felder hinzugefügt ! :-)

Hoffe es hilft irgendjemandem weiter !!

Share this post


Link to post
Share on other sites

Hallo Leute,

ich habe meinen ersten Beitrag nochmals überarbeitet.

Jetzt ist noch die Länderabfrage hinzugekommen. Und der kleine Gedankenfehler bezüglich des Newsletters wurde behoben!:)

Greetz, Snatch

Share this post


Link to post
Share on other sites

Ein Super Beitrag. Habe ich auch so umgesetzt.

Habe eine etwas andere aber ähnliche Frage. Ich möchte das Guthaben des Kunden auf einer Seite anzeigen. Ich mache also einfach ein Link "Ihr Guthaben"

Der Kunde klickt auf die Seite und dann steht da:

Ihr Guthaben beträgt XY Euro

Diese Seite will ich erstellen. Im Prinzip brauche ich einfach nur den Text der angezeigt wird, wenn der Kunde im Warenkorb ist und ein Guthaben hat.

Da steht dann z.B:

Sie können Ihr Guthaben an der Kasse verbuchen.

Ihr aktuelles Guthaben beträgt:

10,00 EUR

Die Frage ist, wie kann ich den Text abrufen.

In der shopping_cart.html steht einfach {$MODULE_gift_cart}

Es wird also gift_cart.html aufgerugen oder verwendet.

Dort habe ich auch den Eintrag gefunden:

{if $GV_AMOUNT neq ''}

<p>{#text_info#}</p>

<label>{#voucher_balance#}</label>

<p>{$GV_AMOUNT}</p><br class="clearHere" />

{/if}

Darüber steht noch:

{config_load file="$language/lang_$language.conf" section="gift_cart"}

Das ist, damit die Texte wie #text_info#und so weiter importiert werden.

Ich habe also eine Datei (.html) mit folgendem Inhalt erstellt:

{config_load file="$language/lang_$language.conf" section="gift_cart"}

{if $GV_AMOUNT neq ''}

<p>{#text_info#}</p>

<label>{#voucher_balance#}</label>

<p>{$GV_AMOUNT}</p><br class="clearHere" />

{/if}

Rufe ich diese Datei auf, dann erscheint nichts. Ist eigentlich auch klar. Die Datei hat die benötigten Variablen nicht. Es wird ja vorher mit

{if $GV_AMOUNT neq ''}

geprüft ob der Gutscheinwert nicht leer ist.

Ich müsste also wharscheinlich vorher eine PHP-Seite schreiben, die zunächst die Variablen ausliest und dann meine HTML Seite aufruft.

Die Frage ist, wie könnte diese PHP-Seite aussehen.

Viele Grüße

Lorenzo

Share this post


Link to post
Share on other sites

Hallo Lorenzo,

du hättest für die Frage besser einen neuen Thread aufgemacht, da es hier ja um was anderes geht und du so nur schwer Hilfe findest !!

Wie die PHP Datei aussieht kann ich dir net sagen.

Erwartest du jetzt, dass dir hier jemand einfach mal was für dich programmiert ?? hehe

Als Tipp kann ich dir nur raten: Orientier dich an der

/includes/modules/gift_cart.php

Oder kopier diese Datei. Da haste schon alles drin !

Musst dann nur noch eine HTml Datei erstellen und kleinigkeiten an der php.

Falls du nicht weiterkommst, ich habe eine Erweiterung für Gutscheine und Kupons erstell, wo das Guthaben zum Beispiel auch auf der account.php und der checkout_succes angezeigt wird.

Gruß,

Snatch

Share this post


Link to post
Share on other sites

Hallo Snatch,

Danke für die Antwort. Genau die Datei hatte ich gesucht aber übersehen. Da ich keine gift_cart.php gefunden hatte dachte ich es wird in diesem Fall anders geregelt. Das ist jetzt schon mal ein Ansatz.

Deine Erweitereung für Gutscheine und Coupons interessiert mich sehr. Hatte dir dazu gestern auch eine PM gesendet.

Gruß

Lorenzo

Share this post


Link to post
Share on other sites

Hallo,

habe folgendes Problemchen, obwohl die Kundennummer im Shop generiert wird, bekomme ich dise nicht in der Bestätigungsmail. habe alles wie in der Anweisung beschrieben, umgesetzt. Habe alle angabe in der Mail aber ohne KN.

Kann mir jemand weiter helfen?

Danke

Share this post


Link to post
Share on other sites

Dann nutzt du eine andere Variable für deine Kundennummern. Bei mir ist es diese Zeile:


$smarty->assign('START_CID', $start_cid);

Also hier musst du dann deine Variable einbauen.

Gruß !

Share this post


Link to post
Share on other sites

Danke!

Werde versuchen, die Variable rauszufinden.

Ich habe einen Verdacht. Da ich neu Kundennummer automatisch generieren lasse, nach der Anweisung im Forum, kann es wohl daran liegen.

:confused:

Share this post


Link to post
Share on other sites

Habe für die automatische Generierung der Kundennummer folgende Änderungen in der create_account.php gemacht.

require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');

require_once (DIR_FS_INC.'xtc_rand.inc.php');

function new_customer_id($space='-'){

$new_cid='';

$start_cid = 3490;

$year = date("y");

$month = date("m");

$sign = 'AG';

$cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1");

$last_cid = xtc_db_fetch_array($cid_query);

$arr_cid = explode($space,$last_cid['customers_cid']);

if($arr_cid[1]

? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1)

: $new_cid = $sign . $year . $month . $space . $start_cid);

return $new_cid;

}

Jetz weis ich aber nicht, ob $start_cid überhaut noch zu verwenden ist???:confused:

Share this post


Link to post
Share on other sites

Ja guck mal in deiner create_account.php da wird die Kundennummer generiert.... ;)

ach, das hast du ja schon raugefunden.... dann weiter ....

....deine Kundennummer werden hiermit ausgegeben:


$new_cid

Folglich musst du zur Übergabe an das Mail Template folgende Zeile verwenden:

$smarty->assign('NEW_CID', $new_cid);

Und dann im Template hiermit aufrufen:

{NEW_CID}

Gruß,

Snatch

Share this post


Link to post
Share on other sites

Danke dir Snatch!!!

HAbe schon alles ausprobiert, irgendwo hackt's noch.

kann es sein, dass "function new_customer_id($space='-')" probleme macht???

Da $new_cid bestandteil der Funktion ist???

Ist es nicht so dass man aus der funktion den wert auslesen muss, um weiter verwenden zu können.

$new_cid_xxx=new_customer_id(xxx)

Danke noch mal.

Share this post


Link to post
Share on other sites

So habe das Problem folgend gelöst:

neu var. definiert z.B. $cn_cid

dann die funktion new_customer_id() zu der var zuweisen

$cn_cid=new_customer_id()

Dann über

$smarty->assign('CN_CID', $cn_cid);

und in der Mail Tabelle {$CN_CID}

und scho läuft das ganze wunderbar;)

Share this post


Link to post
Share on other sites

Hallo Armygo

neu var. definiert z.B. $cn_cid

dann die funktion new_customer_id() zu der var zuweisen

$cn_cid=new_customer_id()

Kannst Du noch mal beschreiben, wo du was verändert hast?

Eventuell den Teil einfach mal hier einstellen.

Danke.

Share this post


Link to post
Share on other sites

Hallo Armygo

Kannst Du noch mal beschreiben, wo du was verändert hast?

Eventuell den Teil einfach mal hier einstellen.

Danke.

Wenn du, so wie ich ,die Datei "create_account.php" im Shop Ordner veränderst und nach der Zeile "include ('includes/application_top.php');" folgendes einfügst:"

(s. http://www.xt-commerce.com/forum/showthread.php?t=48516&highlight=kundennummer)

require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');

require_once (DIR_FS_INC.'xtc_rand.inc.php');

function new_customer_id($space='-'){

$new_cid='';

$start_cid = 3490;

$year = date("y");

$month = date("m");

$sign = 'AG';

$cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1");

$last_cid = xtc_db_fetch_array($cid_query);

$arr_cid = explode($space,$last_cid['customers_cid']);

if($arr_cid[1]

? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1)

: $new_cid = $sign . $year . $month . $space . $start_cid);

return $new_cid;

}

"

dann in der Gleichen Datei

vor

"xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array);"

folgendes einfügen:

//Automatisch Kundennummer fortlaufend anlegen:

$cn_cid=new_customer_id();

$sql_data_array['customers_cid'] = new_customer_id();

Danach kommen die Varies.

folgende Zeilen

// assign data to smarty

$smarty->assign('language', $_SESSION['language']);

$smarty->caching = false;

mit Varies ersetzen:

// assign data to smarty

$smarty->assign('language', $_SESSION['language']);

$smarty->assign('logo_path',HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/');

$smarty->assign('content', $module_content);

$smarty->assign('PASSWORT', $password);

$smarty->assign('VORNAME', $firstname);

$smarty->assign('NACHNAME', $lastname);

$smarty->assign('STRASSE', $street_address);

$smarty->assign('ZIP', $postcode);

$smarty->assign('STADT', $city);

$smarty->assign('COUNTRY', $country);

$smarty->assign('EMAIL', $email_address);

$smarty->assign('TEL', $telephone);

$smarty->assign('COMPANY', $company);

$smarty->assign('VAT', $vat);

$smarty->assign('GENDER', $gender);

$smarty->assign('NEWSLETTER', $newsletter);

$smarty->assign('CN_CID', $cn_cid);

$smarty->assign('FAX', $fax);

$smarty->assign('DOB', $dob);

$smarty->caching = false;

Somit ist die Datei "create_account.php" modifiziert.

Dann kommt noch die von Snatch beschriebene Tabelle in folgende Datei

"/dein Template/mail/german/create_account_mail.html"

Ein Auszug aus der Tabelle:

<tr>

<td width="200">

<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Kundennummer:</font></td>

<td width="400">

<font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$CN_CID}</font></td>

</tr>

So wird auch die Kundennummer aus einer Funktion als Wert weiter an die Email gegeben.

Gruß

armygo

Share this post


Link to post
Share on other sites

Hallo Armygo

Hat alles super geklappt.

Danke nochmals.

Ich würde auch noch gerne die Kundengruppe in der Mail mit ausgeben.

Ich dachte da an so etwas wie bei dem Ländercode.

Aber mir fehlt noch die Variablenübergabe der Kundengruppe.

In der DB ist es die Tabelle "customers_status"

Aber wie bekomme ich die in die Mail?

0 ist glaube Admin

1 Gast

2 Kunde

usw.

mann muss ja dann nicht z.B. bei Zahl 2 Kunde hineinschreiben.

Danke schon mal.

Share this post


Link to post
Share on other sites

Bei mir wird die Kundennummer nicht in der Email angezeigt. Habe deine Original Vorlage benutzt.

in meiner Create_Account.php gibt es keine Variable $start_cid.

Wo und wie wird denn die kundennummer generiert? Wie heißte denn die Variable ?

Hätte gerne das in der Email steht: Ihre Kundennummer lautet: 24

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...