A importação mostra a mensagem de erro "Os nomes das colunas têm duplicatas", mas não tenho duplicatas.
Quem posso consertar isso?
"_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"
Verifiquei se todos os meus campos também existem no CSV exportado. Estou faltando algumas linhas necessárias? Eu tentei verificar, mas esta página wiki de 2012 requer colunas que não estão no arquivo exportado. Portanto, não tenho certeza de quais são os volumes necessários.
A versão do PHP é 5.2.17
ce-1.7.0.2
import
PiTheNumber
fonte
fonte
/admin/import
, não o fluxo de dados antigo.Respostas:
A exceção com a mensagem de erro que você especificou é acionada em exatamente um local (código ligeiramente truncado para facilitar a leitura):
Isso significa que
count(array_unique($this->_colNames))
deve ser desigual para$this->_colQuantity
A
$_colNames
matriz é configuradaMage_ImportExport_Model_Import_Adapter_Csv::rewind()
(que é chamada durante_init()
.Mais uma vez, o código é ligeiramente truncado para facilitar a leitura:
O
$_delimiter
está definido como,
, o$_enclosure
está definido como"
.Para tentar reproduzir o problema, se eu copiar o extrato CSV da sua pergunta para um arquivo chamado test.csv e executar o seguinte código:
produz a seguinte saída:
Isso significa que seu arquivo CSV está fundamentalmente correto. A diferença deve estar em outro lugar.
Observando como
array_unique
funciona, há uma observação de como o tipo de manipulação dos elementos do array mudou no PHP 5.2.9: http://php.net/manual/en/function.array-unique.php#refsect1-function.array-unique -changelogPara reproduzir o problema, executei novamente meu script de teste com o
SORT_REGULAR
conjunto de opções, mas isso ainda dá o mesmo resultado (o que é lógico, pois a leitura de um arquivo pode fornecer apenas valores de sequência de caracteres).No momento, acredito que a diferença deve estar no arquivo CSV que você está usando. Os caracteres de nova linha do Unix e do Windows (
\n
e\r\n
) são reconhecidos pelofgetcsv()
comando, mas o antigo caractere de nova linha do estilo MacOS (\r
) levaria realmente ao comportamento que você está enfrentando.Não sei se esse é o motivo pelo qual você está enfrentando o problema, mas sugiro que verifique o arquivo CSV (novamente). Também pode ajudar se você fornecer um link de download em algum lugar para o arquivo não modificado (sem pastebin), para que todos os caracteres não imprimíveis sejam preservados.
Também pode ajudar se você postar a versão PHP que está usando.
fonte
Eu estava recebendo esse erro ao editar e salvar usando o LibreOffice no meu Mac. O problema foi resolvido editando o arquivo usando o Google Drive e o erro desapareceu.
Suponho que seja devido às terminações de linha do Mac.
fonte
Se você verificou a codificação de nova linha e ainda tem problemas, verifique novamente se realmente não possui um nome de coluna duplicado no seu CSV. No Excel, você pode destacar rapidamente duplicatas com esta técnica:
No meu caso, eu arrastei uma fórmula (não intencionalmente) para a linha do cabeçalho e baguncei meu cabeçalho.
fonte
Você também pode salvar o arquivo .csv (usando um Mac) como um arquivo .csv formatado no Windows. Isso corrigirá a mensagem de erro das colunas duplicadas. Eu trabalho em um Mac e é assim que eu contornar esses erros de importação. Espero que funcione para você.
fonte