Créer un observeur Magento 2

Les observeurs sont un élément puissant du système d’événements de Magento 2, permettant aux développeurs d’insérer du code personnalisé lorsqu’un certain événement se produit dans l’application. Dans ce tutoriel Magento 2, nous allons créer un observeur qui écoute l’événement déclenché lorsqu’un produit est ajouté au panier. Plus précisément, nous allons appliquer une réduction de 10 % au produit ajouté.

Étape 1 : Créer un module

A l’aide du tutoriel ?Créer un module Magento 2?, créez votre module Gone/AddToCartObserver dans le répertoire app/code.

Étape 2 : Déclarez l’observeur

Dans votre nouveau module, créez un fichier events.xml dans le dossier etc/frontend (si vous voulez que cet observeur fonctionne uniquement sur la partie front-end).

Insérez ce code dans events.xml :

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="checkout_cart_product_add_after">
<observer name="my_observer" instance="Gone\AddToCartObserver\Observer\AddProduct" />
</event>
</config>

Étape 3 : Créez la classe de l’observeur

Dans votre module, créez un dossier Observer et à l’intérieur un fichier AddProduct.php.

Placez ce code dans AddProduct.php :

<?php
namespace Gone\AddToCartObserver\Observer;

use Magento\Framework\Event\ObserverInterface;

class AddProduct implements ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
$item = $observer->getEvent()->getData('quote_item');
$item = ($item->getParentItem() ? $item->getParentItem() : $item);

// Ici, vous pouvez exécuter votre code personnalisé. Par exemple :
$prix = $item->getPrice();
$newPrice = $prix * 0.9; // Appliquer une réduction de 10%
$item->setCustomPrice($newPrice);
$item->setOriginalCustomPrice($newPrice);
$item->getProduct()->setIsSuperMode(true);
}
}

Étape 4 : Activez le module et nettoyez le cache

Activez votre module et nettoyez le cache :

php bin/magento setup:upgrade
php bin/magento cache:flush

Étape 5 : Testez votre observeur

Ajoutez un produit au panier et vérifiez que la réduction de 10 % est bien appliquée.


Notre agence Magento vous accompagne tout au long de votre projet e-commerce : n’attendez plus !

Vous souhaitez aller plus loin par vous-même ? Découvrez nos formations Magento pour mieux appréhender le CMS !