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

标签 magento attributes entity-attribute-value

我想为所有产品添加一个新属性。我已经通过安装脚本完成了

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

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

但是我怎样才能给这个属性添加值呢

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

最佳答案

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

$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();

这与这两篇文章的引用一起使用:-

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

因此您无需调用任何方法(如“addAttributeToSet()”)即可将此属性添加到所有属性集中。

希望对您有所帮助。

关于Magento:为所有产品添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9599262/

相关文章:

mysql - 如何从具有唯一 ID 的行中获取 ID?

MySQL 查询从 magento 数据库类别中检索新添加的产品

php - Magento - 未找到基表或 View

model-view-controller - 如何在 Magento 中所有 Controller 类的每个 Action 方法中调用某个方法?

javascript - 从 jQuery 中的所有元素中获取属性值

css - 什么会影响 width 属性的可用性?

mysql - 通过在彼此内嵌套子查询来解决 MySQL 中的 61 个表 JOIN 限制

magento 开源整页缓存

javascript - 数据集与 setAttribute 性能

mysql - 存储具有不同属性的实体(EAV 替代方案)