Beim Import wird die Fehlermeldung "Spaltennamen haben Duplikate" angezeigt, aber ich habe keine Duplikate.
Wen kann ich das beheben?
"_type","sku","has_options","name","image","small_image","thumbnail","url_key","url_path","price","manufacturer","status","tax_class_id","visibility","description","short_description","gift_message_available","qty","min_qty","is_qty_decimal","backorders","min_sale_qty","max_sale_qty","is_in_stock","notify_stock_qty","manage_stock","qty_increments","enable_qty_increments"
"simple","1174407","0","BCI-15BK Tintenpatrone schwarz","","","","","","22.000","Canon","Enabled","none","Catalogue,Search","BCI-15BK Tintenpatrone schwarz, 2er-Pack, für I70 NSTintenpatronenOriginalML","BCI-15BK Tintenpatrone schwarz, 2er-Pack, für I70 NSTintenpatronenOriginalML","","0","","","0","1","","","","","","0"
Ich habe sichergestellt, dass alle meine Felder auch in exportiertem CSV vorhanden sind. Vermisse ich einige erforderliche Zeilen? Ich habe versucht zu überprüfen, aber diese Wiki-Seite von 2012 erfordert Spalten, die nicht einmal in der exportierten Datei enthalten sind. Ich bin mir also nicht sicher, welche Columens benötigt werden.
Die PHP-Version ist 5.2.17
ce-1.7.0.2
import
PiTheNumber
quelle
quelle
/admin/import
, nicht der alte Datenfluss.Antworten:
Die Ausnahme mit der von Ihnen angegebenen Fehlermeldung wird an genau einer Stelle ausgelöst (Code aus Gründen der Lesbarkeit leicht abgeschnitten):
Dies bedeutet,
count(array_unique($this->_colNames))
muss ungleich sein$this->_colQuantity
Das
$_colNames
Array wird in gesetztMage_ImportExport_Model_Import_Adapter_Csv::rewind()
(was während aufgerufen wird_init()
.Wiederum wird der Code aus Gründen der Lesbarkeit leicht abgeschnitten:
Das
$_delimiter
ist eingestellt auf,
, das$_enclosure
ist eingestellt auf"
.Um zu versuchen, das Problem zu reproduzieren, kopiere ich den CSV-Auszug aus Ihrer Frage in eine Datei namens test.csv und führe den folgenden Code aus:
es erzeugt die folgende Ausgabe:
Dies bedeutet, dass Ihre CSV-Datei grundsätzlich in Ordnung ist. Der Unterschied muss woanders sein.
In Bezug auf die Funktionsweise
array_unique
gibt es einen Hinweis darauf, wie sich die Typbehandlung von Array-Elementen in PHP 5.2.9 geändert hat: http://php.net/manual/en/function.array-unique.php#refsect1-function.array-unique -ÄnderungsprotokollUm das Problem zu reproduzieren, habe ich mein Testskript mit der festgelegten
SORT_REGULAR
Option erneut ausgeführt, aber dies ergibt immer noch das gleiche Ergebnis (was logisch ist, da das Lesen einer Datei nur Zeichenfolgenwerte ergeben kann).Derzeit glaube ich, dass der Unterschied in der von Ihnen verwendeten CSV-Datei liegen muss. Das Unix- und das Windows-Zeilenumbruchzeichen (
\n
und\r\n
) werden beide vomfgetcsv()
Befehl erkannt , aber das alte Zeilenumbruchzeichen (\r
) im MacOS-Stil ( ) würde tatsächlich zu dem aufgetretenen Verhalten führen.Ich kann nicht wissen, ob dies der Grund ist, warum das Problem auftritt, aber ich schlage vor, dass Sie die CSV-Datei (erneut) überprüfen. Es kann auch hilfreich sein, wenn Sie irgendwo einen Download-Link zur nicht geänderten Datei bereitstellen (kein Pastebin), damit nicht druckbare Zeichen erhalten bleiben.
Es kann auch hilfreich sein, wenn Sie die von Ihnen verwendete PHP-Version veröffentlichen.
quelle
Ich habe diesen Fehler beim Bearbeiten und Speichern mit LibreOffice auf meinem Mac erhalten. Das Problem wurde behoben, indem die Datei stattdessen mit Google Drive bearbeitet wurde. Anschließend wurde der Fehler behoben.
Ich gehe davon aus, dass es an Mac-Zeilenenden liegt.
quelle
Wenn Sie die Codierung für neue Zeilen überprüft haben und weiterhin Probleme haben, überprüfen Sie noch einmal, ob Ihre CSV-Datei tatsächlich keinen doppelten Spaltennamen enthält. In Excel können Sie mit dieser Technik schnell Duplikate markieren:
In meinem Fall hatte ich eine Formel (ungewollt) in die Kopfzeile gezogen und meinen Kopf durcheinander gebracht.
quelle
Sie können die CSV-Datei (mit einem Mac) auch als Windows-formatierte CSV-Datei speichern. Dadurch wird die Fehlermeldung für doppelte Spalten behoben. Ich arbeite auf einem Mac und so komme ich um diese Importfehler herum. Hoffe es funktioniert für dich.
quelle