Php Magento从捆绑产品中删除选项

Php Magento从捆绑产品中删除选项,php,magento,bundle,option,Php,Magento,Bundle,Option,我想以编程方式删除捆绑产品的所有选项,我只知道产品的SKU 我有 $bundled = Mage::getModel('catalog/product')->loadByAttribute('sku',THISISMYSKU); $selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection( $bundled->getTypeInstance(tru

我想以编程方式删除捆绑产品的所有选项,我只知道产品的SKU

我有

$bundled = Mage::getModel('catalog/product')->loadByAttribute('sku',THISISMYSKU);

$selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
            $bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);
            foreach($selectionCollection as $option)
            {

                $sku = $option->getSku();
                if($sku !=  "")
                {
                    $optionModel = Mage::getModel('bundle/option');
                    $optionModel->setId($option->option_id);
                    $optionModel->delete();
                    echo 'deleted: '.$option->getName()." optionID(".$option->option_id.")";
                };
但如果我有它在循环中,不能正常工作,删除其他产品的选项。

试试这个

$productCollection = Mage::getModel('catalog/product')->getCollection()
                     ->addAttributeToFilter('attribute_set_id', 4)
                     ->addAttributeToFilter( 'sku', array( 'in' => array( 'my-sku1', 'my-sku2', 'my-sku3' ) ) )
                     ->addAttributeToFilter('type_id','bundle')
                     ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);

    foreach($productCollection as $product)
    {               
        $bundled = Mage::getModel('catalog/product');
        $bundled->load($product->getId());

        $selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
        $bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);

        foreach($selectionCollection as $option)
        {

            $optionModel = Mage::getModel('bundle/option');
            $optionModel->setId($option->option_id);
            $optionModel->delete();

        }

    }
希望这个能帮助你

试试这个

$productCollection = Mage::getModel('catalog/product')->getCollection()
                     ->addAttributeToFilter('attribute_set_id', 4)
                     ->addAttributeToFilter( 'sku', array( 'in' => array( 'my-sku1', 'my-sku2', 'my-sku3' ) ) )
                     ->addAttributeToFilter('type_id','bundle')
                     ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);

    foreach($productCollection as $product)
    {               
        $bundled = Mage::getModel('catalog/product');
        $bundled->load($product->getId());

        $selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
        $bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);

        foreach($selectionCollection as $option)
        {

            $optionModel = Mage::getModel('bundle/option');
            $optionModel->setId($option->option_id);
            $optionModel->delete();

        }

    }
希望这个能帮助你

试试这个

$productCollection = Mage::getModel('catalog/product')->getCollection()
                     ->addAttributeToFilter('attribute_set_id', 4)
                     ->addAttributeToFilter( 'sku', array( 'in' => array( 'my-sku1', 'my-sku2', 'my-sku3' ) ) )
                     ->addAttributeToFilter('type_id','bundle')
                     ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);

    foreach($productCollection as $product)
    {               
        $bundled = Mage::getModel('catalog/product');
        $bundled->load($product->getId());

        $selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
        $bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);

        foreach($selectionCollection as $option)
        {

            $optionModel = Mage::getModel('bundle/option');
            $optionModel->setId($option->option_id);
            $optionModel->delete();

        }

    }
希望这个能帮助你

试试这个

$productCollection = Mage::getModel('catalog/product')->getCollection()
                     ->addAttributeToFilter('attribute_set_id', 4)
                     ->addAttributeToFilter( 'sku', array( 'in' => array( 'my-sku1', 'my-sku2', 'my-sku3' ) ) )
                     ->addAttributeToFilter('type_id','bundle')
                     ->addFieldToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);

    foreach($productCollection as $product)
    {               
        $bundled = Mage::getModel('catalog/product');
        $bundled->load($product->getId());

        $selectionCollection = $bundled->getTypeInstance(true)->getSelectionsCollection(
        $bundled->getTypeInstance(true)->getOptionsIds($bundled), $bundled);

        foreach($selectionCollection as $option)
        {

            $optionModel = Mage::getModel('bundle/option');
            $optionModel->setId($option->option_id);
            $optionModel->delete();

        }

    }

希望这对您有所帮助

为什么您必须调用
$bundled->load($product->getId())
当您已经拥有来自
foreach
$product
实例时。这两个选项不一样吗?嗨,这不是删除一个空选项,而是只删除带有选项的选项,这里也是删除emmpty选项的方法吗?为什么您必须调用
$bundled->load($product->getId())
当您已经拥有来自
foreach
$product
实例时。这两个选项不一样吗?嗨,这不是删除一个空选项,而是只删除带有选项的选项,这里也是删除emmpty选项的方法吗?为什么您必须调用
$bundled->load($product->getId())
当您已经拥有来自
foreach
$product
实例时。这两个选项不一样吗?嗨,这不是删除一个空选项,而是只删除带有选项的选项,这里也是删除emmpty选项的方法吗?为什么您必须调用
$bundled->load($product->getId())
当您已经拥有来自
foreach
$product
实例时。这两个不一样吗?嗨,这不是删除一个空选项,而是只删除带有选择的选项,这里也是删除emmpty选项的方法吗?