Events

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_CREATED cartCreated First save of a new order element
EventType::CART_UPDATED cartUpdated Subsequent saves before completion

Line Items

Enum caseValueCommerce trigger
EventType::LINE_ITEM_ADDED lineItemAdded Order::EVENT_AFTER_ADD_LINE_ITEM
EventType::LINE_ITEM_REMOVED lineItemRemoved Order::EVENT_AFTER_REMOVE_LINE_ITEM
EventType::LINE_ITEM_UPDATED lineItemUpdated Order::EVENT_AFTER_APPLY_CART_PRICE_RULES (qty/options changed)

Coupons

Enum caseValueCommerce trigger
EventType::COUPON_APPLIED couponApplied Coupon code set on cart sav
EventType::COUPON_REMOVED couponRemoved Coupon code cleared on cart save

Addresses

Enum caseValueCommerce trigger
EventType::SHIPPING_ADDRESS_SET shippingAddressSet Shipping address added/updated on sav
EventType::SHIPPING_ADDRESS_REMOVED shippingAddressRemoved Shipping address removed on save
EventType::BILLING_ADDRESS_SET billingAddressSet Billing address added/updated on save
EventType::BILLING_ADDRESS_REMOVED billingAddressRemoved Billing address removed on sav

Customer

Enum caseValueCommerce trigger
EventType::CUSTOMER_SET customerSet Customer email assigned on cart sav
EventType::CUSTOMER_REMOVED customerRemoved Customer email removed on cart save

Shipping

Enum caseValueCommerce trigger
EventType::SHIPPING_METHOD_SET shippingMethodSet Shipping method set or changed on save

Order

Enum caseValueCommerce trigger
EventType::STATUS_CHANGED statusChanged OrderHistories after status change
EventType::ORDER_COMPLETED orderCompleted Order::EVENT_AFTER_COMPLETE_ORDER
EventType::ORDER_PAID orderPaid Payments::EVENT_AFTER_PAYMENT_SUCCESS (fully paid)

Payment

Enum caseValueCommerce trigger
EventType::PAYMENT_ATTEMPT paymentAttempt Payments::EVENT_BEFORE_PROCESS_PAYMENT
EventType::PAYMENT_PROCESSED paymentProcessed Payments::EVENT_AFTER_PROCESS_PAYMENT
EventType::PAYMENT_AUTHORIZED paymentAuthorized Transactions authorize event
EventType::PAYMENT_CAPTURED paymentCaptured Transactions capture event
EventType::PAYMENT_REFUNDED paymentRefunded Transactions::EVENT_AFTER_REFUND_TRANSACTION
EventType::PAYMENT_TRANSACTION paymentTransaction Any transaction save (requires setting enabled)

Email

Enum caseValueCommerce trigger
EventType::EMAIL_SENT emailSent Emails::EVENT_AFTER_SEND_MAIL
EventType::EMAIL_FAILED emailFailed Emails send failure

Checkout

Enum caseValueCommerce trigger
EventType::CHECKOUT_STARTED checkoutStarted Manual only - call logCheckoutStarted() from your checkout template

AI

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

Using EventType in Code

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'

// Get the timeline filter pill this event type shows under - mirrors
// getCategory() one-to-one, except checkout events fold into the Cart pill
$pill = EventType::CHECKOUT_STARTED->getFilterPill(); // 'cart'
$pill = EventType::ORDER_COMPLETED->getFilterPill();  // '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:

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

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

Querying Logs by Type

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

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

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

See Also