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 case | Value | Commerce trigger |
|---|---|---|
EventType::CART_CREATED | cartCreated | First save of a new order element |
EventType::CART_UPDATED | cartUpdated | Subsequent saves before completion |
Line Items
| Enum case | Value | Commerce 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 case | Value | Commerce trigger |
|---|---|---|
EventType::COUPON_APPLIED | couponApplied | Coupon code set on cart save |
EventType::COUPON_REMOVED | couponRemoved | Coupon code cleared on cart save |
Addresses
| Enum case | Value | Commerce trigger |
|---|---|---|
EventType::SHIPPING_ADDRESS_SET | shippingAddressSet | Shipping address added/updated on save |
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 save |
Customer
| Enum case | Value | Commerce trigger |
|---|---|---|
EventType::CUSTOMER_SET | customerSet | Customer email assigned on cart save |
EventType::CUSTOMER_REMOVED | customerRemoved | Customer email removed on cart save |
Shipping
| Enum case | Value | Commerce trigger |
|---|---|---|
EventType::SHIPPING_METHOD_SET | shippingMethodSet | Shipping method set or changed on save |
Order
| Enum case | Value | Commerce 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 case | Value | Commerce 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 case | Value | Commerce trigger |
|---|---|---|
EventType::EMAIL_SENT | emailSent | Emails::EVENT_AFTER_SEND_MAIL |
EventType::EMAIL_FAILED | emailFailed | Emails send failure |
Checkout
| Enum case | Value | Commerce trigger |
|---|---|---|
EventType::CHECKOUT_STARTED | checkoutStarted | Manual only - call logCheckoutStarted() from your checkout template |
AI
| Enum case | Value | Trigger |
|---|---|---|
EventType::AI_INSIGHTS | aiInsights | Saved 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(); // trueLogging 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
- Services API - Full method reference
- Event Tracking Guide - What is tracked automatically and how to add custom events