Akeneo et Magento 2 : comment les faire communiquer ?

Akeneo est un PIM, un Product Information Manager. Il s'agit d'une solution servant à collecter l'ensemble des données catalogue d'une entreprise. Il permet également de faciliter la diffusion multicanal. Pour un vendeur disposant d'une boutique de vente en ligne, Akeneo peut s'avérer très utile pour simplifier la gestion de son catalogue. Dans le cas d'une gestion manuelle, l'interface réactive d'Akeneo permet une grande rapidité de traitement des informations catalogue. Si les données proviennent d'un ERP, la mise en place d'imports automatiques est grandement simplifiée. Cet article présente une manière de faire communiquer un ERP et Magento 2 via le PIM Akeneo, et ce, automatiquement, par la mise en place de tâches Cron.

Les versions utilisées sont respectivement 2.1.5 pour Magento et 1.6.8 pour Akeneo.

On supposera que le paramétrage du catalogue dans Akeneo a déjà été réalisé, notamment pour tout ce qui concerne les catégories, les familles, les attributs et les options d'attributs.

Export des données produits à partir d'une source tierce (ERP, etc ...)

Le format de données des échanges de cette présentation va être le CSV. C'est pourquoi, la source des données produite doit être en mesure de générer ce type de fichier.

Le contenu de ce fichier doit suivre les règles de formatage suivantes : https://docs.akeneo.com/1.6/reference/import_export/formats/product.html

Afin de pouvoir automatiser les échanges, il est nécessaire de générer le fichier à un emplacement réseau accessible par Akeneo.

Import des données produits dans Akeneo

Pour importer les données contenues dans le fichier CSV, il faut préalablement avoir configurer un profil d'import Akeneo.

Afin d'en créer un nouveau, il suffit de se connecter sur une session Akeneo, cliquer sur "Collecter" puis "Profils d'import" et finalement sur le bouton "Créer un profil d'import".

Un panneau de configuration apparaît, qu'il faut compléter avec notamment la tâche définie à "Import des produits en CSV". Pour le reste des paramètres, ils dépendent du format et des données contenues et exportées dans le fichier CSV.

Il est maintenant temps de définir une tâche Cron pour importer régulièrement les données de la source tierce vers Akeneo.

0 2 * * * /path/to/php /path/to/akeneo/app/console akeneo:batch:job product_import_csv -c "{\"filePath\": \"/path/to/export/export-products.csv\"}" --env=prod >> /path/to/akeneo/app/logs/cron.log 2>&1

Ici, tous les jours à 2h du matin, une routine sera lancée. Elle permettra de lancer l'outil app/console d'Akeneo et la fonctionnalité des jobs import/export avec le profil créé précédemment. On lui indique l'emplacement de l'export CSV et finalement qu'on souhaite logger le résultat dans le dossier logs d'Akeneo.

Export des données Akeneo

L'étape suivante consiste à exporter les données collectées dans Akeneo au format CSV. Akeneo dispose de profils d'export complets et variés mais Magento 2 est doté de certaines spécificités qui requièrent des exports plus poussés. C'est pourquoi il est nécessaire d'installer le bundle Enhanced Connector sur Akeneo. Ce bundle a été développé par les équipes d'Akeneo : https://github.com/akeneo-labs/EnhancedConnectorBundle

Toutes les informations d'installation sont disponibles sur ce lien. Ce bundle va ainsi nous permettre d'accéder à deux nouveaux profils d'exports (attributs et familles) qui nous seront utiles lors de l'import des données dans Magento 2.

Comme pour le paragraphe précédent, il est maintenant nécessaire de créer des profils d'export. Pour cela, il faut cliquer sur l'onglet "Diffuser", puis "Profils d'export" et sur le bouton "Créer un profil d'export". Ici, il va falloir créer 5 profils d'export de données via les profils suivants : "Export des catégories en CSV", "Export families to CSV for PimGento", "Export attributs to CSV for PimGento", "Export des options d'attributs en CSV" et "Export des produits en CSV". En ce qui concerne les options, un ajustement pourra avoir lieu par la suite pour qu'elles correspondent à ce qui est attendu au niveau de Magento 2.

Afin d'automatiser l'export des données, il faut mettre en place des tâches Cron comme l'exemple suivant :

30 2 * * * /path/to/php /path/to/akeneo/app/console akeneo:batch:job categories_export_magento -c "{\"filePath\": \"/path/to/exports/export-categories-akeneo.csv\"}" --env=prod >> /path/to/akeneo/app/logs/cron.log 2>&1
32 2 * * * /path/to/php /path/to/akeneo/app/console akeneo:batch:job families_export_magento -c "{\"filePath\": \"/path/to/exports/export-families-akeneo.csv\"}" --env=prod >> /path/to/akeneo/app/logs/cron.log 2>&1
34 2 * * * /path/to/php /path/to/akeneo/app/console akeneo:batch:job attributes_export_magento -c "{\"filePath\": \"/path/to/exports/export-attributes-akeneo.csv\"}" --env=prod >> /path/to/akeneo/app/logs/cron.log 2>&1
36 2 * * * /path/to/php /path/to/akeneo/app/console akeneo:batch:job attributes_options_export_magento -c "{\"filePath\": \"/path/to/exports/export-attributes-options-akeneo.csv\"}" --env=prod >> /path/to/akeneo/app/logs/cron.log 2>&1
40 2 * * * /path/to/php /path/to/akeneo/app/console akeneo:batch:job products_export_magento -c "{\"filePath\": \"/path/to/exports/export-products-akeneo.csv\"}" --env=prod >> /path/to/akeneo/app/logs/cron.log 2>&1

Le dossier dans lequel seront déposés les fichiers d'export devra être à la fois accessible par votre instance Akeneo et Magento 2. Les tâches Cron seront lancées à partir de 2h30 du matin et exporteront les données pour Magento 2. On pourra retrouver le résultat des exports dans le fichier de logs cron.log.

Import des données dans Magento 2

Nativement, Magento 2 propose des fonctionnalités d'import de données catalogue mais qui peuvent être longs, complexes et nécessiter le développement de modules. Grâce au module PimGento développé par l'Agence Dn'D, il est possible de configurer Magento 2 et interpréter les données préalablement exportées. Le module Magento 2 est disponible sur cette page qui regroupe également les détails concernant son installation et les explications vis à vis de son paramétrage : https://github.com/Agence-DnD/PIMGento-2

Il sera sûrement nécessaire de faire des ajustements de paramétrage de PimGento et des profils d'export Akeneo comme décrit plus tôt, afin de faire correspondre les formats d'échanges.

De nouvelles commandes de la console Magento 2 sont maintenant disponibles et vont permettre la lecture et le traitement des exports Akeneo. Et là encore, il faut définir de nouvelles tâches Cron pour automatiser le processus.

10 3 * * * /path/to/php /path/to/magento/bin/magento pimgento:import --code=category --file=/path/to/akeneo/exports/export-categories-akeneo.csv >> /path/to/magento/var/log/magento.cron.log 2>&1
12 3 * * * /path/to/php /path/to/magento/bin/magento pimgento:import --code=family --file=/path/to/akeneo/exports/export-families-akeneo.csv >> /path/to/magento/var/log/magento.cron.log 2>&1
14 3 * * * /path/to/php /path/to/magento/bin/magento pimgento:import --code=attribute --file=/path/to/akeneo/exports/export-attributes-akeneo.csv >> /path/to/magento/var/log/magento.cron.log 2>&1
16 3 * * * /path/to/php /path/to/magento/bin/magento pimgento:import --code=option --file=/path/to/akeneo/exports/export-attributes-options-akeneo.csv >> /path/to/magento/var/log/magento.cron.log 2>&1
20 3 * * * /path/to/php /path/to/magento/bin/magento pimgento:import --code=product --file=/path/to/akeneo/exports/export-products-akeneo.csv >> /path/to/magento/var/log/magento.cron.log 2>&1

Ici, tous les jours à partir de 3h10 du matin, la commande pimgento:import de la console Magento 2 va lancer les imports des différentes données exportées depuis Akeneo. Elle va également enregistrer le résultat de ces exports dans un fichier logs. A noter ici que l'ordre des imports est extrêmement important, car certaines données sont dépendantes de celles précédemment importées, ceci dans le but d'éviter les erreurs lors des imports.

Une fois la routine terminée, vos produits sont disponibles dans Magento 2.

Conclusions

Akeneo est un outil très pratique quand il s'agit de faire communiquer un ERP et Magento 2. Il permet de simplifier les échanges entre ces deux entités grâce à ses puissants profils d'imports/exports. Une fois les modules Enhanced Connector et PimGento installés respectivement sur Akeneo et Magento 2, il est possible de faire communiquer un PIM et un webshop  par un processus d'imports et d'exports successifs. Ce processus peut être manuel par l'utilisation des interfaces web des outils, ou automatique par la mise en place de tâches Cron.

Laisser un commentaire

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

Captcha *