问题描述
我有一个多商店设置,我正在为特定商店设置产品属性,以使用使用默认值"选项-(即在商店视图中使用该值),如下所示:
I have a multi-store setup and I am setting a Product's Attribute for a particular store to use the "Use Default Value" option - (ie to use the value in the Store View), as follows:
$_product = Mage::getModel('catalog/product');
$_product->load($productId);
$_product->setStoreId($storeId)->setName(false)->save();
这会将$ productId的storeId的Name属性设置为使用使用默认值"
This sets the Name attribute of storeId for $productId to use "Use Default Value"
鉴于我要设置的属性很多,
Given that I have a lot of attributes to set I am trying to use:
Mage::getSingleton('catalog/product_action')->updateAttributes(array($productId), array('name' => false), $storeId);
但是,这并未将使用默认值"复选框设置为true.
But this is not setting the "Use Default Value" checkbox to true.
如何使用-> updateAttributes设置存储值以使用使用默认值"选项?
How can I use ->updateAttributes to set a store value to use the "Use Default Value" option?
屏幕截图:
推荐答案
使用默认值"标志未存储在数据库中的任何位置.
The "Use Default Value" flag isn't stored in the database anywhere.
Magento核心在保存产品时使用该标志来执行此操作:
Magento core uses that flag to do this when saving products:
/**
* Check "Use Default Value" checkboxes values
*/
if ($useDefaults = $this->getRequest()->getPost('use_default')) {
foreach ($useDefaults as $attributeCode) {
$product->setData($attributeCode, false);
}
}
在做其他事情之前.
我将研究Mage_Adminhtml_Catalog_ProductController
(app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php),并了解Magento核心是如何做到的.
I would look at Mage_Adminhtml_Catalog_ProductController
(app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php) and learn how Magento core does it.
特别是saveAction()
和_initProductSave()
我希望这可以为您指明正确的方向.
I hope this points you in the right direction.
这篇关于Magento设置产品属性的“使用默认值"使用updateAttributes的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!