Jump to content
xt:Commerce Community Forum

Automatische Kundennummernvergabe


Recommended Posts

Hallo,

ich verwende den Shop 3.04 mit SP 2.1

Nun ist es ja so, wenn sich neue Kunden regestrieren, das da dann die Kunden automatisch ne Kundennummer bekommen. Diese aber mit 1,2,3 und so weiter hochgezählt werden. Gibt es eine Möglichkeit das man angeben kann mit welcher kundennummer begonnen werden kann? ich hätte gern den Start mit 10000 und dann forlaufend.

Da bei mir erst 3 Kunden sich regestriert haben, lauten da die Kundennummern 1, 2 und 3. Habe auch versucht im Admin unter Kunden dann die Kundennummer zu ändern, dies aber nicht geht.

Ich hoffe das mir jemand helfen kann.

Gruß Jens

Link to comment
Share on other sites

Hallo,

bin grad selber vorm dem Problem gestanden und hab ein paar Zeilen zur automatischen Kundennummergenerierung verfasst, welche ich dir nicht vorenthalten möchte:

In der Datei create_account.php einfach folgende Zeile suchen:

$sql_data_array = array ('customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => xtc_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()');

und das ganze mit diesen Zeilen ersetzen:

//Kunden Nummer generieren

$cid_query = xtc_db_query("select customers_cid from ".TABLE_CUSTOMERS." ORDER BY customers_cid DESC LIMIT 1"); //höchste Kundennummer auslesen

$cid = xtc_db_fetch_array($cid_query);

$customer_cid = $cid['customers_cid'] + 1; //hier wird hochgezählt, also höchste plus 1

//ENDE

$sql_data_array = array ('customers_cid' => $customer_cid, 'customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => xtc_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()');

Musst aber darauf achten, dass mindestens ein Kunde bereits eine Kundennummer in der Datenbank hat und diese sollte auch sicherheitshalber nur aus Zahlen bestehen, zB 20015. Hab nämlich keine Fehlerüberprüfung oder ähnliches eingebaut.

Vielleicht hilft's dir :)

Link to comment
Share on other sites

Hallo,

danke für die Antwort.

Ich habe bis jetzt 3 Kunden die sich schon angemeldet haben. kann ich da nun ohne weiteres den Code so einfügen wie du Ihn hier geschrieben hast?

Die drei bestehenden Kunden haben die Kundennummer von 1 bis 3 wie ich im Admin unter kunden sehen kann.

Gruß Jens

Link to comment
Share on other sites

Sollte funktionieren, würde dann bei der nächsten Kundenanmeldung eben die Zahl 4 vergeben werden. Jedoch wie bei Software (verwendete Version ist 3.0.4 SP1) so üblich, alles ohne Gewähr. ;)

Bitte vorher Backup von der Datei erstellen.

Link to comment
Share on other sites

Hi,

habe das gerade mal probiert. Bekomme leider folgende Fehlermeldung:

habe einen kunde mit der kundennummer 80000 angelegt und wollte nun die "neue" generieren lassen...

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

1064 - Fehler in der Syntax bei 'ded, customers_last_modified, customers_gender) values ('80001',' in Zeile 1.

insert into customers (customers_cid, customers_vat_id, customers_vat_id_status, customers_status, customers_firstname, customers_lastname, customers_email_address, customers_telephone, customers_fax, customers_newsletter, customers_password, customers_date_ad ded, customers_last_modified, customers_gender) values ('80001', '', '', '2', 'rtreter', 'rtre', '[email protected]', '667454', '', '0', '5fb69aa4e71b65090523754ae5f0d02e', now(), now(), 'm')

[XT SQL Error]

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

Link to comment
Share on other sites

  • 2 months later...

Hi...

Wie ist es... wenn ich als Admin einen neuen Kunden anlege, muß ich dann selber schauen, welche KundenNr. noch frei ist oder bekomme ich da auch eine Nr. zu gewiesen?

Wenn ich es selber eine vergeben muß, wird es sich dann nicht irgend wann überschneiden? ..

Nehmen wir an, ich habe 3 Kunden mit KundenNr., im Amdin lege ich einen neuen an und gebe ihm die KundenNr. 4.... was bekommt der nächste Kunde als KundenNR., sobald sich ein neuer anmeldet... die 5 oder nochmal die 4?

Vielen Dank für Eure Hilfe!

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

Hat sich erledigt! Alles gefunden!

Link to comment
Share on other sites

Du könntest ein Problem bekommen, wenn es in deinem Shop Gast Accounts gibt, die gelöscht werden können (Option Löschen von Gast-Accounts). Wird diese Löschung auch in der DB vorgenommen (hab ich nicht überprüft), dann können falsche Werte bei deiner Abfrage nach der höchste Kundennummer entstehen. Nutze doch einfach die Technik wie sie für die nächsten SQL-Befehle verwendet werden (adressbook).

in der create_account.php und create_guest_account.php

nach $_SESSION['customer_id'] = xtc_db_insert_id(); einfügen



//Update Userdaten mit Kundennummer [knips-konsorten.de]
if ($_SESSION['customer_id'] != "") {
$c_cid = $_SESSION['customer_id']; //hier kann die Nummer wie gewünscht mit werten vor oder nach der ID beeinflusst werden z.B. K0001
$c_cid_query = "UPDATE " . TABLE_CUSTOMERS . " SET customers_cid = '". $c_cid ."' WHERE customers_id = '". $_SESSION['customer_id'] ."'";
xtc_db_query($c_cid_query);
}
//ENDE

[/php]

Link to comment
Share on other sites

Schon die Suche benutzt? ;)

Ich hoffe ich habe richtig gelesen und in diesem Beitrag wird folgende Anleitung gesucht:

Den kompletten Beitrag zur Lösung bekommst Du hier:

http://www.xt-commerce.com/forum/showthread.php?t=33277

First of all --> Backup von der DB machen!!!!

Bitte darauf achten, dass nicht der Admin Account gelöscht wird!

Anschließend habe ich den aufs Neue veränderten Code auf Grundlagen von jimpi folgendermaßen integriert:

in der datei create_account.php nach Zeile:

include ('includes/application_top.php');

folgendes einfügen:


[font=Verdana]require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');[/font]
[font=Verdana]require_once (DIR_FS_INC.'xtc_rand.inc.php');[/font]
[font=Verdana]function new_customer_id($space='-'){ [/font]
[font=Verdana]$new_cid='';[/font]
[font=Verdana]$start_cid = 3490;[/font]
[font=Verdana]$year = date("y");[/font]
[font=Verdana]$month = date("m");[/font]
[font=Verdana]$sign = 'HD';[/font]
[font=Verdana] [/font]
[font=Verdana]$cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1");[/font]
[font=Verdana]$last_cid = xtc_db_fetch_array($cid_query);[/font]
[font=Verdana] [/font]
[font=Verdana]$arr_cid = explode($space,$last_cid['customers_cid']);[/font]
[font=Verdana]if($arr_cid[1] [/font]
[font=Verdana]? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1) [/font]
[font=Verdana]: $new_cid = $sign . $year . $month . $space . $start_cid); [/font]
[font=Verdana] [/font]
[font=Verdana]return $new_cid;[/font]
[font=Verdana] [/font]
[font=Verdana]}[/font]
[font=Verdana][/font][/php]

[font=Verdana][size=2][color=red][color=red][b][u]und VOR[/u] der Zeile[/b] [/color][/color][/size][/font]

[color=red][size=2][font=Verdana][color=red]xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array);[/color][/font][/size][/color]

[color=red][size=2][font=Verdana][color=red][b]folgendes einfügen:[/b][/color][/font][/size][/color]

[font=Verdana][size=2][font=Verdana]//Automatisch [/font][/size][/font][b][color=black][color=windowtext]Kundennummer[/color][/color][/b][font=Verdana][font=Verdana] fortlaufend anlegen: [/font][/font]

[font=Verdana]

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

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

Ergebnis:

[$sign][ $year][ $month][$space][$arr_cid]

[beliebige Zeichen][Jahr][Monat][-][fortlaufende Zahl]

Mein erster Kunde bekam nun die Nummer:

HD0701-3490

Mein zweiter Kunde die Nummer:

HD0701-3491

Der dritte:

HD0701-3492

ACHTUNG:

- Es MUSS bereits ein Kunde mit einer Kundennummer existieren.

- Die Zahl im Code $start_cid = 3490; kann durch eine beliebige ersetze werden (sie muss aber grösser sein, als die zuletzt vergebene Kundennummer) Eine Kundennummer, die nicht mit einer glatten Zahl beginnt (z.B. 1000, 2000 oder 3000) sieht dem Kunden gegenüber immer besser aus. Aus diesem Grund habe ich die 3490 gewählt!

- Der oder die Buchstaben im Code $sign = 'V'; können durch beliebige ersetzt werden

- Das Zeichen (der Bindestrich) im Code function new_customer_id($space='-'){ kann durch ein beliebiges ersetzt werden

Ich hoffe, ich konnte helfen

back@me

Link to comment
Share on other sites

müsste Ich damit ich ein Kundennumer im Fomat "3490" erhalte,

folgendes aus deinem code oben raus nehmen ?

[font=Verdana]$year = date("y");[/font]
[font=Verdana]$month = date("m");[/font]
[font=Verdana]$sign = 'HD';[/font][/PHP]

[color=#000000][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#DD0000][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#DD0000][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][/color]

Link to comment
Share on other sites

Hi marko_weber,

die Antwort auf Deine Frage wäre "ja, aber nicht nur das".

Die Lösung ist aber gar nicht so schwierig.

Damit ich diesen Beitrag hier nicht komplett zerreiße, würde ich Dich bitten den ersten Eintrag von "Purecut" in folgendem Post zu nutzen:

http://www.xt-commerce.com/forum/showthread.php?t=33277

(hatte ich auch schon weiter oben drauf hin gewiesen ;-))

Ich hoffe, ich konnte helfen.

backy

Link to comment
Share on other sites

  • 3 weeks later...

Muss noch kurz eine Anmerkung zu meiner Kundennummerngenerierung loswerden. Zugegeben diese ist simple und programmiertechnisch nicht sehr professionell. Kunden welche im Adminbereich angelegt werden, muss selbst die Kundennummer vegeben werden und falls sich, wie der Zufall so will, gerade einer neu anmeldet, kann es auch zu doppelten kommen. Für mich reicht diese Lösung und soll nur ein Ansatz sein. ;)

Link to comment
Share on other sites

  • 3 months later...

Hallo

ich habe ein kleines Problem. Wenn ich die sache genau so abändere mit diesen 2 Code wo du reingestellt hast. das bei create _account, und ich dann einen neuen Kunden erfassen will,kommt bei mir diese meldung:

Parse error: syntax error, unexpected '[' in /home/www/web53/html/phpshop/create_account.php on line 32

und bei dieser Zeile steht folgender Code von dir:

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

was ist dort faslch??

habe ich noch etwas vergessen? danke

mfg manuel

Bitte darauf achten, dass nicht der Admin Account gelöscht wird!

Anschließend habe ich den aufs Neue veränderten Code auf Grundlagen von jimpi folgendermaßen integriert:

in der datei create_account.php nach Zeile:

include ('includes/application_top.php');

folgendes einfügen:

PHP-Code:

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 = 'HD';

$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;

}

und VOR der Zeile

xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array);

folgendes einfügen:

//Automatisch Kundennummer fortlaufend anlegen:

PHP-Code:

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

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

Ergebnis:

[$sign][ $year][ $month][$space][$arr_cid]

[beliebige Zeichen][Jahr][Monat][-][fortlaufende Zahl]

Mein erster Kunde bekam nun die Nummer:

HD0701-3490

Mein zweiter Kunde die Nummer:

HD0701-3491

Der dritte:

HD0701-3492

ACHTUNG:

- Es MUSS bereits ein Kunde mit einer Kundennummer existieren.

- Die Zahl im Code $start_cid = 3490; kann durch eine beliebige ersetze werden (sie muss aber grösser sein, als die zuletzt vergebene Kundennummer) Eine Kundennummer, die nicht mit einer glatten Zahl beginnt (z.B. 1000, 2000 oder 3000) sieht dem Kunden gegenüber immer besser aus. Aus diesem Grund habe ich die 3490 gewählt!

- Der oder die Buchstaben im Code $sign = 'V'; können durch beliebige ersetzt werden

- Das Zeichen (der Bindestrich) im Code function new_customer_id($space='-'){ kann durch ein beliebiges ersetzt werden

Ich hoffe, ich konnte helfen

back@me

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

Geändert von back@me (23.08.2007 um 12:51 Uhr).

Link to comment
Share on other sites

  • 5 weeks later...

Hallo mcantwort ...

... wen willst Du wohin drücken? Drück Dich doch bitte einwenig deutlicher aus icon10.gif.

Danke

es ging anfänglich darum das die kundennummer nicht bei 1 beginnen soll ;)

willst du nur das, dann geh ins phpMyAdmin auf die table "orders" und da auf operationen. im roten feld (nur im bild ;) ) steht der nächste inkrement welchen du einfach erhöhen kannst weil er unique ist...mit gewalt runtersetzen würde ich ihn nicht, weil dann nicht mehr sicher gestellt ist ob der nächste nicht schon vergeben und somit belegt ist ;)

unbenanntym8.th.png

Link to comment
Share on other sites

mir ging es auch um die erweiterte damit ich verwendungszwecke habe ;-)

und so bin ich hier gelandet...das der thread aus mehreren seiten besteht, hab ich erst nach dem posten gesehen (noch ungewohnt für mich das layout :D)

das script sieht zumindest gut aus (wenn ich mir das [font=Verdana] wegdenke :))

Link to comment
Share on other sites

  • 5 months later...

Hallo,

bin grad selber vorm dem Problem gestanden und hab ein paar Zeilen zur automatischen Kundennummergenerierung verfasst, welche ich dir nicht vorenthalten möchte

DAS hat bis zum Kunden 99/100 prima geklappt. JETZT kriegt jeder

neue Kunde die Kundennummer 100. Woran liegt denn das?

Kann jemand möglichst schnell helfen? Danke schonmal.

Link to comment
Share on other sites

  • 4 months later...

Moin,

folgendes ich hab das alles nach der anleitung gemacht aber es tut sich nichts

include ('includes/application_top.php');

[font=Verdana]require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');[/font]
[font=Verdana]require_once (DIR_FS_INC.'xtc_rand.inc.php');[/font]
[font=Verdana]function new_customer_id($space='-'){ [/font]
[font=Verdana]$new_cid='';[/font]
[font=Verdana]$start_cid = 3490;[/font]
[font=Verdana]$year = date("y");[/font]
[font=Verdana]$month = date("m");[/font]
[font=Verdana]$sign = 'HD';[/font]
[font=Verdana] [/font]
[font=Verdana]$cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1");[/font]
[font=Verdana]$last_cid = xtc_db_fetch_array($cid_query);[/font]
[font=Verdana] [/font]
[font=Verdana]$arr_cid = explode($space,$last_cid['customers_cid']);[/font]
[font=Verdana]if($arr_cid[1] [/font]
[font=Verdana]? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1) [/font]
[font=Verdana]: $new_cid = $sign . $year . $month . $space . $start_cid); [/font]
[font=Verdana] [/font]
[font=Verdana]return $new_cid;[/font]
[font=Verdana] [/font]
[font=Verdana]}[/font]
[font=Verdana][/font]

if (isset ($_SESSION['customer_id'])) {
xtc_redirect(xtc_href_link(FILENAME_ACCOUNT, '', 'SSL'));
}

// create smarty elements
$smarty = new Smarty;
// include boxes
require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

// include needed functions
require_once (DIR_FS_INC.'xtc_get_country_list.inc.php');
require_once (DIR_FS_INC.'xtc_validate_email.inc.php');
require_once (DIR_FS_INC.'xtc_encrypt_password.inc.php');
require_once (DIR_FS_INC.'xtc_get_geo_zone_code.inc.php');
require_once (DIR_FS_INC.'xtc_write_user_info.inc.php');

$process = false;
if (isset ($_POST['action']) && ($_POST['action'] == 'process')) {
$process = true;

if (ACCOUNT_GENDER == 'true')
$gender = xtc_db_prepare_input($_POST['gender']);
$firstname = xtc_db_prepare_input($_POST['firstname']);
$lastname = xtc_db_prepare_input($_POST['lastname']);
if (ACCOUNT_DOB == 'true')
$dob = xtc_db_prepare_input($_POST['dob']);
$email_address = xtc_db_prepare_input($_POST['email_address']);
if (ACCOUNT_COMPANY == 'true')
$company = xtc_db_prepare_input($_POST['company']);
if (ACCOUNT_COMPANY_VAT_CHECK == 'true')
$vat = xtc_db_prepare_input($_POST['vat']);
$street_address = xtc_db_prepare_input($_POST['street_address']);
if (ACCOUNT_SUBURB == 'true')
$suburb = xtc_db_prepare_input($_POST['suburb']);
$postcode = xtc_db_prepare_input($_POST['postcode']);
$city = xtc_db_prepare_input($_POST['city']);
$zone_id = xtc_db_prepare_input($_POST['zone_id']);
if (ACCOUNT_STATE == 'true')
$state = xtc_db_prepare_input($_POST['state']);
$country = xtc_db_prepare_input($_POST['country']);
$telephone = xtc_db_prepare_input($_POST['telephone']);
$fax = xtc_db_prepare_input($_POST['fax']);
$newsletter = '0';
$password = xtc_db_prepare_input($_POST['password']);
$confirmation = xtc_db_prepare_input($_POST['confirmation']);

$error = false;

if (ACCOUNT_GENDER == 'true') {
if (($gender != 'm') && ($gender != 'f')) {
$error = true;

$messageStack->add('create_account', ENTRY_GENDER_ERROR);
}
}

if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR);
}

if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_LAST_NAME_ERROR);
}

if (ACCOUNT_DOB == 'true') {
if (checkdate(substr(xtc_date_raw($dob), 4, 2), substr(xtc_date_raw($dob), 6, 2), substr(xtc_date_raw($dob), 0, 4)) == false) {
$error = true;

$messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR);
}
}

// New VAT Check
require_once(DIR_WS_CLASSES.'vat_validation.php');
$vatID = new vat_validation($vat, '', '', $country);

$customers_status = $vatID->vat_info['status'];
$customers_vat_id_status = $vatID->vat_info['vat_id_status'];
$error = $vatID->vat_info['error'];

if($error==1){
$messageStack->add('create_account', ENTRY_VAT_ERROR);
$error = true;
}

// New VAT CHECK END


if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR);
}
elseif (xtc_validate_email($email_address) == false) {
$error = true;

$messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
} else {
$check_email_query = xtc_db_query("select count(*) as total from ".TABLE_CUSTOMERS." where customers_email_address = '".xtc_db_input($email_address)."' and account_type = '0'");
$check_email = xtc_db_fetch_array($check_email_query);
if ($check_email['total'] > 0) {
$error = true;

$messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);
}
}

if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR);
}

if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_POST_CODE_ERROR);
}

if (strlen($city) < ENTRY_CITY_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_CITY_ERROR);
}

if (is_numeric($country) == false) {
$error = true;

$messageStack->add('create_account', ENTRY_COUNTRY_ERROR);
}

if (ACCOUNT_STATE == 'true') {
$zone_id = 0;
$check_query = xtc_db_query("select count(*) as total from ".TABLE_ZONES." where zone_country_id = '".(int) $country."'");
$check = xtc_db_fetch_array($check_query);
$entry_state_has_zones = ($check['total'] > 0);
if ($entry_state_has_zones == true) {
$zone_query = xtc_db_query("select distinct zone_id from ".TABLE_ZONES." where zone_country_id = '".(int) $country."' and (zone_name like '".xtc_db_input($state)."%' or zone_code like '%".xtc_db_input($state)."%')");
if (xtc_db_num_rows($zone_query) > 1) {
$zone_query = xtc_db_query("select distinct zone_id from ".TABLE_ZONES." where zone_country_id = '".(int) $country."' and zone_name = '".xtc_db_input($state)."'");
}
if (xtc_db_num_rows($zone_query) >= 1) {
$zone = xtc_db_fetch_array($zone_query);
$zone_id = $zone['zone_id'];
} else {
$error = true;

$messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);
}
} else {
if (strlen($state) < ENTRY_STATE_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_STATE_ERROR);
}
}
}

if (strlen($telephone) < ENTRY_TELEPHONE_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_TELEPHONE_NUMBER_ERROR);
}

if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) {
$error = true;

$messageStack->add('create_account', ENTRY_PASSWORD_ERROR);
}
elseif ($password != $confirmation) {
$error = true;

$messageStack->add('create_account', ENTRY_PASSWORD_ERROR_NOT_MATCHING);
}

//don't know why, but this happens sometimes and new user becomes admin
if ($customers_status == 0 || !$customers_status)
$customers_status = DEFAULT_CUSTOMERS_STATUS_ID;
if (!$newsletter)
$newsletter = 0;
if ($error == false) {
$sql_data_array = array ('customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => xtc_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()');

if (ACCOUNT_GENDER == 'true')
$sql_data_array['customers_gender'] = $gender;
if (ACCOUNT_DOB == 'true')
$sql_data_array['customers_dob'] = xtc_date_raw($dob);

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

xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array);

$_SESSION['customer_id'] = xtc_db_insert_id();
$user_id = xtc_db_insert_id();
xtc_write_user_info($user_id);
$sql_data_array = array ('customers_id' => $_SESSION['customer_id'], 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country,'address_date_added' => 'now()','address_last_modified' => 'now()');

if (ACCOUNT_GENDER == 'true')
$sql_data_array['entry_gender'] = $gender;
if (ACCOUNT_COMPANY == 'true')
$sql_data_array['entry_company'] = $company;
if (ACCOUNT_SUBURB == 'true')
$sql_data_array['entry_suburb'] = $suburb;
if (ACCOUNT_STATE == 'true') {
if ($zone_id > 0) {
$sql_data_array['entry_zone_id'] = $zone_id;
$sql_data_array['entry_state'] = '';
} else {
$sql_data_array['entry_zone_id'] = '0';
$sql_data_array['entry_state'] = $state;
}
}

xtc_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array);

$address_id = xtc_db_insert_id();

xtc_db_query("update ".TABLE_CUSTOMERS." set customers_default_address_id = '".$address_id."' where customers_id = '".(int) $_SESSION['customer_id']."'");

xtc_db_query("insert into ".TABLE_CUSTOMERS_INFO." (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('".(int) $_SESSION['customer_id']."', '0', now())");

if (SESSION_RECREATE == 'True') {
xtc_session_recreate();
}

$_SESSION['customer_first_name'] = $firstname;
$_SESSION['customer_last_name'] = $lastname;
$_SESSION['customer_default_address_id'] = $address_id;
$_SESSION['customer_country_id'] = $country;
$_SESSION['customer_zone_id'] = $zone_id;
$_SESSION['customer_vat_id'] = $vat;

// restore cart contents
$_SESSION['cart']->restore_contents();

// build the message content
$name = $firstname.' '.$lastname;

// load data into array
$module_content = array ();
$module_content = array ('MAIL_NAME' => $name, 'MAIL_REPLY_ADDRESS' => EMAIL_SUPPORT_REPLY_ADDRESS, 'MAIL_GENDER' => $gender);

// 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->caching = false;

if (isset ($_SESSION['tracking']['refID'])){
$campaign_check_query_raw = "SELECT *
FROM ".TABLE_CAMPAIGNS."
WHERE campaigns_refID = '".$_SESSION[tracking][refID]."'";
$campaign_check_query = xtc_db_query($campaign_check_query_raw);
if (xtc_db_num_rows($campaign_check_query) > 0) {
$campaign = xtc_db_fetch_array($campaign_check_query);
$refID = $campaign['campaigns_id'];
} else {
$refID = 0;
}

xtc_db_query("update " . TABLE_CUSTOMERS . " set
refferers_id = '".$refID."'
where customers_id = '".(int) $_SESSION['customer_id']."'");

$leads = $campaign['campaigns_leads'] + 1 ;
xtc_db_query("update " . TABLE_CAMPAIGNS . " set
campaigns_leads = '".$leads."'
where campaigns_id = '".$refID."'");
}


if (ACTIVATE_GIFT_SYSTEM == 'true') {
// GV Code Start
// ICW - CREDIT CLASS CODE BLOCK ADDED ******************************************************* BEGIN
if (NEW_SIGNUP_GIFT_VOUCHER_AMOUNT > 0) {
$coupon_code = create_coupon_code();
$insert_query = xtc_db_query("insert into ".TABLE_COUPONS." (coupon_code, coupon_type, coupon_amount, date_created) values ('".$coupon_code."', 'G', '".NEW_SIGNUP_GIFT_VOUCHER_AMOUNT."', now())");
$insert_id = xtc_db_insert_id($insert_query);
$insert_query = xtc_db_query("insert into ".TABLE_COUPON_EMAIL_TRACK." (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('".$insert_id."', '0', 'Admin', '".$email_address."', now() )");

$smarty->assign('SEND_GIFT', 'true');
$smarty->assign('GIFT_AMMOUNT', $xtPrice->xtcFormat(NEW_SIGNUP_GIFT_VOUCHER_AMOUNT, true));
$smarty->assign('GIFT_CODE', $coupon_code);
$smarty->assign('GIFT_LINK', xtc_href_link(FILENAME_GV_REDEEM, 'gv_no='.$coupon_code, 'NONSSL', false));

}
if (NEW_SIGNUP_DISCOUNT_COUPON != '') {
$coupon_code = NEW_SIGNUP_DISCOUNT_COUPON;
$coupon_query = xtc_db_query("select * from ".TABLE_COUPONS." where coupon_code = '".$coupon_code."'");
$coupon = xtc_db_fetch_array($coupon_query);
$coupon_id = $coupon['coupon_id'];
$coupon_desc_query = xtc_db_query("select * from ".TABLE_COUPONS_DESCRIPTION." where coupon_id = '".$coupon_id."' and language_id = '".(int) $_SESSION['languages_id']."'");
$coupon_desc = xtc_db_fetch_array($coupon_desc_query);
$insert_query = xtc_db_query("insert into ".TABLE_COUPON_EMAIL_TRACK." (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('".$coupon_id."', '0', 'Admin', '".$email_address."', now() )");

$smarty->assign('SEND_COUPON', 'true');
$smarty->assign('COUPON_DESC', $coupon_desc['coupon_description']);
$smarty->assign('COUPON_CODE', $coupon['coupon_code']);

}
// ICW - CREDIT CLASS CODE BLOCK ADDED ******************************************************* END
// GV Code End // create templates
}
$smarty->caching = 0;
$html_mail = $smarty->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/create_account_mail.html');
$smarty->caching = 0;
$txt_mail = $smarty->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/create_account_mail.txt');

xtc_php_mail(EMAIL_SUPPORT_ADDRESS, EMAIL_SUPPORT_NAME, $email_address, $name, EMAIL_SUPPORT_FORWARDING_STRING, EMAIL_SUPPORT_REPLY_ADDRESS, EMAIL_SUPPORT_REPLY_ADDRESS_NAME, '', '', EMAIL_SUPPORT_SUBJECT, $html_mail, $txt_mail);

if (!isset ($mail_error)) {
xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
} else {
echo $mail_error;
}
}
}

$breadcrumb->add(NAVBAR_TITLE_CREATE_ACCOUNT, xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));

require (DIR_WS_INCLUDES.'header.php');

if ($messageStack->size('create_account') > 0) {
$smarty->assign('error', $messageStack->output('create_account'));

}
$smarty->assign('FORM_ACTION', xtc_draw_form('create_account', xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onsubmit="return check_form(create_account);"').xtc_draw_hidden_field('action', 'process'));

if (ACCOUNT_GENDER == 'true') {
$smarty->assign('gender', '1');

$smarty->assign('INPUT_MALE', xtc_draw_radio_field(array ('name' => 'gender', 'suffix' => MALE), 'm'));
$smarty->assign('INPUT_FEMALE', xtc_draw_radio_field(array ('name' => 'gender', 'suffix' => FEMALE, 'text' => (xtc_not_null(ENTRY_GENDER_TEXT) ? '<span class="inputRequirement">'.ENTRY_GENDER_TEXT.'</span>' : '')), 'f'));

} else {
$smarty->assign('gender', '0');
}

$smarty->assign('INPUT_FIRSTNAME', xtc_draw_input_fieldNote(array ('name' => 'firstname', 'text' => ' '. (xtc_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_FIRST_NAME_TEXT.'</span>' : ''))));
$smarty->assign('INPUT_LASTNAME', xtc_draw_input_fieldNote(array ('name' => 'lastname', 'text' => ' '. (xtc_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_LAST_NAME_TEXT.'</span>' : ''))));

if (ACCOUNT_DOB == 'true') {
$smarty->assign('birthdate', '1');

$smarty->assign('INPUT_DOB', xtc_draw_input_fieldNote(array ('name' => 'dob', 'text' => ' '. (xtc_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">'.ENTRY_DATE_OF_BIRTH_TEXT.'</span>' : ''))));

} else {
$smarty->assign('birthdate', '0');
}

$smarty->assign('INPUT_EMAIL', xtc_draw_input_fieldNote(array ('name' => 'email_address', 'text' => ' '. (xtc_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_EMAIL_ADDRESS_TEXT.'</span>' : ''))));

if (ACCOUNT_COMPANY == 'true') {
$smarty->assign('company', '1');
$smarty->assign('INPUT_COMPANY', xtc_draw_input_fieldNote(array ('name' => 'company', 'text' => ' '. (xtc_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">'.ENTRY_COMPANY_TEXT.'</span>' : ''))));
} else {
$smarty->assign('company', '0');
}

if (ACCOUNT_COMPANY_VAT_CHECK == 'true') {
$smarty->assign('vat', '1');
$smarty->assign('INPUT_VAT', xtc_draw_input_fieldNote(array ('name' => 'vat', 'text' => ' '. (xtc_not_null(ENTRY_VAT_TEXT) ? '<span class="inputRequirement">'.ENTRY_VAT_TEXT.'</span>' : ''))));
} else {
$smarty->assign('vat', '0');
}

$smarty->assign('INPUT_STREET', xtc_draw_input_fieldNote(array ('name' => 'street_address', 'text' => ' '. (xtc_not_null(ENTRY_STREET_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_STREET_ADDRESS_TEXT.'</span>' : ''))));

if (ACCOUNT_SUBURB == 'true') {
$smarty->assign('suburb', '1');
$smarty->assign('INPUT_SUBURB', xtc_draw_input_fieldNote(array ('name' => 'suburb', 'text' => ' '. (xtc_not_null(ENTRY_SUBURB_TEXT) ? '<span class="inputRequirement">'.ENTRY_SUBURB_TEXT.'</span>' : ''))));

} else {
$smarty->assign('suburb', '0');
}

$smarty->assign('INPUT_CODE', xtc_draw_input_fieldNote(array ('name' => 'postcode', 'text' => ' '. (xtc_not_null(ENTRY_POST_CODE_TEXT) ? '<span class="inputRequirement">'.ENTRY_POST_CODE_TEXT.'</span>' : ''))));
$smarty->assign('INPUT_CITY', xtc_draw_input_fieldNote(array ('name' => 'city', 'text' => ' '. (xtc_not_null(ENTRY_CITY_TEXT) ? '<span class="inputRequirement">'.ENTRY_CITY_TEXT.'</span>' : ''))));

if (ACCOUNT_STATE == 'true') {
$smarty->assign('state', '1');

if ($process == true) {
if ($entry_state_has_zones == true) {
$zones_array = array ();
$zones_query = xtc_db_query("select zone_name from ".TABLE_ZONES." where zone_country_id = '".(int) $country."' order by zone_name");
while ($zones_values = xtc_db_fetch_array($zones_query)) {
$zones_array[] = array ('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);
}
$state_input = xtc_draw_pull_down_menuNote(array ('name' => 'state', 'text' => ' '. (xtc_not_null(ENTRY_STATE_TEXT) ? '<span class="inputRequirement">'.ENTRY_STATE_TEXT.'</span>' : '')), $zones_array);
} else {
$state_input = xtc_draw_input_fieldNote(array ('name' => 'state', 'text' => ' '. (xtc_not_null(ENTRY_STATE_TEXT) ? '<span class="inputRequirement">'.ENTRY_STATE_TEXT.'</span>' : '')));
}
} else {
$state_input = xtc_draw_input_fieldNote(array ('name' => 'state', 'text' => ' '. (xtc_not_null(ENTRY_STATE_TEXT) ? '<span class="inputRequirement">'.ENTRY_STATE_TEXT.'</span>' : '')));
}

$smarty->assign('INPUT_STATE', $state_input);
} else {
$smarty->assign('state', '0');
}

if ($_POST['country']) {
$selected = $_POST['country'];
} else {
$selected = STORE_COUNTRY;
}

$smarty->assign('SELECT_COUNTRY', xtc_get_country_list(array ('name' => 'country', 'text' => ' '. (xtc_not_null(ENTRY_COUNTRY_TEXT) ? '<span class="inputRequirement">'.ENTRY_COUNTRY_TEXT.'</span>' : '')), $selected));
$smarty->assign('INPUT_TEL', xtc_draw_input_fieldNote(array ('name' => 'telephone', 'text' => ' '. (xtc_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">'.ENTRY_TELEPHONE_NUMBER_TEXT.'</span>' : ''))));
$smarty->assign('INPUT_FAX', xtc_draw_input_fieldNote(array ('name' => 'fax', 'text' => ' '. (xtc_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">'.ENTRY_FAX_NUMBER_TEXT.'</span>' : ''))));
$smarty->assign('INPUT_PASSWORD', xtc_draw_password_fieldNote(array ('name' => 'password', 'text' => ' '. (xtc_not_null(ENTRY_PASSWORD_TEXT) ? '<span class="inputRequirement">'.ENTRY_PASSWORD_TEXT.'</span>' : ''))));
$smarty->assign('INPUT_CONFIRMATION', xtc_draw_password_fieldNote(array ('name' => 'confirmation', 'text' => ' '. (xtc_not_null(ENTRY_PASSWORD_CONFIRMATION_TEXT) ? '<span class="inputRequirement">'.ENTRY_PASSWORD_CONFIRMATION_TEXT.'</span>' : ''))));
$smarty->assign('FORM_END', '</form>');
$smarty->assign('language', $_SESSION['language']);
$smarty->caching = 0;
$smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE));
$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/create_account.html');

$smarty->assign('language', $_SESSION['language']);
$smarty->assign('main_content', $main_content);
$smarty->caching = 0;
if (!defined(RM))
$smarty->load_filter('output', 'note');
$smarty->display(CURRENT_TEMPLATE.'/index.html');
include ('includes/application_bottom.php');[/PHP]

hier ist der php code findet da jemand ein fehler? wenn sich ein neuer kunde anmeldet fügt er keine kundennummer ein!

danke im vorraus für jede antwort

Link to comment
Share on other sites

Moin,

folgendes ich hab das alles nach der anleitung gemacht aber es tut sich nichts .....

Hi,

zuerst einmal lösch die Tags zur Formatierung der Schrift ([font=Verdana]...[/font])

und dann schau Dir bitte noch mal folgenden Beitrag in RUHE an und ließ, was dort erklärt steht:

http://www.xt-commerce.com/forum/showpost.php?p=208664&postcount=21

Das komplette Thema wurde bereits mehrfach hier im Forum behandelt und auch ausführlich und verständlich erklärt:

http://www.xt-commerce.com/forum/showthread.php?t=33277

ACHTUNG, folgendes muss unbedingt beachtet werden:

- Es MUSS bereits ein Kunde mit einer Kundennummer existieren.

- Die Zahl im Code $start_cid = 3490; kann durch eine beliebige ersetze werden (sie muss aber grösser sein, als die zuletzt vergebene Kundennummer) Eine Kundennummer, die nicht mit einer glatten Zahl beginnt (z.B. 1000, 2000 oder 3000) sieht dem Kunden gegenüber immer besser aus. Aus diesem Grund habe ich die 3490 gewählt!

- Der oder die Buchstaben im Code $sign = 'HD'; können durch beliebige ersetzt werden

- Das "minus" Zeichen im Code function new_customer_id($space='-'){ kann durch ein beliebiges ersetzt werden. Es handelt sich dabei nur um ein Trennzeichen.

Ich denke, dass Du es damit hinbekommst!

back@me

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...