Magento 2: apa itu file catalog_attributes.xml?

14

Saya perhatikan bahwa Magento 2 berisi beberapa catalog_attributes.xmlfile dalam folder berikut:

  • 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

File-file tersebut terlihat seperti ini (contoh untuk 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>

Untuk apa file-file itu digunakan?

Raphael di Digital Pianism
sumber

Jawaban:

20

Secara umum, file-file ini berisi daftar atribut yang melayani berbagai tujuan.
Grup used_in_autogenerationdari file dalam modul katalog berfungsi untuk mendaftarkan atribut yang memiliki nilai yang dibuat secara otomatis.
Mereka diambil masuk\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration

Grup quote_itemmewakili atribut yang akan disalin dari produk ke item penawaran.

unassignable berisi daftar atribut yang tidak dapat dihapus dari kumpulan atribut apa pun.

Maaf, tapi saya tidak tahu semua grup yang tersedia.
Tetapi Anda tidak terbatas hanya pada grup yang ada. Anda dapat menambahkan milik Anda sendiri dan menggunakannya sesuka Anda hanya dengan menelepon \Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here'). (tapi instantiate kelas terlebih dahulu).

[EDIT]
Saya tidak yakin tentang ini, tapi saya catalog_categorydan catalog_productgrup memiliki atribut sistem untuk produk dan kategori.

Marius
sumber
9

Baru kemarin saya menemukan itu untuk pertama kalinya. Ini digunakan misalnya untuk menambahkan atribut khusus untuk mengutip produk barang, jika tidak mereka tidak akan dimuat untuk menghemat sumber daya (dalam kasus saya, saya ingin menampilkan coloratribut pada halaman keranjang). Di Magento 1 Anda akan memasukkan sesuatu seperti ini ke modul Anda config.xml:

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

Untuk mencapai hal yang sama dalam M2, Anda harus menambahkan catalog_attributes.xmlke modul Anda dan lakukan hal berikut:

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