gpt4 book ai didi

Magento 1.5.1.0 - 在尝试更新产品的库存数量时,getStockData 返回 NULL

转载 作者:行者123 更新时间:2023-12-04 17:27:13 25 4
gpt4 key购买 nike

我在 Magento 中加载了一些产品,我正在尝试批量更新库存数量。我使用 Mage_Catalog_Model_Product 创建了所有产品,并使用 setStockData 在它们上设置了数量,例如:

$product = new Mage_Catalog_Model_Product();

$product->setTypeId('simple');
$product->setStatus(1);
$product->setSku($sku);
$product->setStockData(array(
'is_in_stock' => 1,
'qty' => $record['stockstatus'],
'manage_stock' => 0,
));
...

所以我已经看到 setStockData 工作...... 13,000多次。

现在,正如我所说,我正在尝试使用我创建产品所做的变体来更新我创建的产品的库存......我看到的变体 here和网络上的其他地方几乎相同。

我的问题是我可以使用上面链接中的代码变体并获得有效的产品对象,但是当我在对象上调用 getStockData 时,它返回 NULL:
$product = Mage::getModel('catalog/product')
->loadByAttribute('product_code', '678910');

var_dump($product->getName()); // returns 'Hello My Name is Product'
var_dump($product->getProductCode()); // returns '678910'
var_dump($product->getSku()); // returns 'SKU1234'
var_dump($product->getStockData()); // returns NULL (and there is a qty of 52 set)

(我还尝试在上面链接中的代码上没有任何变化的情况下获得产品,并且得到了与我预期相同的结果。)
$product_id = Mage::getModel('catalog/product')->getIdBySku('SKU1234');
$product = Mage::getModel('catalog/product');
$product->load($product_id);
$stockData = $product->getStockData();

var_dump($product->getName()); // returns 'Hello My Name is Product'
var_dump($product->getProductCode()); // returns '678910'
var_dump($product->getSku()); // returns 'SKU1234'
var_dump($product->getStockData()); // returns NULL (and there is a qty of 52 set)

因此,如果我无法使用 getStockData 获取股票数据,则无法将股票数据设置为:
$product = Mage::getModel('catalog/product')
->loadByAttribute('product_code', $record['productcode']);

$stockData = $product->getStockData();

$stockData['qty'] = $record['stockstatus'];
$stockData['is_in_stock'] = ($record['stockstatus'] > 0) ? 1 : 0;

$product->setStockData($stockData);

$product->save();

有什么我想念的吗?我不明白为什么 getStockData 返回 NULL。有人可以帮助我了解我可能做错了什么吗?

最佳答案

使用 getStockItem() 而不是 getStockData()

$stockData = $product->getStockItem();
$stockData->setData('qty',555);
$stockData->setData('is_in_stock',1);
$stockData->setData('manage_stock',1);
$stockData->setData('use_config_manage_stock',1);
$stockData->save(); // This enough to save stock data.

对数组使用 getData,对对象使用 getItem。

关于Magento 1.5.1.0 - 在尝试更新产品的库存数量时,getStockData 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6715636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com