如何在magento admin中的产品编辑中添加属性

时间:2016-12-28 06:54:46

标签: php magento

我在magento admin的编辑产品中创建了自定义标签“Customizer Settings”,我想在此标签中添加隐藏属性。我试过下面的代码。

Config.XML 文件

<events>
    <catalog_product_save_after>
        <observers>
            <productcustomizer_save_product_data>
                <type>singleton</type>
                <class>ProductCustomizer_ProductCustomizer_Model_Observer</class>
                <method>saveProductTabData</method>
            </productcustomizer_save_product_data>
        </observers>
    </catalog_product_save_after>
</events>

<adminhtml_catalog_product_edit>
    <reference name="product_tabs">
        <action method="addTab" >
            <name>productcustomizer_settings</name>
            <block>productcustomizer/adminhtml_catalog_product_edit_tab</block>
        </action>
    </reference>
</adminhtml_catalog_product_edit>

sql / productcustomizer_setup / install-1.0.0.php 文件

$setup->addAttribute('catalog_product', 'productcustomizer', array(
    'entity_model' => 'catalog/product',
    'label' => 'custom',
    'group' => 'productcustomizer_settings',
    'input' => 'text',
    'type' => 'text',
    'is_html_allowed_on_front' => false,
    'backend' => 'catalog/product_attribute_backend_price',
    'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible' => false,
    'apply_to' => Mage_Catalog_Model_Product_Type::TYPE_SIMPLE,
    'required' => false,
    'user_defined' => true,
    'unique' => false,
    'visible_on_front' => false,
    #'note' => ''
));

在产品编辑中创建了新标签“productcustomizer_settings”。

此外,我在清除缓存和重新索引后检查了。

1 个答案:

答案 0 :(得分:0)

为标签块指定自定义模板并输出隐藏标签。

在'productcustomizer / adminhtml_catalog_product_edit_tab'块的构造方法中运行:

/**
 * Set the template for the block
 *
 */
public function _construct()
{
    parent::_construct();

    $this->setTemplate('productcustomizer/catalog/product/tab.phtml');
}

然后,在模板文件(productcustomizer / catalog / product / tab.phtml)中输出:

<input type="hidden" name="attribute_name" value="attribute_value" />

然后,您必须使用观察者在产品保存时适当地保存此attribute_value。此外,如果您只想要不可编辑的属性,则可以使用标准属性组功能。