3

アップグレード ファイルで次のコードを使用して、Magento で製品のカスタム Yes/No 属性を作成しました。

$model = Mage::getModel('catalog/resource_eav_attribute');

$attributeData = array(
    'attribute_code' => 'custom_attribute',
    'frontend_label' => 'My custom attribute',
    'is_global' => '1',
    'frontend_input' => 'boolean',
    'backend_type' => 'int',
    'default_value' => null,
    'is_unique' => '0',
    'is_required' => '0',
    'is_configurable' => '1',
    'is_searchable' => '1',
    'is_visible_in_advanced_search' => '1',
    'is_comparable' => '1',
    'is_used_for_price_rules' => '0',
    'is_wysiwyg_enabled' => '1',
    'is_html_allowed_on_front' => '1',
    'is_visible_on_front' => '1',
    'used_in_product_listing' => '1',
    'used_for_sort_by' => '1',
    'is_filterable_in_search' => 1,
    'is_filterable' => 1,
    'source_model' => null,
    'option' => array(),
    'apply_to' => 'simple,configurable,bundle,grouped',
    'is_user_defined' => true,
    'global' => true,
);

$model->addData($attributeData);
$model->setEntityTypeId(
    Mage::getModel('eav/entity')->setType(Mage_Catalog_Model_Product::ENTITY)->getTypeId()
);
$model->save();

コードは機能します。しかし、新しい製品を作成するとき、または製品を編集しようとするときに、デフォルトで [はい] オプションが選択されるようにします。これで、No のみが最初に表示されます。defult_value を true または 1 に変更しようとしましたが、うまくいきません。

4

3 に答える 3

1

default_value は、新しい製品を作成するときのオプションの値であり、属性が設定されていない製品ではありません。したがって、すべての製品で「はい」を表示するには、この属性を持つすべての製品を更新するスクリプトを作成する必要があると思います。

于 2012-08-14T06:08:26.270 に答える
0

属性を更新する必要があると思います。'custom_attribute'が新しい属性の属性コードであり、'default value'が変更/更新したいものであるとしましょう。次に、以下のコードを新しいアップグレードスクリプトとして追加します。

    $installer = new Mage_Eav_Model_Entity_Setup('core_setup');
    $installer->startSetup();

    $aAttribute = $installer->getAttribute('catalog_product', 'custom_attribute');
    $aAttribute['default_value'] = '1';

    $installer->updateAttribute('catalog_product', 'custom_attribute', $aAttribute);
    $installer->endSetup();

これがうまくいくことを願っています。

于 2012-08-14T05:52:00.267 に答える
0

属性を追加するには、次のフォルダーに移動する必要があります。

/var/www/html/<YOUR APP>/app/code/core/Mage/Catalog/etc

ファイルを編集します: config.xml、次のセクションに移動します:

<product> 
<collection> 
<attributes>

必要な属性を追加します。次に、フォルダーに移動します。

/var/www/html/<YOUR APP>/app/design/frontend/base/<YOUR THEME>/template/catalog/product

ファイルを編集しnew.phtml、属性呼び出しを使用する必要があるときはいつでも:

<?php echo $_product→getAttributeName();?>

たとえば、属性が という名前の場合はsize、次を使用します。

<?php echo $_product→getSize();?>
于 2012-08-14T05:19:09.693 に答える