Не удается получить значение из атрибута "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();
}

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

Спасибо вам!

Author: DutchTech, 2013-12-12

2 answers

Я вижу две проблемы с вашим кодом:

  1. Даже если вы, возможно, назвали атрибут в нижнем регистре, вам все равно нужно будет ссылаться на него в своем методе get, используя camelCase, например:

    $eancode = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->geteancode();
    
  2. В первой строке функции protected function geteancode($item) вы извлекаете значение ean, а затем снова возвращаете функцию geteancode() в следующей строке, которая возвращает пустую строку.

Ваш метод должен гласить:

  protected function geteancode($item)
 {
     return Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getEancode();
 }
 1
Author: Moose, 2013-12-12 14:21:49

В 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().

 0
Author: Sander Mangel, 2013-12-12 14:20:34