Benutzer import

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

  1. mastavit

    mastavit Aktives Mitglied

    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

    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

    Kann man nur über die Datenbank machen.
     
  4. mastavit

    mastavit Aktives Mitglied

    Wie müssten wir da vorgehen?
     
  5. Christian Mueller

    Christian Mueller Beta-Held

    Das ist Handarbeit. Quelldaten und Zielsystem analysieren, Daten aufbereiten und einfügen.
     
  6. 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. @mastavit

    Habt ihr das alte Shopsystem und die dazugehörige Datenbank noch?
     
  8. mastavit

    mastavit Aktives Mitglied

    Ja haben wir. Wir sind dabei das neue System (Gambio) aufzubereiten und dann irgendwann das alte (Joomla + Joomshopping) abzuschalten.
     
  9. 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. 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

    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. 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