CSV-Import

Thema wurde von Dieter Nett, 19. Februar 2026 erstellt.

  1. Dieter Nett
    Dieter Nett Mitglied
    Registriert seit:
    24. Mai 2012
    Beiträge:
    16
    Danke erhalten:
    5
    Hallo zusammen,

    ich habe eine CSV-Datei eines Herstellers, die aber nicht mit dem Gambio Format kompatibel ist.

    Gibt es ein Modul mit dem man die Daten unkompliziert in das Gambio format implemtieren kann?

    Vielen dank für eure Tipps.
     
  2. mumus-1
    mumus-1 Erfahrener Benutzer
    Registriert seit:
    10. Juni 2014
    Beiträge:
    173
    Danke erhalten:
    50
    Danke vergeben:
    47
    Ja — es gibt mehrere Wege, CSV-Daten von Herstellern unkompliziert ins Gambio-Format zu bringen bzw. zu importieren — auch wenn deine Datei aktuell nicht dem Standard von Gambio entspricht.

    1. Standard-CSV-Import von Gambio selbst

    Gambio hat eine eingebaute CSV-Import/Export-Funktion, mit der du Produktdaten direkt importieren kannst. Allerdings muss die Datei dafür im Gambio-CSV-Format (korrekte Spalten, Trennzeichen, Pflichtfelder wie XTSOL, p_model etc.) vorliegen und ggf. angepasst werden.
    ➡️ Das ist aber kein Modul, sondern die vorhandene Funktion im Backend.

    Nachteile:

    Du musst das Format selbst anpassen (Spaltennamen) oder per Script umwandeln.

    Attribute/Eigenschaften und Varianten können komplizierter zu importieren sein.

    2. CSV-Import-Module / Connector-Lösungen (externe Tools)

    Es gibt fertige Module bzw. Dienste, die den Prozess automatisieren, z. B.:

    Import2Shop – Gambio CSV-Connector

    Ein externes Tool/Modul, das deine CSV-Dateien automatisch an Gambio überträgt und importiert – inklusive:

    Produkte anlegen/updaten

    Varianten & Eigenschaften

    Bilder, Kategorien, Bestände
    und mehr.

    ⚙️ Vorteile:
    ✔ du musst die CSV nicht erst von Hand auf Gambio-Format umschreiben
    ✔ automatisierte Kommunikation mit dem Shop
    ✔ kann Bestände/Preise automatisch aktualisieren

    ⚠️ Hinweis:
    Das ist ein kommerzielles Tool/Service – du solltest vorab prüfen, ob es wirklich zu deinen Gambio-Versionen & Workflows passt.

    3. Workflow-Module / Integrationen

    Neben Import2Shop gibt es auch andere Anbieter bzw. Services, die dir helfen können:

    Import-Connectors von Drittanbietern (oft auch als Middleware)
    Diese lesen CSV vom Hersteller und konvertieren diese in Gambio-kompatible Formate automatisch.
    Meist Teil kommerzieller SaaS-Tools oder Agentur-Lösungen.

    Agenturdienste / Custom-Skripte
    Wenn du sehr spezielle Datenstrukturen hast, lohnt sich manchmal ein kleines Custom-Tool oder PHP-Script, das die Datei in das richtige Gambio-CSV konvertiert.
    Das ist bei großen Datenmengen oft schneller, als alles manuell anzupassen.

    Alternative: CSV-Aufbereitung & Auto-Import

    Wenn du keine Module installieren möchtest oder die Daten extrem unterschiedlich sind, bieten einige Dienstleister CSV-Mapping/-Aufbereitung an — sie transformieren deine Hersteller-CSV in ein Gambio-CSV, das direkt importierbar ist.

    Zusammenfassung
    Lösung Eignet sich für Aufwand
    Gambio-Standard-Import Kleine Datenmengen, wenn du CSV anpassen kannst gering
    Import-Module/Connector (z. B. Import2Shop) Automatisierter Import & regelmäßige Updates mittel/hoch (kostenpflichtig)
    Custom-Script / Agentur Komplexe Datenstrukturen & Großmengen hoch (einmalig)

    Tipp: Wenn du regelmäßig neue Dateien vom Hersteller bekommst, lohnt sich oft ein Connector oder ein kleines Custom-Tool, das die Daten automatisch in das Gambio-Schema überführt und importiert.

    Möchtest du, dass ich dir ein konkretes Beispiel für ein CSV-Mapping-Template für Gambio erstelle – also welche Spalten welche benötigen, damit dein Hersteller-CSV kompatibel wird? (Dann kannst du es direkt verwenden oder automatisieren.)

    es soll ein einmaloger import sein.

    Für einen einmaligen Import brauchst du in der Regel kein kostenpflichtiges Modul. Das geht am einfachsten über den integrierten CSV-Import von Gambio GX.

    ✅ Empfohlene Lösung für einmaligen Import
    Variante 1: CSV an Gambio-Format anpassen (empfohlen)

    Exportiere zuerst eine Beispiel-Produkt-CSV aus Gambio
    → Backend → Artikel → Import/Export → Export

    Öffne diese Datei in Excel oder LibreOffice.

    Passe die Hersteller-CSV so an, dass:

    Spaltennamen identisch sind

    Pflichtfelder vorhanden sind (z. B. p_model, p_name, p_price, categories_name)

    Zeichensatz UTF-8 ist

    Trennzeichen stimmt (meist Semikolon)

    Danach kannst du sie direkt wieder importieren.

    Das ist bei einem einmaligen Import meist der schnellste Weg.

    Variante 2: CSV-Mapping mit Excel / LibreOffice

    Falls die Spalten stark abweichen:

    Neue Tabelle anlegen

    Hersteller-Spalten per Formel zuordnen

    In Gambio-Struktur speichern

    Als CSV (UTF-8, Semikolon) exportieren

    Das dauert je nach Datenmenge 30–90 Minuten.

    Variante 3: Kleines Konvertierungs-Script (nur wenn viele Daten)

    Wenn du tausende Artikel hast, kann ein kleines PHP- oder Python-Script sinnvoll sein, das:

    Spalten umbenennt

    Kategorien strukturiert

    Preise formatiert

    Fehlende Pflichtfelder ergänzt

    Für einen einmaligen Import lohnt sich aber meist kein externes Modul oder Connector.

    Meine Empfehlung

    Für einen einmaligen Import:
    ➡ Beispiel-CSV aus Gambio exportieren und Hersteller-Datei daran anpassen.
    Das ist am sichersten und verursacht keine Zusatzkosten.
     
  3. Dieter Nett
    Dieter Nett Mitglied
    Registriert seit:
    24. Mai 2012
    Beiträge:
    16
    Danke erhalten:
    5

    Danke für die ausführliche Info.

    Über Import2Shop bin ich schon gestolpert.
    Kostet aber einiges und wenn der Großhändler nicht gelistet ist geht es nicht.

    Ich habe mehrere Händler mit unterschiedlicher CSV-Struktur.

    Mir geht es hauptsächlich um den ersten Artikelimport und dann (wahrscheinlich täglich) der Bestandsabgleich.

    Ich denke, da wäre die Variante 3 am besten.

    Wo bekommt man sowas und mit welchen Kosten muss ich ca. rechnen?
     
  4. HolgerNils (xycons.de)
    HolgerNils (xycons.de) G-WARD 2013/2014
    Registriert seit:
    29. Oktober 2011
    Beiträge:
    2.004
    Danke erhalten:
    502
    Danke vergeben:
    377
    Schick mal exemplarische Dateien rüber, da geht so einiges.
    info@xycons.de
     
  5. Kai Schoelzke
    Kai Schoelzke Beta-Held
    Registriert seit:
    30. März 2016
    Beiträge:
    4.104
    Danke erhalten:
    652
    Danke vergeben:
    318
  6. Dieter Nett
    Dieter Nett Mitglied
    Registriert seit:
    24. Mai 2012
    Beiträge:
    16
    Danke erhalten:
    5
    #6 Dieter Nett, 24. Februar 2026 um 14:23 Uhr
    Zuletzt bearbeitet: 24. Februar 2026 um 14:30 Uhr
    Ich habe im Netz ein Skript gefundwn.
    Die Datei wird angelegt, allerdings ist nur der Header enthalten und ohne Texttrennzeichen ". Dahabe ich noch nichts gefunden.
    Bildschirmmeldung Zusammenführung wurde abgeschlossen, also keine Fehlermeldung.

    Hier mal das Skript:
    <?php
    // Konfiguration
    $inputFolder = 'csv_files/'; // Ordner mit den Quell-CSVs
    $outputFile = 'hl_gambio.csv'; // Zieldatei
    $delimiter = ';'; // Trennzeichen der Eingabedateien (oft , oder ;)
    $targetDelimiter = '|'; // Trennzeichen für den Shop-Import

    // Header des Ziel-Shopformats
    $targetHeader = ['XTSOL', 'p_model', 'p_priceNoTax', 'p_name.de', 'p_desc.de', 'p_cat.de'];

    // Output-Datei öffnen
    $fhOutput = fopen($outputFile, 'w');
    fputcsv($fhOutput, $targetHeader, $targetDelimiter);

    // Dateien im Ordner durchlaufen
    $files = glob($inputFolder . '*.csv');
    $headerSkipped = false;


    foreach ($files as $file) {
    if (($fhInput = fopen($file, 'r')) !== false) {

    // Erste Zeile (Header) lesen
    $header = fgetcsv($fhInput, 1000, $delimiter);

    // Spalten-Mapping definieren (Quelle -> Ziel)
    // Beispiel: Quell-CSV hat "Artikelnummer", Ziel ist "sku"
    $mapping = [
    'Spalte1' => 'XTSOL',
    'Item.Modellnummer' => 'p_model',
    'Item.Preis(netto)' => 'p_priceNoTax',
    'Item.Name' => 'p_name.de',
    'Item.Beschreibung' => 'p_desc.de',
    'Item.alleKategorien' => 'p_cat.de'
    ];

    // Mapping-Indexe bestimmen
    $mapIndex = [];
    foreach ($header as $index => $columnName) {
    if (isset($mapping[$columnName])) {
    $mapIndex[$mapping[$columnName]] = $index;
    }
    }

    // Zeilen verarbeiten
    while (($row = fgetcsv($fhInput, 1000, $delimiter)) !== false) {
    $newRow = array_fill(0, count($targetHeader), '');

    // Daten gemäß Mapping befüllen
    foreach ($targetHeader as $targetIdx => $targetColName) {
    if (isset($mapIndex[$targetColName])) {
    $newRow[$targetIdx] = $row[$mapIndex[$targetColName]];
    }
    }

    // Sonderfall: Preis formatieren (Komma zu Punkt)
    $newRow[2] = str_replace(',', '.', $newRow[2]);

    fputcsv($fhOutput, $newRow, $targetDelimiter);
    }
    fclose($fhInput);
    }
    }



    fclose($fhOutput);
    echo "Zusammenführung abgeschlossen: $outputFile";
    ?>

    Schon mal vielen Dank.
     
  7. Kai Schoelzke
    Kai Schoelzke Beta-Held
    Registriert seit:
    30. März 2016
    Beiträge:
    4.104
    Danke erhalten:
    652
    Danke vergeben:
    318
    Ich habe jetzt nicht so richtig verstanden, was ich damit soll?
     
  8. Dieter Nett
    Dieter Nett Mitglied
    Registriert seit:
    24. Mai 2012
    Beiträge:
    16
    Danke erhalten:
    5
    Ich bin in PHP leider nicht so fit.
    Vieleicht ist im Code ja irgendwo ein Fehler warum die Daten nicht eingelesen werden.
     
  9. Kai Schoelzke
    Kai Schoelzke Beta-Held
    Registriert seit:
    30. März 2016
    Beiträge:
    4.104
    Danke erhalten:
    652
    Danke vergeben:
    318
    Sorry, aber das kann ich dir auch nicht sagen, bin kein php Experte