Magento的 - 集产品属性使用默认值(Magento - Set product attrib

2019-06-23 22:54发布

这之前,但没有工作的答案被问了很多次。

我有多个商店和一些属性已被覆盖。 我想用一个脚本来更改这些属性为“使用默认值”。

这里是表示存储观点和“使用默认值”复选框的图像http://dl.dropbox.com/u/3209649/storeviews-and-defaultvalues.png (不允许张贴的图像还)

应用程序/代码/核心/法师/ Adminhtml /控制器/目录/ ProductController.php使用setData()当“使用默认值”已被选择用于任何属性被用于与的第二个参数。

/**
 * Check "Use Default Value" checkboxes values
 */
if ($useDefaults = $this->getRequest()->getPost('use_default')) {
    foreach ($useDefaults as $attributeCode) {
        $product->setData($attributeCode, false);
    }
}

以下代码尝试用同样的方法在商店3设置“name”属性为“使用默认值”的产品1。

require_once '../app/Mage.php';
Mage::app(3);

$product = Mage::getModel('catalog/product')->load(1);

$product->setData('name', false); # as used in ProductController.php
$product->save();

运用

$product->setData('name', 'anything');

正确设置“名称”属性“东西”,但虚假不将其设置为“使用默认值”

“使用默认值”不存储在数据库中,以便控制器的管理界面中,必须有一个删除属性行另外一个程序?

这里相关链接- > http://pastebin.com/raw.php?i=j7fwu9H6 (不允许张贴链接尚未要么)

Answer 1:

这不起作用,因为你需要目前店内正在为这种操作的管理店

为了使一个特定的商店视图中使用的默认值给定的属性:

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

$product = Mage::getModel('catalog/product')
    ->load($product_id)         // in your case: 1
    ->setStoreId($store_id)     // in your case: 3
    ->setData($attr, false)     // in your case: 'name'
    ->save();


文章来源: Magento - Set product attribute to use default values