Вопрос

Кто-нибудь знает, почему атрибут meta_title отсутствует как для плоских таблиц product, так и для category?

Я вижу поля meta_description и meta_keyword в плоских таблицах, но нет meta_title.Поэтому я вынужден использовать модель eav, и это нормально.Но мне было интересно, почему это так.Также есть ли у кого-нибудь "исправление" для этого, чтобы добавить meta_title к плоским таблицам?

Это было полезно?

Решение

Откройте атрибут «Meta_Title» в Admin, установите «Использовать в списке продуктов» как да, а затем попробуйте повторно индексировать.AFAIK, только атрибуты, выбранные для «использование в листинге продукта», включаются в плоские таблицы.

Другие советы

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

<frontend>
     <product>
         <collection>
             <attributes>
                 <meta_title/>
             </attributes>
         </collection>
     </product>
</frontend>

Объяснение:

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

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

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

Magento - это сначала взять атрибут из global/catalog/product/flat/attribute_nodes используя

Mage::getConfig() ->getNode(self::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>

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top