我正在尝试更新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);
关于为什么会发生这种情况的任何想法?
提前致谢!
答案 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++;
}