Импорт показывает сообщение об ошибке «Имена столбцов имеют дубликаты», но у меня нет дубликатов.
Кто я могу это исправить?
"_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"
Я убедился, что все мои поля также существуют в экспортированном CSV. Я пропускаю некоторые обязательные строки? Я пытался проверить, но эта вики-страница 2012 года требует столбцов, которых нет даже в экспортированном файле. Поэтому я не уверен, каковы требуемые columen.
Версия PHP 5.2.17
ce-1.7.0.2
import
PiTheNumber
источник
источник
/admin/import
, Не старый поток данных.Ответы:
Исключение с сообщением об ошибке, которое вы указали, вызывается ровно в одном месте (код немного урезан для удобства чтения):
Это значит,
count(array_unique($this->_colNames))
должно быть неравным$this->_colQuantity
$_colNames
Массива устанавливаются вMage_ImportExport_Model_Import_Adapter_Csv::rewind()
(который вызывается в процессе_init()
.Еще раз, код немного обрезан для удобства чтения:
Значение
$_delimiter
установлено на,
, значение$_enclosure
установлено на"
.Чтобы попытаться воспроизвести проблему, если я скопирую извлечение CSV из вашего вопроса в файл с именем test.csv и запустите следующий код:
он производит следующий вывод:
Это означает, что ваш CSV-файл в целом в порядке. Разница должна быть где-то еще.
Если посмотреть на то, как это
array_unique
работает, заметим, как изменилась обработка типов элементов массива в PHP 5.2.9: http://php.net/manual/en/function.array-unique.php#refsect1-function.array-unique. -changelogЧтобы воспроизвести проблему, я повторно запустил свой тестовый сценарий с
SORT_REGULAR
набором параметров, но это все равно дает тот же результат (что логично, поскольку чтение только файла может дать строковые значения).В настоящее время я считаю, что разница должна быть в используемом вами файле CSV. Символы новой строки Unix и Windows (
\n
и\r\n
) распознаютсяfgetcsv()
командой, но символ новой строки в старом стиле MacOS (\r
) фактически приводит к тому поведению, которое вы испытываете.Я не могу знать, является ли это причиной того, что у вас возникла проблема, но я предлагаю вам проверить файл CSV (снова). Также может помочь, если вы предоставите ссылку на скачивание где-нибудь на неизмененный файл (без вставки), поэтому все непечатаемые символы сохранятся.
Это также может помочь, если вы разместите версию PHP, которую вы используете.
источник
Я получал эту ошибку при редактировании и сохранении с помощью LibreOffice на моем Mac. Проблема была решена путем редактирования файла с помощью Google Drive, а затем ошибка исчезла.
Я предполагаю, что это связано с окончаниями строк Mac.
источник
Если вы проверили кодировку новой строки и у вас все еще есть проблемы, еще раз проверьте, что в вашем CSV на самом деле нет повторяющегося имени столбца. В Excel вы можете быстро выделить дубликаты с помощью этой техники:
В моем случае я перетянул формулу (непреднамеренно) в строку заголовка и испортил мой заголовок.
источник
Вы также можете сохранить файл .csv (используя Mac) в формате Windows .csv. Это исправит сообщение об ошибке повторяющихся столбцов. Я работаю на Mac, и вот как я могу обойти эти ошибки импорта. Надеюсь, это работает для вас.
источник