0

Web サイト スコープの属性を更新する前にストア ビューを設定する必要があるようですが、正しいですか?

私のコード:

Mage::app('admin');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$product = Mage::getModel('catalog/product');
$product->load(123);
$product->setStoreId('1'); // without this line the attribute is not updated
$product->setSomeattribute("abc");
$product->save();
4

1 に答える 1

1

はい。そのとおりです。これは、フロントエンドのパフォーマンス上の理由によるものです。通常、フロントエンドから製品を保存しません。これが必要な理由の詳細な説明を参照してください
しかし、あなたはそれをする必要はありません。私は遅く、リソースを消費しています。次のように保存してみてください。

Mage::getSingleton('catalog/product_action')
    ->updateAttributes(array(123), array('somattribute'=>'abc'), 1);

最初のパラメーターは、製品 ID の配列です。
2 つ目は、更新する属性コードと値の配列です。
3 番目は、更新が行われたストア ID です。

この方法はより高速です。

于 2013-09-27T15:03:54.773 に答える