尝试使用PHP脚本更新magento中的URL密钥时出错

时间:2015-04-09 08:05:05

标签: php magento

我正在尝试更新magento中的URL密钥,以将URL密钥设置为与产品名称相同。我尝试过使用我在网上找到的以下脚本。

<?php
require 'app/Mage.php';
Mage::app();
$amount = 0;
$model = Mage::getModel('catalog/product');
$products = $model->getCollection();
foreach ($products as $product) {
    $model->load($product->getId());
    $product->setUrlKey($model->getName())->save();
    set_time_limit();
    $amount++;
}
?>

但是,我收到以下错误:

Fatal error: Call to a member function getAttributeCode() on a non-object in 
/home/replaysp/public_html/app/code/core/Mage/Catalog/Model/Product/Type/Configu
rable.php on line 404

这是此错误指出的代码行:

$this->getProduct($product)->setData($attribute->getProductAttribute()
    ->getAttributeCode(), null);

关于为什么会发生这种情况的任何想法?

提前致谢!

1 个答案:

答案 0 :(得分:1)

尝试这是否有效(免责声明:未经测试):

$model = Mage::getModel('catalog/product');
$products= Mage::getResourceModel('catalog/product_collection');
foreach ($products as $product) {
    $model->load($product->getId());
    $product->setUrlKey($model->getName());
    $product->getResource()->save($product);
    set_time_limit();
    $amount++;
}