2012-12-12 2 views
4

Я установил установку пурпурного для владельца магазина, который добавил свои собственные продукты. К сожалению, он не понимал ключевое поле URl. Когда он продублировал продукт, каждый продукт теперь имеет тот же URL-адрес с добавочным номером /product-1234.html, следующий один /product-1235.html. Так как у него почти 2 тыс. Продуктов, это будет хлопот, чтобы вручную настроить все ключи URL. Есть ли способ очистить это в пурпуре (или прямо на БД), не разрушая магазин. Кажется, что если я удалю один URL-ключ, пурпурный автоматически генерирует один, что подходит для меня.Устранение ключей URL в Magento

Редактирование: Хорошо, поэтому я нашел способ сброса ключей URL, очистив определенные поля в таблице базы данных (catalog_product_entity_varchar), но теперь мне нужно Magento создать новые, используя имя продукта. Есть идеи?

Спасибо.

+0

Вы запустили переименование каталога URL-адресов Rewrites? –

+0

Возможно, это только создает перезаписи на основе информации в поле ключа ULR? –

+1

Если ключ URL существует, если вы его удалили, он будет использовать имя. Проверьте «Mage_Catalog_Model_Url :: _ refreshProductRewrite'. –

ответ

6

Вот экспресс, который даже не проверен. Это может занять много времени, если есть много продуктов, но оно также будет обновлять записи перезаписи одновременно. Скопируйте это в файл .php в корне вашего сайта и выполните его.

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

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

Я тестировал часть этого кода, но $ product-> getSku() возвращает какой-то номер, не нужно ли ему возвращать имя продукта? –

+0

настройка SKU не очень хороша для SEO, я думаю ... – sparrow

+0

@sparrow, вы, вероятно, правы, но это служит для демонстрации того, как проходить через коллекцию. Кроме того, SKU, скорее всего, просто буквенно-цифровые символы, а не знаки препинания или пробелы, что по крайней мере делает его подходящим для URL-ключей. – clockworkgeek

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++; 
} 
Смежные вопросы