Magento 2: qual è il file catalog_attributes.xml?


14

Ho notato che Magento 2 contiene diversi catalog_attributes.xmlfile nelle seguenti cartelle:

  • 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

Questi file sembrano così (esempio per il Salesfile):

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

A cosa servono quei file?



Risposte:


20

In generale, questi file contengono un elenco di attributi che servono a scopi diversi.
Il gruppo used_in_autogenerationdal file nel modulo catalogo serve per elencare gli attributi che hanno il valore generato automaticamente.
Vengono recuperati in\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration

Il gruppo quote_itemrappresenta gli attributi che verranno copiati dal prodotto nell'articolo preventivo.

unassignable contiene l'elenco di attributi che non possono essere non assegnati da nessun set di attributi.

Siamo spiacenti, ma non conosco tutti i gruppi disponibili.
Ma non sei limitato solo ai gruppi esistenti. Puoi aggiungere i tuoi e usarli come preferisci semplicemente chiamando \Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here'). (ma istanziare prima la classe).

[EDIT]
Non ne sono sicuro, ma io catalog_categorye i catalog_productgruppi possiedo gli attributi di sistema per prodotti e categorie.


9

Proprio ieri mi sono imbattuto in quello per la prima volta. Viene utilizzato ad esempio per aggiungere attributi personalizzati per quotare i prodotti dell'articolo, altrimenti non verranno caricati per risparmiare risorse (nel mio caso volevo visualizzare l' colorattributo nella pagina del carrello). In Magento 1 inseriresti qualcosa del genere nel tuo modulo config.xml:

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

Per ottenere lo stesso risultato in M2, devi aggiungere a catalog_attributes.xmlal tuo modulo ed eseguire le seguenti operazioni:

<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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.