2013-11-26 138 views
2

我一直在尝试调整销售减少的库存量,这取决于产品的属性,我尝试了以下方法,但似乎无处可寻。Magento获取产品属性文本Stock.php

的Magento版本:1.8.0.0

文件:/app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php

后,周围158线($的foreach作为productQtys $的productId => $数量)

我已经添加以下代码:

$CheckLength = Mage::getModel('catalog/product')->load($_item['product_id'])->getData('length'); 
if ($CheckLength == 'Per Half Metre') 
{ 
    $qty = $qty/2; 
} 

并且还尝试这样:

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

if ($myproduct->getAttributeText('length')=='per Half Metre') 
{ 
    $qty = $qty/2; 
} 

这:

$storeId = Mage::app()->getStore()->getId(); // return current store id 
$CheckLength = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, 'length', $storeId); 

if ($CheckLength == 'Per Half Metre') 
{ 
    $qty = $qty/2; 
} 

以上都不似乎工作。如果没有检查,数量除以2会非常好,但如果产品属性是“每半米”,我只需要它就可以做到。

PS:该属性与其他两个选项一起下拉。

希望有人能帮助!提前致谢。

回答

4

终于搞清楚了,下面的工作 - 在这个工作之前,我一定尝试了15种不同的变化。

$myproduct = Mage::getModel('catalog/product')->load($productId); 
$mylength = $myproduct->getAttributeText('length'); 

感谢BuzzJoe指着我在正确的方向,我最终使用:

Mage::Log('$productId: '.$productId, null, 'mylogfile.log'); 
Mage::Log('$mylength: '.$mylength, null, 'mylogfile.log'); 

保持对事物的检查。无法让var_dump工作。

0

你试过var_dump($ CheckLength)吗?也许价值并不像你想象的那样出现。

顺便说一句:编辑核心文件永远不是一个好主意。您应该改为开发扩展。

+0

感谢BuzzJoe。我想知道如何得到一个值来显示,所以我可以检查它,这将转储到日志或屏幕在处理? – user892970

+0

种。 var_dump()会提示变量的值,并在脚本的输出中输入。所以,当你在浏览器中重新加载一行代码将运行的页面时,它会出现。您也可以将它写入magento的日志文件。只要搜索如何做到这一点。 – BuzzJoe

相关问题