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


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

Версия Magento: 1.8.0.0

Файл: /app/code/core/Mage/CatalogInventory/Model/Resource/Stock.php

Около строки 158 после: для каждого ($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: Этот атрибут находится в раскрывающемся списке с 2 другими вариантами.

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

Author: user892970, 2013-11-26

2 answers

Наконец-то понял, что работает следующее - я, должно быть, перепробовал 15 различных вариантов, прежде чем это сработало.

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

Спасибо БаззДжо за то, что он указал мне правильное направление, в конце концов я использовал:

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

Чтобы следить за происходящим. Не удалось заставить var_dump работать.

 4
Author: user892970, 2013-11-28 21:31:34

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

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

 0
Author: BuzzJoe, 2013-11-27 14:10:57