0

似乎我必须先设置商店视图,然后才能更新网站范围内的属性——对吗?

我的代码:

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 的数组。
第二个是包含要更新的属性代码和值的数组。
第三个是完成更新的商店 ID。

这种方法更快。

于 2013-09-27T15:03:54.773 回答