-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
Neu Gelöst - Keine Label & Worker startet nicht JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu [GELÖST] OnePage Composer funktioiert nicht mehr JTL-Shop - Fehler und Bugs 11
Neu [gelöst] JTL Wawi REST API -> Menüpunkt App-Registrierungen fehlt User helfen Usern - Fragen zu JTL-Wawi 2
Neu [Gelöst][shop 5.4.1] Newsletter Abmeldung "Fatal error: Uncaught Error: Typed property JTL\Optin\OptinRefData::$optinClass must" JTL-Shop - Fehler und Bugs 1
Beantwortet (gelöst) Fehler Shopify Abgleich - Bestellungen werden plötzlich nicht mehr importiert / Artikel wahrscheinlich auch nicht aktualisiert Shopify-Connector 2
Neu Sendungsverfolgungsnummern werden nur teilweise übertragen JTL-Wawi - Fehler und Bugs 1
Rechnungen werden nicht zu Amazon übertragen Amazon-Anbindung - Fehler und Bugs 3
Neu DATEV Rechnungsdatenservice Otto, Rechnungen werden nicht übertragen Schnittstellen Import / Export 0
Kaufland AT Aufträge kommen werden nicht übertragen. kaufland.de - Anbindung (SCX) 7
Neu Zustandsbeschreibung wird beim auflisten von Produkten nicht übertragen Amazon-Anbindung - Fehler und Bugs 1
Neu Kundendaten inkl Login Daten auf neuen Shop übertragen inkl Blowfish Key. Fehlerhafte Adressen etc mit Sonderzeichen etc Allgemeine Fragen zu JTL-Shop 1
Neu JTL FFN - wie ändert ihr einen Auftrag, nachdem er von Plenty in JTL FFN übertragen wurde? Schnittstellen Import / Export 0
Neu Umsatzsteuerfreie Shopify-Bestellungen an JTL-Wawi übertragen – wie macht ihr das? Shopify-Connector 1
Versandgruppe wird nicht sauber übertragen kaufland.de - Anbindung (SCX) 0
Zahlungsart Guthaben in die WaWi übertragen JTL-Wawi 1.10 5
Neu Kunden auf WAWI in Shop übertragen Allgemeine Fragen zu JTL-Shop 12
Neu JTL-Connector: Wie kann man Bestände nur von einem Lager (WMS) übertragen? WooCommerce-Connector 3
Hinweis beim Übertragen von Artikeldaten kann nicht deaktiviert werden JTL-Wawi 1.9 0
Neu Steuerinformationen Norwegen werden nicht vollständig übertragen eBay-Designvorlagen - Fehler und Bugs 0
OTTO - Testbestellung wird nicht zu JTL übertragen Otto.de - Anbindung (SCX) 1
Neu FFN Retour-Sendungsnummer wird nicht übertragen User helfen Usern - Fragen zu JTL-Wawi 0
Neu SW 6, Produktname soll nicht übertragen werden Shopware-Connector 0
Neu Zusatzfelder aus Shopware 6 an WAWI übertragen Shopware-Connector 0
Neu Bilder werden nicht übertragen Shopify-Connector 0
Neu fehlende Bestellungen erneut übertragen Shopware-Connector 9
Zusatzgewicht wird nicht an österr. Post übertragen JTL-Wawi 1.9 4
Neu Individuelle Preise ans Kassensystem übertragen – wie geht das? HILFE DRINGEND Allgemeine Fragen zu JTL-POS 0
Neu JTL WAWI 1.9.8.0 - Manuell eingegebene Trackingnummern werden nicht mehr übertragen JTL-ShippingLabels - Fehler und Bugs 1
Neu Rechnungs- und Lieferadresse werden nicht in die WAWI übertragen JTL-Shop - Fehler und Bugs 1
Neu Sendungsnummern an Shopify werden nicht mehr übertragen Shopify-Connector 7
Externe Auftragsnummer in der Rechnung ausweisen JTL-Wawi 1.10 1
Neu Wie bringe ich die Anzeige der Lieferzeit in alle Artikelseiten? Allgemeine Fragen zu JTL-Shop 5
Neu Automatische Öffnung der Kassenlade nach dem Tagesabschluss (Z-Bericht) verhindern Allgemeine Fragen zu JTL-POS 0
Neu Automatische Öffnung der Kassenlade nach dem Tagesabschluss (Z-Bericht) verhindern Allgemeine Fragen zu JTL-Shop 0
Neu Einstellen von Variationen ohne Aufpreis (+) Angabe in der Variationsauswahl Allgemeine Fragen zu JTL-Shop 0
Neu Leider funktioniert der Support im Forum nicht so, wie es eigentlich sein soll. JTL-Wawi - Fehler und Bugs 15
Neu Artikelreservierung auf Druckvorlage der Pickliste (Laufwege) Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Importieren von Artikelmerkmalen mit der Ameise JTL-Ameise - Ideen, Lob und Kritik 1
Neu Worker 2.0 - automatische Picklistenerstellung - bitte nur während der Bürozeiten JTL-Wawi - Ideen, Lob und Kritik 4
Neu Variable für die Anzahl eines Produkts auf der Pickliste JTL-Workflows - Ideen, Lob und Kritik 1
Neu Massive Probleme mit JTL-Connector zu Shopify – lohnt sich der Einsatz überhaupt? Shopify-Connector 6
Neu Artikelsuche in der Auftragsübersicht Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Amazon vergibt Rabatte an Kunde und Kunde fehlt der Beleg bzw. Rechnung zu hoch Amazon-Anbindung - Fehler und Bugs 0
Neu Rundungsfehler in der Rechnung JTL-Wawi - Fehler und Bugs 20
Neu Kündigen der Shop-Anbindung nicht möglich Onlineshop-Anbindung 1
Im Sonderpreise fehlt der Register Kasse JTL-Wawi 1.10 2
Neu Probleme beim Anhängen der .mdf Datei User helfen Usern - Fragen zu JTL-Wawi 3
Bedeutung der Farben (Grün/Orange) in der Auftragsmaske + Frage zum Fehlbestand JTL-Wawi 1.10 4
Schnellbearbeitung der Preise irgendwie möglich? JTL-Wawi 1.8 1
Produkt soll nicht auf der Pickliste erscheinen JTL-Wawi 1.9 1

Ähnliche Themen