仅将属性添加到自定义产品?

时间:2012-08-21 08:52:39

标签: magento attributes

noob在这里。 我试图在我的自定义产品(customproduct)中添加一些属性,但它们最终也适用于所有产品。

我想获得一个属性的组/标签(自定义设置),仅显示在我的自定义产品(customproduct)的“常规”选项卡下。 谁可以指导我正确的方式?

我的代码如下所示:(mysql4-install-0.1.0.php)

$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$setup->addAttribute('catalog_product', 'PartnerID', array(
        'group'         => 'Custom Settings',
        'input'         => 'text',
        'type'          => 'text',
        'label'         => 'Partner ID',
        'backend'       => '',
        'visible'       => 1,
        'required'      => 0,
        'user_defined' => 1,
        'searchable' => 0,
        'filterable' => 0,
        'comparable'    => 0,
        'visible_on_front' => 0,
        'visible_in_advanced_search'  => 0,
        'is_html_allowed_on_front' => 0,
        'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'apply_to'      => 'customproduct',
    ));

1 个答案:

答案 0 :(得分:2)

回答我自己的问题,答案如下: 我需要将属性添加到以下数组并重新运行installscript。 (另外,我的新产品类型customproduct的配置出错了)

$fieldList = array(
            'PartnerId'
                        ...
    );

    // make these attributes applicable to customproduct
    foreach ($fieldList as $field) {
        $applyTo = split(',', $installer->getAttribute('catalog_product', $field, 'apply_to'));
        if (!in_array('customproduct', $applyTo)) {
            $applyTo[] = 'customproduct';
            $installer->updateAttribute('catalog_product', $field, 'apply_to', join(',', $applyTo));
        }
    }

现在新属性仅适用于customproduct。