Magento Получить текст атрибута продукта в Stock.php

Я пытался отрегулировать количество запасов, уменьшенных в результате продажи, в зависимости от атрибута продукта, я пробовал следующие методы, но, похоже, ничего не получалось.

Версия 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;
}

Ничего из вышеперечисленного не работает. Без чека количество довольно хорошо делится на 2, как мне и нужно, но мне это нужно только в том случае, если атрибутом продукта является «На полметра».

PS: этот атрибут находится в раскрывающемся списке с двумя другими параметрами.

Надеюсь, кто-то может помочь! Заранее спасибо.


person user892970    schedule 26.11.2013    source источник


Ответы (2)


Наконец-то понял, что работает следующее - я, должно быть, попробовал 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 работать.

person user892970    schedule 28.11.2013

Вы пытались использовать var_dump($CheckLength)? Может быть, ценность проявляется не так, как вы думаете.

И, кстати: никогда не стоит редактировать файлы ядра. Вместо этого вы должны разработать расширение.

person BuzzJoe    schedule 27.11.2013
comment
Спасибо, БаззДжо. Мне было интересно, как получить значение для отображения, чтобы я мог его проверить, будет ли этот дамп отображаться в журнале или на экране во время обработки? - person user892970; 27.11.2013
comment
вроде, как бы, что-то вроде. var_dump() запросит значение переменной и ее тип в выводе скрипта. Таким образом, он появится, когда вы перезагрузите страницу в своем браузере, где будет выполняться эта строка кода. Вы также можете записать это в файл журнала magento. Просто ищите, как это сделать. - person BuzzJoe; 28.11.2013