在以编程方式创建产品时无法setPrice,setTaxClassId和setWeight

时间:2012-03-19 10:23:11

标签: magento

我正在使用Magento Community Edition版。 1.6.2.0。

我正在尝试使用Varien Data Collection模型(而不是Api)添加Simple产品。

正在创建产品,但未设置价格,税级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();

非常感谢任何帮助!

亲切的问候,

詹姆斯

3 个答案:

答案 0 :(得分:7)


中的错误
$product->setType('Simple Product');

替换为

$product->setTypeId('simple');
现在价格已经确定。 因为magento的价格取决于产品类型。

答案 1 :(得分:0)

不要使用:

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

它实际上没有设置产品......它已经有一段时间不工作了...... 如上所述使用:

  $product->setTypeId('simple')

这实际上会设置类型......因为'simple'已在mage / catalog中定义为常量...但不是'Simple Product'...

答案 2 :(得分:0)

如上所述,设置$product->setType('Simple');可以解决您的问题。因为它只是我的。