Не удается получить значение из атрибута "eancode"
Я хочу экспортировать некоторые заказы из Magento 1.7, но я застрял на 1 вещи. У меня есть атрибут в Magento, называемый "eancode". Я хочу поместить eancode из каждого продукта в экспорт, но он показывает пустое поле. Я проверил, что атрибут содержит некоторые номера для экспортируемых продуктов.
В csv.php У меня есть:
/** * Returns the item specific values. * * @param Mage_Sales_Model_Order_Item $item The item to get values from * @param Mage_Sales_Model_Order $order The order the item belongs to * @return Array The array containing the item specific values */ protected function getOrderItemValues($item, $order, $itemInc=1) { return array( $itemInc, $this->geteancode($item), $item->getName(), ); }
}
В abstractcsv.php У меня есть:
/** * EAN code output * * @param Mage_Sales_Model_Order_Item $item The item to return info from * @return String The ean */ protected function geteancode($item) { $eancode = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->geteancode(); return $item->geteancode(); }
Ты видишь, что происходит не так? Я был устранение неполадок и поиск в Гугле уже несколько часов, но я не могу найти проблему.
Спасибо вам!
2 answers
Я вижу две проблемы с вашим кодом:
-
Даже если вы, возможно, назвали атрибут в нижнем регистре, вам все равно нужно будет ссылаться на него в своем методе
get
, используя camelCase, например:$eancode = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->geteancode();
В первой строке функции
protected function geteancode($item)
вы извлекаете значение ean, а затем снова возвращаете функциюgeteancode()
в следующей строке, которая возвращает пустую строку.
Ваш метод должен гласить:
protected function geteancode($item)
{
return Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getEancode();
}
В Abstractcsv.php
следует исправить следующую строку
$eancode = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->geteancode();
Должно быть
$eancode = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getEancode();
Также я думаю, что он должен возвращать переменную $eancode
, а не $item-geteancode()
.