Magento 2: tệp catalog_attribut.xml là gì?


12

Tôi nhận thấy rằng Magento 2 chứa một số catalog_attributes.xmltệp trong các thư mục sau:

  • 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

Những tệp đó trông như thế này (ví dụ cho Salestệp):

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

Những tập tin được sử dụng để làm gì?



Câu trả lời:


18

Nói chung, các tệp này chứa danh sách các thuộc tính phục vụ các mục đích khác nhau.
Nhóm used_in_autogenerationtừ tệp trong mô-đun danh mục phục vụ cho việc liệt kê các thuộc tính có giá trị được tạo tự động.
Chúng được lấy trong\Magento\Catalog\Helper\Product::getAttributesAllowedForAutogeneration

Nhóm quote_itemđại diện cho các thuộc tính sẽ được sao chép từ sản phẩm sang mục báo giá.

unassignable chứa danh sách các thuộc tính không thể được gán từ bất kỳ tập thuộc tính nào.

Xin lỗi, nhưng tôi không biết tất cả các nhóm có sẵn.
Nhưng bạn không chỉ giới hạn trong các nhóm hiện có. Bạn có thể thêm của riêng bạn và sử dụng chúng như bạn muốn chỉ bằng cách gọi \Magento\Catalog\Model\Attribute\Config::getAttributeNames('group_name_here'). (nhưng khởi tạo lớp học trước).

[EDIT]
Tôi không chắc chắn về điều này, nhưng tôi catalog_categorycatalog_productcác nhóm giữ các thuộc tính hệ thống cho các sản phẩm và danh mục.


8

Mới hôm qua tôi đã vấp phải điều đó lần đầu tiên. Ví dụ, nó được sử dụng để thêm các thuộc tính tùy chỉnh để trích dẫn các sản phẩm vật phẩm, nếu không chúng sẽ không được tải để tiết kiệm tài nguyên (trong trường hợp của tôi, tôi muốn hiển thị colorthuộc tính trên trang giỏ hàng). Trong Magento 1, bạn sẽ nhập một cái gì đó như thế này vào mô-đun của mình config.xml:

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

Để đạt được điều tương tự trong M2, bạn phải thêm một catalog_attributes.xmlmô-đun của mình và làm như sau:

<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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.