*/ class Billing extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend { /** * Perform operation before save * * @param \Magento\Framework\DataObject $object * @return void */ public function beforeSave($object) { $billingAddressId = $object->getBillingAddressId(); if ($billingAddressId === null) { $object->unsetBillingAddressId(); } } /** * Perform operation after save * * @param \Magento\Framework\DataObject $object * @return void */ public function afterSave($object) { $billingAddressId = false; foreach ($object->getAddressesCollection() as $address) { if ('billing' == $address->getAddressType()) { $billingAddressId = $address->getId(); } } if ($billingAddressId) { $object->setBillingAddressId($billingAddressId); $this->getAttribute()->getEntity()->saveAttribute($object, $this->getAttribute()->getAttributeCode()); } } }