Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento删除类别中产品的分配_Php_Magento_Categories_Product - Fatal编程技术网

Php Magento删除类别中产品的分配

Php Magento删除类别中产品的分配,php,magento,categories,product,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); $productCollec

我将创建一个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';
}
但是当它运行函数removeProduct时,脚本停止运行。
当它第一次进入else案例时,他将产品从类别中删除,但不打印已删除-产品id

好的,但是错误是什么?定义“中断”是否会给出错误消息?通常脚本会因错误而停止!发布您收到的错误没有出现错误…我如何检查它?