Magento 2: що таке файл catalog_attributes.xml?


14

Я помітив, що 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>

Для чого використовуються ті файли?



Відповіді:


20

Загалом ці файли містять список атрибутів, які служать різному призначенню.
Група used_in_autogenerationз файлу в модулі каталогу служить для переліку атрибутів, які мають значення автогенерації.
Вони знайдені в\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration

Група quote_itemпредставляє атрибути, які збираються скопіювати з продукту в пункт цитування.

unassignable містить список атрибутів, які не можна відзначити жодним набором атрибутів.

Вибачте, але я не знаю всіх доступних груп.
Але ви не обмежуєтесь лише існуючими групами. Ви можете додати свої власні та використовувати їх як завгодно, лише зателефонувавши \Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here'). (але спочатку інстанціюйте клас).

[EDIT]
Я не впевнений у цьому, але я знаю, що групи catalog_categoryта catalog_productгрупи містять системні атрибути для продуктів та категорій.


9

Тільки вчора я натрапив на це вперше. Наприклад, він використовується для додавання спеціальних атрибутів до продуктів цитування предметів, інакше вони не завантажуються для економії ресурсів (у моєму випадку я хотів відобразити colorатрибут на сторінці кошика). У Magento 1 ви ввели щось подібне до свого модуля config.xml:

<config>
    <global>
        <sales>
            <quote>
                <item>
                    <product_attributes>
                        <color />
                    </product_attributes>
                </item>
            </quote>
        </sales>
    </global>
</config>

Щоб досягти того ж у M2, вам потрібно додати a catalog_attributes.xmlдо свого модуля та виконати наступне:

<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="color" />
    </group>
</config>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.