相关疑难解决方法(0)

Magento - 将产品属性设置为使用默认值

之前已多次询问此问题,但没有正常工作的答案.

我有多个商店,一些属性已被覆盖.我想用脚本将这些属性更改为"使用默认值".

这是一个显示商店视图和'使用默认值'复选框 的图像http://dl.dropbox.com/u/3209649/storeviews-and-defaultvalues.png (不允许发布图片)

app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php中,当为任何属性选择"使用默认值"时,setData()与第二个参数一起使用false.

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

以下代码尝试使用相同的方法将商店3中产品1的"name"属性设置为"use default values".

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();
Run Code Online (Sandbox Code Playgroud)

运用

$product->setData('name', 'anything');
Run Code Online (Sandbox Code Playgroud)

正确地将'name'属性设置为'anything'但false不会将其设置为'use default value'

"使用默认值"不存储在数据库的任何位置,因此在管理界面的控制器中必须有另一个删除属性行的过程?

相关链接 - > http://pastebin.com/raw.php?i=j7fwu9H6 (不允许发布链接)

magento mage magento-1.6

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

mage ×1

magento ×1

magento-1.6 ×1