Aller au contenu

Événements

Référence des événements internes

Dernière mise à jour : 5 September 2026

STOAR émet un événement métier à chaque action commerciale significative : une commande est passée, le stock devient faible, un avis est approuvé. Ces événements constituent la surface d'extension de la plateforme : les signaux qui alimentent les webhooks sortants sont également disponibles en interne pour les modules personnalisés, si bien qu'un déploiement auto-hébergé ou SaaS peut greffer des comportements sans toucher au code du cœur.

Chaque événement suit la convention de nommage stoar.shop.<domain>.<action> et transporte un payload réduit (l'enregistrement concerné, plus le contexte utile).

Écouter depuis un module personnalisé #

Un module personnalisé enregistre un écouteur dans son service provider. Lorsque l'événement se déclenche, ton écouteur s'exécute : mettre un e-mail en file d'attente, synchroniser avec un système externe, écrire une ligne d'audit, etc.

use Illuminate\Support\Facades\Event;

// In your module's ServiceProvider::boot()
Event::listen('stoar.shop.order.created', function ($order) {
    // React to the new order.
});

Comme les écouteurs s'exécutent en interne, ils voient les enregistrements de modèle à jour et peuvent agir avant les gestionnaires intégrés ou en parallèle. C'est ainsi que se branchent le journal de stock faible fourni, les passerelles de paiement et les e-mails de notification : rien n'est câblé en dur.

Événements de cycle de vie des entités #

Les enregistrements du cœur (produits, catégories, clients, codes promo, adresses) émettent des événements created, updated et deleted depuis un point unique : un écouteur capte donc la modification quelle que soit son origine — l'administration, l'API REST, la boutique ou une tâche de fond. Les opérations en masse, comme la restauration d'une sauvegarde, restent volontairement silencieuses afin de ne pas inonder les écouteurs pendant un import.

Référence des événements #

Commandes

Événement Déclenché quand
order.created Une commande est passée (quel que soit le moyen de paiement)
order.completed Une commande est payée
order.statusChanged Le statut de la commande change
order.cancelled Une commande est annulée
order.refunded Une commande est remboursée (totalement ou partiellement)
order.paymentFailed Un paiement échoue ou la session expire
order.disputeCreated Une rétrofacturation est ouverte
order.offline_pending Une commande hors ligne/manuelle attend son paiement
order.bank_transfer_pending Une commande par virement attend son paiement

Clients

Événement Déclenché quand
customer.created Un enregistrement client est créé
customer.updated Un enregistrement client est mis à jour
customer.deleted Un client est supprimé
customer.registered Un acheteur s'inscrit lui-même (porte le lien de vérification)
customer.passwordReset Une réinitialisation de mot de passe est demandée
customer.emailChangeRequested Un changement d'adresse e-mail est demandé
customer.wishlist.added Un produit est ajouté à une liste d'envies
customer.address.created / .updated / .deleted Une adresse client change

Produits et catalogue

Événement Déclenché quand
product.created / .updated / .deleted Un produit change
category.created / .updated / .deleted Une catégorie change

Avis

Événement Déclenché quand
review.submitted Un acheteur soumet un avis
review.approved Un avis est rendu visible
review.rejected Un avis est masqué
review.deleted Un avis est supprimé

Stock

Événement Déclenché quand
inventory.reserved Du stock est réservé lors de la commande
inventory.released Une réservation est libérée
inventory.adjusted Le stock change via le journal d'ajustement audité
inventory.low Le stock atteint ou passe sous le seuil d'alerte
inventory.backInStock Le stock repasse au-dessus du seuil

Codes promo et cartes cadeaux

Événement Déclenché quand
coupon.created / .updated / .deleted Un code promo change
coupon.applied Un code promo est appliqué à un panier
coupon.redeemed L'utilisation d'un code promo est enregistrée sur une commande
giftcard.issued Une carte cadeau est émise
giftcard.redeemed Un montant est débité d'une carte cadeau

Abonnements

Événement Déclenché quand
subscription.created Un abonnement est créé
subscription.cancelled Un abonnement est résilié
subscription.paymentFailed Un paiement de renouvellement échoue

Autres

Événement Déclenché quand
newsletter.subscribed Quelqu'un s'abonne à la newsletter
contact.submitted Le formulaire de contact est envoyé

Chaque nom ci-dessus est préfixé par stoar.shop. au moment de l'abonnement — p. ex. stoar.shop.inventory.low.

Événements et webhooks #

Les deux sont pilotés par les mêmes signaux. Optez pour les webhooks lorsqu'un système externe doit être notifié en HTTP. Optez pour les écouteurs d'événements lorsqu'un module personnalisé doit exécuter de la logique à l'intérieur de la boutique.