Sales

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

Sale service.

View source (opens new window)

# Public Properties

Property Description
allSales craft\commerce\models\Sale[]
behaviors (opens new window) yii\base\Behavior (opens new window) – List of behaviors attached to this component.

# allSales

Type
craft\commerce\models\Sale[]
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.
deleteSaleById() Delete a sale 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.
getAllSales() Get all sales.
getBehavior() (opens new window) Returns the named behavior object.
getBehaviors() (opens new window) Returns all behaviors attached to this component.
getSaleById() Get a sale by its ID.
getSalePriceForPurchasable() Returns the salePrice of the purchasable based on all the sales.
getSalesForPurchasable() Returns the sales that match the purchasable.
getSalesRelatedToPurchasable()
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.
matchPurchasableAndSale() Match a product and a sale and return the result.
off() (opens new window) Detaches an existing event handler from this component.
on() (opens new window) Attaches an event handler to an event.
populateSaleRelations() Populates a sale's relations.
reorderSales() Reorder Sales based on a list of ids.
saveSale() Save a Sale.
trigger() (opens new window) Triggers an event.

# deleteSaleById()

Delete a sale by its id.

View source (opens new window)

Arguments

  • $id

Returns

boolean (opens new window)

Throws

# getAllSales()

Get all sales.

View source (opens new window)

Returns

craft\commerce\models\Sale[]

# getSaleById()

Get a sale by its ID.

View source (opens new window)

Arguments

Returns

craft\commerce\models\Sale, null (opens new window)

# getSalePriceForPurchasable()

Returns the salePrice of the purchasable based on all the sales.

View source (opens new window)

Arguments

Returns

float (opens new window)

# getSalesForPurchasable()

Returns the sales that match the purchasable.

View source (opens new window)

Arguments

Returns

craft\commerce\services\Sales[]

# getSalesRelatedToPurchasable()

View source (opens new window)

Arguments

Returns

array (opens new window)

# matchPurchasableAndSale()

Match a product and a sale and return the result.

View source (opens new window)

Arguments

Returns

boolean (opens new window)

# populateSaleRelations()

DEPRECATED

Deprecated in 3.2.0. No longer required as IDs are populated when retrieving the sale using the service.

Populates a sale's relations.

View source (opens new window)

Arguments

# reorderSales()

Reorder Sales based on a list of ids.

View source (opens new window)

Arguments

  • $ids

Returns

boolean (opens new window)

# saveSale()

Save a Sale.

View source (opens new window)

Arguments

Returns

boolean (opens new window)

Throws

# Events

# EVENT_AFTER_DELETE_SALE

Type
craft\commerce\events\SaleEvent

The event that is triggered after a sale is deleted.

use craft\commerce\events\SaleEvent;
use craft\commerce\services\Sales;
use craft\commerce\models\Sale;
use yii\base\Event;

Event::on(
    Sales::class,
    Sales::EVENT_AFTER_DELETE_SALE,
    function(SaleEvent $event) {
        // @var Sale $sale
        $sale = $event->sale;

        // do something
        // ...
    }
);

# EVENT_AFTER_SAVE_SALE

Type
craft\commerce\events\SaleEvent
Since
2.2

The event that is triggered after a sale is saved.

# EVENT_BEFORE_MATCH_PURCHASABLE_SALE

Type
craft\commerce\events\SaleMatchEvent

The event that is triggered before Commerce attempts to match a sale to a purchasable.

The isValid event property can be set to false to prevent the application of the matched sale.

use craft\commerce\events\SaleMatchEvent;
use craft\commerce\services\Sales;
use craft\commerce\base\PurchasableInterface;
use craft\commerce\models\Sale;
use yii\base\Event;

Event::on(
    Sales::class,
    Sales::EVENT_BEFORE_MATCH_PURCHASABLE_SALE,
    function(SaleMatchEvent $event) {
        // @var Sale $sale
        $sale = $event->sale;
        // @var PurchasableInterface $purchasable
        $purchasable = $event->purchasable;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Use custom business logic to exclude purchasable from sale
        // with `$event->isValid = false`
        // ...
    }
);

# EVENT_BEFORE_SAVE_SALE

Type
craft\commerce\events\SaleEvent
Since
2.2

The event that is triggered before a sale is saved.