すべての製品のデフォルト値をカスタム属性に設定します


7

管理パネルからのcustom attribute (test)テキストフィールドとしてfor製品を作成しましたdefault value('test')

そして、その属性をデフォルトの属性セットに割り当てました。

これで、製品の編集ページで新しいカスタム属性を確認できます。

製品コレクションでフィルタリングしようとすると

Mage::getModel('catalog/product')->getCollection()
       ->addAttributeToSelect('*')
       ->addAttributeToFilter('test', array('like' => 'test'))->getData();

空の配列を返します。

私の質問は:

インストーラースクリプトを使用して属性にデフォルト値を設定する方法はありますか?

デフォルト値がその属性に設定されていないのはなぜですか?

すべての製品にデフォルト値を追加する方法はありますか?私の店には10,000以上の商品があります。

注意 :

製品コレクション全体をロードして、各製品の値を設定したくありません。

回答:


11

このようなものを試すことができます。以下の方法は非常に効率的です。

$attrData = array(
    'attribute_code_here'=> 'Default Value Here',
);
$storeId = 0;
$productIds = Mage::getModel('catalog/product')->getCollection()->getAllIds();
Mage::getModel("catalog/product_action")->updateAttributes(
    $productIds, 
    $attrData, 
    $storeId
);

@marius Imは大ファンです。賛成票をありがとう:)
NathanielR

インストーラースクリプトまたはconfig.xmlでこの値を設定する方法はありますか?
saravanavelu

@Marius新しい拡張機能を構築しています。そのため、インストーラースクリプトを使用してこの属性を作成します。インストーラーscritpでこのデフォルト値を設定することは可能ですか?
saravanavelu

@saravanaveluデータスクリプトを確認するか、インストーラーを使用して属性を作成し、スニペットをスタンドアロンスクリプトとして実行できます
NathanielR

モジュールのインストール中に属性を更新する必要がありますが、これはスタンドアロンスクリプトなしで可能ですか?
saravanavelu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.