#magento #categories
#magento #Категории
Вопрос:
Мне интересно, есть ли быстрый способ удалить все продукты из определенной категории? Или я застрял с получением всех продуктов категорий, затем перебираю и удаляю категорию из каждой?
Я планирую запустить это на cron.
Редактировать: В настоящее время я использую setCategoryIds (), но это кажется очень неэффективным способом сделать это.
Спасибо!
Ответ №1:
Способ сделать это — действительно перебирать каждый продукт;
задайте массив идентификаторов категорий, $ids затем используйте метод setCategoryIds($ids) в Mage_Catalog_Model_Product, чтобы задать идентификатор категории для продукта.
Дайте мне знать, если вам нужен фактический код для этого или если вы ищете другой способ.
Удачи.
Комментарии:
1. Спасибо за ответ. На самом деле я использую setCategoryIds (), это кажется действительно трудоемким способом очистки категории, хотя я надеялся, что есть более быстрый метод, который я мог бы использовать. (Возможно, мне следовало упомянуть об этом. Я отредактирую вопрос.)
Ответ №2:
Я не знаю о cron, но вы могли бы использовать функцию импорта / экспорта. Или, в зависимости от количества товаров в этих категориях, вы могли бы использовать функцию массовой обработки в таблице товаров администратора. У меня есть модуль для фильтрации этой сетки по категориям: если она вам нужна, просто дайте мне знать, и я куда-нибудь ее загружу.упс, категория недоступна при массовом обновлении атрибутов. но импорт / экспорт будет выполнен просто отлично.
Комментарии:
1. Спасибо, но это действительно нужно запускать через задание cron
Ответ №3:
Это не тестировалось, но что-то вроде этого должно это сделать:
$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();
}
Комментарии:
1. Спасибо за это (хотя небольшая опечатка: $ category-> getCategoryIds(); должно быть $ product-> getCategoryIds();)