我在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,
));
...
Run Code Online (Sandbox Code Playgroud)
所以我看到setStockData工作...... 13,000次以上.
现在,正如我所说,我正在尝试更新我创建的产品的库存,使用我创建产品所做的变化...我在这里看到的变化,几乎与网络上的其他地方相同.
我的问题是我可以在上面的链接中使用代码的变体并获得有效的产品对象,但是当我在对象上调用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)
Run Code Online (Sandbox Code Playgroud)
(我也试过在上面的链接中获得没有变化代码的产品,并且得到了与我预期相同的结果.)
$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()); // …Run Code Online (Sandbox Code Playgroud) 我目前正在修改Magento前端可打印订单页面(客户在查看订单时可以打印的页面并单击"打印订单"),特别是项目表.我从表中删除了一列("产品名称"),现在表格被搞砸了,因为总行标签跨越了一定数量的列(4).我找到了处理订单总计的特定模板:
/app/design/frontend/base/default/template/sales/order/totals.phtml
Run Code Online (Sandbox Code Playgroud)
我以为我能够将该文件复制到我的模板目录,进入并将colspan属性值从4更改为3.但是类和colspan属性应该是对$ this-> getLabelProperties()的调用.getLabelProperties返回'class ="a-right"colspan ="4"'.我已经对其进行了跟踪,发现getLabelProperties是在/lib/Varien/Object.php中调用getData('label_properties')的魔法getter之一.
我可能遗漏了一些令人尴尬的东西,但我无法分辨'label_properties'的值是在哪里设置或存储的.当我使用xdebug和Notepad ++逐步完成代码时,我看到所有内容都是从调用的方法中获取getData键,它将该键传递给getData,然后传递到/lib/Varien/Object.php的第285行. :
return $this->_data[$key];
Run Code Online (Sandbox Code Playgroud)
...然后神奇地'class ="a-right"colspan ="4"'填充了要返回给模板的$ data变量.我没有在debug var列表中看到$ this - > _ data数组,所以如何使用密钥从中检索数据.如果它存在(我知道它必须),那么首先填充$ this - > _ data数组的是什么.我知道这不是魔术,所以我确定我错过了某个地方.有人可以开导我吗?把我推向正确的方向?