Addresses

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

Address service.

View source (opens new window)

# Public Properties

Property Description
behaviors (opens new window) yii\base\Behavior (opens new window) – List of behaviors attached to this component.
storeLocationAddress craft\commerce\models\Address – the store location address.

# storeLocationAddress

Type
craft\commerce\models\Address
Default value
null

the store location address.

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.
addressWithinZone()
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.
deleteAddressById() Deletes an address by its ID.
detachBehavior() (opens new window) Detaches a behavior from the component.
detachBehaviors() (opens new window) Detaches all behaviors from the component.
eagerLoadAddressesForOrders()
ensureBehaviors() (opens new window) Makes sure that the behaviors declared in behaviors() (opens new window) are attached to this component.
getAddressById() Returns an address by its ID.
getAddressByIdAndCustomerId() Returns an address by an address id and customer id.
getAddressesByCustomerId() Returns all of a customer's addresses, by the customer's ID.
getBehavior() (opens new window) Returns the named behavior object.
getBehaviors() (opens new window) Returns all behaviors attached to this component.
getStoreLocationAddress() Returns the store location address, or a blank address if it's not defined.
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.
off() (opens new window) Detaches an existing event handler from this component.
on() (opens new window) Attaches an event handler to an event.
purgeOrphanedAddresses() Deletes all addresses not related to a customer, cart or order
removeReadOnlyAttributesFromArray()
saveAddress() Saves an address.
trigger() (opens new window) Triggers an event.

# addressWithinZone()

View source (opens new window)

Arguments

Returns

boolean (opens new window)

# deleteAddressById()

Deletes an address by its ID.

View source (opens new window)

Arguments

Returns

boolean (opens new window) – Whether the address was deleted successfully

# eagerLoadAddressesForOrders()

Since
3.2.0

View source (opens new window)

Arguments

Returns

craft\commerce\elements\Order[]

# getAddressById()

Returns an address by its ID.

View source (opens new window)

Arguments

Returns

craft\commerce\models\Address, null (opens new window) – The matched address or null if not found

# getAddressByIdAndCustomerId()

Returns an address by an address id and customer id.

View source (opens new window)

Arguments

Returns

craft\commerce\models\Address, null (opens new window) – The matched address or null if not found

# getAddressesByCustomerId()

Returns all of a customer's addresses, by the customer's ID.

View source (opens new window)

Arguments

Returns

craft\commerce\models\Address[] – An array of matched addresses

# getStoreLocationAddress()

Returns the store location address, or a blank address if it's not defined.

View source (opens new window)

Returns

craft\commerce\models\Address

# purgeOrphanedAddresses()

Since
3.0.4

Deletes all addresses not related to a customer, cart or order

View source (opens new window)

Throws

# removeReadOnlyAttributesFromArray()

Since
3.1

View source (opens new window)

Arguments

Returns

array (opens new window)

# saveAddress()

Saves an address.

View source (opens new window)

Arguments

Returns

boolean (opens new window) – Whether the address was saved successfully.

Throws

# Events

# EVENT_AFTER_DELETE_ADDRESS

Type
craft\commerce\events\AddressEvent

The event that is triggered after an address is deleted.

use craft\commerce\events\AddressEvent;
use craft\commerce\services\Addresses;
use craft\commerce\models\Address;
use yii\base\Event;

Event::on(
    Addresses::class,
    Addresses::EVENT_AFTER_DELETE_ADDRESS,
    function(AddressEvent $event) {
        // @var Address $address
        $address = $event->address;

        // Remove this address from a payment gateway
        // ...
    }
);



---



### EVENT_AFTER_SAVE_ADDRESS



Type
:  [craft\commerce\events\AddressEvent](craft-commerce-events-addressevent.md)



The event that is triggered after an address is saved.

```php
use craft\commerce\events\AddressEvent;
use craft\commerce\services\Addresses;
use craft\commerce\models\Address;
use yii\base\Event;

Event::on(
    Addresses::class,
    Addresses::EVENT_AFTER_SAVE_ADDRESS,
    function(AddressEvent $event) {
        // @var Address $address
        $address = $event->address;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Set the default address in an external CRM
        // ...
    }
);

# EVENT_BEFORE_DELETE_ADDRESS

Type
craft\commerce\events\AddressEvent

The event that is triggered before an address is deleted.

use craft\commerce\events\AddressEvent;
use craft\commerce\services\Addresses;
use craft\commerce\models\Address;
use yii\base\Event;

Event::on(
    Addresses::class,
    Addresses::EVENT_BEFORE_DELETE_ADDRESS,
    function(AddressEvent $event) {
        // @var Address $address
        $address = $event->address;

        // Invalidate customer address cache
        // ...
    }
);



---



### EVENT_BEFORE_PURGE_ADDRESSES



Type
:  [craft\commerce\events\AddressEvent](craft-commerce-events-addressevent.md)



The event that is triggered before purgeable addresses are deleted.

```php
use craft\commerce\events\PurgeAddressesEvent;
use craft\commerce\services\Addresses;
use yii\base\Event;

Event::on(
    Addresses::class,
    Addresses::EVENT_BEFORE_PURGE_ADDRESSES,
    function(PurgeAddressesEvent $event) {
        // @var Query $addressQuery
        $addressQuery = $event->addressQuery;

        // Add an `$addressQuery->andWhere(..)` to change the addresses that will be purged query
        // $event->addressQuery = $addressQuery
    }
);



---



### EVENT_BEFORE_SAVE_ADDRESS



Type
:  [craft\commerce\events\AddressEvent](craft-commerce-events-addressevent.md)



The event that is triggered before an address is saved.

```php
use craft\commerce\events\AddressEvent;
use craft\commerce\services\Addresses;
use craft\commerce\models\Address;
use yii\base\Event;

Event::on(
    Addresses::class,
    Addresses::EVENT_BEFORE_SAVE_ADDRESS,
    function(AddressEvent $event) {
        // @var Address $address
        $address = $event->address;
        // @var bool $isNew
        $isNew = $event->isNew;

        // Update customer’s address in an external CRM
        // ...
    }
);