Magento: Атрибут всегда возвращает значение по умолчанию в представлении каталога, прекрасно работает в представлении продукта - PullRequest
1 голос
/ 10 июня 2010

Я создал новый атрибут Да / Нет для продуктов. Я расширил модель Product для создания некоторой пользовательской логики, и пользовательские функции работают везде.

Когда я сначала попытался получить значение пользовательского атрибута, я столкнулся с некоторой проблемой. Magento не загружал его для меня, поэтому вызовы $ product-> getMyAttributeName () ничего не сделали. Во взглядах на продукт я получил работу с этой дополнительной функцией:

public function getAttrVal($attr_name)
{
    return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}

Так что это прекрасно работает при просмотре продукта на веб-интерфейсе. Он будет получать назначенное значение, если установлено, или значение по умолчанию, если нет.

Когда я просматриваю любую категорию (сетку всех товаров в этой категории), выполняется один и тот же точный код. Но моя функция getAttrVal () всегда возвращает значение по умолчанию, даже если я явно установил это значение для моего продукта.

Не могу понять, почему атрибут загружается правильно в представлении «Продукт», но представление «Категория» всегда получает значение по умолчанию, несмотря на выполнение одного и того же кода. Есть мысли?

1 Ответ

1 голос
/ 10 июня 2010

Поскольку Magento использует модель EAV для своих расширяемых атрибутов каталога, не каждый атрибут может переноситься на каждую страницу. Попробуйте поиграть с «отображаемым в каталоге» и другими связанными переменными в атрибуте, и это может решить вашу проблему. Если нет, скажите так, и мы можем попробовать другие вещи.

Надеюсь, это поможет!

Спасибо, Джо

...