Magento 2: Was ist die Datei catalog_attributes.xml?

12

Ich habe festgestellt, dass Magento 2 mehrere catalog_attributes.xmlDateien in den folgenden Ordnern enthält:

  • 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

Diese Dateien sehen folgendermaßen aus (Beispiel für die SalesDatei):

<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>

Wofür werden diese Dateien verwendet?

Raphael beim digitalen Pianismus
quelle

Antworten:

18

Im Allgemeinen enthalten diese Dateien eine Liste von Attributen, die unterschiedlichen Zwecken dienen.
Die Gruppe used_in_autogenerationaus der Datei im Katalogmodul dient zum Auflisten von Attributen, deren Wert automatisch generiert wird.
Sie werden in abgerufen\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration

Die Gruppe quote_item repräsentiert die Attribute, die vom Produkt in den Angebotsposten kopiert werden sollen.

unassignable enthält die Liste der Attribute, deren Zuordnung zu keinem Attributsatz aufgehoben werden kann.

Entschuldigung, aber ich kenne nicht alle verfügbaren Gruppen.
Sie sind jedoch nicht nur auf die vorhandenen Gruppen beschränkt. Sie können Ihre eigenen hinzufügen und sie nach Belieben verwenden, indem Sie einfach anrufen \Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here'). (aber instanziieren Sie zuerst die Klasse).

[BEARBEITEN]
Ich bin mir nicht sicher, aber ich catalog_categoryund die catalog_productGruppenattribute enthalten die Systemattribute für Produkte und Kategorien.

Marius
quelle
8

Erst gestern bin ich zum ersten Mal darauf gestoßen. Es wird zum Beispiel verwendet, um benutzerdefinierte Attribute zum Zitieren von Artikelprodukten hinzuzufügen, andernfalls werden sie nicht geladen, um Ressourcen zu sparen (in meinem Fall wollte ich das colorAttribut auf der Warenkorbseite anzeigen ). In Magento 1 würden Sie so etwas in Ihr Modul eingeben config.xml:

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

Um dasselbe in M2 zu erreichen, müssen Sie catalog_attributes.xmlIhrem Modul ein hinzufügen und Folgendes tun:

<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>
fmrng
quelle