Я хотел бы иметь возможность сохранить значение атрибута без сохранения его родительской сущности.Я создал новый атрибут customer через файл sql / setup моего модуля ( ref ), и теперь я хочу заполнить этот атрибут для каждого из существующих клиентов.Я создал Backend-модель для атрибута, который обнаруживает нулевые значения во время загрузки объекта (afterLoad) и генерирует содержимое, но я не решаюсь сохранить объект в этой точке процесса.
class Aligent_Referral_Model_Customer_Attribute_Backend_Referralcode extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract
{
public function afterLoad($oCustomer)
{
$vAttrCode = $this->getAttribute()->getAttributeCode();
$vValue = $oCustomer->getData($vAttrCode);
if (empty($vValue)){
$oCustomer->setData($vAttrCode, Mage::helper('referral')->generateRafCode($oCustomer));
}
return $this;
}
}
В идеале я хотел бы вызвать что-то вроде $this->getAttribute()->setValue('blah')->save()
в этом методе afterLoad
, чтобы он не зависел от нажатия кнопки «Сохранить».
Я мог бы написать сценарий, который загружает коллекцию всех клиентов и проверяет их, чтобы установить значение, но есть более 50 000 клиентов, и я обеспокоен влиянием производительности на выполнение этого на производственном сервере ...
Любые мысли приветствуются.
JD