Атрибут изображения в плоском каталоге товаров


У меня есть Magento 1.8 CE, и я выяснил, что при использовании "Плоского каталога продуктов" атрибут "изображение" не собирается. Как я могу добавить этот атрибут в "Плоский каталог продуктов" Невозможно установить "Использовать для перечисления" в разделе "Управление атрибутами".

Есть ли другой способ сделать это?

Author: user2478262, 2015-07-02

2 answers

Решение, которое я нашел, является наиболее чистым и использует абстракции в стиле XML Magento для добавления столбца изображения в таблицу catalog_product_flat_1: попробуйте этот код:- В config.xml :

<config>
    <frontend>
        <product>
            <collection>
                <attributes>
                    <image />
               </attributes>
            </collection>
        </product>
    </frontend>
</config>

Затем переиндексируйте таблицы плоского каталога (Администратор > Управление индексами> Выберите Все + Переиндексировать) и очистите все кэши Magento.

 3
Author: Ashvin Monpara, 2017-07-30 22:31:53

Вы можете сделать это, добавив атрибут image в узел frontend/product/collection/attributes в config.xml

<frontend>
    <product>
        <collection>
            <attributes>
                  <image/>
            </attributes>
        </collection>
    </product>
</frontend>

Объяснение:

Позвольте объяснить:

Первый взгляд на класс Mage_Catalog_Model_Resource_Product_Flat_Indexer .

И имя функции getAttributeCodes(), которая отвечает за создание столбцов в catalog product flat.

Magento сначала берет атрибуты из global/catalog/product/flat/attribute_nodes, используя

Маг::getConfig() ->getNode(самостоятельно::XML_NODE_ATTRIBUTE_NODES) ->дети();

Из config.xml в app/code/core/Mage_Catalog/etc/

<flat>
    <max_index_count>64</max_index_count>
    <attribute_nodes>
        <product_collection>frontend/product/collection/attributes</product_collection>
    </attribute_nodes>
    <add_filterable_attributes>0</add_filterable_attributes>
    <add_child_data>0</add_child_data>
    <flag>
        <model>catalog/product_flat_flag</model>
    </flag>
</flat>

, которые внутренне вызывают узел конфигурации: frontend/product/collection/attributes.

Если мы определим здесь атрибут, то этот атрибут будет автоматически добавлен в виде столбцов в flat table.

<frontend>
    <product>
        <collection>
            <attributes>
                  <attribute_Code/>
            </attributes>
        </collection>
    </product>
</frontend>

Затем необходимо создать систему управления индексами с плоским индексом.

 4
Author: Amit Bera, 2017-07-30 22:31:01