在Magento 1.7中添加新产品时设置默认产品值

在Magento 1.7中添加新产品时设置默认产品值,magento,magento-1.7,Magento,Magento 1.7,我已经为事件catalog\u product\u new\u action <?php class Starmall_Productobserver_Model_Observer { public function initProduct(Varien_Event_Observer $observer) { $product = $observer->getEvent()->getProduct(); $product

我已经为事件
catalog\u product\u new\u action

<?php
class Starmall_Productobserver_Model_Observer
{

    public function initProduct(Varien_Event_Observer $observer)
    {
        $product = $observer->getEvent()->getProduct();
            $product->setWeight(1);
            $product->setStatus(1);
            $product->setTaxClassId(1);
            $product->setPrice(1);

            $product->setStockData(array(
                    'is_in_stock' => 1,
                    'qty' => 99999
            ));
    }

}

看起来您需要使用实际库存项目对象,该对象被设置为产品对象的属性

有关库存项目属性的参考,请参阅

....

//$product->save();

$stockItem = Mage::getModel('cataloginventory/stock_item');
$stockItem->assignProduct($product);
$stockItem->setData('is_in_stock', 1);
$stockItem->setData('stock_id', 1);
$stockItem->setData('store_id', 1);
$stockItem->setData('manage_stock', 0);
$stockItem->setData('use_config_manage_stock', 0);
$stockItem->setData('min_sale_qty', 0);
$stockItem->setData('use_config_min_sale_qty', 0);
$stockItem->setData('max_sale_qty', 1000);
$stockItem->setData('use_config_max_sale_qty', 0);

//$stockItem->save();

请访问

了解更多信息,谢谢!这是可行的,稍微改变一下。请参阅已编辑的问题和解决方案。问题是
$product->save()
。这会产生异常
SQLSTATE[23000]:完整性约束冲突:1452无法添加或更新子行:外键约束失败
....

//$product->save();

$stockItem = Mage::getModel('cataloginventory/stock_item');
$stockItem->assignProduct($product);
$stockItem->setData('is_in_stock', 1);
$stockItem->setData('stock_id', 1);
$stockItem->setData('store_id', 1);
$stockItem->setData('manage_stock', 0);
$stockItem->setData('use_config_manage_stock', 0);
$stockItem->setData('min_sale_qty', 0);
$stockItem->setData('use_config_min_sale_qty', 0);
$stockItem->setData('max_sale_qty', 1000);
$stockItem->setData('use_config_max_sale_qty', 0);

//$stockItem->save();