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
There is more!
Don’t forget there are even more events, so look out for them and use them!