Magento 2: ¿que es el archivo catalog_attributes.xml?


14

Noté que Magento 2 contiene varios catalog_attributes.xmlarchivos en las siguientes carpetas:

  • 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

Esos archivos se ven así (ejemplo para el Salesarchivo):

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

¿Para qué se usan esos archivos?



Respuestas:


20

En general, estos archivos contienen una lista de atributos que sirven para diferentes propósitos.
El grupo used_in_autogenerationdel archivo en el módulo de catálogo sirve para enumerar atributos que tienen el valor autogenerado.
Son recuperados en\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration

El grupo quote_itemrepresenta los atributos que se copiarán del producto al artículo de presupuesto.

unassignable contiene la lista de atributos que no se pueden asignar de ningún conjunto de atributos.

Lo siento, pero no conozco todos los grupos disponibles.
Pero no está limitado solo a los grupos existentes. Puede agregar los suyos y usarlos como desee simplemente llamando \Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here'). (pero instanciar la clase primero).

[EDIT]
No estoy seguro acerca de esto, pero yo cosa catalog_categoryy catalog_productgrupos mantienen los atributos del sistema para los productos y categorías.


9

Justo ayer me topé con eso por primera vez. Se usa, por ejemplo, para agregar atributos personalizados para cotizar productos de artículos, de lo contrario no se cargarán para ahorrar recursos (en mi caso, quería mostrar el coloratributo en la página del carrito). En Magento 1 ingresarías algo como esto en tu módulo config.xml:

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

Para lograr lo mismo en M2, debe agregar un catalog_attributes.xmla su módulo y hacer lo siguiente:

<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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.