Solution au problème d’import d’une image existante dans Magento

Encore un nouveau bug sur l’import Magento qui m’a coûté pas mal de temps.

Afin de mettre à jour son catalogue, il est fréquent de vouloir l’exporter puis de vouloir le réimporter.

Dans votre fichier .CSV, vous avez alors un fichier image de la forme suivante :

/a/g/monimage.jpg

En fait, quand lorsque vous importez les images pour la première fois en utilisant le dossier “media/import/”, Magento s’occupe de lui même de replacer vos images dans des dossiers par ordre alphabétique. Vos images sont dispatchées dans le dossier “media/catalog/product” puis “/a/g/monimage.jpg”.

Problème : Vous effectuez votre mise à jour et vos produits disparaissent !

Solution : C’est un bug Magento, corrigez-le en modifiant le fichier app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php à la ligne 1226.

Avant:

if (!array_key_exists($rowData[$imageCol], $uploadedGalleryFiles)) {

$uploadedGalleryFiles[$rowData[$imageCol]] = $this->_uploadMediaFiles($rowData[$imageCol]);
}
$rowData[$imageCol] = $uploadedGalleryFiles[$rowData[$imageCol]];

Après:

if (!array_key_exists($rowData[$imageCol], $uploadedGalleryFiles)) {
$uploadedGalleryFiles[$rowData[$imageCol]] = $this->_uploadMediaFiles($rowData[$imageCol]);
}
// if images are new, the raw data should be the new image file
// if images are already loaded, should not be called
if (substr_count($rowData[$imageCol], ‘/’) == 1) {
$rowData[$imageCol] = $uploadedGalleryFiles[$rowData[$imageCol]];
}

Désormais, les nouvelles images seront importées et les vieilles images garderont leur valeur.

Source

Posted in Bug.
  1. 1
    Garde d'animaux

    Bien joué d’avoir trouvé ce problème et de proposer la solution sur ton blog! J’utilise Magento sur l’un de mes e-commerce, je n’avais encore jamais effectué ces manipulations, je vais voir ça de plus près!
    Merci à toi pour ces explications.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *