L'importation affiche le message d'erreur "Les noms de colonne ont des doublons" mais je n'ai pas de doublons.
Qui puis-je résoudre ce problème?
"_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"
Je me suis assuré que tous mes champs existent également dans les csv exportés. Suis-je en train de manquer certaines lignes obligatoires? J'ai essayé de vérifier mais cette page wiki de 2012 nécessite des colonnes qui ne sont même pas dans le fichier exporté. Je ne sais donc pas quels sont les columens requis.
La version PHP est 5.2.17
ce-1.7.0.2
import
PiTheNumber
la source
la source
/admin/import
, pas l'ancien flux de données.Réponses:
L'exception avec le message d'erreur que vous avez indiqué est déclenchée à exactement un endroit (code légèrement tronqué pour plus de lisibilité):
Cela signifie,
count(array_unique($this->_colNames))
doit être différent de$this->_colQuantity
Le
$_colNames
tableau est défini dansMage_ImportExport_Model_Import_Adapter_Csv::rewind()
(qui est appelé pendant_init()
.Une fois encore, le code est légèrement tronqué pour plus de lisibilité:
Le
$_delimiter
est réglé,
, l'$_enclosure
est réglé"
.Pour essayer de reproduire le problème, si je copie l'extrait CSV de votre question dans un fichier appelé test.csv et que j'exécute le code suivant:
il produit la sortie suivante:
Cela signifie que votre fichier CSV est fondamentalement correct. La différence doit être ailleurs.
En regardant comment cela
array_unique
fonctionne, il y a une note sur la façon dont la gestion des types d'éléments de tableau a changé en PHP 5.2.9: http://php.net/manual/en/function.array-unique.php#refsect1-function.array-unique -changelogPour reproduire le problème, j'ai relancé mon script de test avec le
SORT_REGULAR
jeu d'options, mais cela donne toujours le même résultat (ce qui est logique, car la lecture d'un fichier ne peut donner que des valeurs de chaîne).Pour le moment, je pense que la différence doit être dans le fichier CSV que vous utilisez. Les caractères de retour à la ligne Unix et Windows (
\n
et\r\n
) sont tous deux reconnus par lafgetcsv()
commande, mais l'ancien caractère de retour à la ligne de style MacOS (\r
) entraînerait en fait le comportement que vous rencontrez.Je ne peux pas savoir si c'est la raison pour laquelle vous rencontrez le problème, mais je vous suggère de vérifier le fichier CSV (à nouveau). Cela peut également être utile si vous fournissez un lien de téléchargement quelque part vers le fichier non modifié (pas de coller), afin que tous les caractères non imprimables soient conservés.
Il peut également être utile de publier la version PHP que vous utilisez.
la source
Je recevais cette erreur lors de l'édition et de l'enregistrement à l'aide de LibreOffice sur mon Mac. Le problème a été résolu en modifiant le fichier à l'aide de Google Drive à la place, puis l'erreur a disparu.
Je suppose que cela est dû aux fins de ligne Mac.
la source
Si vous avez vérifié l'encodage de nouvelle ligne et que vous rencontrez toujours des problèmes, vérifiez que vous n'avez pas réellement de nom de colonne en double dans votre CSV. Dans Excel, vous pouvez rapidement mettre en évidence les doublons avec cette technique:
Dans mon cas, j'avais glissé une formule (involontairement) dans la ligne d'en-tête et foiré mon en-tête.
la source
Vous pouvez également enregistrer le fichier .csv (à l'aide d'un Mac) en tant que .csv formaté Windows. Cela corrigera le message d'erreur des colonnes en double. Je travaille sur un Mac et voici comment contourner ces erreurs d'importation. J'espère que ça marche pour toi.
la source