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 class | Exact event name | Current limitation |
|---|---|---|
Payment\AfterOrderCreatePaymentEvent | onEasyCommerceAfterOrderCreatePayment | No core dispatch call found. Listen to the documented order and payment workflow instead. |
Payment\CreateSubscriptionEvent | onEasyCommerceCreateSubscription | No core dispatch call found. Existing gateways create subscriptions through their own payment flows. |
Shipping\CreateShipmentEvent | onEasyCommerceCreateShipment | No core dispatch call found. Creating a local shipment record does not automatically buy a carrier label. |
Shipping\GetTrackingInfoEvent | onEasyCommerceGetTrackingInfo | No 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 name | Payload methods | Caller |
|---|---|---|
AfterCartClearEventonEasyCommerceAfterCartClear | Use the named arguments via getData(). See the event constructor. | CartService |
AfterCartCouponApplyEventonEasyCommerceAfterCartCouponApply | getCart(), setCart(), getCode() | CartService |
AfterCartCouponRemoveEventonEasyCommerceAfterCartCouponRemove | getCart(), setCart(), getCode() | CartService |
AfterCartGetEventonEasyCommerceAfterCartGet | getCart(), setCart() | CartService |
AfterCartItemAddEventonEasyCommerceAfterCartItemAdd | getItem(), getCart() | CartService |
AfterCartItemRemoveEventonEasyCommerceAfterCartItemRemove | getCart() | CartService |
AfterCartItemUpdateEventonEasyCommerceAfterCartItemUpdate | getCart() | CartService |
AfterCartTotalsCalculatedEventonEasyCommerceAfterCartTotalsCalculated | getCart(), setCart() | CartService |
BeforeCartClearEventonEasyCommerceBeforeCartClear | isCancellable() | CartService |
BeforeCartCouponApplyEventonEasyCommerceBeforeCartCouponApply | isCancellable(), getCode(), getCart() | CartService |
BeforeCartCouponRemoveEventonEasyCommerceBeforeCartCouponRemove | isCancellable(), getCode(), getCart() | CartService |
BeforeCartGetEventonEasyCommerceBeforeCartGet | isCancellable() | CartService |
BeforeCartItemAddEventonEasyCommerceBeforeCartItemAdd | isCancellable(), getProductId(), getQuantity(), setQuantity(), getOptions(), getCart() | CartService |
BeforeCartItemRemoveEventonEasyCommerceBeforeCartItemRemove | isCancellable(), getCartKey() | CartService |
BeforeCartItemUpdateEventonEasyCommerceBeforeCartItemUpdate | isCancellable(), getCartKey(), getQuantity() | CartService |
Category
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterCategoryDeleteEventonEasyCommerceAfterCategoryDelete | getCategoryId() | CategoryModel |
AfterCategoryGetEventonEasyCommerceAfterCategoryGet | getCategory() | CategoryModel, CategoriesModel |
AfterCategoryListEventonEasyCommerceAfterCategoryList | getItems(), setItems() | CategoriesModel |
AfterCategorySaveEventonEasyCommerceAfterCategorySave | getCategory(), isNew() | CategoryModel |
BeforeCategoryDeleteEventonEasyCommerceBeforeCategoryDelete | isCancellable(), getCategoryId() | CategoryModel |
BeforeCategorySaveEventonEasyCommerceBeforeCategorySave | isCancellable(), isNew() | CategoryModel |
Checkout
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterCheckoutValidateEventonEasyCommerceAfterCheckoutValidate | getErrors(), setErrors(), getCart() | CartService |
BeforeCheckoutOrderCreateEventonEasyCommerceBeforeCheckoutOrderCreate | isCancellable() | OrderService |
Coupon
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterCouponDeleteEventonEasyCommerceAfterCouponDelete | getCouponId() | CouponService |
AfterCouponGetEventonEasyCommerceAfterCouponGet | getCoupon() | CouponService |
AfterCouponListEventonEasyCommerceAfterCouponList | getItems(), setItems() | CouponService |
AfterCouponSaveEventonEasyCommerceAfterCouponSave | getCoupon(), isNew() | CouponService |
BeforeCouponDeleteEventonEasyCommerceBeforeCouponDelete | isCancellable(), getCouponId() | CouponService |
BeforeCouponSaveEventonEasyCommerceBeforeCouponSave | isCancellable(), isNew() | CouponService |
Customer
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterCustomerDeleteEventonEasyCommerceAfterCustomerDelete | getCustomerId() | CustomerService |
AfterCustomerGetEventonEasyCommerceAfterCustomerGet | getCustomer() | CustomerService |
AfterCustomerListEventonEasyCommerceAfterCustomerList | getItems(), setItems() | CustomerService |
AfterCustomerSaveEventonEasyCommerceAfterCustomerSave | getCustomer(), isNew() | CustomerService |
BeforeCustomerDeleteEventonEasyCommerceBeforeCustomerDelete | isCancellable(), getCustomerId() | CustomerService |
BeforeCustomerSaveEventonEasyCommerceBeforeCustomerSave | isCancellable(), isNew() | CustomerService |
Email
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterEmailSendEventonEasyCommerceAfterEmailSend | getType(), getRecipient(), getVariables() | EmailService |
BeforeEmailSendEventonEasyCommerceBeforeEmailSend | isCancellable(), getType(), getVariables(), getTemplate() | EmailService |
EmailTemplateRegisterEventonEasyCommerceEmailTemplateRegister | addTemplate(), hasTemplate(), getTemplates(), getTemplate(), getTemplatesByCategory() | EmailService |
Invoice
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterInvoiceEmailSentEventonEasyCommerceAfterInvoiceEmailSent | getOrderId(), getInvoiceNumber(), getRecipient(), isSuccess() | InvoiceService |
AfterInvoiceGenerateEventonEasyCommerceAfterInvoiceGenerate | getOrderId(), getType(), getFilepath() | InvoiceService |
BeforeInvoiceGenerateEventonEasyCommerceBeforeInvoiceGenerate | isCancellable(), getOrderId(), getType() | InvoiceService |
Order
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterOrderCancelEventonEasyCommerceAfterOrderCancel | getOrder() | OrderService |
AfterOrderCreateEventonEasyCommerceAfterOrderCreate | getOrder() | OrderService |
AfterOrderDeleteEventonEasyCommerceAfterOrderDelete | getOrder(), getOrderId() | OrderService |
AfterOrderGetEventonEasyCommerceAfterOrderGet | getOrder() | OrderService |
AfterOrderListEventonEasyCommerceAfterOrderList | getItems(), setItems() | OrderService |
AfterOrderPaymentEventonEasyCommerceAfterOrderPayment | getOrder(), getPaymentStatus() | OrderService |
AfterOrderRefundEventonEasyCommerceAfterOrderRefund | getOrder(), getAmount() | OrderService |
AfterOrderStatusChangeEventonEasyCommerceAfterOrderStatusChange | getOrder(), getOrderId(), getOldStatus(), getNewStatus() | OrderService |
BeforeOrderCancelEventonEasyCommerceBeforeOrderCancel | isCancellable(), getOrderId(), getReason() | OrderService |
BeforeOrderCreateEventonEasyCommerceBeforeOrderCreate | isCancellable() | OrderService |
BeforeOrderDeleteEventonEasyCommerceBeforeOrderDelete | isCancellable(), getOrder(), getOrderId() | OrderService |
BeforeOrderRefundEventonEasyCommerceBeforeOrderRefund | isCancellable(), getOrderId(), getAmount(), getReason() | OrderService |
BeforeOrderStatusChangeEventonEasyCommerceBeforeOrderStatusChange | isCancellable(), getOrder(), getOrderId(), getOldStatus(), getNewStatus(), setNewStatus() | OrderService |
Order totals
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterFeesCalculateEventonEasyCommerceAfterFeesCalculate | getCart(), getFees(), setFees() | OrderTotalsService |
AfterTotalsCalculateEventonEasyCommerceAfterTotalsCalculate | getTotals(), setTotals() | OrderTotalsService |
Payment
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
CancelSubscriptionEventonEasyCommerceCancelSubscription | getSubscriptionId(), getReason(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getError() | SubscriptionService |
CapturePaymentEventonEasyCommerceCapturePayment | getOrderId(), getTransactionId(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getCaptureId(), getCapturedAmount(), getError() | OrdersController |
ConfirmPaymentEventonEasyCommerceConfirmPayment | getPaymentIntentId(), isSuccessful(), setSuccessResult(), setErrorResult(), getOrderNumber(), getStatus(), getError() | PaymentController |
CreatePaymentOrderEventonEasyCommerceCreatePaymentOrder | getOrder(), getPaymentMethod(), setOrderId(), getOrderId(), setApproveUrl(), getApproveUrl(), isSuccessful(), setError(), getError() | PaymentController |
GetPaymentMethodsEventonEasyCommerceGetPaymentMethods | getMethods(), addMethod(), setMethods() | MobileOrdersService, PaymentController |
GetPaymentTransactionUrlEventonEasyCommerceGetPaymentTransactionUrl | getPaymentMethod(), getTransactionId(), getOrderId(), getUrl(), setUrl(), getLabel(), setLabel(), hasUrl() | OrdersController |
HandleWebhookEventonEasyCommerceHandleWebhook | getPayload(), getHeaders(), getGateway(), isSuccessful(), setErrorResult(), getError() | WebhookController |
InitializePaymentEventonEasyCommerceInitializePayment | getOrder(), getPaymentMethod(), isSuccessful(), setInitializationResult(), setError(), setSuccess(), getClientSecret(), getPublishableKey(), getPaymentIntentId(), getError() | PaymentController |
ProcessPaymentEventonEasyCommerceProcessPayment | getOrder(), getPaymentData(), isSuccessful(), setSuccessResult(), setErrorResult(), getTransactionId(), getStatus(), getRedirectUrl(), getError(), getErrorCode() | PaymentController |
RefundPaymentEventonEasyCommerceRefundPayment | getTransactionId(), getAmount(), getReason(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getRefundId(), getRefundedAmount(), getError() | OrderService |
UpdateSubscriptionEventonEasyCommerceUpdateSubscription | getSubscriptionId(), getUpdateData(), getPaymentMethod(), isSuccessful(), setSuccessResult(), setErrorResult(), getError(), getRedirectUrl(), setUserActionRequired(), getMessage(), setGatewayReference(), getGatewayReference() | SubscriptionPlanChangeService, SubscriptionService |
VerifyDuplicateRenewalEventonEasyCommerceVerifyDuplicateRenewal | getDuplicate(), getRetained(), getSubscription(), getDateAction() | EasyCommerceServiceProvider |
Pricing
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterPriceCalculateEventonEasyCommerceAfterPriceCalculate | getResult(), getProduct(), getQuantity(), getOptions() | PricingService |
Product
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterProductDeleteEventonEasyCommerceAfterProductDelete | getProductId() | ProductService |
AfterProductGetEventonEasyCommerceAfterProductGet | getProduct(), setProduct() | ProductService |
AfterProductListEventonEasyCommerceAfterProductList | getItems(), setItems() | ProductService |
AfterProductSaveEventonEasyCommerceAfterProductSave | getProductId(), isNew() | ProductService |
BeforeProductDeleteEventonEasyCommerceBeforeProductDelete | isCancellable(), getProductId(), getProduct() | ProductService |
BeforeProductGetEventonEasyCommerceBeforeProductGet | isCancellable(), getProductId() | ProductService |
BeforeProductListEventonEasyCommerceBeforeProductList | getFilters(), setFilters() | ProductService |
BeforeProductSaveEventonEasyCommerceBeforeProductSave | isCancellable(), isNew(), getProductId() | ProductService |
Shipping
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterShippingRatesEventonEasyCommerceAfterShippingRates | getRates(), setRates(), getCart(), getAddress() | ShippingService |
AfterShippingTrackingEventonEasyCommerceAfterShippingTracking | getTrackingInfo(), setTrackingInfo(), getTrackingNumber() | ShippingService |
AfterShippingZonesEventonEasyCommerceAfterShippingZones | getZones(), setZones() | ShippingService |
CalculateCarrierRateEventonEasyCommerceCalculateCarrierRate | getCarrier(), getCart(), getZone(), getRates(), addRate(), setRates() | ShippingService |
Subscription
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterSubscriptionExpiredEventonEasyCommerceAfterSubscriptionExpired | getSubscription(), getSubscriptionId(), getReason(), getNotes(), getProductId(), getCustomerId() | SubscriptionService |
AfterSubscriptionPausedEventonEasyCommerceAfterSubscriptionPaused | getSubscription(), getSubscriptionId(), getProductId(), getCustomerId(), getPaidUntilDate(), getReason(), isPaidPeriodEnded() | SubscriptionService |
AfterSubscriptionPlanChangedEventonEasyCommerceAfterSubscriptionPlanChanged | getSubscription(), getSubscriptionId(), getCustomerId(), getChange(), getChangeId(), getDirection(), getEffective(), getFrom(), getTo(), getAmountCharged(), getCurrency(), getOrderId(), getNextPaymentDate() | SubscriptionPlanChangeService |
AfterSubscriptionRenewalEventonEasyCommerceAfterSubscriptionRenewal | getSubscription(), getSubscriptionId(), getOrderId(), getNextPaymentDate(), getPaymentMethod(), getProductId(), getCustomerId() | SubscriptionService |
AfterSubscriptionResumedEventonEasyCommerceAfterSubscriptionResumed | getSubscription(), getSubscriptionId(), getProductId(), getCustomerId(), getNextPaymentDate() | SubscriptionService |
BeforeSubscriptionPlanChangeEventonEasyCommerceBeforeSubscriptionPlanChange | isCancellable(), isBlocked(), getBlockReason(), getSubscription(), getSubscriptionId(), getChange(), getChangeId(), getStage(), getDirection(), getEffective(), getFrom(), getTo(), getAmountDue(), getEffectiveDate() | SubscriptionPlanChangeService |
GetSubscriptionStatusEventonEasyCommerceGetSubscriptionStatus | getGateway(), getGatewaySubscriptionId() | SubscriptionService |
MigrateToGatewaySubscriptionEventonEasyCommerceMigrateToGatewaySubscription | getSubscription(), getGatewayCustomerId(), getPaymentMethodId(), getBillingCycleAnchor(), getProductId(), getAmount(), getCurrency(), getInterval(), getIntervalCount() | MigrationService, SubscriptionService |
Tag
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterTagDeleteEventonEasyCommerceAfterTagDelete | getTagIds() | TagService |
AfterTagGetEventonEasyCommerceAfterTagGet | getTag() | TagService |
AfterTagListEventonEasyCommerceAfterTagList | getItems(), setItems() | TagService |
AfterTagSaveEventonEasyCommerceAfterTagSave | getTag(), isNew() | TagService |
BeforeTagDeleteEventonEasyCommerceBeforeTagDelete | isCancellable(), getTagIds() | TagService |
BeforeTagSaveEventonEasyCommerceBeforeTagSave | isCancellable(), isNew() | TagService |
Tax
| Event class and exact event name | Payload methods | Caller |
|---|---|---|
AfterTaxRateSaveEventonEasyCommerceAfterTaxRateSave | getRate(), isNew() | TaxService |
AfterTaxRatesEventonEasyCommerceAfterTaxRates | getRates(), setRates(), getZoneId(), getFilters() | TaxService |
AfterTaxZonesEventonEasyCommerceAfterTaxZones | getZones(), setZones() | TaxService |
BeforeTaxRateSaveEventonEasyCommerceBeforeTaxRateSave | isCancellable(), getRateData(), setRateData(), isNew() | TaxService |
CalculateTaxEventonEasyCommerceCalculateTax | getAmount(), getTaxClassId(), getAddress(), getBreakdown(), setBreakdown(), addTax() | TaxService |
FindTaxZoneEventonEasyCommerceFindTaxZone | 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.