我正在尝试创建分组产品并将简单的产品附加到其上。在管理部分中,它们都可用,但在前端只有简单的产品。
如果我在管理面板中进入产品编辑模式(无差别简单或分组)并且只保存而不更改任何内容,则分组产品将显示在前端。
我无法弄清楚问题出在哪里。
// 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();
答案 0 :(得分:0)
发现了解决方案!
第一个脚本添加分组产品,然后简单。 应该更新分组产品的库存!
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getId());
$stockItem->setData('is_in_stock', 1);
$stockItem->save();