Skip to main content

Typed event reference

Use this reference with the event guide. Subscribe to the exact event name, then type your handler with the corresponding PHP event class.

All classes below use the namespace Joomla\Component\EasyCommerce\Administrator\Event, followed by the group name and class name. For example, Product\AfterProductSaveEvent. Their files are under com_easycommerce/admin/src/Event/.

The tables list useful methods declared by each concrete class. They omit getContext() and the inherited getData($key, $default), addData($key, $value), and result/cancellation helpers. Methods marked as setters change an event; check its caller to confirm which changes are used. A callable method alone is not a guarantee that the caller persists its result.

“Caller” identifies where the current source creates and dispatches the event. A listener in a plugin is not a caller. These are source-level contracts, not separate HTTP endpoints.

Declared contracts with no normal core dispatch​

Do not depend on these firing during ordinary checkout or shipment creation:

Event classExact event nameCurrent limitation
Payment\AfterOrderCreatePaymentEventonEasyCommerceAfterOrderCreatePaymentNo core dispatch call found. Listen to the documented order and payment workflow instead.
Payment\CreateSubscriptionEventonEasyCommerceCreateSubscriptionNo core dispatch call found. Existing gateways create subscriptions through their own payment flows.
Shipping\CreateShipmentEventonEasyCommerceCreateShipmentNo core dispatch call found. Creating a local shipment record does not automatically buy a carrier label.
Shipping\GetTrackingInfoEventonEasyCommerceGetTrackingInfoNo core dispatch call found. A carrier handler alone does not provide automatic live tracking.

See payment plugins and shipping plugins for the integration work needed around these contracts.

Cart​

Event class and exact event namePayload methodsCaller
AfterCartClearEvent
onEasyCommerceAfterCartClear
Use the named arguments via getData(). See the event constructor.CartService
AfterCartCouponApplyEvent
onEasyCommerceAfterCartCouponApply
getCart(), setCart(), getCode()CartService
AfterCartCouponRemoveEvent
onEasyCommerceAfterCartCouponRemove
getCart(), setCart(), getCode()CartService
AfterCartGetEvent
onEasyCommerceAfterCartGet
getCart(), setCart()CartService
AfterCartItemAddEvent
onEasyCommerceAfterCartItemAdd
getItem(), getCart()CartService
AfterCartItemRemoveEvent
onEasyCommerceAfterCartItemRemove
getCart()CartService
AfterCartItemUpdateEvent
onEasyCommerceAfterCartItemUpdate
getCart()CartService
AfterCartTotalsCalculatedEvent
onEasyCommerceAfterCartTotalsCalculated
getCart(), setCart()CartService
BeforeCartClearEvent
onEasyCommerceBeforeCartClear
isCancellable()CartService
BeforeCartCouponApplyEvent
onEasyCommerceBeforeCartCouponApply
isCancellable(), getCode(), getCart()CartService
BeforeCartCouponRemoveEvent
onEasyCommerceBeforeCartCouponRemove
isCancellable(), getCode(), getCart()CartService
BeforeCartGetEvent
onEasyCommerceBeforeCartGet
isCancellable()CartService
BeforeCartItemAddEvent
onEasyCommerceBeforeCartItemAdd
isCancellable(), getProductId(), getQuantity(), setQuantity(), getOptions(), getCart()CartService
BeforeCartItemRemoveEvent
onEasyCommerceBeforeCartItemRemove
isCancellable(), getCartKey()CartService
BeforeCartItemUpdateEvent
onEasyCommerceBeforeCartItemUpdate
isCancellable(), getCartKey(), getQuantity()CartService

Category​

Event class and exact event namePayload methodsCaller
AfterCategoryDeleteEvent
onEasyCommerceAfterCategoryDelete
getCategoryId()CategoryModel
AfterCategoryGetEvent
onEasyCommerceAfterCategoryGet
getCategory()CategoryModel, CategoriesModel
AfterCategoryListEvent
onEasyCommerceAfterCategoryList
getItems(), setItems()CategoriesModel
AfterCategorySaveEvent
onEasyCommerceAfterCategorySave
getCategory(), isNew()CategoryModel
BeforeCategoryDeleteEvent
onEasyCommerceBeforeCategoryDelete
isCancellable(), getCategoryId()CategoryModel
BeforeCategorySaveEvent
onEasyCommerceBeforeCategorySave
isCancellable(), isNew()CategoryModel

Checkout​

Event class and exact event namePayload methodsCaller
AfterCheckoutValidateEvent
onEasyCommerceAfterCheckoutValidate
getErrors(), setErrors(), getCart()CartService
BeforeCheckoutOrderCreateEvent
onEasyCommerceBeforeCheckoutOrderCreate
isCancellable()OrderService

Coupon​

Event class and exact event namePayload methodsCaller
AfterCouponDeleteEvent
onEasyCommerceAfterCouponDelete
getCouponId()CouponService
AfterCouponGetEvent
onEasyCommerceAfterCouponGet
getCoupon()CouponService
AfterCouponListEvent
onEasyCommerceAfterCouponList
getItems(), setItems()CouponService
AfterCouponSaveEvent
onEasyCommerceAfterCouponSave
getCoupon(), isNew()CouponService
BeforeCouponDeleteEvent
onEasyCommerceBeforeCouponDelete
isCancellable(), getCouponId()CouponService
BeforeCouponSaveEvent
onEasyCommerceBeforeCouponSave
isCancellable(), isNew()CouponService

Customer​

Event class and exact event namePayload methodsCaller
AfterCustomerDeleteEvent
onEasyCommerceAfterCustomerDelete
getCustomerId()CustomerService
AfterCustomerGetEvent
onEasyCommerceAfterCustomerGet
getCustomer()CustomerService
AfterCustomerListEvent
onEasyCommerceAfterCustomerList
getItems(), setItems()CustomerService
AfterCustomerSaveEvent
onEasyCommerceAfterCustomerSave
getCustomer(), isNew()CustomerService
BeforeCustomerDeleteEvent
onEasyCommerceBeforeCustomerDelete
isCancellable(), getCustomerId()CustomerService
BeforeCustomerSaveEvent
onEasyCommerceBeforeCustomerSave
isCancellable(), isNew()CustomerService

Email​

Event class and exact event namePayload methodsCaller
AfterEmailSendEvent
onEasyCommerceAfterEmailSend
getType(), getRecipient(), getVariables()EmailService
BeforeEmailSendEvent
onEasyCommerceBeforeEmailSend
isCancellable(), getType(), getVariables(), getTemplate()EmailService
EmailTemplateRegisterEvent
onEasyCommerceEmailTemplateRegister
addTemplate(), hasTemplate(), getTemplates(), getTemplate(), getTemplatesByCategory()EmailService

Invoice​

Event class and exact event namePayload methodsCaller
AfterInvoiceEmailSentEvent
onEasyCommerceAfterInvoiceEmailSent
getOrderId(), getInvoiceNumber(), getRecipient(), isSuccess()InvoiceService
AfterInvoiceGenerateEvent
onEasyCommerceAfterInvoiceGenerate
getOrderId(), getType(), getFilepath()InvoiceService
BeforeInvoiceGenerateEvent
onEasyCommerceBeforeInvoiceGenerate
isCancellable(), getOrderId(), getType()InvoiceService

Order​

Event class and exact event namePayload methodsCaller
AfterOrderCancelEvent
onEasyCommerceAfterOrderCancel
getOrder()OrderService
AfterOrderCreateEvent
onEasyCommerceAfterOrderCreate
getOrder()OrderService
AfterOrderDeleteEvent
onEasyCommerceAfterOrderDelete
getOrder(), getOrderId()OrderService
AfterOrderGetEvent
onEasyCommerceAfterOrderGet
getOrder()OrderService
AfterOrderListEvent
onEasyCommerceAfterOrderList
getItems(), setItems()OrderService
AfterOrderPaymentEvent
onEasyCommerceAfterOrderPayment
getOrder(), getPaymentStatus()OrderService
AfterOrderRefundEvent
onEasyCommerceAfterOrderRefund
getOrder(), getAmount()OrderService
AfterOrderStatusChangeEvent
onEasyCommerceAfterOrderStatusChange
getOrder(), getOrderId(), getOldStatus(), getNewStatus()OrderService
BeforeOrderCancelEvent
onEasyCommerceBeforeOrderCancel
isCancellable(), getOrderId(), getReason()OrderService
BeforeOrderCreateEvent
onEasyCommerceBeforeOrderCreate
isCancellable()OrderService
BeforeOrderDeleteEvent
onEasyCommerceBeforeOrderDelete
isCancellable(), getOrder(), getOrderId()OrderService
BeforeOrderRefundEvent
onEasyCommerceBeforeOrderRefund
isCancellable(), getOrderId(), getAmount(), getReason()OrderService
BeforeOrderStatusChangeEvent
onEasyCommerceBeforeOrderStatusChange
isCancellable(), getOrder(), getOrderId(), getOldStatus(), getNewStatus(), setNewStatus()OrderService

Order totals​

Event class and exact event namePayload methodsCaller
AfterFeesCalculateEvent
onEasyCommerceAfterFeesCalculate
getCart(), getFees(), setFees()OrderTotalsService
AfterTotalsCalculateEvent
onEasyCommerceAfterTotalsCalculate
getTotals(), setTotals()OrderTotalsService

Payment​

Event class and exact event namePayload methodsCaller
CancelSubscriptionEvent
onEasyCommerceCancelSubscription
getSubscriptionId(), getReason(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getError()SubscriptionService
CapturePaymentEvent
onEasyCommerceCapturePayment
getOrderId(), getTransactionId(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getCaptureId(), getCapturedAmount(), getError()OrdersController
ConfirmPaymentEvent
onEasyCommerceConfirmPayment
getPaymentIntentId(), isSuccessful(), setSuccessResult(), setErrorResult(), getOrderNumber(), getStatus(), getError()PaymentController
CreatePaymentOrderEvent
onEasyCommerceCreatePaymentOrder
getOrder(), getPaymentMethod(), setOrderId(), getOrderId(), setApproveUrl(), getApproveUrl(), isSuccessful(), setError(), getError()PaymentController
GetPaymentMethodsEvent
onEasyCommerceGetPaymentMethods
getMethods(), addMethod(), setMethods()MobileOrdersService, PaymentController
GetPaymentTransactionUrlEvent
onEasyCommerceGetPaymentTransactionUrl
getPaymentMethod(), getTransactionId(), getOrderId(), getUrl(), setUrl(), getLabel(), setLabel(), hasUrl()OrdersController
HandleWebhookEvent
onEasyCommerceHandleWebhook
getPayload(), getHeaders(), getGateway(), isSuccessful(), setErrorResult(), getError()WebhookController
InitializePaymentEvent
onEasyCommerceInitializePayment
getOrder(), getPaymentMethod(), isSuccessful(), setInitializationResult(), setError(), setSuccess(), getClientSecret(), getPublishableKey(), getPaymentIntentId(), getError()PaymentController
ProcessPaymentEvent
onEasyCommerceProcessPayment
getOrder(), getPaymentData(), isSuccessful(), setSuccessResult(), setErrorResult(), getTransactionId(), getStatus(), getRedirectUrl(), getError(), getErrorCode()PaymentController
RefundPaymentEvent
onEasyCommerceRefundPayment
getTransactionId(), getAmount(), getReason(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getRefundId(), getRefundedAmount(), getError()OrderService
UpdateSubscriptionEvent
onEasyCommerceUpdateSubscription
getSubscriptionId(), getUpdateData(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getError(), getRedirectUrl(), setUserActionRequired(), getMessage(), setGatewayReference(), getGatewayReference()SubscriptionPlanChangeService, SubscriptionService
VerifyDuplicateRenewalEvent
onEasyCommerceVerifyDuplicateRenewal
getDuplicate(), getRetained(), getSubscription(), getDateAction()EasyCommerceServiceProvider

Pricing​

Event class and exact event namePayload methodsCaller
AfterPriceCalculateEvent
onEasyCommerceAfterPriceCalculate
getResult(), getProduct(), getQuantity(), getOptions()PricingService

Product​

Event class and exact event namePayload methodsCaller
AfterProductDeleteEvent
onEasyCommerceAfterProductDelete
getProductId()ProductService
AfterProductGetEvent
onEasyCommerceAfterProductGet
getProduct(), setProduct()ProductService
AfterProductListEvent
onEasyCommerceAfterProductList
getItems(), setItems()ProductService
AfterProductSaveEvent
onEasyCommerceAfterProductSave
getProductId(), isNew()ProductService
BeforeProductDeleteEvent
onEasyCommerceBeforeProductDelete
isCancellable(), getProductId(), getProduct()ProductService
BeforeProductGetEvent
onEasyCommerceBeforeProductGet
isCancellable(), getProductId()ProductService
BeforeProductListEvent
onEasyCommerceBeforeProductList
getFilters(), setFilters()ProductService
BeforeProductSaveEvent
onEasyCommerceBeforeProductSave
isCancellable(), isNew(), getProductId()ProductService

Shipping​

Event class and exact event namePayload methodsCaller
AfterShippingRatesEvent
onEasyCommerceAfterShippingRates
getRates(), setRates(), getCart(), getAddress()ShippingService
AfterShippingTrackingEvent
onEasyCommerceAfterShippingTracking
getTrackingInfo(), setTrackingInfo(), getTrackingNumber()ShippingService
AfterShippingZonesEvent
onEasyCommerceAfterShippingZones
getZones(), setZones()ShippingService
CalculateCarrierRateEvent
onEasyCommerceCalculateCarrierRate
getCarrier(), getCart(), getZone(), getRates(), addRate(), setRates()ShippingService

Subscription​

Event class and exact event namePayload methodsCaller
AfterSubscriptionExpiredEvent
onEasyCommerceAfterSubscriptionExpired
getSubscription(), getSubscriptionId(), getReason(), getNotes(), getProductId(), getCustomerId()SubscriptionService
AfterSubscriptionPausedEvent
onEasyCommerceAfterSubscriptionPaused
getSubscription(), getSubscriptionId(), getProductId(), getCustomerId(), getPaidUntilDate(), getReason(), isPaidPeriodEnded()SubscriptionService
AfterSubscriptionPlanChangedEvent
onEasyCommerceAfterSubscriptionPlanChanged
getSubscription(), getSubscriptionId(), getCustomerId(), getChange(), getChangeId(), getDirection(), getEffective(), getFrom(), getTo(), getAmountCharged(), getCurrency(), getOrderId(), getNextPaymentDate()SubscriptionPlanChangeService
AfterSubscriptionRenewalEvent
onEasyCommerceAfterSubscriptionRenewal
getSubscription(), getSubscriptionId(), getOrderId(), getNextPaymentDate(), getPaymentMethod(), getProductId(), getCustomerId()SubscriptionService
AfterSubscriptionResumedEvent
onEasyCommerceAfterSubscriptionResumed
getSubscription(), getSubscriptionId(), getProductId(), getCustomerId(), getNextPaymentDate()SubscriptionService
BeforeSubscriptionPlanChangeEvent
onEasyCommerceBeforeSubscriptionPlanChange
isCancellable(), isBlocked(), getBlockReason(), getSubscription(), getSubscriptionId(), getChange(), getChangeId(), getStage(), getDirection(), getEffective(), getFrom(), getTo(), getAmountDue(), getEffectiveDate()SubscriptionPlanChangeService
GetSubscriptionStatusEvent
onEasyCommerceGetSubscriptionStatus
getGateway(), getGatewaySubscriptionId()SubscriptionService
MigrateToGatewaySubscriptionEvent
onEasyCommerceMigrateToGatewaySubscription
getSubscription(), getGatewayCustomerId(), getPaymentMethodId(), getBillingCycleAnchor(), getProductId(), getAmount(), getCurrency(), getInterval(), getIntervalCount()MigrationService, SubscriptionService

Tag​

Event class and exact event namePayload methodsCaller
AfterTagDeleteEvent
onEasyCommerceAfterTagDelete
getTagIds()TagService
AfterTagGetEvent
onEasyCommerceAfterTagGet
getTag()TagService
AfterTagListEvent
onEasyCommerceAfterTagList
getItems(), setItems()TagService
AfterTagSaveEvent
onEasyCommerceAfterTagSave
getTag(), isNew()TagService
BeforeTagDeleteEvent
onEasyCommerceBeforeTagDelete
isCancellable(), getTagIds()TagService
BeforeTagSaveEvent
onEasyCommerceBeforeTagSave
isCancellable(), isNew()TagService

Tax​

Event class and exact event namePayload methodsCaller
AfterTaxRateSaveEvent
onEasyCommerceAfterTaxRateSave
getRate(), isNew()TaxService
AfterTaxRatesEvent
onEasyCommerceAfterTaxRates
getRates(), setRates(), getZoneId(), getFilters()TaxService
AfterTaxZonesEvent
onEasyCommerceAfterTaxZones
getZones(), setZones()TaxService
BeforeTaxRateSaveEvent
onEasyCommerceBeforeTaxRateSave
isCancellable(), getRateData(), setRateData(), isNew()TaxService
CalculateTaxEvent
onEasyCommerceCalculateTax
getAmount(), getTaxClassId(), getAddress(), getBreakdown(), setBreakdown(), addTax()TaxService
FindTaxZoneEvent
onEasyCommerceFindTaxZone
getAddress(), getZone(), setZone()TaxService

Extension metadata is a separate contract​

Settings schemas, product tabs, account tabs, routes, and plugin JSON actions are collected from interfaces. They do not use invented registration events. See configuration, UI extensions, and plugin endpoints.

Checking a different release​

Search for the event class, inspect its constructor and public methods, then find the code that instantiates and dispatches it. Confirm whether the caller uses its result, honours cancellation, and runs before or after a database commit. Test the real workflow you intend to extend; some services have more than one entry point.