Import Kunden in JTL Shop 5 aus JTL Shop 4

JtLerle

Aktives Mitglied
27. Juni 2019
4
0
Wir wollten unseren alten JTL Shop 4 auslaufen lassen, und paralell dazu haben wir einen neuen JTL Shop 5 angelegt. Dieser ist jetzt soweit fertig und soll live gehen. Wir dachten wir können die Kunden per WAWI in den neuen Shop übernehmen, das scheint aber nur einzeln zu gehen und ist für >2000 Kunden wenig angenehm. Die Datenbank tkunde zu exportieren geht auch nicht richtig, weil cNachnahme cFirma cStraße und Zusatz verschlüsselt sind. Welches Verfahren wird hier benutzt, kann man dies in einer Excel oder mit einem Decoder entschlüssen? (den alten Blowfish Key haben wir natürch noch und auch für den neuen Shop übernommen). Was wäre die Beste vorgehensweise?

Ideal wäre natürlich alle Kunden aus dem alten Shop mit deren Passwort zu übernommen, so dass sie sich direkt wieder einloggen können.

Vielen Dank für Eure Hilfe :)
 

JtLerle

Aktives Mitglied
27. Juni 2019
4
0
Ich hab jetzt einfach die Tabelle tkunde aus der alten DB genommen und in die neue imporitert auf SQL Ebene, das scheint geklappt zu haben, sehe keine Seiteneffekte. Oder spricht da etwas dagegen?
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
638
208
Danke, dass hatte ich zu Beginn versucht, das PW wird auch richtig importiert, Nachname etc leider nicht, da steht dann der verschlüsselte Hash als String in der Datenbank ... und die Person heisst mit Nachnamen und Straße xwqdqw76d782678d2d7821d2d21
Moin,
es liegt evtl. daran, dass der BLOWFISH_KEY vom alten Shop nicht übernommen wurde
(findest Du in config.JTL-Shop.ini.php), dann werden evtl. auch die Kunden falsch angezeigt.
 

DominikQB

Aktives Mitglied
2. Oktober 2019
2
0
Moin moin,
ich hab gerade das selbe Problem....
Der BLOWFISH_KEY ist aber angepasst. Trotzdem werden Nachname und Straße kryptisch angezeigt.
Vielleicht hat einer von euch eine Idee. Vielen Dank schonmal....
 

JtLerle

Aktives Mitglied
27. Juni 2019
4
0
Moin moin,
ich hab gerade das selbe Problem....
Der BLOWFISH_KEY ist aber angepasst. Trotzdem werden Nachname und Straße kryptisch angezeigt.
Vielleicht hat einer von euch eine Idee. Vielen Dank schonmal....
Genau, der Import über das CSV Tool im Backend klappte bei mir in keiner Konstellation, ich musste die Tabelle von Hand per SQL importieren, pass aber auf wenn du das machst weil die JTL 4 DB ist in latin codiert. Die neue hat ein anderes Format, wenn du das "automatisch" konvertierst zerhaut es dir alle Umlaute und Sonderzeichen wie "ß". Ich habe am Ende dann aus der WAWI doch alle Kunden mit Sonderzeichen nochmal an den Shop übertragen müssen :(
 

maxmuc

Aktives Mitglied
13. Dezember 2021
33
10
Gibt es hier seitens JTL inzwischen eine Lösung? Werden ja nicht die letzten sein, die versuchen die JTL-4 Kunden in JTL 5 zu importieren...
 

maxmuc

Aktives Mitglied
13. Dezember 2021
33
10
Der Updater des Shops muss es ja eigentlich können.... Vielleicht finde ich da etwas im Code.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.638
1.583
Berlin
Der vernünftigste Weg ist, die Kundendaten mit einem Script, zu exportieren und dann auch über ein Script im neuem Shop zu Importieren,
Oder man updated den alten 4er Shop und übernimmt dann die Tabelle und den Blowfishkey aus diesem Shop.

Es sollte aber schon darauf geachtet werden was mit eventuellen kundengruppenpreisen oder Kupons bzw. Attributen ist.
 

maxmuc

Aktives Mitglied
13. Dezember 2021
33
10
Also ich habe jetzt mal etwas quick and dirty etwas gebastelt. Kommentare teilweise dt. und englisch, weil aus alten Skripten zusammenkopiert.
Die CSV-Datei kann so im JTL5 Shop eingelesen werden. Attribute aus anderen Tabellen als tkunde werden nicht betrachtet. KundenIDs werden mit der Methode neu vergeben. Ich weiß nicht, ob das Probleme mit der JTL-Wawi gibt, wenn der Kunde im alten Shop schon unter anderer ID vorhanden war.

Hoffe es hilft jemandem.
Script muss in einem Unterverzeichnis des JTL4! shops liegen, um unangepasst zu funktionieren. Verzeichnis htaccess protecten!

PHP:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once('../includes/libs/xtea/xtea.class.php');
require_once('../includes/config.JTL-Shop.ini.php');

//Encrypted Fields
//Info: Passwort ist MD5-Encrypted und wird nach erstem Login in JTL5 in anderen Hash konvertiert
$encryptedFields = array(
    "cNachname",
    "cFirma",
    "cZusatz",
    "cStrasse",
);

$csvFile = fopen("tkunden.csv","w+");
$csvDataArray = array();

/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
 
// Check connection
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
// Print host information
echo "Connect Successfully. Host info: " . $mysqli->host_info;

// Query (Abweichung bei Newsletterfeld sonst = CSV)
$sql = "SELECT `cPasswort`,`cAnrede`,`cTitel`,`cVorname`,`cNachname`,`cFirma`,`cStrasse`,`cHausnummer`,`cAdressZusatz`,`cPLZ`,`cOrt`,`cBundesland`,`cLand`,`cTel`,`cMobil`,`cFax`,`cMail`,`cUSTID`,`cWWW`,`fGuthaben`,`nRegistriert`,`dGeburtstag`,`fRabatt`,`cHerkunft`,`dErstellt`,`cAktiv`,`cKundenNr`,`cZusatz` FROM `tkunde`";
//$sql .= " WHERE kKunde = '307'"; //Optionale Einschränkung für Tests
if($result = $mysqli->query($sql)){
    if($result->num_rows > 0){
        //Ausgabe CSV Header
        $csvDataArray[] = array("cPasswort","cAnrede","cTitel","cVorname","cNachname","cFirma","cStrasse","cHausnummer","cAdressZusatz","cPLZ","cOrt","cBundesland","cLand","cTel","cMobil","cFax","cMail","cUSTID","cWWW","fGuthaben","cNewsletter","dGeburtstag","fRabatt","cHerkunft","dErstellt","cAktiv","cKundenNr","cZusatz");

        //Field Info
        $fieldInfo = $result->fetch_fields();
        //print_r($fieldInfo);

        while($row = $result->fetch_array()){
            //CSV-Ausgabe
            $tempArray = array();
            for($i=0; $i < $result->field_count; $i++)  {
                //Datum mit 0000-00-00 bereinigen
                if( $row[$i] == "0000-00-00" )   {
                    //Leeres Feld statt 0000..
                    array_push($tempArray, '');
                    continue;
                }

                if( in_array($fieldInfo[$i]->name, $encryptedFields) )
                    {
                        //Verschlüsseltes Feld
                        array_push($tempArray, Jtl4ToJtl5DB($row[$i], TRUE));
                    }
                else
                    {
                        //Unverschlüsseltes Feld
                        array_push($tempArray, Jtl4ToJtl5DB($row[$i]));
                    }
                
            }
            $csvDataArray[] = $tempArray;
        }

        // Free result set
        $result->free();
    } else{
        echo "No records matching your query were found.";
    }
} else{
    echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
 

//CSV erzeugen
print_r($csvDataArray);
foreach ($csvDataArray as $row) {
    fputcsv($csvFile, $row, ";","\"");
}
fclose($csvFile);

// Close connection
$mysqli->close();

function Jtl4ToJtl5DB($dbvalue, $enrcypted = 0) {
    if($enrcypted)   {
        return utf8_encode(entschluesselXTEA($dbvalue));
    }
    //return utf8_encode($dbvalue);
    return $dbvalue;
    
}


/**
 * @param string $cText
 * @return string
 */
function entschluesselXTEA($cText)
{
    if (strlen($cText) > 0) {
        $oXTEA = new XTEA(BLOWFISH_KEY);

        return $oXTEA->decrypt($cText);
    }

    return $cText;
}


/**
 * @param string $cText
 * @return string
 */
function verschluesselXTEA($cText)
{
    if (strlen($cText) > 0) {
        $oXTEA = new XTEA(BLOWFISH_KEY);

        return $oXTEA->encrypt($cText);
    }

    return $cText;
}
?>
 

Metwabe1

Aktives Mitglied
17. Januar 2022
25
0
Hi an Alle, bin sehr an dem Script interessiert. Sorry wenn ich dann so doof frage aber welche Anpassungen muss ich noch machen damit ich auch die gewünschte Entschlüsselung erhalte. Er gibt mir leider eine Fehlermeldung aus.

PHP:
Warning: require_once(w00ea1da/jtl-shop/includes/libs/xtea/xtea.class.php): failed to open stream: No such file or directory in /www/htdocs/w00ea1da/jtl-shop/run.php on line 7

Fatal error
: require_once(): Failed opening required 'w00ea1da/jtl-shop/includes/libs/xtea/xtea.class.php' (include_path='.:/usr/share/php:..') in /www/htdocs/w00ea1da/jtl-shop/run.php on line 7
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu Umlagerung per Ameisen-Import JTL-Wawi - Fehler und Bugs 1
Neu JTL 1.8.12.0 - Artikelattribut für Shop importieren - Format CSV-Datei / Hilfe bei Import von individuellen Attributen für JTL-Shop (googlekat) JTL-Ameise - Ideen, Lob und Kritik 1
Ameisen Import von Aufträgen: Zahlungsziel in Tagen immer 0 JTL-Wawi 1.8 1
Neu Automatisierter Import Händler-CSV, Problem mit unterschiedlichen Artikeln bei gleicher EAN Schnittstellen Import / Export 7
Automatisches MHD bei Import JTL-Wawi 1.8 1
Neu Import von sonderpreisen JTL-Ameise - Fehler und Bugs 1
Neu ebay Import ohne Variantenbilder eBay-Anbindung - Fehler und Bugs 0
Beschreibung wird beim Import fehlerhaft übernommen JTL-Wawi 1.8 0
Neu Ameise - Logikfrage zum Import von Artikeln mit und ohne Varkombis gemäß Guide User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Ameise Import von Meta-Descriptions Schnittstellen Import / Export 6
Neu Nach Import von Kundendaten aus SW5 Umleitung nach Login und weiße Seite JTL-Shop - Fehler und Bugs 5
Neu Bitte um Hilfe beim Export/Import von Attributen JTL Ameise - Eigene Exporte 0
Neu Zahlungsart beim Import ändern User helfen Usern - Fragen zu JTL-Wawi 0
Neu Mindestabnahme / Abnahmeintervall Import mittels Ameise User helfen Usern - Fragen zu JTL-Wawi 1
Neu Export & Import Lagerplätze JTL Ameise - Eigene Exporte 7
Neu Shopdaten import funktioniert nicht Shopware-Connector 2
Neu Import von Blogseiten undLandingpages von Magento Umstieg auf JTL-Shop 3
Neu CiN TrackID-Import Plugin User helfen Usern - Fragen zu JTL-Wawi 12
Label per Import bedienen JTL-Wawi 1.8 0
Neu Auftrag aus Woocommerce Import zeigt im Druck "Zahlungsziel beträgt 150 Tage ab Rechnungsdatum" User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ameise Import manuell ausgeführt funktioniert, der gleiche Import über Batch Planung gestartet hat Fehler JTL-Ameise - Fehler und Bugs 2
Neu Kunden aus Wawi nicht auffindbar JTL-POS - Fehler und Bugs 4
Debitorennummern für bestehende und neue Kunden anlegen JTL-Wawi 1.8 2
Neu PayPal Checkout: Kunden verwirrt wegen Zahlungsart Name Plugins für JTL-Shop 0
In Diskussion Kunden-Sammelkarte JTL-POS - Ideen, Lob und Kritik 1
Neu Ansprechpartner mit mehreren E-Mails Adressen in den Kunden User helfen Usern - Fragen zu JTL-Wawi 1
Neu Lieferscheine digital unterschreiben und automatisch an Kunden senden Eigene Übersichten in der JTL-Wawi 0
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Neu Ist es möglich per Ameise Kunden zu löschen? Arbeitsabläufe in JTL-Wawi 2
Neu Benutzerrechte bei Kunden einsicht User helfen Usern - Fragen zu JTL-Wawi 1
Neu Download-Arikel werden im Backend des Kunden nicht angezeigt JTL-Shop - Fehler und Bugs 1
Neu Bilder unter "Mehr dieser Waregruppe" und "Kunden, die diesen Artikel gekauft haben, kauften auch" fehlen eBay-Designvorlagen - Fehler und Bugs 0
GLN-Nummer beim Kunden hinterlegen JTL-Wawi 1.8 3
In Bearbeitung Datev-Export - Kunden oder Debitorennummer statt Sammelkonto Allgemeine Fragen zu JTL-POS 3
Neu Berechtigung auf Kunden setzen? Starten mit JTL: Projektabwicklung & Migration 5
Neu Wunschzettel von Kunden einsehen - Angebot erstellen Allgemeine Fragen zu JTL-Shop 1
Neu Alle Kunden auf einmal übertragen Onlineshop-Anbindung 1
Neu keine Zahlung vom Kunden -- Auftrag stornieren oder löschen? Gelöste Themen in diesem Bereich 3
Neu Amazon -> EU-Lieferung mit UstID vom Kunden Amazon-Anbindung - Fehler und Bugs 0
Kunden Kontakt - EBay Nachrichten. JTL-Wawi App 0
Dropshipping-Auftrag und Lieferschein geht an Kunden JTL-Wawi 1.8 6
Artikel mit verschiedenen Kunden-Artikelnummern anlegen JTL-Wawi 1.7 2
Statistik über ALLE Kunden mit Umsatz JTL-Wawi 1.6 1
Verschiedene Rabatte für einen Kunden anlegen JTL-Wawi 1.8 2
JTL Mahnwesen Workflow- Email nach 30 Tagen noch nicht bezahlt. JTL-Wawi 1.8 0
Neu Best Pratices Shopware - JTL - Buchhaltung User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL Ameise Extrem Langsam im Export JTL-Ameise - Fehler und Bugs 8
Wichtig 👉 Wichtiger Hinweis: JTL-eazyAuction Server Downtime am Dienstag, 02.04.2024 News, Events und Umfragen 0
Neu Wechsel WAWI Hosting von JTL mit RDP auf ecomDATA User helfen Usern - Fragen zu JTL-Wawi 2
JTL Worker Manueller Abgleich nicht möglich trotz deaktivierem Worker 2.0 JTL-Wawi 1.8 4

Ähnliche Themen