Purchasables

Type
Class
Namespace
craft\commerce\services
Inherits
craft\commerce\services\Purchasables » yii\base\Component (opens new window) » yii\base\BaseObject (opens new window)
Implements
yii\base\Configurable (opens new window)
Since
2.0

Product type service.

View source (opens new window)

# Public Properties

# allPurchasableElementTypes

Type
array (opens new window), string (opens new window)[]
Default value
null

View source (opens new window)

# Public Methods

Method Description
__call() (opens new window) Calls the named method which is not a class method.
__clone() (opens new window) This method is called after the object is created by cloning an existing one.
__construct() (opens new window) Constructor.
__get() (opens new window) Returns the value of a component property.
__isset() (opens new window) Checks if a property is set, i.e. defined and not null.
__set() (opens new window) Sets the value of a component property.
__unset() (opens new window) Sets a component property to be null.
attachBehavior() (opens new window) Attaches a behavior to this component.
attachBehaviors() (opens new window) Attaches a list of behaviors to the component.
behaviors() (opens new window) Returns a list of behaviors that this component should behave as.
canGetProperty() (opens new window) Returns a value indicating whether a property can be read.
canSetProperty() (opens new window) Returns a value indicating whether a property can be set.
className() (opens new window) Returns the fully qualified name of this class.
deletePurchasableById() Delete a purchasable by its ID.
detachBehavior() (opens new window) Detaches a behavior from the component.
detachBehaviors() (opens new window) Detaches all behaviors from the component.
ensureBehaviors() (opens new window) Makes sure that the behaviors declared in behaviors() (opens new window) are attached to this component.
getAllPurchasableElementTypes() Returns all available purchasable element classes.
getBehavior() (opens new window) Returns the named behavior object.
getBehaviors() (opens new window) Returns all behaviors attached to this component.
getPurchasableById() Get a purchasable by its ID.
hasEventHandlers() (opens new window) Returns a value indicating whether there is any handler attached to the named event.
hasMethod() (opens new window) Returns a value indicating whether a method is defined.
hasProperty() (opens new window) Returns a value indicating whether a property is defined for this component.
init() (opens new window) Initializes the object.
isPurchasableAvailable()
isPurchasableShippable()
off() (opens new window) Detaches an existing event handler from this component.
on() (opens new window) Attaches an event handler to an event.
trigger() (opens new window) Triggers an event.

# deletePurchasableById()

Delete a purchasable by its ID.

View source (opens new window)

Arguments

  • $purchasableId

Throws

# getAllPurchasableElementTypes()

Returns all available purchasable element classes.

View source (opens new window)

Returns

string (opens new window)[] – The available purchasable element classes.

# getPurchasableById()

Get a purchasable by its ID.

View source (opens new window)

Arguments

Returns

craft\commerce\base\PurchasableInterface, null (opens new window)

Throws

# isPurchasableAvailable()

Since
3.3.1

View source (opens new window)

Arguments

# isPurchasableShippable()

Since
3.3.2

View source (opens new window)

Arguments

# Events

# EVENT_PURCHASABLE_AVAILABLE

Type
craft\commerce\events\PurchasableAvailableEvent

The event that is triggered when the availability of a purchasables is checked.

This example stop users of a certain group from having the purchasable be available to them in their order.

use craft\commerce\events\PurchasableAvailableEvent;
use craft\commerce\services\Purchasables;
use yii\base\Event;

Event::on(
    Purchasables::class,
    Purchasables::EVENT_PURCHASABLE_AVAILABLE,
    function(PurchasableAvailableEvent $event) {
        if($order && $user = $order->getUser()){
            $event->isAvailable = $event->isAvailable && !$user->isInGroup(1); // Group ID 1 not allowed to have purchasable in the cart.
        }
    }
);

# EVENT_PURCHASABLE_SHIPPABLE

Type
craft\commerce\events\PurchasableShippableEvent

The event that is triggered when determining whether a purchasable may be shipped.

This example prevents the purchasable from being shippable in a specific user group's orders:

use craft\commerce\events\PurchasableShippableEvent;
use craft\commerce\services\Purchasables;
use yii\base\Event;

Event::on(
    Purchasables::class,
    Purchasables::EVENT_PURCHASABLE_SHIPPABLE,
    function(PurchasableShippableEvent $event) {
        if($order && $user = $order->getUser()){
            $event->isShippable = $event->is && !$user->isInGroup(1);
        }
    }
);

# EVENT_REGISTER_PURCHASABLE_ELEMENT_TYPES

Type
craft\events\RegisterComponentTypesEvent (opens new window)

The event that is triggered for registration of additional purchasables.

This example adds an instance of MyPurchasable to the event object’s types array:

use craft\events\RegisterComponentTypesEvent;
use craft\commerce\services\Purchasables;
use yii\base\Event;

Event::on(
    Purchasables::class,
    Purchasables::EVENT_REGISTER_PURCHASABLE_ELEMENT_TYPES,
    function(RegisterComponentTypesEvent $event) {
        $event->types[] = MyPurchasable::class;
    }
);