我想知道是否有快速的方法從特定類別中刪除所有產品? 或者我堅持要獲取所有類別產品,然後循環並從每個類別中刪除類別?Magento清空一個類別(1.5)
我打算在cron上運行這個。
編輯:目前我使用setCategoryIds(),但它似乎是一個非常低效的方式做到這一點。
謝謝!
我想知道是否有快速的方法從特定類別中刪除所有產品? 或者我堅持要獲取所有類別產品,然後循環並從每個類別中刪除類別?Magento清空一個類別(1.5)
我打算在cron上運行這個。
編輯:目前我使用setCategoryIds(),但它似乎是一個非常低效的方式做到這一點。
謝謝!
我不知道cron,但可以使用導入/導出功能。 或者,根據這些類別中的產品數量,您可以使用管理員產品網格中的批量處理功能。我有一個模塊來過濾這個網格的類別:如果你想它只是讓我知道,我會上傳它的地方。 oops,該類別不適用於批量屬性更新。但導入/導出將會很好。
做到這一點的方法的確是循環每個產品;
設置類別ID的數組,$ id 然後使用Mage_Catalog_Model_Product中的setCategoryIds($ ids)方法設置產品的類別ID。
讓我知道你是否想要這個實際的代碼,或者如果你正在尋找不同的方式。
祝你好運。
感謝您的回答。我實際上使用setCategoryIds(),雖然這似乎是一種非常費力的清空類別的方法,但我希望有一種更快的方法可以使用。 (我也許應該提到那個,我會編輯這個問題。) – sulman 2011-05-23 11:26:18
這不是測試,但這樣的事情應該這樣做:
$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();
}
感謝你(輕微的錯字雖然:$ category-> getCategoryIds();應該是$ product-> getCategoryIds();) – sulman 2011-05-23 12:45:02
良好的捕獲,在代碼示例 – 2011-05-23 18:40:27
感謝但這需要通過cron作業運行 – sulman 2011-05-23 10:22:08