如果这个问题是微不足道的,我很抱歉,但我一直在努力寻找我在这里做错了什么。我正在尝试更改商店 View 级别的属性值,但默认值也已更改,而它不应该更改。当然,这个属性被设置为“store-view-scoped”。为简单起见,我尝试使用产品名称。没有成功。
以下是我尝试过的不成功的测试...
你看到我在这里做错了吗?
非常感谢。
我的尝试:
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setStore(STORE_CODE)->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_CODE)->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->setStoreId(STORE_ID)->load(PRODUCT_ID);
$product->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->setStoreId(STORE_ID)->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('new_name')->save();
我什至尝试在产品模型加载之前添加以下行...
Mage::app()->setCurrentStore(STORE_ID);
最佳答案
因此,这是更改特定商店 View 上特定产品属性的属性值的完整代码段。产品名称示例:
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('my_new_product_name')->save();
作为额外的答案,人们可能有兴趣将属性值更改为默认值。在这种情况下,必须将参数 'false' 传递给 setAttribute :
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName(false)->save();
关于magento - 在商店 View 级别以编程方式更改产品属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614700/