Magento 1:如何为所有产品分配属性?

时间:2016-07-28 10:30:49

标签: magento

我正在创建一个属性并将其分配给所有属性集。 我发现在您对所有产品进行批量更新之前,新属性与所有产品无关。

有没有办法让这个过程自动化?

我使用以下代码创建属性并将其分配给所有属性集

<?php
$installer = $this;
$installer->startSetup();

$attr = Mage::getResourceModel('catalog/eav_attribute')->loadByCode('catalog_product', 'new_boolean_attribute');
if (!$attr->getId())
{
    $attribute = $installer->addAttribute('catalog_product', 'new_boolean_attribute', array(
        'type'              => 'int',
        'input'             => 'boolean',
        'backend'           => '',
        'frontend'          => '',
        'label'             => 'Exclude from Product Rules',
        'source'            => 'eav/entity_attribute_source_table',
        'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'required'          => false,
        'user_defined'      => true,
        'unique'            => false,
        'default'           => '0',
    ));
}

$attributeGroupName = 'General';

$entityTypeId = $installer->getEntityTypeId('catalog_product');

$sets = Mage::getModel('eav/entity_attribute_set')->getResourceCollection();

foreach($sets as $set)
{
    //Do for all attribute sets
    $attributeSetId = $set->getData('attribute_set_id');
    $installer->addAttributeGroup($entityTypeId, $attributeSetId, $attributeGroupName, 3);

    $attributeGroupId = $installer->getAttributeGroupId($entityTypeId, $attributeSetId, $attributeGroupName);
    $attributeId = $installer->getAttributeId($entityTypeId, 'new_boolean_attribute');
    $installer->addAttributeToGroup($entityTypeId, $attributeSetId, $attributeGroupId, $attributeId, null);
}

$installer->endSetup();

1 个答案:

答案 0 :(得分:0)

尝试从磁控管理面板重新编制索引。