我正在尝试更新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);
你知道为什么会这样吗?
提前感谢!
尝试是否有效(免责声明:未测试):
$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++;
}