Shopware 6: Finding events

This blogpost is written based on Shopware 6.5.6.0

You are looking for an event inside of Shopware 6? And don’t know how to start? Here are a few tipps and tricks how I find events when I look for them

Event Classes

Inside of Showare exist a few container classes for event names.

The most important for me are:

  • \Shopware\Core\Checkout\Cart\CartEvents
  • \Shopware\Core\Checkout\Order\OrderEvents
  • \Shopware\Core\Checkout\Customer\CustomerEvents
  • \Shopware\Core\Content\Cms\CmsPageEvents

The overall pattern to find them is the following, unfortunately we don’t get namespaces for them.

grep -r "class .*Events$" .

I didn’t check all of these, so they might be not what I think. Running this command in vendor/shopware you get this list:

  • ShippingEvents
  • PaymentEvents
  • OrderEvents
  • CartEvents
  • CustomerEvents
  • LanguageEvents
  • UnitEvents
  • TaxEvents
  • UserEvents
  • SnippetEvents
  • IntegrationEvents
  • CurrencyEvents
  • SalesChannelEvents
  • CustomFieldEvents
  • LocaleEvents
  • NumberRangeEvents
  • CountryEvents
  • LandingPageEvents
  • PropertyEvents
  • MailTemplateEvents
  • CategoryEvents
  • ProductEvents
  • SeoEvents
  • NewsletterEvents
  • MediaEvents
  • RuleEvents
  • ImportExportLogEvents
  • ImportExportFileEvents
  • ImportExportProfileEvents
  • FlowEvents
  • CmsPageEvents
  • VersionEvents
  • AppScriptConditionEvents
  • PluginEvents
  • final BusinessEvents
  • AclRoleEvents

ShopwareSalesChannelEvents

Then there is a group of other events for all kinds of events on the Storefront, all of them implement \Shopware\Core\Framework\Event\ShopwareSalesChannelEvent, here is a list:

  • AccountEditOrderPageLoadedEvent
  • AccountLoginPageLoadedEvent
  • AccountNewsletterRecipientRouteRequestEvent
  • AccountOrderDetailPageLoadedEvent
  • AccountOrderPageLoadedEvent
  • AccountOverviewPageLoadedEvent
  • AccountPaymentMethodPageLoadedEvent
  • AccountProfilePageLoadedEvent
  • AccountRecoverPasswordPageLoadedEvent
  • AddressDetailPageLoadedEvent
  • AddressListingCriteriaEvent
  • AddressListingPageLoadedEvent
  • AfterLineItemAddedEvent
  • AfterLineItemQuantityChangedEvent
  • AfterLineItemRemovedEvent
  • BasicCaptchaPageletLoadedEvent
  • BeforeCartMergeEvent
  • BeforeLineItemAddedEvent
  • BeforeLineItemQuantityChangedEvent
  • BeforeLineItemRemovedEvent
  • CancelOrderRouteRequestEvent
  • CartConvertedEvent
  • CartDeletedEvent
  • CartMergedEvent
  • CartSavedEvent
  • CartVerifyPersistEvent
  • CheckoutCartPageLoadedEvent
  • CheckoutConfirmPageLoadedEvent
  • CheckoutFinishPageLoadedEvent
  • CheckoutFinishPageOrderCriteriaEvent
  • CheckoutOrderPlacedCriteriaEvent
  • CheckoutRegisterPageLoadedEvent
  • CmsPageLoadedEvent
  • CmsPageLoaderCriteriaEvent
  • CountryStateDataPageletCriteriaEvent
  • CountryStateDataPageletLoadedEvent
  • CurrencyRouteRequestEvent
  • CustomerAccountRecoverRequestEvent
  • CustomerBeforeLoginEvent
  • CustomerChangedPaymentMethodEvent
  • CustomerConfirmRegisterUrlEvent
  • CustomerDeletedEvent
  • CustomerGroupRegistrationPageLoadedEvent
  • CustomerLoginEvent
  • CustomerLogoutEvent
  • CustomerRegisterEvent
  • CustomerSetDefaultBillingAddressEvent
  • CustomerSetDefaultShippingAddressEvent
  • CustomerWishlistLoaderCriteriaEvent
  • CustomerWishlistProductListingResultEvent
  • ErrorPageLoadedEvent
  • FooterPageletLoadedEvent
  • GenericPageLoadedEvent
  • GuestCustomerRegisterEvent
  • GuestWishlistPageletLoadedEvent
  • GuestWishListPageletProductCriteriaEvent
  • GuestWishlistPageLoadedEvent
  • HandlePaymentMethodRouteRequestEvent
  • HeaderPageletLoadedEvent
  • LandingPageLoadedEvent
  • LanguageRouteRequestEvent
  • LineItemRemovedEvent
  • MaintenancePageLoadedEvent
  • MenuOffcanvasPageletLoadedEvent
  • MinimalQuickViewPageCriteriaEvent
  • MinimalQuickViewPageLoadedEvent
  • NavigationLoadedEvent
  • NavigationPageLoadedEvent
  • NewsletterAccountPageletLoadedEvent
  • NewsletterSubscribePageLoadedEvent
  • NewsletterSubscribeUrlEvent
  • OffcanvasCartPageLoadedEvent
  • OrderRouteRequestEvent
  • PageletLoadedEvent
  • PageLoadedEvent
  • PartialSalesChannelEntityLoadedEvent
  • PasswordRecoveryUrlEvent
  • PaymentMethodRouteRequestEvent
  • ProductCrossSellingCriteriaEvent
  • ProductCrossSellingCriteriaLoadEvent
  • ProductCrossSellingIdsCriteriaEvent
  • ProductCrossSellingsLoadedEvent
  • ProductCrossSellingStreamCriteriaEvent
  • ProductExportProductCriteriaEvent
  • ProductGatewayCriteriaEvent
  • ProductListingCollectFilterEvent
  • ProductListingCriteriaEvent
  • ProductListingPreviewCriteriaEvent
  • ProductListingResolvePreviewEvent
  • ProductListingResultEvent
  • ProductPageCriteriaEvent
  • ProductPageLoadedEvent
  • ProductReviewsLoadedEvent
  • ProductSearchCriteriaEvent
  • ProductSearchResultEvent
  • ProductSuggestCriteriaEvent
  • ProductSuggestResultEvent
  • RouteRequestEvent
  • SalesChannelContextAssembledEvent
  • SalesChannelContextCreatedEvent
  • SalesChannelContextPermissionsChangedEvent
  • SalesChannelContextResolvedEvent
  • SalesChannelContextSwitchEvent
  • SalesChannelContextTokenChangeEvent
  • SalesChannelEntityAggregationResultLoadedEvent
  • SalesChannelEntityIdSearchResultLoadedEvent
  • SalesChannelEntityLoadedEvent
  • SalesChannelEntitySearchResultLoadedEvent
  • SalesChannelProcessCriteriaEvent
  • SalutationRouteRequestEvent
  • SearchPageLoadedEvent
  • SetPaymentOrderRouteRequestEvent
  • ShippingMethodRouteRequestEvent
  • SitemapPageLoadedEvent
  • StorefrontRenderEvent
  • SuggestPageLoadedEvent
  • SwitchBuyBoxVariantEvent
  • WishlistMergedEvent
  • WishlistPageLoadedEvent
  • WishListPageProductCriteriaEvent
  • WishlistProductAddedEvent
  • WishlistProductRemovedEvent

DBAL Events

And then there is a list of generic database events:

  • BeforeDeleteEvent
  • EntityAggregationResultLoadedEvent
  • EntityDeletedEvent
  • EntityDeleteEvent
  • EntityIdSearchResultLoadedEvent
  • EntityLoadedContainerEvent
  • EntityLoadedEvent
  • EntityLoadedEventFactory
  • EntitySearchedEvent
  • EntitySearchResultLoadedEvent
  • EntityWriteEvent
  • EntityWrittenContainerEvent
  • EntityWrittenEvent
  • PartialEntityLoadedEvent
  • RefreshIndexEvent

Becareful with using them, because of the versioning and the generic character, which means you need to make sure you have the correct event for your entity and your version.

There is more!

Don’t forget there are even more events, so look out for them and use them!

Leave a Reply

Discover more from Winkelwagen

Subscribe now to keep reading and get access to the full archive.

Continue reading