Skip to content

OrderStatuses ​

Type
Class
Namespace
craft\commerce\services
Inherits
craft\commerce\services\OrderStatuses » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
2.0

Order status service.

View source

Public Properties ​

PropertyDescription
allOrderStatusescraft\commerce\models\OrderStatus[], array – all Order Statuses
behaviorsyii\base\Behavior – List of behaviors attached to this component.
defaultOrderStatuscraft\commerce\models\OrderStatus, null – default order status from the DB
defaultOrderStatusIdnull, integer – default order status ID from the DB
orderCountByStatusarray

allOrderStatuses ​

Type
craft\commerce\models\OrderStatus[], array
Default value
null

all Order Statuses

View source

defaultOrderStatus ​

Type
craft\commerce\models\OrderStatus, null
Default value
null

default order status from the DB

View source

defaultOrderStatusId ​

Type
null, integer
Default value
null

default order status ID from the DB

View source

orderCountByStatus ​

Type
array
Default value
null

View source

Public Methods ​

MethodDescription
__call()Calls the named method which is not a class method.
__clone()This method is called after the object is created by cloning an existing one.
__construct()Constructor.
__get()Returns the value of a component property.
__isset()Checks if a property is set, i.e. defined and not null.
__set()Sets the value of a component property.
__unset()Sets a component property to be null.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
behaviors()Returns a list of behaviors that this component should behave as.
canGetProperty()Returns a value indicating whether a property can be read.
canSetProperty()Returns a value indicating whether a property can be set.
className()Returns the fully qualified name of this class.
deleteOrderStatusById()Delete an order status by it's id.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getAllOrderStatuses()Returns all Order Statuses
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getDefaultOrderStatus()Get default order status from the DB
getDefaultOrderStatusForOrder()Get the default order status for a particular order. Defaults to the control-panel-configured default order status.
getDefaultOrderStatusId()Get default order status ID from the DB
getOrderCountByStatus()
getOrderStatusByHandle()Get order status by its handle.
getOrderStatusById()Get an order status by ID
getOrderStatusByUid()Get an order status by ID
handleChangedOrderStatus()Handle order status change.
handleDeletedOrderStatus()Handle order status being deleted
hasEventHandlers()Returns a value indicating whether there is any handler attached to the named event.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined for this component.
init()Initializes the object.
off()Detaches an existing event handler from this component.
on()Attaches an event handler to an event.
pruneDeletedEmail()Prune a deleted email from order statuses.
reorderOrderStatuses()Reorders the order statuses.
saveOrderStatus()Save the order status.
statusChangeHandler()Handler for order status change event
trigger()Triggers an event.

deleteOrderStatusById() ​

Delete an order status by it's id.

View source

Arguments ​

  • $id
  • $storeId

Throws ​

getAllOrderStatuses() ​

Since
2.2

Returns all Order Statuses

View source

Arguments ​

Returns ​

\Illuminate\Support\Collection<\craft\commerce\models\OrderStatus>

Throws ​

getDefaultOrderStatus() ​

Get default order status from the DB

View source

Arguments ​

  • $storeId

getDefaultOrderStatusForOrder() ​

Get the default order status for a particular order. Defaults to the control-panel-configured default order status.

View source

Arguments ​

  • $order

getDefaultOrderStatusId() ​

Get default order status ID from the DB

View source

Arguments ​

  • $storeId

getOrderCountByStatus() ​

Since
3.0.11

View source

Arguments ​

  • $storeId

getOrderStatusByHandle() ​

Get order status by its handle.

View source

Arguments ​

  • $handle
  • $storeId

getOrderStatusById() ​

Get an order status by ID

View source

Arguments ​

  • $id
  • $storeId

getOrderStatusByUid() ​

Get an order status by ID

View source

Arguments ​

  • $uid
  • $storeId

handleChangedOrderStatus() ​

Handle order status change.

View source

Arguments ​

  • $event

Returns ​

void

Throws ​

handleDeletedOrderStatus() ​

Handle order status being deleted

View source

Arguments ​

  • $event

Returns ​

void

Throws ​

pruneDeletedEmail() ​

Prune a deleted email from order statuses.

View source

Arguments ​

  • $event

reorderOrderStatuses() ​

Reorders the order statuses.

View source

Arguments ​

  • $ids

Throws ​

saveOrderStatus() ​

Save the order status.

View source

Arguments ​

  • $orderStatus
  • $emailIds
  • $runValidation (boolean) – Should we validate this order status before saving.
  • $force

Throws ​

statusChangeHandler() ​

Handler for order status change event

View source

Arguments ​

Throws ​

Constants ​

ConstantDescription
CONFIG_STATUSES_KEY

Events ​

EVENT_DEFAULT_ORDER_STATUS ​

Type
craft\commerce\events\DefaultOrderStatusEvent

The event that is triggered when a default order status is being fetched.

Set the event object’s orderStatus property to override the default status set in the control panel.

php
use craft\commerce\events\DefaultOrderStatusEvent;
use craft\commerce\services\OrderStatuses;
use craft\commerce\models\OrderStatus;
use craft\commerce\elements\Order;
use yii\base\Event;

Event::on(
    OrderStatuses::class,
    OrderStatuses::EVENT_DEFAULT_ORDER_STATUS,
    function(DefaultOrderStatusEvent $event) {
        // @var OrderStatus $status
        $status = $event->orderStatus;
        // @var Order $order
        $order = $event->order;

        // Choose a more appropriate order status than the control panel default
        // ...
    }
);

EVENT_ORDER_STATUS_CHANGE_EMAILS ​

Type
craft\commerce\events\OrderStatusEmailsEvent

The email event that is triggered when an order status is changed.

Plugins can get notified when an order status is changed

php
use craft\commerce\events\OrderStatusEmailsEvent;
use craft\commerce\services\OrderStatuses;
use craft\commerce\models\OrderHistory;
use craft\commerce\elements\Order;
use yii\base\Event;

Event::on(
    OrderStatuses::class,
    OrderStatuses::EVENT_ORDER_STATUS_CHANGE_EMAILS,
    function(OrderStatusEmailsEvent $event) {
        // @var OrderHistory $orderHistory
        $orderHistory = $event->orderHistory;
        // @var Order $order
        $order = $event->order;

        // Let the delivery department know the order’s ready to be delivered
        // ...
    }
);