Magento пустая категория (1.5) - PullRequest
2 голосов
/ 23 мая 2011

Мне интересно, есть ли быстрый способ удалить все товары из определенной категории?Или я застрял в том, чтобы получить все продукты категорий, а затем перебрать и удалить категорию из каждого?

Я планирую запустить это на cron.

Редактировать: В настоящее время яиспользуя setCategoryIds (), но это кажется очень неэффективным способом сделать это.

Спасибо!

Ответы [ 3 ]

1 голос
/ 23 мая 2011

Способ сделать это - по сути, пройтись по каждому продукту;

установить массив идентификаторов категорий, $ ids, затем использовать метод setCategoryIds ($ ids) в Mage_Catalog_Model_Product, чтобы установить идентификатор категории дляproduct.

Дайте мне знать, если вам нужен реальный код для этого или вы ищете другой способ.

Удачи.

0 голосов
/ 23 мая 2011

Это не проверено, но что-то вроде этого должно сделать это:

$category = Mage::getModel("catalog/category")->load($id);
$products = $category->getProductCollection();
foreach($products as $product) {
    $productCategories = $product->getCategoryIds();
    $index = array_search($productCategories, $id);
    unset($productCategories[$index]);
    $product->setCategoryIds($productCategories);
    $product->save();
}
0 голосов
/ 23 мая 2011

Я не знаю о cron, но вы можете использовать функцию импорта / экспорта. Или, в зависимости от количества продуктов в этих категориях, вы можете использовать функцию массовой обработки в сетке продуктов администратора. У меня есть модуль для фильтрации этой сетки по категориям: если вы хотите, просто дайте мне знать, и я ее где-нибудь загрузлю. упс, категория не доступна при массовом обновлении атрибутов. но с импортом / экспортом все будет хорошо.

...