2012-03-16 8 views
3

私の製品に新しい属性セットをmagentoで設定したいと思います。この属性は、いくつかのオプションからの選択のタイプでなければなりません。私はデフォルト値にoptionthreeを設定するにはどうすればよいEAV AddAttributeでデフォルトの値を設定するには

$installer->addAttribute('catalog_product', 'reserve', array(
    'backend_label'  => 'Attribute Reserve', 
    'type'    => 'varchar', 
    'input'    => 'select', 
    #'backend'   => 'eav/entity_attribute_source_boolean', 
    'frontend'   => '', 
    'source'   => '', 
    #'default'   => 1, 
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
    'visible'   => true, 
    'required'   => false, 
    'user_defined'  => true, 
    'searchable'  => false, 
    'filterable'  => false, 
    'comparable'  => false, 
    'visible_on_front' => false, 
    'visible_in_advanced_search' => false, 
    'unique'   => false, 
    'option' => array(
     'value' => array( 
      'optionone' => array('O'), 
      'optiontwo' => array('P'), 
      'optionthree' => array('Kein Angabe'), 
     ) 
    ), 
)); 

答えて

-1

[カタログの管理]> [属性の管理]をクリックして新しい属性を作成し、属性セットを管理して新しい属性セットを作成します。 enter image description here

スクリーンショット

+0

ありがとうございます。私はwantscriptを使用して属性を取得しています。 – koenig

4

は、このスクリプトを使用してください確認してください: -

$installer->addAttribute('catalog_product', 'reserve', array(
    'backend_label'  => 'Attribute Reserve', 
    'type'    => 'varchar', 
    'input'    => 'select', 
    #'backend'   => 'eav/entity_attribute_source_boolean', 
    'frontend'   => '', 
    'source'   => '', 
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
    'visible'   => true, 
    'required'   => false, 
    'user_defined'  => true, 
    'searchable'  => false, 
    'filterable'  => false, 
    'comparable'  => false, 
    'visible_on_front' => false, 
    'unique'   => false, 
    'visible_in_advanced_search' => false, 

    'option' => array(
     'value' => array( 
      'optionone' => array('O'), 
      'optiontwo' => array('P'), 
      'optionthree' => array('Kein Angabe'), 
     ) 
    ), 
    /** 
    * This will set the default values, 
    * as "array" data type is being used to set proper default value 
    */ 
    'default' => array(
     'optionthree' 
    ), 
)); 

はそれがお役に立てば幸いです。

+0

ごめんなさいありがとうございます – koenig

+0

@koenig - このデータベーステーブル "core_resource'"からあなたのモジュール固有のグループコードを削除しましたか?そのユニークなグループコードがデータベースに存在する場合、インストールスクリプトは呼び出されません。 –

6

同じ問題がありました。私の解決策:

$installer->addAttribute('catalog_product', 'reserve', array(
    'backend_label'  => 'Attribute Reserve', 
    'type'    => 'int', 
    'input'    => 'select', 
    #'backend'   => 'eav/entity_attribute_source_boolean', 
    'frontend'   => '', 
    'source'   => 'eav/entity_attribute_source_table', 
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
    'visible'   => true, 
    'required'   => false, 
    'user_defined'  => true, 
    'searchable'  => false, 
    'filterable'  => false, 
    'comparable'  => false, 
    'visible_on_front' => false, 
    'unique'   => false, 
    'visible_in_advanced_search' => false, 

    'option' => array(
     'value' => array( 
      'optionone' => array('O'), 
      'optiontwo' => array('P'), 
      'optionthree' => array('Kein Angabe'), 
     ) 
    ), 
)); 

お知らせ異なるタイプ(代わりにvarcharint)とソース(eav/entity_attribute_source_table)。これは、Magentoが典型的な選択属性を表す方法です。今度はデフォルト値を次のように設定できます:

$model = Mage::getModel('eav/entity_attribute') 
    ->load($installer->getAttributeId('catalog_product', 'reserve')); 
$model 
    ->setDefaultValue($model->getSource()->getOptionId('Keine Angabe')) 
    ->save(); 
関連する問題