我一直在努力调整销售减少的库存量,具体取决于产品的属性,我尝试了以下方法,但似乎无处可去。
Magento版本:1.8.0.0
文件:/app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php
在第158行之后:foreach($ productQtys as $ productId => $ qty)
我添加了以下代码:
$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;
}
以上都不适用。如果没有检查,我会根据需要将qty除以2,但如果产品属性是“每半米”,我只需要它就可以做到。
PS:此属性包含2个其他选项。
希望有人可以帮忙!在此先感谢。
答案 0 :(得分: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起作用。
答案 1 :(得分:0)
您是否尝试过var_dump($ CheckLength)?也许价值不会以你的想法出现。
顺便说一下:编辑核心文件绝不是一个好主意。你应该开发一个扩展名。