Skip to content

Events Reference beta

All event types are defined as cases on the EventType enum at johnhenry\orderlifecycle\enums\EventType. The enum's value is the string stored in the database type column.

All Event Types

Cart

Enum caseValueCommerce trigger
EventType::CART_CREATEDcartCreatedFirst save of a new order element
EventType::CART_UPDATEDcartUpdatedSubsequent saves before completion

Line Items

Enum caseValueCommerce trigger
EventType::LINE_ITEM_ADDEDlineItemAddedOrder::EVENT_AFTER_ADD_LINE_ITEM
EventType::LINE_ITEM_REMOVEDlineItemRemovedOrder::EVENT_AFTER_REMOVE_LINE_ITEM
EventType::LINE_ITEM_UPDATEDlineItemUpdatedOrder::EVENT_AFTER_APPLY_CART_PRICE_RULES (qty/options changed)

Coupons

Enum caseValueCommerce trigger
EventType::COUPON_APPLIEDcouponAppliedCoupon code set on cart save
EventType::COUPON_REMOVEDcouponRemovedCoupon code cleared on cart save

Addresses

Enum caseValueCommerce trigger
EventType::SHIPPING_ADDRESS_SETshippingAddressSetShipping address added/updated on save
EventType::SHIPPING_ADDRESS_REMOVEDshippingAddressRemovedShipping address removed on save
EventType::BILLING_ADDRESS_SETbillingAddressSetBilling address added/updated on save
EventType::BILLING_ADDRESS_REMOVEDbillingAddressRemovedBilling address removed on save

Customer

Enum caseValueCommerce trigger
EventType::CUSTOMER_SETcustomerSetCustomer email assigned on cart save
EventType::CUSTOMER_REMOVEDcustomerRemovedCustomer email removed on cart save

Shipping

Enum caseValueCommerce trigger
EventType::SHIPPING_METHOD_SETshippingMethodSetShipping method set or changed on save

Order

Enum caseValueCommerce trigger
EventType::STATUS_CHANGEDstatusChangedOrderHistories after status change
EventType::ORDER_COMPLETEDorderCompletedOrder::EVENT_AFTER_COMPLETE_ORDER
EventType::ORDER_PAIDorderPaidPayments::EVENT_AFTER_PAYMENT_SUCCESS (fully paid)

Payment

Enum caseValueCommerce trigger
EventType::PAYMENT_ATTEMPTpaymentAttemptPayments::EVENT_BEFORE_PROCESS_PAYMENT
EventType::PAYMENT_PROCESSEDpaymentProcessedPayments::EVENT_AFTER_PROCESS_PAYMENT
EventType::PAYMENT_AUTHORIZEDpaymentAuthorizedTransactions authorize event
EventType::PAYMENT_CAPTUREDpaymentCapturedTransactions capture event
EventType::PAYMENT_REFUNDEDpaymentRefundedTransactions::EVENT_AFTER_REFUND_TRANSACTION
EventType::PAYMENT_TRANSACTIONpaymentTransactionAny transaction save (requires setting enabled)

Email

Enum caseValueCommerce trigger
EventType::EMAIL_SENTemailSentEmails::EVENT_AFTER_SEND_MAIL
EventType::EMAIL_FAILEDemailFailedEmails send failure

Checkout

Enum caseValueCommerce trigger
EventType::CHECKOUT_STARTEDcheckoutStartedManual only - call logCheckoutStarted() from your checkout template

AI

Enum caseValueTrigger
EventType::AI_INSIGHTSaiInsightsSaved automatically when AI Insights are generated for an order. Never appears in the timeline display.

Using EventType in Code

php
use johnhenry\orderlifecycle\enums\EventType;

// Get the string value
$value = EventType::ORDER_COMPLETED->value; // 'orderCompleted'

// Get a human-readable label (requires Craft application)
$label = EventType::ORDER_COMPLETED->getLabel(); // 'Order Completed'

// Get the category
$category = EventType::ORDER_COMPLETED->getCategory(); // 'order'

// Boolean helpers
EventType::CART_CREATED->isCartEvent();    // true
EventType::PAYMENT_REFUNDED->isPaymentEvent(); // true
EventType::EMAIL_SENT->isEmailEvent();    // true

Logging a Custom Event

To record an event against an order use the logger service:

php
use johnhenry\orderlifecycle\OrderLifecycle;
use johnhenry\orderlifecycle\enums\EventType;

OrderLifecycle::getInstance()->logger->log(
    $order,
    EventType::STATUS_CHANGED,
    ['note' => 'Manually overridden by support agent'],
    'Status manually updated'
);

Querying Logs by Type

php
use johnhenry\orderlifecycle\OrderLifecycle;
use johnhenry\orderlifecycle\enums\EventType;

// Get the most recent log of a specific type
$lastPayment = OrderLifecycle::getInstance()->logger->getLastLogForOrderAndType(
    $order->id,
    EventType::PAYMENT_PROCESSED
);

// Get all logs and filter in PHP
$logs = OrderLifecycle::getInstance()->logger->getLogsForOrder($order->id);
$paymentLogs = array_filter($logs, fn($log) => $log['type'] === EventType::PAYMENT_PROCESSED->value);

See Also