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
779
280
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
7.252
1.977
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 Rundungen nach Shop-Import - 3. und 4. Nachkommestellen entfernen? WooCommerce-Connector 0
Neu Hersteller Import vs Export JTL-Ameise - Fehler und Bugs 3
Neu Die Ameise ignoriert hinterlegte Lieferantenstaffelpreise beim Import von Lieferantenbestellungen. JTL-ShippingLabels - Fehler und Bugs 0
Neu Attribut Import Problem JTL-Ameise - Fehler und Bugs 10
Neu Tabellen (.csv) vor Ameise-Import automatisch ändern Schnittstellen Import / Export 25
Neu Ameise (Import) - Feld "Otto.de: Artikelname" User helfen Usern - Fragen zu JTL-Wawi 2
Neu Packtisch+ wartet nicht auf TrackingID Import Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 6
Neu Import von Lieferantenbeständen funktioniert nicht User helfen Usern - Fragen zu JTL-Wawi 8
Neu Gibt es einen Import von Artikeltexten die pro Artikel als .txt geliefert werden? JTL-Ameise - Ideen, Lob und Kritik 1
Neu Wie kann ich Artikel mit Lagerbestand 0 beim Import inaktiv setzen) JTL-Ameise - Ideen, Lob und Kritik 17
Neu DATEV Rechnungsdatenservice 2.0 - Missing scope 'datev:file:import' Schnittstellen Import / Export 14
Neu SEO Weiterleitung Import klappt nicht, seltsame Sonderzeichen ;;;;; JTL-Shop - Fehler und Bugs 1
Neu Probleme mit Größenreihenfolge beim CSV-Import User helfen Usern - Fragen zu JTL-Wawi 2
Neu Kategorisierung bei CSV-Import – Hilfe benötigt** User helfen Usern - Fragen zu JTL-Wawi 3
Kategorisierung bei CSV-Import – Hilfe benötigt** JTL-Wawi 1.8 2
Gelöst JTL-POS Datensicherung - Export/Import von Datensätzen Allgemeine Fragen zu JTL-POS 2
Neu Artikelnummern werden beim Import ersetzt Shopify-Connector 0
DHL Sendungsnummer an Kunden JTL-Wawi 1.8 4
Neu Kunden bekommen fremde Kundendaten angezeigt JTL-Shop - Fehler und Bugs 2
Neu Aus Angebot direkt Auftrag an Kunden mailen JTL-Wawi - Ideen, Lob und Kritik 1
Neu Änderungen am Zahlungsabgleich für DKB-Kunden (FinTS) ab 24.11.2024 News, Events und Umfragen 0
Neu Ab Preise Darstellung als netto bei Kunden mit UID Allgemeine Fragen zu JTL-Shop 5
Neu JTL Shop berechnet dem Kunden Ust. trotz IGL und gültiger Ust.ID JTL-Shop - Fehler und Bugs 5
Neu Closest Droppoint: Wie im Shop dem Kunden anbieten? JTL-ShippingLabels - Fehler und Bugs 4
Neu JTL WMS / WaWi / Retouren - Kundeneigentum an Kunden schicken Arbeitsabläufe in JTL-Wawi 4
Neu Bestellungen und Kunden werden nicht importiert JTL-Shop - Fehler und Bugs 10
Wertstoffe von Kunden ankaufen JTL-Wawi 1.9 5
JTL Vouchers automatisch nach Zahlungseingang an Kunden versenden Allgemeine Fragen zu JTL-Vouchers 5
Rechnungen an Ebay und Amazon Kunden immer digital zusenden JTL-Wawi 1.9 0
Rabatt für einzelnen Kunden einrichten JTL-Wawi 1.9 2
Neu Kunden in UK - was ist der sinnvollste Weg? Business Jungle 8
Neu JTL Connector - Shopify Abgleich. Bestellbestätigungsemails werden die ganze Zeit dem Kunden gemailt. Shopware-Connector 2
Neu Artikel CSV Exporte dem Kunden zur verfügung stellen. Allgemeine Fragen zu JTL-Shop 7
Neu Bestimmte Kunden/Kundengruppen von Bewertungsmail ausschließen Betrieb / Pflege von JTL-Shop 3
Neu Amazon Custom Orders mit Bildern von Kunden Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Export von Kunden, die in der Vergangenheit bereits bestimmte Artikel gekauft haben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 10
Neu Workflow Adresse prüfen auf deutsche Kunden eingrenzen Gelöste Themen in diesem Bereich 6
JTL Shipping: Artikelgewicht und Zusatzgewicht aus der Versandeinstellung wird nicht addiert JTL-Wawi 1.9 0
Neu JTL Shop 5.3.x HTML Portlet gesucht / Tag Stripping im Rich Text Portlet deaktivieren Allgemeine Fragen zu JTL-Shop 4
Neu Bericht / Status E-Mails aus dem JTL Shop Allgemeine Fragen zu JTL-Shop 1
Neu PHP - MySQL Konfiguration am Server für JTL Shop 5 Allgemeine Fragen zu JTL-Shop 0
Otto-Anbindung über JTL Wawi und Produkt-Upload JTL-Wawi 1.9 0
Neu Neues Zusatzfeld-Set für Shopware 6 in JTL erstellen (nicht nur custom_jtl) Shopware-Connector 0
Plugin: JTL Exportformat Google Shopping - Mindermengenzuschlag Einrichtung JTL-Shop5 0
Ebay JTL-Wawi "Hersteller" + "Verantwortliche Person" auf mehrere Artikel übertragen GPSR JTL-Wawi 1.9 4
Neu Nach Update auf JTL GPSR-Plugin 1.0.3 vom Backend ausgeschlossen Plugins für JTL-Shop 24
Neu JTL Worker führt den Workflow nicht aus User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Connector erzeugt auf diversen Seiten wie etwa dem Warenkorb einen Bad Gateway 502 nach Update zu Woocommerce Version 9.4.3 WooCommerce-Connector 0
Neu JTL Edition "Advanced" und Auftragspakete von JTL Start buchbar? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Kann man in JTL-Wawi die Versandkosten basierend auf der Entfernung automatisch berechnen? JTL-ShippingLabels - Fehler und Bugs 1

Ähnliche Themen