1. Включить для атрибута настройку "Used in Product Listing"
2. Выполнить полный реиндекс catalog_product_flat
Но это не работает если вы создаете атрибут с собственной source моделью. Чтобы сделать это нужно выполнить несколько дополнительных действий:
1. Добавить в source модель функцию getFlatColums() с описанием вашего атрибута. Да да, именно getFlatColums, а не getFlatColumns (привет core разработчикам Magento).
/** * {@inheritdoc} */ public function getFlatColums() { return array($this->getAttribute()->getAttributeCode() => array( 'type' => 'tinyint', 'unsigned' => true, 'is_null' => true, 'default' => null, 'extra' => null )); }
2. Добавить функцию getFlatUpdateSelect()
/** * {@inheritdoc} */ public function getFlatUpdateSelect($store) { /** @var $attr Mage_Eav_Model_Resource_Entity_Attribute */ $attr = Mage::getResourceSingleton('eav/entity_attribute'); return $attr->getFlatUpdateSelect($this->getAttribute(), $store); }
После этих действий не забываем выполнить полный реиндекс catalog_product_flat.
Читать далее