*/ class Mage_Customer_Model_Customer_Attribute_Backend_Billing extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract { public function beforeSave($object) { $defaultBilling = $object->getDefaultBilling(); if (is_null($defaultBilling)) { $object->unsetDefaultBilling(); } } public function afterSave($object) { if ($defaultBilling = $object->getDefaultBilling()) { $addressId = false; /** * post_index set in customer save action for address * this is $_POST array index for address */ foreach ($object->getAddresses() as $address) { if ($address->getPostIndex() == $defaultBilling) { $addressId = $address->getId(); } } if ($addressId) { $object->setDefaultBilling($addressId); $this->getAttribute()->getEntity() ->saveAttribute($object, $this->getAttribute()->getAttributeCode()); } } } }