2016-03-21 5 views
1

Ich habe ein benutzerdefiniertes EAV-Attribut erstellt, das zu meiner Kundentabelle hinzugefügt wird, und ich versuche, eine Funktion zu erstellen, die es auffüllen wird.Speichern von Daten in einem benutzerdefinierten EAV-Attribut

Was ich zur Zeit haben, ist:

$customer = Mage::getModel("customer/customer")->load(22); 
    $customer->setProfession("aaaaaaaaaaaaaaaaaaaa"); 
    $customer->save(); 

Aber aus irgendeinem Grund nicht gespeichert werden, es ist nicht zu ihm. Ich kann Standardfelder wie Vorname festlegen, aber ich habe Probleme beim Speichern der benutzerdefinierten EAV-Attribute, die ich erstelle.

Kann mir bitte jemand helfen?

Antwort

2

Zuerst testen Sie es mit der Funktion setData(), um zu bestätigen, dass Sie den richtigen Attributnamen verwenden.

$customer->setData('profession', 'some profession');er code here 

Zweitens Wie haben Sie das Attribut? Ich empfehle es auf diese Weise tun (in Installation/Datei .php Upgrade):

$installer = $this; 
$installer->startSetup(); 
$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$entityTypeId = $setup->getEntityTypeId('customer'); 
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId); 
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId); 

//drop attribute if it already exists (to avoid problems) 
$setup->removeAttribute('customer', 'profession'); 
//now recreate the attribute 
$this->addAttribute('customer', 'profession', array(
'type' => 'varchar', 
'input' => 'text', 
'label' => Mage::helper('core')->__("Customer profession"), 
'global' => 1, 
'visible' => 1, 
'required' => 0, 
'user_defined' => 1, 
'visible_on_front' => 1)); 
//adding the attribute in backend Forms in case you want that 
Mage::getSingleton('eav/config') 
    ->getAttribute('customer', 'profession') 
    ->setData('used_in_forms', array('adminhtml_customer', 'customer_edit')) 
    ->save(); 

Lassen Sie mich wissen, ob es jetzt für Sie arbeiten.

Verwandte Themen