【问题标题】:Magento remove Option from Bundle productMagento 从捆绑产品中删除选项
【发布时间】:2013-10-30 08:22:09
【问题描述】:

我想以编程方式从捆绑产品中删除所有选项,我只知道产品的 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.")";
                };

但如果我有它在循环中,不能正常工作,删除其他产品的选项。

【问题讨论】:

    标签: php magento bundle option


    【解决方案1】:

    试试这个

    $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();
    
            }
    
        }
    

    希望对你有帮助

    【讨论】:

    • 当您已经拥有来自foreach$product 实例时,为什么还要调用$bundled->load($product->getId());。这两个不一样吗?
    • 嗨,这不是删除空选项,而是仅删除带有选择的选项,这里也可以删除空选项吗?
    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多