Les plugins dans Magento 2 permettent de modifier le comportement des classes publiques en interceptant des méthodes et en exécutant du code avant, après ou autour de ces méthodes. Voici donc le tutoriel Magento 2 qui vous permettra de mettre en place un plugin !
A l’aide du tutoriel “Créer un module Magento 2”, créez votre module Gone/MyPlugin dans le répertoire app/code.
Supposons que vous souhaitez intercepter la méthode getPrice de la classe Magento\Catalog\Model\Product.
Dans votre module, créez ou ouvrez le fichier di.xml dans le dossier etc.
Ajoutez le code suivant :
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"><type name="Magento\Catalog\Model\Product"><plugin name="mon_plugin_prix" type="Gone\MonPlugin\Plugin\Product" sortOrder="1"/></type></config>
Dans app/code/Gone/MyPlugin/Plugin, créez un fichier appelé Product.php.
La méthode before vous permet de modifier les arguments qui seront passés à la méthode originale.
<?phpnamespace Gone\MyModule\Plugin;class Product{public function beforeGetPrice(\Magento\Catalog\Model\Product $subject){$originalPrice = $subject->getData('price');return [$originalPrice * 0.9]; // Applique une réduction de 10%}}
La méthode after vous permet de modifier le résultat retourné par la méthode originale.
public function afterGetPrice(\Magento\Catalog\Model\Product $subject, $result){return $result + 10; // Ajoute 10 au prix original}
La méthode around permet de faire des actions avant et après la méthode originale. Elle peut aussi éviter l'appel de la méthode originale.
public function aroundGetPrice(\Magento\Catalog\Model\Product $subject, callable $proceed){$originalPrice = $subject->getData('price');$discountedPrice = $originalPrice * 0.9; // Applique une réduction de 10%$subject->setData('price', $discountedPrice);// Exécute la méthode originale et stocke le résultat$result = $proceed();// Après avoir exécuté la méthode originale, vous pouvez ajouter d'autres logiquesreturn $result + 5; // Ajoute 5€ au prix}
Après avoir ajouté ces fichiers, nettoyez le cache de Magento :
php bin/magento cache:clean
Maintenant, quand la méthode getPrice de la classe Magento\Catalog\Model\Product sera appelée (fiche produit, panier …), votre plugin interviendra selon les méthodes before, after et around que vous avez définies.
Et voilà, vous avez créé un plugin dans Magento 2 ! Vous pouvez utiliser les méthodes before, after, et around pour influencer le comportement des classes de différentes manières. Notez que vous pouvez utiliser toutes ces méthodes dans un seul plugin, mais faites attention aux interactions entre elles. Pour toute question sur le sujet, n'hésitez pas à suivre une de nos formations à Magento 2 ou à prendre contact avec notre agence Magento !
Si vous êtes équipé de Magento 2.3 et +, alors ce tutoriel est fait pour vous : apprenez à ajouter une table en BDD !
Retrouvez nos tutoriels sous Magento 1
Créer un module sous Magento 2, c'est la base pour la suite ! Découvrez sans plus attendre comment faire.
Vous souhaitez créer un controller sous Magento 2 ? En 4 étapes seulement, nous vous montrons comment faire facilement !
Nous vous aidons à créer votre propre thème personnalisé sous Magento 2 en quelques étapes seulement. Découvrez notre tuto !
Nous vous aidons à mettre en place, en quelques étapes, la traduction sur l'ensemble de votre site dans la langue que vous souhaitez.
Nous vous aidons à créer vos propres blocs sur Magento 2 : découvrez le tutoriel !
Nous vous aidons à surcharger un template sur votre CMS de prédilection, et ce en 5 étapes seulement.
Nous vous aidons à mettre en place différents éléments essentiels à la personnalisation de votre site Magento 2.
Découvrez comment créer une interface d'administration fonctionnelle sur Magento 2 en 6 étapes.
Puissants systèmes d'événements sur Magento 2, découvrez comment créer et mettre en place un observeur !
Découvrez comment créer une méthode de livraison personnalisée sous Magento 2 en quelques étapes seulement, et simplifiez la vie de vos utilisateurs !
Découvrez comment gérer vos configurations personnalisées sur Magento 2 en quelques étapes seulement.
Téléchargez notre livre blanc SEO !