清除Magento中的URL密钥

时间:2012-12-12 16:27:23

标签: magento

我已为添加了自己产品的店主设置了magento安装。 Unfortunataly他不了解URl的关键领域。当他复制产品时,每个产品现在都有相同的URL,增加的数字为/product-1234.html,下一个为/product-1235.html。由于他有近2k的产品,手动调整所有url键是一件麻烦事。有没有办法在magento(或直接在DB)清除这一点而不破坏商店。似乎如果我删除一个URL-key magento自动生成一个,这对我来说很好。

编辑:好的,我已经找到了如何通过清除数据库表(catalog_product_entity_varchar)中的某些字段来重置URL密钥,但现在我需要Magento使用产品名称创建新的字段。有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:6)

这是一个甚至没有经过测试的快速方法。如果有很多产品可能需要很长时间,但它也会同时更新重写记录。将其复制到站点根目录中的.php文件中并执行它。

<?php
require 'app/Mage.php';
Mage::app();

$products = Mage::getModel('catalog/product')->getCollection();
foreach ($products as $product) {
    $product->setUrlKey($product->getSku())
            ->save();
}

答案 1 :(得分:6)

最后使用以下代码修复它,建立在clockworkgeek的示例上。谢谢你!

<?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++;
}