Skip to content

LineItems ​

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

Line item service.

View source

Public Properties ​

PropertyDescription
behaviorsyii\base\Behavior – List of behaviors attached to this component.

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.
create()
createLineItem()Create a line item.
deleteAllLineItemsByOrderId()Deletes all line items associated with an order, per the order's ID.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
eagerLoadLineItemsForOrders()
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getAllLineItemsByOrderId()Returns an order's line items, per the order's ID.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getLineItemById()Get a line item by its ID.
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.
orderCompleteHandler()
resolveCustomLineItem()
resolveLineItem()Takes an order, a purchasable ID, options, and resolves it to a line item.
saveLineItem()Save a line item.
trigger()Triggers an event.

create() ​

Since
5.1.0

View source

Arguments ​

Returns ​

craft\commerce\models\LineItem

Throws ​

createLineItem() ​

DEPRECATED

Deprecated in 5.1.0. Use create() instead.

Create a line item.

View source

Arguments ​

  • $order (craft\commerce\elements\Order) – The order the line item is associated with
  • $purchasableId (integer) – The ID of the purchasable the line item represents
  • $options (array) – Options to set on the line item
  • $qty (integer) – The quantity to set on the line item
  • $note (string) – The note on the line item
  • $uid (string, null)

Throws ​

deleteAllLineItemsByOrderId() ​

Deletes all line items associated with an order, per the order's ID.

View source

Arguments ​

  • $orderId (integer) – The order's ID

Returns ​

boolean – Whether any line items were deleted

eagerLoadLineItemsForOrders() ​

Since
3.2.0

View source

Arguments ​

Returns ​

craft\commerce\elements\Order[]

getAllLineItemsByOrderId() ​

Returns an order's line items, per the order's ID.

View source

Arguments ​

  • $orderId (integer) – The order's ID

Returns ​

craft\commerce\models\LineItem[] – An array of all the line items for the matched order.

getLineItemById() ​

Get a line item by its ID.

View source

Arguments ​

  • $id (integer) – The line item ID

Returns ​

craft\commerce\models\LineItem, null – Line item or null, if not found.

orderCompleteHandler() ​

Since
3.2.5

View source

Arguments ​

  • $lineItem
  • $order

Throws ​

resolveCustomLineItem() ​

Since
5.1.0

View source

Arguments ​

Returns ​

craft\commerce\models\LineItem

Throws ​

resolveLineItem() ​

Takes an order, a purchasable ID, options, and resolves it to a line item.

If a line item is found for that order ID with those exact options, that line item is returned. Otherwise, a new line item is returned.

View source

Arguments ​

Returns ​

craft\commerce\models\LineItem

Throws ​

saveLineItem() ​

Save a line item.

View source

Arguments ​

Throws ​

Events ​

EVENT_AFTER_SAVE_LINE_ITEM ​

Type
craft\commerce\events\LineItemEvent

The event that is triggered after a line item is saved.

php
use craft\commerce\events\LineItemEvent;
use craft\commerce\services\LineItems;
use craft\commerce\models\LineItem;
use yii\base\Event;

Event::on(
    LineItems::class,
    LineItems::EVENT_AFTER_SAVE_LINE_ITEM,
    function(LineItemEvent $event) {
        // @var LineItem $lineItem
        $lineItem = $event->lineItem;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Reserve stock
        // ...
    }
);

EVENT_BEFORE_SAVE_LINE_ITEM ​

Type
craft\commerce\events\LineItemEvent

The event that is triggered before a line item is saved.

php
use craft\commerce\events\LineItemEvent;
use craft\commerce\services\LineItems;
use craft\commerce\models\LineItem;
use yii\base\Event;

Event::on(
    LineItems::class,
    LineItems::EVENT_BEFORE_SAVE_LINE_ITEM,
    function(LineItemEvent $event) {
        // @var LineItem $lineItem
        $lineItem = $event->lineItem;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Notify a third party service about changes to an order
        // ...
    }
);

EVENT_CREATE_LINE_ITEM ​

Type
craft\commerce\events\LineItemEvent

The event that is triggered after a line item has been created from a purchasable.

php
use craft\commerce\events\LineItemEvent;
use craft\commerce\services\LineItems;
use craft\commerce\models\LineItem;
use yii\base\Event;

Event::on(
    LineItems::class,
    LineItems::EVENT_CREATE_LINE_ITEM,
    function(LineItemEvent $event) {
        // @var LineItem $lineItem
        $lineItem = $event->lineItem;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Call a third party service based on the line item options
        // ...
    }
);

EVENT_POPULATE_LINE_ITEM ​

Type
craft\commerce\events\LineItemEvent

The event that is triggered as a line item is being populated from a purchasable.

php
use craft\commerce\events\LineItemEvent;
use craft\commerce\services\LineItems;
use craft\commerce\models\LineItem;
use yii\base\Event;

Event::on(
    LineItems::class,
    LineItems::EVENT_POPULATE_LINE_ITEM,
    function(LineItemEvent $event) {
        // @var LineItem $lineItem
        $lineItem = $event->lineItem;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Modify the price of a line item
        // ...
    }
);