Hallo liebe Community, ich bin momentan auf der Suche nach einer Lösung für folgenden Sachverhalt: Ein Kunde möchte eine große CSV-Datei, die aus einem anderem System stammt in Shopware importieren. Zu den Artikeln gibt es Bilder und auch Varianten. Die CSV-Datei ist nicht für den eigenen Shopware Importer geeignet. Der Kunde möchte die CSV + Bilder in ein FTP-Verzeichnis hochladen und über eine URL den Import starten. Vorhandene Artikel sollen ersetzt werden und fehlende Artikel erstellt werden. Über eine Flag im CSV sollen Artikel auch gelöscht werden können. Hat eventuell jemand einen möglichen Lösungsweg? Ich hätte nun die lokale API hergenommen. Die CSV-Datei würde ich per PHP auslesen und für jede Zeile einen Artikel erstellen/updaten. Die Bilder sind nach Artikelnummer benannt. Ein erster Schnipsel sieht so aus: $assocData = array(); $CSVFile = getcwd().'/import/import\_test.csv'; if( ($handle = fopen($CSVFile, "r")) !== FALSE) { $rowCounter = 0; while (($rowData = fgetcsv($handle, 0, ";")) !== FALSE) { if( 0 === $rowCounter) { $headerRecord = $rowData; } else { foreach( $rowData as $key =\> $value) { $assocData[$rowCounter - 1][$headerRecord[ $key] ] = $value; } } $rowCounter++; } fclose($handle); } foreach ($assocData as $key =\> $article) { $image\_path = (isset($\_SERVER['HTTPS'])?'https':'http').'://' . $\_SERVER['HTTP\_HOST'] . '/import/images/'; $params = array( 'name' =\> trim($article['such2']), 'active' =\> true, 'taxId' =\> 1, 'supplier' =\> 'ByWP', 'mainDetail' =\> array( 'number' =\> $article['nummer'], 'inStock' =\> $article['ybestand1'], 'prices' =\> array( array( 'customerGroupKey' =\> 'EK', 'price' =\> str\_replace(',','.',$article['vpr9']), ), ) ), 'images' =\> array( array('link' =\> $image\_path . trim($article['such2']) . ".JPG") ) ); $article = $this-\>resource-\>create($params); } //$this-\>View()-\>assign($article); $this-\>View()-\>assign('success', true);
Ich wäre auch bereit für eine komplette Lösung zu bezahlen. Vielen Dank für eure Hilfe!