Import de masse dans Magento avec MAGMI

En natif Magento propose des fonctionnalités permettant d'importer des données (produits, clients, ...). Ce post, rédigé par Olivier Grandmougin, vous expose l'une d'entre elles.

Tous ceux qui ont tentés d'importer de gros volumes de données dans Magento ont pu se rendre compte que les "dataflow" natifs montrent rapidement des limites :

  • lenteur
  • dépassement du memory_limit
  • manque de flexibilité

Les 2 premières limites s'expliquent simplement : pour chaque ligne à importer Magento va instancier au minimum un objet. Sur des gros volumes ce n'est donc pas viable.

La solution est donc de ne pas passer par les fonctionnalités Magento mais d'attaquer la base de données en direct. Cependant cette technique est risquée :

  • nécessite une connaissance parfaite du modèle EAV de la BDD
  • la structure de la BDD est amenée à changer d'une version à l'autre

C'est la que MAGMI intervient ...

MAGMI ! mais qu'est-ce donc ?

MAGMI signifie Magento Mass Importer (Importateur de masse pour Magento ...).

Il ne s'agit pas d'une extension Magento mais d'un client web indépendant qui va attaquer directement une BDD Magento.

MAGMI est capable de traiter plusieurs millions de produits par process.

Atouts principaux

  • Rapidité (environ 70-100 lignes par secondes d'après la documentation officielle)
  • Prise en compte du format d'export CSV des dataflow, en y ajoutant des possibilités supplémentaires
  • Gèstion du multistore
  • Gestion avancées des images (dont images distantes)
  • Prise en compte des produits configurables (plugin)
  • Prise en compte des related, upsell & cross-sell (plugin)
  • Mode ligne de commande

Limitations

  • Non prise en charge (pour le moment) des types de produits downloable et bundled

Compatiblité

Magento CE 1.3.x,1.4.x,1.5.x,1.6.x,1.7.x

Présentation de l'interface

magmi1.png

magmi2.png

Voilà à quoi ressemble l'interface de MAGMI (pas très conviviale j'en conviens ...).

La 1ère partie (Update MAGMI) permet de mettre à jour l'outil et d'y ajouter des plugins.

La 2ème partie (Run MAGMI) permet de lancer un import (après avoir configuré l'outil).

La 3ème partie (Configure Global parameters) permet de renseigner les accès à la BDD ainsi que le répertoire du code source de l'instance Magento sur laquelle on souhaite travailler.

La 4ème et dernière partie (Configure Current Profile) va permettre de spécifier toutes les options d'import. L'outil vous permet de stocker différents profils d'import. Pour un import "basique" de produits il n'est pas nécessaire de cocher quoi que ce soit.

Lancement

Par défaut MAGMI nous prévient qu'aucun fichier CSV n'est disponible : No csv files found in /var/www/magento-1.7.0.2/var/import
Il faut donc déposer un fichier CSV dans le répertoire configuré.
Voici un fichier d'exemple au format MAGMI : MAGMI_example.csv

Le champs "using mode" vous permet de choisir le comportement en terme de création et mise à jour des produits.
Dans notre cas nous choisissons "create new items & update existing ones".

Un clic sur le bouton "Run Import" permet de lancer l'opération d'import.

magmi3.png

Voici l'interface qui détaille le résultat de l'opération. On constate qu'aucun problème n'a été rencontré et que 100% des lignes ont été importées dans Magento.
On trouve différentes statistiques sur l'import en terme de volume et de rapidité. Dans notre cas :
100000 items en 7170 secondes soit 837 recs/min (14 recs/sec)

Un mot sur les plugins

MAGMI propose une quinzaine de plugins. Parmi les plus significatifs on retrouve :

  • Custom Options : permet l'import d'options personnalisables
  • Image attributes processor : offre plus de possibilités sur l'import d'images
  • On the fly category creator/importer : permet, entre autres, la création des catégories à la volée
  • Configurable Item processor : permet l'import de produits configurables
  • Grouped Item processor : permet l'import de produits groupés

Conclusion

Malgré son aspect peu convivial MAGMI est un outil puissant qui devient très vite indispensable pour traiter de gros volumes de données.
De plus, le mode ligne de commande, que nous n'avons pas abordé, offre toutes les possibilités en terme d'automatisation des tâches.

Télécharger MAGMI
WIKI de MAGMI

Un commentaire

  1. Bonjour et merci de ce post sur Magmi, ici dweeves , l’auteur de Magmi !

    Je suis surpris du peu de vitesse 14 rec/s (et surtout DB efficiency 10%) de l’exemple.
    En mode « nominal » , Magmi devrait avoisiner des taux d’utilisation de la base d’environ 50%. Apres, selon les plugins utilisés ca peut varier, mais 10% de rendement DB ,c’est vraiment peu.

Laisser un commentaire

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

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.