
Avez-vous déjà eu à importer un grand nombre de produits dans la base Magento ?
Que ce soit en passant par un script shell ou par les fonctionnalités natives de Magento (Dataflow), nous arrivons très vite à des limites techniques : nous sommes confrontés à des temps d’import très longs, ou à des dépassements de mémoire, provoquant l’arrêt du script.
Les objets Magento sont lourds, un $product->save() oblige Magento à loader la structure EAV, ce qui consomme énormément de mémoire, et prend beaucoup de temps pour s’exécuter.
La mémoire allouée n’est pas totalement libérée, due aux références circulaires qu’il peut y avoir sur les instances des objets Magento. Ce phénomène induit à la longue un dépassement de mémoire.
Une solution serait donc d’attaquer la base Magento directement, avec des requêtes SQL. Mais cela nécessite une bonne connaissance de cette base, qui est relativement complexe (nombre de tables impactés, modèle EAV). Heureusement, Magmi est là pour nous simplifier cette tâche.