Notei que o Magento 2 contém vários catalog_attributes.xml
arquivos nas seguintes pastas:
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
Esses arquivos são assim (exemplo para o Sales
arquivo):
<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 que servem esses arquivos?
magento2
attributes
magento-2.0
magento-2.0.5
Raphael na Digital Pianism
fonte
fonte
Respostas:
Em geral, esses arquivos contêm uma lista de atributos que servem a propósitos diferentes.
O grupo
used_in_autogeneration
do arquivo no módulo de catálogo serve para listar atributos que possuem o valor gerado automaticamente.Eles são recuperados em
\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration
O grupo
quote_item
representa os atributos que serão copiados do produto para o item de cotação.unassignable
contém a lista de atributos que não podem ser desassociados de nenhum conjunto de atributos.Desculpe, mas não conheço todos os grupos disponíveis.
Mas você não está limitado apenas aos grupos existentes. Você pode adicionar seus próprios e usá-los como quiser, apenas ligando
\Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here')
. (mas instancie a classe primeiro).[EDIT]
Eu não tenho certeza sobre isso, mas eu coisa
catalog_category
ecatalog_product
grupos mantêm os atributos do sistema para produtos e categorias.fonte
Ontem mesmo deparei com isso pela primeira vez. É usado, por exemplo, para adicionar atributos personalizados às cotações dos produtos, caso contrário eles não serão carregados para economizar recursos (no meu caso, eu queria exibir o
color
atributo na página do carrinho). No Magento 1, você digitaria algo assim no seu móduloconfig.xml
:Para conseguir o mesmo no M2, você deve adicionar um
catalog_attributes.xml
ao seu módulo e fazer o seguinte:fonte