Josselin Dionisi - Développeur indépendant

Automatisez l’envoi de notifications promotion sur Sylius

ionicons-v5-k Josselin Dionisi 16 mars 2025
116 lectures Niveau : intermédiaire

Bonjour et merci d’avoir cliqué sur cet article ! 🙂

Aujourd’hui on va parler de … Sylius, et oui encore. La version 2.0 étant récemment sortie c’est l’occasion de tester des choses intéressantes.

Cet article fait en partie suite au précédent

Cette fois on va voir une autre méthode largement utilisée pour convertir des prospects.

Imaginez que vous soyez sur un site e-commerce et qu’un produit vous intéresse. Vous le mettez dans le panier pour le garder de côté et vous passerez à l’achat plus tard.

Ok mais imaginez maintenant que suite à cette action vous soyez prévenu quelques jours plus tard que ce produit vient d’être mis en promotion.

Pas mal non ? Vous venez d’économiser automatiquement de l’argent. 😛

C’est exactement ce que se diront vos clients et nous allons mettre en place ce process.

Les évenements natifs de Sylius

Dans le précédent article je vous parlais des EventListener/EventSubscriber de Symfony. Nous avions vu à quel point il était pratique de faire appel à ces évenements afin de créer des actions bien précises.

Sachez que Sylius possède ses propres événements internes qui nous permettent de “catcher” des moments clés comme par exemple l’ajout au panier, le passage d’une commande etc

Ici ce que nous allons regarder de près c’est plutôt un événement côté administrateur, à savoir la création/mise à jour d’une promotion.

Voilà un schéma résumant ce que nous voulons mettre en place :

  1. Un prospect ajoute l’article qu’il souhaite dans son panier
  2. Un administrateur crée ou met à jour une promotion incluant ce produit
  3. On catch l’événement Sylius sylius . catalog_promotion . post_create ou sylius . catalog_promotion . post_update et on récupère l’ensemble des clients ayant ce produit dans leur panier
  4. Pour chacun on peut prévoir un envoi d’email pour les prévenir de la promotion

Créer un événement personnalisé basé sur ceux de Sylius

Voici un exemple de ce à quoi pourrait ressembler notre "event listener"

Libre à vous maintenant de faire les actions que vous souhaitez dans une méthode de cet événement custom.

Une fois écrit, nous devons comme d’habitude déclarer celui-ci en tant que service et lui passer l’événement racine de Sylius.

Tester notre solution

Nous avons donc notre événement écouté, une méthode personnalisée pour traiter l’information et prévenir les utilisateurs. Il ne nous reste donc plus qu’à tester tout ça ! 😛

On va aller se créer une petite promotion dans le back-office de Sylius

Ici vous pouvez configurer la promotion que vous souhaitez du moment que le code de votre méthode y correspond. Pour ma part je veux prévenir les utilisateurs intéressés par le T shirt Ethereal Drift qu’une promo de 10% est en cours.

Je clique ensuite sur Create ou Update selon le cas et immédiatement un email est envoyé aux clients ciblés. C’est bon notre solution est fonctionnelle ! 🙂

A chaque fois qu’une promotion concernant un produit sera créée ou mise à jour, les clients ayant l’un des produits dans leur panier seront avertis.

Pratique non ? 😀

Merci d’avoir lu cet article jusqu’au bout, moi je retourne faire des expériences de mon côté et je vous en reparle bientôt 😛