如何用php创建分组产品? (Magento 1.7)

时间:2013-10-08 15:43:17

标签: php magento

我正在尝试创建分组产品并将简单的产品附加到其上。在管理部分中,它们都可用,但在前端只有简单的产品。

如果我在管理面板中进入产品编辑模式(无差别简单或分组)并且只保存而不更改任何内容,则分组产品将显示在前端。

我无法弄清楚问题出在哪里。

// create grouped product
$product = Mage::getModel('catalog/product');
$product->setTypeId( 'grouped' );
$product->setAttributeSetId( 13 );
$product->setSku( 'K101596245' );
...
$product->setVisibility( 4 );
$product->setStatus( 1 );
$product->setTaxClassId( 0 );
$product->setStockData(array(
   'is_in_stock' => 0,
));
$product->save();
unset($product);


// create simple product
$simpleProduct = Mage::getModel('catalog/product');
$simpleProduct->setData( 'type_id', 'simple' );
...
$simpleProduct->setData( 'status', 1 );
$simpleProduct->setData( 'price', $values['retailPrice'] );
$simpleProduct->setData( 'special_price', $values['price'] );
$simpleProduct->setData( 'stock_data', array(
        'is_in_stock' => 1,
        'qty' => 9,
     ));
$simpleProduct->save();


// attach simple to grouped
Mage::getModel('catalog/product_link_api')->assign("grouped", $product->getId(), $simpleProduct->getId());

同样的结果:

// attach simple to grouped
$relation_data = array();
$relation_data[ $simpleProduct->getId() ] = array('qty' => 9, 'position' => 0);
$product->setGroupedLinkData($relation_data);
$product->save();

1 个答案:

答案 0 :(得分:0)

发现了解决方案!

第一个脚本添加分组产品,然后简单。 应该更新分组产品的库存!

$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getId());
$stockItem->setData('is_in_stock', 1);
$stockItem->save();