Magento:为所有产品添加新属性

koe*_*nig 2 attributes magento entity-attribute-value

我想为所有产品添加新属性.我用安装脚本槽完成了它

$installer = $this;
$installer->startSetup();

$this->addAttribute('catalog_product','test2',array(
    'label'     => 'test2',
    'type'      => 'varchar',
    'visible'   => true,
    'required'  => false,
    'required'  => 0
));
Run Code Online (Sandbox Code Playgroud)

但是如何通过添加此属性的值

$entityTypeId     = $installer->getEntityTypeId('catalog_product');
$attributeSetId   = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$installer->addAttributeGroup($entityTypeId, 'Default', 'test2', 0);
$installer->endSetup();
Run Code Online (Sandbox Code Playgroud)

Kno*_*ing 10

这是我用来创建自己的自定义产品属性的示例代码之一: -

$installer = $this;
/* @var $installer Mage_Core_Model_Resource_Setup */

$installer->startSetup();

$attrCode = 'test2';
$attrGroupName = 'Test Group';
$attrLabel = 'Test 2';
$attrNote = 'Test Note';

$objCatalogEavSetup = Mage::getResourceModel('catalog/eav_mysql4_setup', 'core_setup');
$attrIdTest = $objCatalogEavSetup->getAttributeId(Mage_Catalog_Model_Product::ENTITY, $attrCode);

if ($attrIdTest === false) {
    $objCatalogEavSetup->addAttribute(Mage_Catalog_Model_Product::ENTITY, $attrCode, array(
        'group' => $attrGroupName,
        'sort_order' => 7,
        'type' => 'varchar',
        'backend' => '',
        'frontend' => '',
        'label' => $attrLabel,
        'note' => $attrNote,
        'input' => 'text',
        'class' => '',
        'source' => '',
        'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'visible' => true,
        'required' => false,
        'user_defined' => true,
        'default' => '0',
        'visible_on_front' => false,
        'unique' => false,
        'is_configurable' => false,
        'used_for_promo_rules' => true
    ));
}

$installer->endSetup();
Run Code Online (Sandbox Code Playgroud)

这与这两篇文章的参考文献一起使用: -

此外,您会发现我使用数组键" group"来提及属性组名称,这个新的自定义属性将驻留在这里.具有讽刺意味的是,在上面的代码示例中提到此键会自动在此Magento中找到的每个属性集中创建此属性.

因此,您无需调用任何方法(如" addAttributeToSet()")将此属性添加到所有属性集.

希望能帮助到你.