-gelöst- Übertragen der Kunden aus der WAWI in den Shop

rhservice

Aktives Mitglied
25. Juli 2008
11
0
Hallo Zusammen,

ist es möglich die Kunden die in der WAWI existieren in den Shop zu übertragen?

Mfg

Robby
 

dvbshop

Aktives Mitglied
27. Juli 2006
187
0
München
Firma
dvbshop2006
Kannst du so nicht machen, da nur dann Kunden über den Connector übernommen werden, wenn diese eine Bestellung ab"latzen".

Du kannst aber Kunden über XTC EXPORTIEREN und dann in der Wawi importieren. Nur empfehlenswert, wenn Du fast ausschließlich deutsche Kunden hast, sonst kommst Du mit den Länderbezeichnungen in Bedrängnis.

Den Aufbau der Importdatei ist in der Wiki beschrieben als auch in der Importfunktion
 

rhservice

Aktives Mitglied
25. Juli 2008
11
0
Hallo.

Danke für deine Hilfe.
Leider brauche ich gerade den Weg: Import aus der Wawi IN den Shop.
Dann würde ich jedem Kunden eine Automatische Email mit einem zufällig generiertem Passwort versenden usw.

Robby
 

dvbshop

Aktives Mitglied
27. Juli 2006
187
0
München
Firma
dvbshop2006
Naja, das Script gibt es:

Passwort.


Code:
Code:
<?php

define('GZIP_COMPRESSION','false');

include ('includes/application_top.php');

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');

function getpass($laenge=10)
{
	$newpass = "";
    	$string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    	mt_srand((double)microtime()*1000000);

    	for ($i=1; $i <= $laenge; $i++)
    	{
    		$newpass .= substr($string, mt_rand(0,strlen($string)-1), 1);
    	}
	return $newpass;
}

$lines = 0;
$lines_ok = 0;

$importfile="kunden_import.csv";

$fh = fopen($importfile, "r") or die ("Kann Datei nicht lesen.");

while(!feof($fh))
{
	// zeile einlesen & werte zuweisen
	$zeile=fgets($fh);
	list($anrede, $firstname, $lastname, $company, $geburtsdatum, $street_address, $lkz, $postcode, $city, $suburb, $telephone, $fax, $email_address, $password) = split(";", $zeile);
	$lines+=1;

	// neues zufallspasswort erstelllen.
	$password = getpass(10);
	
	// vorhandene Daten aufbereiten.
	switch($anrede)
	{
		case "01":
			$gender = "m";
			break;

		case "02":
			$gender = "f";
			break;

		default:
			$gender = "m";
	}

	// [url]http://www.didihome.de/html/tab-lkz.htm[/url]
	// Problemkinder: BAL, EI

	switch(strtoupper($lkz))
	{
		case "D":
			$lkz = "DE";
			break;

		case "GB":
			$lkz = "GB";
			break;

		case "EST":
			$lkz = "EE";
			break;

		case "FIN":
			$lkz = "FI";
			break;

		case "BG":
			$lkz = "BG";
			break;

		case "CH":
			$lkz = "CH";
			break;

		case "CY":
			$lkz = "CY";
			break;

		case "A":
			$lkz = "AT";
			break;
		case "CZ":
			$lkz = "CZ";
			break;

		case "DK":
			$lkz = "DK";
			break;

		case "F":
			$lkz = "FR";
			break;

		case "WD":
			$lkz = "DM";
			break;

		case "CDN":
			$lkz = "CA";
			break;

		case "I":
			$lkz = "IT";
			break;

		case "N":
			$lkz = "NO";
			break;

		case "U":
			$lkz = "UY";
			break;

		// ?? P = POLEN!?
		case "P":
			$lkz = "PL";
			break;

		case "J":
			$lkz = "JP";
			break;

		case "E":
			$lkz = "ES";
			break;

		case "H":
			$lkz = "HU";
			break;

		case "AUS":
			$lkz = "AU";
			break;

		case "FL":
			$lkz = "LI";
			break;

		case "S":
			$lkz = "SE";
			break;

		case "L":
			$lkz = "LU";
			break;

		case "RB":
			$lkz = "BW";
			break;

		case "FIN":
			$lkz = "FI";
			break;

		case "RI":
			$lkz = "ID";
			break;

		case "B":
			$lkz = "BE";
			break;

		case "SGP":
			$lkz = "SG";
			break;

		case "EST":
			$lkz = "EE";
			break;

		case "IRL":
			$lkz = "IE";
			break;

		case "RUS":
			$lkz = "RU";
			break;

		case "SLO":
			$lkz = "SI";
			break;

		case "USA":
			$lkz = "US";
			break;
	}	
	$country_query = xtc_db_query("SELECT * FROM `countries` WHERE `countries_iso_code_2` = '".strtoupper($lkz)."'");
	$country_data = xtc_db_fetch_array($country_query);
	$country = $country_data['countries_id'];

	if(!is_numeric($country_data['countries_id']))
	{
		echo "   [b]ERROR:[/b] LKZ_CONVERT_ERROR
\n";
		echo "lkz=".$lkz." countries_id=".$country_data['countries_id']. " countries_name=".$country_data['countries_name']."
\n";
	}

	if ($geburtsdatum != ".000000000" && $geburtsdatum != "")
	{
		list($jahr, $monat, $tag) = sscanf($geburtsdatum,"%4d%2d%2d.%d");
		
		$dob = sprintf("%02d.%02d.%4d",$tag,$monat,$jahr);
		//echo $geburtsdatum . " = " . $dob ."
\n";
	}
	else
		$dob='';

	// sonnstige variablen
	$customers_status = DEFAULT_CUSTOMERS_STATUS_ID;
	$newsletter = "0";
	$do_not_report = false;

	// daten in db eintragen
	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);
		echo "   [b]ERROR:[/b] ENTRY_VAT_ERROR
\n";
		$error = true;

	}

	if(!is_numeric($country_data['countries_id']))
		$error = true;

	$email_exists = false;
	$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) {

		$email_exists = true;
	}

	if($email_exists == true)
	{
		$error = true;
		$do_not_report = true;

		//$messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS);
		//echo "   [b]ERROR:[/b] ENTRY_EMAIL_ADDRESS_ERROR_EXISTS
\n";
	}
	elseif (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH)
	{

		$error = true;
		//$messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR);
		echo "   [b]ERROR:[/b] ENTRY_EMAIL_ADDRESS_ERROR
\n";

	}

	elseif (xtc_validate_email($email_address) == false)
	{

		$error = true;
		//$messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
		echo "   [b]ERROR:[/b] ENTRY_EMAIL_ADDRESS_CHECK_ERROR
\n";
/*
	        $fp3 = fopen("kunden_import_mail-check-fail.csv", "a");
	        fputs($fp3, $zeile);
	        fclose ($fp3);
*/

	}

	if($dob != '')
	{
		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;
			echo "   [b]ERROR:[/b] ENTRY_DATE_OF_BIRTH_ERROR
\n";

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

		}
	}
	
	if($error != true)
	{
		$lines_ok += 1;

		$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()');


		$sql_data_array['customers_gender'] = $gender;
		$sql_data_array['customers_dob'] = xtc_date_raw($dob);
		xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array);
		$user_id = xtc_db_insert_id();

		//xtc_write_user_info($user_id);

		$sql_data_array = array ('customers_id' => $user_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()');



		$sql_data_array['entry_gender'] = $gender;
		$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) $user_id."'");

		xtc_db_query("insert into ".TABLE_CUSTOMERS_INFO." (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('".(int) $user_id."', '0', now())");


		// create smarty elements

		$smarty = new Smarty;

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

		$smarty->assign('LASTNAME', $lastname);
		$smarty->assign('EMAIL', $email_address);
		$smarty->assign('PASSWORT', $password);

		$smarty->caching = false;
		$txt_mail_customer = $smarty->fetch(DIR_FS_CATALOG.'kunden_import_mail.txt');

		$mail_subject = "Unser neuer Onlineshop - Our new onlineshop";

/*
		echo "<pre>\n";
		echo $txt_mail_customer;
		echo "</pre>\n";
*/
		// mail versenden
		xtc_php_mail(STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER, $email_address, $firstname.' '.$lastname, '', STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER, '', '', $mail_subject, '', $txt_mail_customer);

	}
	else
	{
		if(!$do_not_report==true)
		{
			echo "<b color=\"red\">fehler beim anlegen von $firstname, $lastname, $company, $email_address[/b]
\n";
			echo "[b]------------------------------------------------------------------------------------------------------[/b]
\n";
		}
	}
	
	flush();

}
fclose($fh);

echo "$lines_ok von $lines Daten importiert!";

include ('includes/application_bottom.php');
?>

Dazu brauchst Du jedoch wieder eine CSV Datei (im Root des Webservers, wo du die obige PHP Datei auch ablegst), die nach dem Schema aufgebaut ist:

$anrede, $firstname, $lastname, $company, $geburtsdatum, $street_address, $lkz, $postcode, $city, $suburb, $telephone, $fax, $email_address, $password)

Das Importfile muß heißen: kunden_import.csv

Zudem mußt Du mit ADMIN Rechten eingeloggt sein!

Er überschreibt KEINE Kunden - wenn also die Email adresse schon vorhanden ist, legt er den Kunden nicht mehr an!

GGfls. mußt Du die Länderdefinitionen im Script noch überarbeiten, wenn Du aber nur deutsche Kunden hast, ist es fast schon "Plug & Play" ;)
 

dvbshop

Aktives Mitglied
27. Juli 2006
187
0
München
Firma
dvbshop2006
Ooops,

im Root dann auch noch eine Datei anlegen mit Namen
kunden_import_mail.txt

In die kannste dann folgendes noch einfügen:

Code:
{if $GENDER == 'f'}
Sehr geehrte Frau {$LASTNAME},
{else}
Sehr geehrter Herr {$LASTNAME},
{/if}

{if $GENDER == 'f'}
Dear Mrs.  {$LASTNAME},
{else}
Dear Mr. {$LASTNAME},
{/if}

seit 01.11.2007 ist unser neuer Onlineshop unter [url]http://www.blabla.com[/url] erreichbar.
Since 1st of November our new Onlineshop is active at http://www.blabla.com!

Da Sie bereits Kunde bei uns sind, haben wir Ihre Daten in den neuen Shop übernommen. Sie können sich mit folgenden Login-Daten anmelden: 
As you are/were already a customer of BLABLA, you may now sign in into your account with the following Username and password:

Benutzer/Username: {$EMAIL}
Password: {$PASSWORT}

Bitte überprüfen Sie bei Gelegenheit, ob die Angaben, wie Name, Adresse usw. noch korrekt sind und ändern diese ggfls. in Ihrem Shopaccount.

Please check your account, if Name, address, ZIP-code, City etc. are still up to date. Otherwise you may correct your account online!

Wir danken für Ihre Mithilfe und verbleiben

Thanks for your attention

mit freundlichen Grüßen
 

dvbshop

Aktives Mitglied
27. Juli 2006
187
0
München
Firma
dvbshop2006
Ergänzung:

IM FALLE daß er einen Kunden im Shop dann anlegt, geht gleichzeitig eine Mail an den Kunden mit den Daten raus, den Text oben kannste ja beliebig anpassen.

Hoffe, es paßt 8)
 

rhservice

Aktives Mitglied
25. Juli 2008
11
0
also könnte ich die kunden aus der wawi exportieren. in eine csv meine ich und dann mit dem script importieren?
 

dvbshop

Aktives Mitglied
27. Juli 2006
187
0
München
Firma
dvbshop2006
ja, das ist doch das, was Du wolltest.

Mußt nach dem EXPORT mit EXCEL oder OpenOffice etc. halt die Spalten in die richtige Reihenfolge bringen.

GGfls. kann man das Script so umschreiben, daß es sich der Vorgabe von JTL anpaßt, also "ready to go", aber dafür habe ich momentan nicht die Zeit, sorry.
 
Ähnliche Themen
Titel Forum Antworten Datum
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1
Gelöst: Amazon Abgleich Fehlermeldungen Störungsmeldungen 1
Gelöst: Shipping 4.0 gibt fehler: The product entered is unknown. JTL-Wawi 1.11 6
Neu JTL-Anmerkungen nicht in POS-Comments übertragen Allgemeine Fragen zu JTL-POS 3
Neu Überverkäufer aktiviert, es wird aber kein Bestand zu Amazon übertragen Amazon-Anbindung - Fehler und Bugs 0
Neu Wird irgendwo in der Datenbank geloggt welcher WMS-Mobile Benutzer mit dem MDE-Gerät einen Auftrag, bzw. Pickliste gepickt hat? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Gibt es in der WaWi-Datenbank einen Zeitstempel, der anzeigt wann ein Kunde sich in einem bestimmten Shop registriert hat? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Amazon.com - kein Abgleich der Bestände Wawi 1.11.9 Amazon-Anbindung - Fehler und Bugs 0
Name der Versandarten wird im Auftrag sporadisch nicht mehr angezeigt (2.0.3) JTL-Wawi 2.0 2
Neu Wawi 1.11. Amazon Rechnungen (extern) in der Kundenansicht verschwunden ?! User helfen Usern - Fragen zu JTL-Wawi 2
Neu Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu Eigener Export - Kunden individuelle Preise + verfügbarer Bestand + VK netto der Kundengruppe User helfen Usern - Fragen zu JTL-Wawi 6
Neu Rechnungen zeigen Paypal Text an, obwohl er in der Vorlage nicht ausgewählt ist JTL-Wawi 2.0 3
Updatezwang beim öffnen der WAWI JTL-Wawi 1.6 13
Neu Produktionsaufträge tauchen nicht in der Workbench auf JTL-Plan&Produce - Fehler und Bugs 2
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
Neu Paypal 2.2.1; Fehler "Der Zahlungsanbieter hat eine Anmeldung gefordert" Plugins für JTL-Shop 0
Neu Sortierung der Variationswerte funktioniert nicht mehr Shopify-Connector 5
Neu Wert aus „Eigenes Feld“ eines Artikels im Lieferschein unter der Artikelbezeichnung anzeigen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Rabatte aus dem JTL-Shop werden in der Wawi nur als Netto-Preis übernommen, Rabatt % gehen verloren Onlineshop-Anbindung 0
Freie Felder in der Artikelliste anzeigen JTL-Wawi 2.0 3
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Erstellung der Sitemap bei WaWi Abgleich funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Unterschiedliche Abnahmeintervalle von Variationskombinationen in der Warenkorbmatrix Templates für JTL-Shop 0
Neu Betrag auf der Rechnung nach Rechnungskorrektur User helfen Usern - Fragen zu JTL-Wawi 1
Neu PDF Anhänge in der Bestellbestätigung anhängen missglückt JTL-Shop - Fehler und Bugs 1
Neu Anzahl der URLs in der Sitemap ändern Allgemeine Fragen zu JTL-Shop 3
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0
Neu ⚠️📦 ACHTUNG: Abkündigung der DHL-Schnittstelle zum 15.06.2026 News, Events und Umfragen 0
Neu Telemetrie-Datenerfassung in JTL-Shop 5.7.0: Bitte um Klarstellung der DSGVO-relevanten Aspekte Allgemeine Fragen zu JTL-Shop 5
Frage zur Speicherung der Produktbilder JTL-Wawi 1.11 1
Neu Der Inhalt / Text ist verschwunden – ist das ein Fehler JTL-Shop - Fehler und Bugs 0
Plattformabgleich Shop löschen - Wo ist das in der MySQL DB? JTL-Wawi 2.0 4
Anzeige der Variantenartikel JTL-Wawi 1.11 0
Neu Workflows speichern z.B. Rechnungen nicht mehr seid der 2.01 User helfen Usern - Fragen zu JTL-Wawi 1
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 94
Neu Komma aus Produktbezeichnung soll als Bindestrich in der URL sein Allgemeine Fragen zu JTL-Shop 1
Retouren - Bearbeitung der Adressdaten JTL-Wawi 2.0 4
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu Lieferadresse in PayPal-Transaktion weicht von der in der Wawi ab Plugins für JTL-Shop 0
Häufiges Aufhängen - vermutlich Probleme mit der Datenbank JTL-Wawi 2.0 13
Neu Wichtige Info: Abkündigung der DHL-Schnittstelle zum 31.05.2026 News, Events und Umfragen 0
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
2.0.0: Aufruf der Plattform - Logbücher führt zu Crash der Wawi JTL-Wawi 2.0 0
Neu Falsche Berechnung der Kassen im Kundencenter - Multikasse noch aktiv Smalltalk 0
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12
Neu Platz der Sidebar nutzen JTL-Shop - Ideen, Lob und Kritik 0
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6

Ähnliche Themen