我要创建一个php脚本,从另一个类别中删除某个类别的产品。 例: 有两个类别:cat1和cat2 cat1有这个ID的产品:1,2,3,4,5,6 和cat2有这个ID的产品:2,3,4 在我运行我的脚本后,我会认为cat1现在的产品有ID:1,5,6
private function _runScript($Cat1,$Cat2)
{
$category = Mage::getModel('catalog/category')->load($Cat1);
$productCollection = $category->setStoreId(0)->getProductCollection();
foreach($productCollection as $_product) {
$product = Mage::getModel('catalog/product')->load($_product->getId());
$newCategories = $origCats = $product->getCategoryIds();
if(!in_array($Cat2, $origCats)) {
$newCategories = array_diff($origCats, array($Cat2));
$product->setCategoryIds($newCategories)->save();
echo 'Assigned -- ' . $product->getId() . '<br />';
}
else{
$product = Mage::getSingleton('catalog/category_api')->removeProduct($Cat1,$product->getId());
echo 'Deleted -- ' . $product->getId() . '<br />';
}
}
echo 'Done';
}
但是当它运行函数&#34; removeProduct&#34;脚本停止运行。 当他第一次进入else案例时,他会从类别中删除该产品,但不打印&#34;已删除 - 产品ID&#34;!