Zum Inhalt springen

Events

Referenz der internen Events

Zuletzt aktualisiert: 5. September 2026

STOAR gibt bei jeder relevanten Geschäftsaktion ein Domain-Event aus — eine Bestellung wird aufgegeben, der Bestand wird knapp, eine Bewertung wird freigegeben. Diese Events sind die Erweiterungsfläche der Plattform: dieselben Signale, die die ausgehenden Webhooks antreiben, stehen im Prozess auch eigenen Modulen zur Verfügung. So kann eine selbst gehostete oder SaaS-Installation Verhalten ergänzen, ohne den Kern anzufassen.

Jedes Event folgt der Namenskonvention stoar.shop.<domain>.<action> und trägt eine kleine Payload (den betreffenden Datensatz plus etwaigen Kontext).

Aus einem eigenen Modul mithören #

Ein eigenes Modul registriert einen Listener in seinem Service Provider. Wenn das Event ausgelöst wird, läuft dein Listener — eine E-Mail einreihen, mit einem externen System synchronisieren, eine Audit-Zeile schreiben, was auch immer:

use Illuminate\Support\Facades\Event;

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

Da Listener im Prozess laufen, sehen sie die aktuellen Model-Datensätze und können vor oder parallel zu den eingebauten Handlern agieren. Genau so hängen der mitgelieferte Low-Stock-Logger, die Zahlungsanbieter und die Benachrichtigungs- E-Mails an — nichts ist fest verdrahtet.

Lifecycle-Events von Entitäten #

Kern-Datensätze (Produkte, Kategorien, Kunden, Gutscheincodes, Adressen) geben created-, updated- und deleted-Events an einer einzigen Nahtstelle aus. Ein Listener bekommt die Änderung also mit, egal woher sie stammt — aus dem Adminbereich, der REST-API, der Storefront oder einem Hintergrundjob. Massenoperationen wie das Zurückspielen eines Backups bleiben bewusst still, damit Listener während eines Imports nicht überflutet werden.

Event-Referenz #

Bestellungen

Event Wird ausgelöst, wenn
order.created Eine Bestellung aufgegeben wird (beliebige Zahlart)
order.completed Eine Bestellung bezahlt wird
order.statusChanged Sich der Bestellstatus ändert
order.cancelled Eine Bestellung storniert wird
order.refunded Eine Bestellung erstattet wird (voll oder teilweise)
order.paymentFailed Eine Zahlung fehlschlägt oder die Session abläuft
order.disputeCreated Eine Rückbuchung eröffnet wird
order.offline_pending Eine Offline-/manuelle Bestellung auf Zahlung wartet
order.bank_transfer_pending Eine Überweisungsbestellung auf Zahlung wartet

Kunden

Event Wird ausgelöst, wenn
customer.created Ein beliebiger Kundendatensatz angelegt wird
customer.updated Ein Kundendatensatz aktualisiert wird
customer.deleted Ein Kunde gelöscht wird
customer.registered Sich ein Käufer selbst registriert (enthält den Verifizierungslink)
customer.passwordReset Ein Passwort-Reset angefordert wird
customer.emailChangeRequested Eine Änderung der E-Mail-Adresse angefordert wird
customer.wishlist.added Ein Produkt auf eine Wunschliste gesetzt wird
customer.address.created / .updated / .deleted Sich eine Kundenadresse ändert

Produkte & Katalog

Event Wird ausgelöst, wenn
product.created / .updated / .deleted Sich ein Produkt ändert
category.created / .updated / .deleted Sich eine Kategorie ändert

Bewertungen

Event Wird ausgelöst, wenn
review.submitted Ein Käufer eine Bewertung abgibt
review.approved Eine Bewertung sichtbar geschaltet wird
review.rejected Eine Bewertung ausgeblendet wird
review.deleted Eine Bewertung gelöscht wird

Lagerbestand

Event Wird ausgelöst, wenn
inventory.reserved Bestand im Checkout reserviert wird
inventory.released Eine Reservierung freigegeben wird
inventory.adjusted Sich der Bestand über das auditierte Korrekturprotokoll ändert
inventory.low Der Bestand auf oder unter die Meldeschwelle fällt
inventory.backInStock Der Bestand wieder über die Schwelle steigt

Gutscheincodes & Geschenkkarten

Event Wird ausgelöst, wenn
coupon.created / .updated / .deleted Sich ein Gutscheincode ändert
coupon.applied Ein Gutscheincode auf einen Warenkorb angewendet wird
coupon.redeemed Die Nutzung eines Gutscheincodes auf eine Bestellung gebucht wird
giftcard.issued Eine Geschenkkarte ausgestellt wird
giftcard.redeemed Ein Betrag von einer Geschenkkarte eingelöst wird

Abonnements

Event Wird ausgelöst, wenn
subscription.created Ein Abonnement angelegt wird
subscription.cancelled Ein Abonnement gekündigt wird
subscription.paymentFailed Eine Verlängerungszahlung fehlschlägt

Sonstiges

Event Wird ausgelöst, wenn
newsletter.subscribed Sich jemand für den Newsletter anmeldet
contact.submitted Das Kontaktformular abgeschickt wird

Jedem Namen oben wird beim Abonnieren stoar.shop. vorangestellt — z. B. stoar.shop.inventory.low.

Events vs. Webhooks #

Beide werden von denselben Signalen getrieben. Greif zu Webhooks, wenn ein externes System per HTTP benachrichtigt werden muss. Greif zu Event-Listenern, wenn ein eigenes Modul Logik innerhalb des Shops ausführen soll.