Magento为产品添加新属性

时间:2017-03-07 12:24:09

标签: magento magento-1.9

我尝试为所有产品添加新属性,在阅读了大量内容后,我得到了这段代码:

<?php

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

$attribute = array(
    'group'             => 'General',
    'type'              => 'boolean',
    'source'            => 'eav/entity_attribute_source_boolean',
    'sort_order'        => 7,
    'label'             => 'producto destacado',
    'input'             => 'select',
    'class'             => 'validate-number',
    'backend'           => '',
    'frontend'          => '',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'searchable'        => true,
    'filterable'        => true,
    'comparable'        => true,
    'visible_on_front'  => true,
    'visible_in_advanced_search' => true,
    'unique'            => false,
);

$installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'is_featured', $attribute);
$installer->endSetup();

但是这让我误以为:

  

致命错误:调用未定义的方法Mage_Core_Model_Resource_Setup :: addAttribute()in       /Applications/MAMP/htdocs/app/code/local/Feliu/Featuredproducts/sql/feliu_featuredproducts_setup/install-0.1.0.php   在第34行

所以$installer->addAttribute()无效,我不确定原因。我昨天为所有类别添加了一个属性,但它确实有效。

之前我尝试使用$installer->addAttribute('catalog_product', 'is_featured', $attribute);,但我读到了使用Mage_Catalog_Model_Product::ENTITY代替catalog_product而我改变了它。我看到他们两个都有相同的错误信息。

我想我错过了一些重要的东西,但是现在我无法看到它是什么。 :-S

PD:我使用的是magento 1.9.3

1 个答案:

答案 0 :(得分:1)

您使用的是错误的设置模型。 Mage_Core_Model_Resource_Setup确实没有addAttribute方法。

您应该使用Mage_Catalog_Model_Resource_Setup向产品添加属性。您可以更改config.xml文件中使用的设置模型:

<?xml version="1.0"?>
<config>
    <global>
        ...
        <resources>
            <namespace_module_setup>
                <setup>
                    <module>Namespace_Module</module>
                    <class>Mage_Catalog_Model_Resource_Setup</class>
                </setup>
            </namespace_module_setup>
        </resources>
        ...
    </global>
</config>

希望这会有所帮助。 :)