2

私は現在、チェックアウトページに「製品Xを購入した人はY、Z、Tも購入した」のようなものが表示されるようにモジュールを作成しています。

各製品に関連する製品を計算するためにcronジョブを作成し、インストールスクリプトで製品に属性を追加しました。

私は(簡単にするために)-最も関連性の高い5つの製品を保存することにしました。そのため、次のようなものを保存したいと思います123-3-5543-1290-9911。しかし、私は管理者にこれをどこにも見られたくないので、次のことを試しました。

$setup->addAttribute('catalog_product', $attrCode, array(
    // more stuff
    'type' => 'hidden',
    'input' => 'text',
    'visible' => 0,
    // more stuff
));

私はここを見ました:http://blog.chapagain.com.np/magento-adding-attribute-from-mysql-setup-file/そして私はいくつかの興味深いものを見つけましたが、このフィールドを完全に隠す方法はありませんでした。

別の方法は、独自のテーブルを作成することですが、これはもう少し洗練されたソリューションのようです。

どう思いますか?独自のテーブルを作成するのが良いですか、それとも属性を追加して非表示にするのが良いですか?

ありがとうございました

4

2 に答える 2

6

カタログ属性の「is_visible」プロパティを0に設定すると、このコード( Mage_Adminhtml_Block_Widget_Form :: _ setFieldset())からわかるように、バックエンドの管理フォームからそれらが非表示になります。

 protected function _setFieldset($attributes, $fieldset, $exclude=array())
    {
        $this->_addElementTypes($fieldset);
        foreach ($attributes as $attribute) {
            /* @var $attribute Mage_Eav_Model_Entity_Attribute */
            if (!$attribute || ($attribute->hasIsVisible() && !$attribute->getIsVisible())) {
                continue;
            }

だから実行する

 $setup->updateAttribute('catalog_product', $attrCode, 'is_visible', '0');
于 2013-01-25T16:19:22.500 に答える
0

私はこのようにそれを解決します。

カタログ>>属性>>属性の管理>>新しい属性の追加に移動します

次に、保存します。次に、データベースに移動して、次のクエリを実行します。

SELECT * FROM eav_attribute WHERE attribute_code ='attribute_code';

frontend_inputの値をhiddenに変更してから、保存します。

それが役に立てば幸い。

于 2016-02-03T17:17:43.310 に答える