清除Magento中的URL密钥

bo-*_*-oz 4 magento

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

编辑:好的,所以我发现如何通过清除数据库表(catalog_product_entity_varchar)中的某些字段来重置URL密钥,但现在我需要Magento使用产品名称创建新的字段.有任何想法吗?

谢谢.

clo*_*eek 6

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

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

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


bo-*_*-oz 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++;
}
Run Code Online (Sandbox Code Playgroud)