在magento中保存类别的自定义属性值

时间:2014-03-28 05:41:11

标签: php magento

我一直在尝试通过编程方式在后端为magento中的类别创建属性。所以,我按照http://www.hesselbom.net/magento-custom-attributes-with-selectbox中的步骤进行操作,它完美无缺,甚至可以保存选定的值。然而,如果我尝试创建文本框属性,则不会保存这些值。任何人都可以指导我如何做到这一点吗?

以下是我的代码。

$installer->addAttribute('catalog_category', 'custom_textfield', array(
'type' => 'varchar', 
'label' => 'Custom field', 
'input' => 'text', 
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
'visible' => TRUE,
'required' => FALSE,
'default' => ''
));

$attributeId = $installer->getAttributeId($entityTypeId, 'custom_textfield'); 

我还相应更新了配置文件中的版本。

3 个答案:

答案 0 :(得分:0)

请尝试为我工作

$installer->addAttribute('catalog_category', 'custom_textfield', array( 
    'group'         => 'General',
    'input'         => 'text',
    'type'          => 'varchar',
    'label'         => 'Custom field ',
    'backend'       => '',
    'visible'       => 1,
    'required'        => 0,
    'user_defined' => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    ));

答案 1 :(得分:0)

$this->addAttribute('catalog_category', 'custom_textfield', array( 'group' => 'General', 'type' => 'varchar',//can be int, varchar, decimal, text, datetime 'backend' => '', 'frontend_input' => '', 'frontend' => '', 'label' => 'Custom Field', 'input' => 'image', //text, textarea, select, file, image, multilselect 'class' => '', 'source' => '[source model for attribute here]',//this is necessary for select and multilelect, for the rest leave it blank 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,//scope can be SCOPE_STORE or SCOPE_GLOBAL or SCOPE_WEBSITE 'visible' => true, 'frontend_class' => '', 'required' => false,//or true 'user_defined' => true, 'default' => '', 'position' => 100,//any number will do ));

这应该可以解决问题。 :)

答案 2 :(得分:0)

经过长时间的搜索,我发现了它。以下是在管理面板上创建和保存属性值的方法。

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$setup->addAttribute('catalog_category', 'length_waterline_custom', array(
'group'         => 'General',
'input'         => 'text',
'type'          => 'varchar',
'label'         => 'Length of Waterline',
'backend'       => '',
'visible'       => 1,
'required'      => false,
'user_defined'  => 1,
'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

$eavConfig = Mage::getSingleton('eav/config');