2

为什么这段代码不能在 magento 1.7 中创建产品?

class MyCompany_Catalogimporter_Model_Mysql4_Importer extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {   
        $this->_init('catalogimporter/catalogimporter', 'catalogimporter_id');
    }

    public function uploadAndImport(Varien_Object $object){

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

        $product->setSku('pro12'); 
        $product->setAttributeSetId(9);
        $product->setTypeId('simple');
        $product->setName('Product title');
        $product->setCategoryIds(array(7));
        $product->setWebsiteIDs(array(1));
        $product->setDescription('Product Full description');
        $product->setShortDescription('Product Short description');
        $product->setPrice(250.00);
        $product->setWeight(30.00);
        $product->setVisibility(4);
        $product->setStatus(1);
        $product->setTaxClassId(0);
        $product->setStockData(array(
           'is_in_stock' => 1,
            'qty' => 20
        ));
        $product->setCreatedAt(strtotime('now'));

        try { 
            $product->save(); 
        } 
        catch (Exception $e) { 
            Mage::log($e->getMessage()); //check your var/log/system.log for error
        } 

        echo "saved";
        die();  
    }

}

没有错误!

更新

如果我使用以下代码在 magento 根目录中创建一个简单文件,它也可以正常工作:

require_once('app/Mage.php');
Mage::app();

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


$product->setSku('pro111');
$product->setAttributeSetId(9);
$product->setTypeId('simple');
$product->setName('Product title');
$product->setCategoryIds(array(7));
$product->setWebsiteIDs(array(1));
$product->setDescription('Product Full description');
$product->setShortDescription('Product Short description');
$product->setPrice(250.00);
$product->setWeight(30.00);
$product->setVisibility(4);
$product->setStatus(1);
$product->setTaxClassId(0);
$product->setStockData(array(
   'is_in_stock' => 1,
    'qty' => 20
));
$product->setCreatedAt(strtotime('now'));
$product->save();

为什么?!?!?

谢谢

4

2 回答 2

1

包裹你的$product->save();内部 try 块,如果有任何错误,这会让你知道出了什么问题。

try { 
    $product->save(); 
} 
catch (Exception $e) { 
    Mage::log($e->getMessage()); //check your var/log/system.log for error
} 

如果有任何错误,请在此处粘贴。

于 2013-04-30T09:19:14.560 回答
0

我遇到了与您类似的问题,经过一阵头疼后,我发现这是重复 SKU 值的问题。

每次我尝试使用我的数据库中已有的 SKU 以编程方式创建产品时,没有错误(!)但也没有新产品。

于 2013-12-28T21:30:20.620 回答