2

モジュール設定ファイルでこの関数を使用して属性を作成しました。

$this->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'outofstock_date', array(
    'group'         => 'Inventory',
    'input'         => 'text',
    'type'          => 'int',
    'label'         => 'Out of Stock Date',
    'visible'       => 0,
    'required'      => 0,
    'user_defined'  => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL
    ));

次のクエリを使用してデータベースで見つけることができるため、属性の作成が機能したことはわかっています。

select * from eav_attribute where attribute_code like '%stock%';

ただし、バックエンドで見つけることができません。商品の編集ページに表示されず、属性管理画面にも属性セットにも表示されません。作成時に何が間違っていましたか? バックエンドで見つからないのはなぜですか?

また、上記は mysql4-install-0.1.0.php セットアップ ファイルにあり、それをトリガーする構成ファイルの部分は次のとおりです。

    <resources>
        <giftlab_inventory_setup>
            <setup>
                <module>Giftlab_Inventory</module>
                <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
            </setup>
        </giftlab_inventory_setup>
    </resources>
4

1 に答える 1

0

修正されたインストーラースクリプト:

<?php
    $installer = $this;
    $installer->startSetup();
    $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'outofstock_date', array(
        'group'         => 'Inventory',
        'input' => 'date',
        'type' => 'datetime',
        'label'         => 'Out of Stock Date',
        'visible'       => 1,
        'required'      => 0,
        'user_defined'  => 1,
        'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'backend' => 'eav/entity_attribute_backend_datetime',
    ));

    $installer->endSetup();

ただし、グループは通常、別の「在庫」グループを追加するため、2つになる可能性がありますが、この質問はバックエンドでの可視性の欠如に関するものであるため、答えもそうです。たぶんaddAttributeToGroup()を使ってみてください。

于 2013-03-08T11:45:18.180 に答える