Benutzer import

Thema wurde von mastavit, 16. März 2023 erstellt.

  1. mastavit
    mastavit Aktives Mitglied
    Registriert seit:
    7. Dezember 2022
    Beiträge:
    31
    Danke erhalten:
    1
    Danke vergeben:
    11
    Hallo zusammen,

    wir haben eine Liste (.csv) mit Benutzerdaten aus einem anderem Shopsystem. Wir möchten gerne deren Login (Mailadresse) und sowas wie Straße, Ort etc. importieren.
    Wie können wir dieses vornehmen? Oder gibt es nur die Möglichkeit das die Benutzer sich komplett neu registrieren?
     
  2. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    korrekt.
    Es gibt keinen CSV-Import für Kundendaten.
    Ob man die per API importieren kann, weiß ich aber nicht.
     
  3. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    Kann man nur über die Datenbank machen.
     
  4. mastavit
    mastavit Aktives Mitglied
    Registriert seit:
    7. Dezember 2022
    Beiträge:
    31
    Danke erhalten:
    1
    Danke vergeben:
    11
    Wie müssten wir da vorgehen?
     
  5. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    Das ist Handarbeit. Quelldaten und Zielsystem analysieren, Daten aufbereiten und einfügen.
     
  6. DKG - Die Kleine Geschenkidee (Peter)
    Registriert seit:
    2. Oktober 2017
    Beiträge:
    345
    Danke erhalten:
    200
    Danke vergeben:
    125
    Ich empfehle da einen professionellen Programmierer ranzulassen,
    welcher sich optimalerweise auch bereits mit gambio auskennt.
    Für den Import in die Datenbank sind nämlich viele Dinge zu beachten,
    u.a. das die Kundenadressen im Adressbuch liegen und die ID der Standardadresse des Kunden dann
    entsprechend korrekt in der Kundentabelle hinterlegt ist usw.
    Das muss mit Sinn und Verstand gemacht werden.

    LG + viel Erfolg
    Peter
     
  7. DKG - Die Kleine Geschenkidee (Peter)
    Registriert seit:
    2. Oktober 2017
    Beiträge:
    345
    Danke erhalten:
    200
    Danke vergeben:
    125
    @mastavit

    Habt ihr das alte Shopsystem und die dazugehörige Datenbank noch?
     
  8. mastavit
    mastavit Aktives Mitglied
    Registriert seit:
    7. Dezember 2022
    Beiträge:
    31
    Danke erhalten:
    1
    Danke vergeben:
    11
    Ja haben wir. Wir sind dabei das neue System (Gambio) aufzubereiten und dann irgendwann das alte (Joomla + Joomshopping) abzuschalten.
     
  9. DKG - Die Kleine Geschenkidee (Peter)
    Registriert seit:
    2. Oktober 2017
    Beiträge:
    345
    Danke erhalten:
    200
    Danke vergeben:
    125
    Dann braucht es eigentlich nur ein kleines bis mittleres PHP Script / Programm,
    welches die Datensätze aus Datenbank alt ausliest und in Datenbank neu korrekt einträgt und
    dokumentiert welche Datensätze der alten Datenbank bereits abgearbeitet wurden.
    Ist, aus meiner Sicht, einfacher als über den Umweg der csv.

    So könnte man eine Synchronisation schaffen, welche bis zum eigentlichen Switch auf den neuen
    gambio Shop, die Kundenkonten zwischen alt und neu abgleicht und aktualisiert (falls 5 Minuten vor Eurem geplanten Switch noch ein neues Kundenkonto angelegt wird - habt ihr es dann auch mit im neuen Shop).
     
  10. DKG - Die Kleine Geschenkidee (Peter)
    Registriert seit:
    2. Oktober 2017
    Beiträge:
    345
    Danke erhalten:
    200
    Danke vergeben:
    125
    Hier ein Auszug eines Programms,
    welches ich einmal geschrieben habe um Kundenkonten in gambio anzulegen,
    vielleicht nutzt es Euch etwas bzw. der Person die es Euch realisiert:

    PHP:
    <div class="card mb-3">
        <div class="card-header text-center">
            <h3>Kundendaten - Erstellung des Kundenkontos</h3>
        </div>
        <div class="card-body">

    <?php


    $mailvorhandeneinlesen 
    mysqli_query($link"SELECT customers_email_address FROM customers WHERE customers_email_address = '$email'");
    if(
    mysqli_num_rows($mailvorhandeneinlesen)>=1) {

    echo 
    '<div class="alert alert-danger" role="alert">';
    echo 
    '<i class="fas fa-times-circle" style="color: #D53343"></i>&nbsp;Email existiert bereits im System';
    echo 
    '<button type="button" class="btn btn-dark ml-2" onclick="goBack()">Zur&uuml;ck zur letzten Seite</button>';
    echo 
    '</div>';

    $savebuttonanzeige 'style="display:none"';

    ?>
    <script>
    function goBack() {
      window.history.back();
    }
    </script>
    <?php

    }
    else {

    $savebuttonanzeige '';

    $timestamp time();
    $jetzt date("Y-m-d H:i:s"$timestamp);

    $dobplaceholder '1000-01-01 00:00:00'// ersetzen              
    $passwordhash '';                      // hier etwas eintragen
      
    $inkundentabelleeintragen mysqli_query ($link"INSERT INTO customers (customers_id,
                                            customers_cid,
                                            customers_vat_id,
                                            customers_vat_id_status,
                                            customers_warning,
                                            customers_status,
                                            customers_gender,
                                            customers_firstname,
                                            customers_lastname,
                                            customers_dob,
                                            customers_email_address,
                                            customers_default_address_id,
                                            customers_telephone,
                                            customers_fax,
                                            customers_password,
                                            customers_newsletter,
                                            customers_newsletter_mode,
                                            member_flag,
                                            delete_user,
                                            account_type,
                                            password_request_key,
                                            payment_unallowed,
                                            shipping_unallowed,
                                            refferers_id,
                                            customers_date_added,
                                            customers_last_modified)
        VALUES ( NULL,
                 NULL,
                 NULL,
                 '0',
                 NULL,
                 '2',
                 '"
    .$gender."',
                 '"
    .$vorname."',
                 '"
    .$nachname."',
                 '"
    .$dobplaceholder."',
                 '"
    .$email."',
                 '0',
                 '"
    .$telefon."',
                 NULL,
                 '"
    .$passwordhash."',
                 NULL,
                 '0',
                 '0',
                 '1',
                 '0',
                 '',
                 '',
                 '',
                 '0',
                 '"
    .$jetzt."',
                 '"
    .$jetzt."'
                 );"
    );
               
                 if(
    $inkundentabelleeintragen) {
                    echo 
    '<div class="alert alert-success" role="alert">';
                    echo 
    '<i class="fas fa-check-circle" style="color: #27A243"></i>&nbsp;Kundenkonto erfolgreich angelegt';
                    echo 
    '</div>';
                 }
                 else {
                    echo 
    '<div class="alert alert-danger" role="alert">';
                    echo 
    '<i class="fas fa-times-circle" style="color: #D53343"></i>&nbsp;Kundenkonto konnte nicht angelegt werden. FEHLER!';
                    echo 
    '</div>';
                 }

               
    ?>
              
        </div>
    </div>

    <div class="card mb-3">
        <div class="card-header text-center">
            <h3>Kundendaten - Neue Kundennummer</h3>
        </div>
        <div class="card-body">
      
        <?php
        $neuekundennummerabfragen 
    mysqli_query($link"SELECT customers_id FROM customers WHERE customers_email_address = '$email'");
        while(
    $row mysqli_fetch_array($neuekundennummerabfragen)) {
      
            
    $kundennummer $row['customers_id'];
            echo 
    '<div class="alert alert-info" role="alert">';
            echo 
    '<i class="fas fa-user-plus"></i>&nbsp;Die neue Kundennummer lautet: <b>'.$kundennummer.'</b>';
            echo 
    '</div>';
          
          
            
    $inkundeninfotabelleeintragen mysqli_query ($link"INSERT INTO customers_info (customers_info_id,
                                                              customers_info_date_of_last_logon,
                                                              customers_info_number_of_logons,
                                                              customers_info_date_account_created,
                                                              customers_info_date_account_last_modified,
                                                              global_product_notifications)
                                                      VALUES ('"
    .$kundennummer."',
                                                              NULL,
                                                              '0',
                                                              '"
    .$jetzt."',
                                                              '"
    .$jetzt."',
                                                              '0'
                                                              );"
    );
          
                 if(
    $inkundeninfotabelleeintragen) {
                    echo 
    '<div class="alert alert-success" role="alert">';
                    echo 
    '<i class="fas fa-check-circle" style="color: #27A243"></i>&nbsp;Kundeninfotabelleneintrag erfolgreich angelegt';
                    echo 
    '</div>';
                 }
                 else {
                    echo 
    '<div class="alert alert-danger" role="alert">';
                    echo 
    '<i class="fas fa-times-circle" style="color: #D53343"></i>&nbsp;Kundeninfotabelleneintrag konnte nicht angelegt werden. FEHLER!';
                    echo 
    '</div>';
                 }
          
        }
        
    ?>

              
        </div>
    </div>

    <div class="card mb-3">
        <div class="card-header text-center">
            <h3>Kundendaten - Adressbucheintrag</h3>
        </div>
        <div class="card-body">
      
        <?php
      
        
    if(empty($firmenname)){
            
    $gewerbetreibend '0';
        }
        else {
            
    $gewerbetreibend '1';
        }
       
       
        
    $adressbucheintrag mysqli_query ($link"INSERT INTO address_book (address_book_id,
                                                                customers_id,
                                                                entry_gender,
                                                                entry_company,
                                                                entry_firstname,
                                                                entry_lastname,
                                                                entry_street_address,
                                                                entry_house_number,
                                                                entry_additional_info,
                                                                entry_suburb,
                                                                entry_postcode,
                                                                entry_city,
                                                                entry_state,
                                                                entry_country_id,
                                                                entry_zone_id,
                                                                address_date_added,
                                                                address_last_modified,
                                                                address_class,
                                                                customer_b2b_status)
                                                       VALUES ( NULL,
                                                                '"
    .$kundennummer."',
                                                                '"
    .$gender."',
                                                                '"
    .$firmenname."',
                                                                '"
    .$vorname."',
                                                                '"
    .$nachname."',
                                                                '"
    .$strasse."',
                                                                '',
                                                                '',
                                                                NULL,
                                                                '"
    .$plz."',
                                                                '"
    .$ort."',
                                                                '',
                                                                '81',
                                                                '0',
                                                                '"
    .$jetzt."',
                                                                '"
    .$jetzt."',
                                                                '',
                                                                '"
    .$gewerbetreibend."'
                                                              );"
    );
                                                            
                 if(
    $adressbucheintrag) {
                    echo 
    '<div class="alert alert-success" role="alert">';
                    echo 
    '<i class="fas fa-check-circle" style="color: #27A243"></i>&nbsp;Adressbucheintrag erfolgreich angelegt';
                    echo 
    '</div>';
                 }
                 else {
                    echo 
    '<div class="alert alert-danger" role="alert">';
                    echo 
    '<i class="fas fa-times-circle" style="color: #D53343"></i>&nbsp;Adressbucheintrag konnte nicht angelegt werden. FEHLER!';
                    echo 
    '</div>';
                 }
               
                 
    $adressbuchnummerabfragen mysqli_query($link"SELECT address_book_id FROM address_book WHERE customers_id = '$kundennummer'");
                 while(
    $row=mysqli_fetch_assoc($adressbuchnummerabfragen)){
                 
    $abid $row['address_book_id'];
               
                 
    $kundenkontoupdaten mysqli_query($link"UPDATE customers SET customers_default_address_id = '".$abid."' WHERE customers_id = '$kundennummer'");
               
                 if(
    $kundenkontoupdaten) {
                    echo 
    '<div class="alert alert-success" role="alert">';
                    echo 
    '<i class="fas fa-check-circle" style="color: #27A243"></i>&nbsp;Adressbucheintrag mit Kundenkonto erfolgreich verkn&uuml;pft';
                    echo 
    '</div>';
                 }
                 else {
                    echo 
    '<div class="alert alert-danger" role="alert">';
                    echo 
    '<i class="fas fa-times-circle" style="color: #D53343"></i>&nbsp;Adressbucheintrag konnte nicht mit dem Kundenkonto verkn&uuml;pft werden. FEHLER!';
                    echo 
    '</div>';
                 }
               
                 }
                                                            
                                                            
                                                            
        }                                                    
        
    ?>
      

              
        </div>
    </div>
    Das ist kein standalone lauffähiges Script und auch nur ein Ausschnitt.
    Soll nur zeigen wie man Kundenkonten in gambio anlegt (auf meine, direkte Art :cool:)
     
  11. Kai Stejuhn
    Kai Stejuhn Beta-Held
    Registriert seit:
    26. September 2014
    Beiträge:
    1.454
    Danke erhalten:
    743
    Danke vergeben:
    92
    Da sollte man aber lieber die API nehmen um die Kunden wieder anzulegen. Für solche Fälle gibt es die API ja nun extra.
     
  12. DKG - Die Kleine Geschenkidee (Peter)
    Registriert seit:
    2. Oktober 2017
    Beiträge:
    345
    Danke erhalten:
    200
    Danke vergeben:
    125
    das geht natürlich auch,
    zumindest in dem Anwendungsfall.

    https://developers.gambio.de/docs/4.8.0.0/rest/gambio-gx3-api/reference/customers/create-customers/

    Ich mach es meist anders, weil ich zuviele Anwendungsfälle habe, wo die API mir nicht die gewünschten Funktionen liefert.
    mein Code-Snippet oben ist Teil einer Wawi und dort eines kompletten Rechnungs- und Kassenprogramms, welches direkt auf gambio zugreift. So haben wir alles unter einem Dach.

    LG
    Peter