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
1.204
452
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
8.623
2.684
Berlin
Firma
css-umsetzung
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 Biete: REPMOD — Lieferantendaten (BMECat, CSV, Preislisten) automatisch als fertiger JTL-Ameise-Import Dienstleistung, Jobs und Ähnliches 6
Neu Import - Artikelname aus WAWI übernehmen Shopware-Connector 0
OBI Bestellungen Import seit 24.06.26 fehlerhaft JTL-Wawi 2.0 1
JTL Update auf 1.9 , danach Import Kundenspezifrische Preise velerhaft JTL-Wawi 1.9 0
Problem beim Import über Ameise/eBay JTL-Wawi 1.11 1
Import von Aufträgen via tXMLBestellImport Tabelle seit Update sehr träge/langsam JTL-Wawi 1.11 3
Neu Identische Aufträge bei mehreren Fulfillment-Kunden sinnvoll trennen? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 4
Wichtig JTL-ShippingLabels 1.0: Support-Ende GLS/DPD und Migration von JTL-Start-Kunden nach dem 30. September News, Events und Umfragen 14
Lexware Office von Kunden meldet Arithmetik Fehler in Zugferd 2 XRechnung JTL-Wawi 1.11 9
Neu Abschaltung Bewertungserinnerung für spezifische Kunden Allgemeine Fragen zu JTL-Shop 0
Neu Kundengruppen-Konsolidierung: Onlineshop-Kundengruppe bestehender Kunden in Masse ändern User helfen Usern - Fragen zu JTL-Wawi 3
Neu DSVGO konform 1000 Kunden in WaWi und Shop löschen! User helfen Usern - Fragen zu JTL-Wawi 4
Neu Eigener Export - Kunden individuelle Preise + verfügbarer Bestand + VK netto der Kundengruppe User helfen Usern - Fragen zu JTL-Wawi 6
Neu Lässt sich irgendwie nachvollziehen welcher Bearbeiter einen Kunden freigeschaltet hat? User helfen Usern - Fragen zu JTL-Wawi 4
Test-Kunden als solche in JTL markieren, um die Auswertungen sauber zu halten? JTL-Wawi 1.11 1
JTL nach Update auf 2.0.3 im Bereich „Kunden“ extrem langsam JTL-Wawi 2.0 2
Neu JTL-Shop 5.8 - Aktuell 5.8.0 Releaseforum 0
Neu Biete: KI-gestützte Produktdatenoptimierung für JTL-Wawi (Zero-Touch, mit Faktencheck) Dienstleistung, Jobs und Ähnliches 2
Neu Suche Setup-Datei / Installer für JTL-Wawi 1.6 (1.6.48.0) JTL-Wawi 1.6 1
Neu Shopify Zahlungsarten in JTL Wawi mappen – Jemand eine Lösung? Shopify-Connector 0
Neu Selektieren aller Artikel, bei denen NICHT 'Preis aus Registerkarte JTL Wawi" eingestellt ist? User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL-POS 2.0.0.4 – TSE-Signaturexport führt reproduzierbar zum Absturz JTL-POS - Fehler und Bugs 2
Neu Erfahrungen mit DHL Paket International Premium Tarife in der JTL-Shipping-Cloud ? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Wichtig GLS auf JTL Shipping 2.0 — Webinar am 17. September (Live-Walkthrough & Migration) News, Events und Umfragen 0
Neu JTL-POS DATEV-Export – Kassendifferenz nicht nur bei Mehrzweckgutscheinen JTL-POS - Fehler und Bugs 2
Neu Google Shopping ... seit JTL Wawi 2.0.6 steigende Zahl nicht genehmigte Produkte (Attribut „Preis“ [[price]]) User helfen Usern - Fragen zu JTL-Wawi 5
Neu JTL-POS DATEV-Export – Kassendifferenz bei Mehrzweckgutscheinen Allgemeine Fragen zu JTL-POS 0
Neu Plugin: Infinite Scroll / „Mehr laden“ für JTL-Shop 5 – einmalige Lizenz, kein Abo Plugins für JTL-Shop 0
Neu JTL-Shop 5.5 – „Rechnung nicht beilegen“ per Workflow anhand der Auftragsposition erkennen User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL-POS 2.0.0.3 - Barcodeschema lässt sich nicht speichern / alte sind weg JTL-POS - Fehler und Bugs 9
Neu JTL POS Crasht bei Druckerauswahl JTL-POS - Fehler und Bugs 13
JTL API 2.0 Verbinden - HILFE GESUCHT JTL-Wawi 2.0 11
Neu JTL-POS 2.0.0.2 Absturz nach Tagesabschluss JTL-POS - Fehler und Bugs 5
Neu JTL POS App Speicherverbrauch hoch, obwohl Datensicherung klein JTL-POS - Fehler und Bugs 8
Neu Seit heute früh kein Start von JTL-Wawi möglich - Datenbank nicht erreichbar User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie verarbeitet ihr B2B-Bestellungen aus E-Mail oder PDF in JTL-Wawi? Arbeitsabläufe in JTL-Wawi 16
Neu Fehler beim öffnen von JTL Hub JTL-ShippingLabels - Fehler und Bugs 2
Neu JTL-Wawi 2.0.6: eBay-Rahmenbedingungen bei bestehenden Angeboten/Vorlagen nicht mehr änderbar eBay-Anbindung - Fehler und Bugs 11
Neu Shipping 2.0 ist ein Grund für kleine Shops JTL zu verlassen bzw. gar nicht erst mit JTL anzufangen JTL-ShippingLabels - Ideen, Lob und Kritik 33
Neu guide.jtl-software.com seit mehreren Stunden nicht erreichbar JTL-Wawi - Fehler und Bugs 1
Neu Welche JTL-Shop Plugins oder Funktionen fehlen euch noch? – menuBuilder aktuell in Entwicklung Plugins für JTL-Shop 6
Neu Neuer JTL-Shop lässt sich nicht öffnen Installation / Updates von JTL-Shop 2
Neu Shopify-Connector auf neues JTL-Kundenkonto umstellen – App bleibt altem Konto zugeordnet Shopify-Connector 4
Neu 💚 Plugin: DZM Bonus Plus - das Treueprogramm für deinen JTL-Shop Plugins für JTL-Shop 12
Neu JTL-Ameise - Neue / aktualisierte Lieferadresse als Standard setzen User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL-Ameise - Neue / aktualisierte Lieferadresse als Standard setzen User helfen Usern 0
Neu Klarna (1.2.14) und JTL (5.7.2) nicht kompatibel Technische Fragen zu Plugins und Templates 0
Neu Amazon VCS-Lite – Fehlende Rechnungen nachträglich hochladen (JTL-Wawi 1.11.11)? Amazon-Anbindung - Fehler und Bugs 4
Neu 🔥 𝐍𝐮𝐫 𝟓× verfügbar 𝟓𝟎% 𝐑𝐚𝐛𝐚𝐭𝐭 auf dein Besucherticket für die kommende JTL-Connect am 02.10.2026 in Köln Dienstleistung, Jobs und Ähnliches 0
Neu Synchronisation Produkte Shopify > JTL Shopify-Connector 2

Ähnliche Themen