添加选择以编程方式捆绑

时间:2011-09-02 10:50:31

标签: php oop model-view-controller zend-framework magento

在导入时我想将作为捆绑产品的导入产品添加到捆绑产品列表中。

我扩展了Mage_Catalog_Model_Convert_Adapter_Product并在自定义Dataflow中使用了这个类,在保存导入的行之前执行以下代码:

//Load product model collection filtered by attribute set id        
$products = Mage::getModel('catalog/product')
                ->getCollection()
                ->addAttributeToSelect('name')
                ->addFieldToFilter('attribute_set_id', 12);

// loop through products
foreach($products as $p){
    // get product options
    $options = $p->getTypeInstance(true)->getOptionsCollection($p);
}

接下来我需要做的是确定什么是正确的选项(按标题),并将产品添加为选择。

$option->addSelection($selection);

但是如何获得选项标题以及如何从我的产品中创建选择?

1 个答案:

答案 0 :(得分:2)

要获得我做的选项标题:

$option->getData('default_title');

创建我做的选择:

$selection = new Mage_Bundle_Model_Selection();
$selection->addData(array(
'entity_id' => //bundle id,
'option_id' => $option->getId(),
'product_id' => //bundled item id,
'selection_price_value' => 0.00,
'selection_qty' => 1,
'selection_can_change_qty' => 0,
));

$selection->save();

将选择添加到我所做的选项中:

$option->addSelection($selection);
$option->addData(array(
    'store_id' => 1,
    'title' => 'Abonnement'
));

 $option->save();

我不知道为什么我必须设置title和store_id,因为该选项已经存在所以我认为它不应该是必要的,但如果我不这样做,我会得到一个“缺少store_id”或“缺少标题“错误。

我喜欢Magento,但它很大,文档应该更好。

相关问题