Magento删除类别中的产品分配

时间:2014-10-10 14:32:54

标签: php magento categories product

我要创建一个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;!

0 个答案:

没有答案