2012-03-19 67 views
3

我正在使用Magento Community Edition ver。 1.6.2.0。以编程方式创建产品时无法设置价格,setTaxClassId和setWeight

我想添加一个简单的产品使用Varien数据收集模型(而不是Api)。

产品正在创建中,但未设置价格,税级id和重量。

如果有人能够建议为什么不设置这些特定的产品属性,我将不胜感激。

这里是我的代码:

// instatiate Product 
    $product = Mage::getModel('catalog/product'); 

    $product->setWebsiteIds(array(1)); 
    $product->setSku('99996'); 
    $product->setPrice(99.0000); 
    $product->setAttributeSetId(4); 
    $product->setCategoryIds(array(2)); 
    $product->setType('Simple Product'); 
    $product->setName('Product Name6'); 
    $product->setDescription('The Product Description'); 
    $product->setShortDescription('Brief Description'); 
    $product->setStatus(1);  
    $product->setTaxClassId(2); 
    $product->setWeight(1.0000);     
    $product->setCreatedAt(strtotime('now')); 

    $product->save(); 

    $stockItem = Mage::getModel('cataloginventory/stock_item'); 
    $stockItem->loadByProduct($product->getId());  
    if (! $stockItem->getId()) { 
     $stockItem->setProductId($product->getId())->setStockId(1); 
    } 
    $stockItem->setData('inventory_manage_stock_default', 1); 
    $stockItem->setData('is_in_stock', 1); 
    $stockItem->setData('qty', 10000); 

    $stockItem->save(); 

任何帮助,不胜感激!

亲切的问候,

詹姆斯

+0

确保您还没有禁用任何税收模块。 – sulabh 2012-03-19 10:35:02

回答

7

的Bug

$product->setType('Simple Product'); 

更换

$product->setTypeId('simple'); 

现在价格isset。 因为magento中的价格取决于产品类型。

+0

谢谢Sergy,这个解决方案是现货! – seavers 2012-03-19 11:13:53

+0

你救了我的命(y)谢谢 – 2015-08-12 10:18:46

0

不要使用:

$product->setType('Simple Product'); 

它不会设置产品其实......一直没有工作了一段时间... 如上使用说:

$product->setTypeId('simple') 

这将实际设置类型...因为'简单'已被定义为法师/目录中的常数...但不是'简单产品'...

0

如上所述设置$product->setType('Simple');将解决你的问题。就像它只是我的一样。