Magento在Stock.php中获取产品属性文本

时间:2013-11-26 09:59:07

标签: php magento stock magento-1.8 m2e-pro

我一直在努力调整销售减少的库存量,具体取决于产品的属性,我尝试了以下方法,但似乎无处可去。

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个其他选项。

希望有人可以帮忙!在此先感谢。

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)?也许价值不会以你的想法出现。

顺便说一下:编辑核心文件绝不是一个好主意。你应该开发一个扩展名。