Я заметил, что Magento 2 содержит несколько catalog_attributes.xml
файлов в следующих папках:
app/code/Magento/Bundle/etc
app/code/Magento/Catalog/etc
app/code/Magento/CatalogSearch/etc
app/code/Magento/CatalogUrlRewrite/etc
app/code/Magento/Downloadable/etc
app/code/Magento/GiftMessage/etc
app/code/Magento/Msrp/etc
app/code/Magento/Sales/etc
app/code/Magento/Tax/etc
app/code/Magento/Wishlist/etc
Эти файлы выглядят так (пример для Sales
файла):
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/catalog_attributes.xsd">
<group name="quote_item">
<attribute name="sku"/>
<attribute name="type_id"/>
<attribute name="name"/>
<attribute name="status"/>
<attribute name="visibility"/>
<attribute name="price"/>
<attribute name="weight"/>
<attribute name="url_path"/>
<attribute name="url_key"/>
<attribute name="thumbnail"/>
<attribute name="small_image"/>
<attribute name="tax_class_id"/>
<attribute name="special_from_date"/>
<attribute name="special_to_date"/>
<attribute name="special_price"/>
<attribute name="cost"/>
<attribute name="gift_message_available"/>
</group>
</config>
Для чего используются эти файлы?
magento2
attributes
magento-2.0
magento-2.0.5
Рафаэль в цифровом пианизме
источник
источник
Ответы:
Как правило, эти файлы содержат список атрибутов, которые служат различным целям.
Группа
used_in_autogeneration
из файла в модуле каталога служит для перечисления атрибутов, которые имеют автоматически сгенерированное значение.Они получены в
\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration
Группа
quote_item
представляет атрибуты, которые будут скопированы из продукта в элемент цитаты.unassignable
содержит список атрибутов, которые не могут быть отменены из любого набора атрибутов.Извините, но я не знаю всех доступных групп.
Но вы не ограничены только существующими группами. Вы можете добавить свои собственные и использовать их, как вам угодно, просто позвонив
\Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here')
. (но сначала создайте экземпляр класса).[РЕДАКТИРОВАТЬ]
Я не уверен в этом, но у меня есть вещи
catalog_category
иcatalog_product
группы, которые содержат системные атрибуты для продуктов и категорий.источник
Только вчера я наткнулся на это впервые. Он используется, например, для добавления пользовательских атрибутов для цитирования товаров, в противном случае они не будут загружены для экономии ресурсов (в моем случае я хотел отобразить
color
атрибут на странице корзины). В Magento 1 вы должны ввести что-то вроде этого в свой модульconfig.xml
:Чтобы добиться того же в M2, вы должны добавить
catalog_attributes.xml
в свой модуль и сделать следующее:источник