gelöst Automatischer csv Import zur Bestandsaktualisierung

Thema wurde von dieterkarels, 12. Februar 2025 erstellt.

  1. dieterkarels
    dieterkarels Neues Mitglied
    Registriert seit:
    1. Februar 2012
    Beiträge:
    1
    Danke erhalten:
    0
    Moin,
    bis jetzt habe ich hier im Forum nur gelesen aber heute bräuchte ein bißchen Hilfe.
    Ich habe mir eine Routine gebastelt mit der ich aus unsere WaWi automatisch eine csv zur Bestands-Aktualisierung
    in den Ordner Gambio/Import/ transferiere.
    Ich hatte dann versucht, eine php zu basteln, die entweder zeitgesteuert (Cronjob) oder triggergesteuert die
    Aktualisierung übernimmt. Ich habe das script unten eingefügt.
    Beim Aufruf erscheint nur http error 500...
    Ach ja, ich bin kompletter Anfänger im Bereich php,......dieses Ding habe ich mit lesen, suchen und chatgbt
    gebastelt, also keine Hemmungen, wenn das Ding kpl. falsch ist.
    Vielen Dank !

    Beispiel Import_csv (zeitgesteuert):
    <?php
    error_reporting(E_ALL)
    ini_set('diplay_errors' );
    require_once 'includes/application_top.php';

    // Konfiguration
    $importVerzeichnis = dirname(--Dir--) . 'import/'; // Standard-Importverzeichnis in Gambio
    $dateiname = 'artikelstamm_fuer_bestands_update.csv'; // Name der CSV-Datei
    $csvDatei = $importVerzeichnis . $dateiname; $trennzeichen = ';'; // Trennzeichen der CSV-Datei (anpassen falls nötig)

    // Prüfen, ob die Datei existiert
    if (!file_exists($csvDatei)) {
    die("Fehler: Datei nicht gefunden - $csvDatei"); }

    // Datei öffnen
    if (($handle = fopen($csvDatei, "r")) !== FALSE) {
    $header = fgetcsv($handle, 0, $trennzeichen); // Erste Zeile als Spaltenüberschriften

    if (!$header) {
    die("Fehler: CSV-Header konnte nicht gelesen werden.");
    }

    // Verbindung zur Datenbank
    $db = xtc_db_connect() or die("Fehler: Verbindung zur Datenbank fehlgeschlagen.");

    while (($daten = fgetcsv($handle, 0, $trennzeichen)) !== FALSE) {
    $dataAssoc = array_combine($header, $daten);

    if (!$dataAssoc || !isset($dataAssoc['products_model'])) {
    continue; // Überspringe Zeilen ohne Artikelnummer
    }

    $productsModel = xtc_db_input($dataAssoc['products_model']); // Artikelnummer
    unset($dataAssoc['products_model']); // Entferne die Artikelnummer aus den Update-Daten

    $updateSets = [];
    foreach ($dataAssoc as $key => $value) {
    $updateSets[] = "$key = '" . xtc_db_input($value) . "'";
    }

    if (!empty($updateSets)) {
    $updateSql = "UPDATE products SET " . implode(', ', $updateSets) . " WHERE products_model = '$productsModel'";
    xtc_db_query($updateSql);
    }
    }

    fclose($handle);
    echo "Import abgeschlossen!";
    } else {
    die("Fehler: Datei konnte nicht geöffnet werden."); } ?>
     
  2. Anonymous
    Anonymous Aktives Mitglied
    Registriert seit:
    8. September 2017
    Beiträge:
    25
    Danke erhalten:
    7
    Danke vergeben:
    6
    (Link nur für registrierte Nutzer sichtbar.)
    Klappt perfekt