Import de produits dans Magento 1.8

⏲️ ~7 min de lecture

Publié le par Damien
Magento

Magento propose depuis la version 1.5 un import et un export natif des produits au format CSV. En fonction de la taille de votre catalogue, c'est une solution qui peut être intéressante dans certains cas de figure car elle est simple et rapide à mettre en place, à condition de corriger certaines anomalies encore présentes dans Magento 1.8.

Contrairement au script d'import Magmi (Magento Mass Importer) vous n'avez aucune configuration particulière à faire et vous pouvez utiliser votre tableur préféré pour constituer et mettre à jour votre catalogue produit. C'est d'autant plus intéressant si vous avez beaucoup de mises à jour à faire sur vos produits. Il faudra veiller à bien formater votre tableau. Les noms des colonnes et les valeurs de certains champs doivent être corrects, si vous voulez que Magento accepte d'importer votre fichier.

A noter que dans notre exemple, le catalogue produit de Magento contient une centaine de références, à la fois des produits simples et des produits configurables. Cela est censé également marcher avec les produits groupés, packagés et téléchargeables.

Avant d'importer votre fichier contenant vos produits, vous devrez commencer par configurer votre catalogue Magento. Il faudra donc :

  1. Créer les jeux d'attributs
  2. Créer les attributs et  les associer aux jeux d'attributs
  3. Créer votre arborescence de catégories

Pour les développeurs ces opérations pourront être facilitées grâce à notre classe utilitaire permettant d'effectuer des opérations courantes dans Magento.

Les champs obligatoires #

Pour que votre produit soit importé dans le catalogue de Magento, il vous faudra renseigner à minima les champs suivants dans le fichier CSV :

Mais ce n'est pas tout, pour que vos produits soient visibles pour vos clients, il faudra également renseigner les champs suivants :

Importer les images des produits #

Pour se faire :

Il ne suffit pas de renseigner uniquement les champs image, small_image, thumbnail et
image_label, small_image_label, thumbnail_label, car ils s'importeront bien, certes, mais seront automatiquement supprimés lors de la mise à jour du produit, car les images ne sont pas liées à l'attribut media_gallery du produit, l'onglet "image" du produit serait vide.

Afin d'associer ces images, vous devez d'abord trouver dans un premier temps l'id de l'attribut media_gallery pour se faire la requête SQL suivante vous permettra de le trouver :

SELECTeav_attribute.attribute_idFROMeav_attributeWHEREeav_attribute.attribute_codeLIKE 'media_gallery'

Pour vous faciliter la tâche, nous vous avons préparé un modèle de fichier pour importer vos produits dans Magento. Ce fichier contient l'import d'un produit simple et d'un produit configurable avec des options payantes.

Correctif pour l'import de Magento #

Une anomalie relative à l'import remontée sur le bugtracker de Magento, empêche l'import des médias de se dérouler correctement . Cela demande surcharger le modèle du module Mage/ImportExport/Model/Import/Entity/Product.php.

Si vous rencontrez cette erreur après l'import d'un jeu d'attribut spécifié dans le fichier CSV :

Notice: Undefined index: _attribute_set l.1393

Pour la corriger, il faut modifier le fichier Mage/ImportExport/Model/Import/Entity/Product.php :

if (!is_null($rowData[self::COL_ATTR_SET]))

par
if (isset($rowData[self::COL_ATTR_SET]) && !is_null($rowData[self::COL_ATTR_SET]))

Et si vous importez des produits avec des images associées et que vous obtenez les erreurs suivantes :

Notice: Undefined index: _media_attribute_id l.1380 Notice: Undefined index: _media_lable l.1381 Notice: Undefined index: _media_position l.1382 Notice: Undefined index: _media_image l.1383 Notice: Undefined index: _media_is_disabled l.1384

Remplacer toujours dans le fichier Mage/ImportExport/Model/Import/Entity/Product.php :

$mediaGallery[$rowSku][] = array( 'attribute_name' => $rowData['attribute_name'] ... )

par

$mediaGallery[$rowSku][] = array( 'attribute_name' => empty($rowData['attribute_name']) ? '' : $rowData['attribute_name'] ... )

Dernier point, lors de l'import de produit configurable avec des options avec tarifs, il faut impérativement dans le Fichier CSV listant les produits lister les prix par option. Vous devez donc décliner chaque tarification d'option par produit.

Vous pouvez maintenant utiliser la fonctionnalité native d'import de Magento dans Système > Importer/Exporter > Importer. Magento va d'abord vérifier les données, et si il ne trouve pas d'erreur procédera à l'import.

Import de produits Magento

Ensuite pour faire des mises à jour de produits via l'import, il suffit de préciser le SKU du produit et les champs à mettre à jour.

Source : http://www.mag-manager.com/useful-articles/tipstricks/required-csv-file-values-for-error-free-magento-import-via-admin/

Cet article vous a plu ? Sachez que nous recrutons !

← Accueil