Description
This issue is automatically created based on existing pull request: #39794: Only load attributes from attribute set of given entity type
Description
The eav_entity_attribute
table can contain attributes of different entity types (from third parties), next to the catalog_product
entity type attributes. These attributes can possibly have the same attribute set IDs as the catalog_product
entity attribute set IDs.
This can cause issues when loading the attributes by attribute set for a product.
For example: when switching a product's attribute set to a different attribute set, the following snippet will try to delete the data of the product of the old attribute set:
https://github.com/magento/magento2/blob/2.4-develop/app/code/Magento/Catalog/Model/ResourceModel/Product.php#L344-L355
This will result in the following error:
Call to a member function getBackendTable() on bool
Manual testing scenarios
- Create a custom entity type, or install a third party extension which adds custom entity types (like https://mirasvit.com/magento-2-extensions/blog.html, which adds
blog_post
andblog_category
entity types), and make sure you have a product attribute set ID with the same attribute set ID of the custom entity type. - Try to switch the attribute set of an existing product, which currently has a product attribute set ID which is the same as one of the custom entity type IDs.
- When trying to save the product, the following error will appear:
Call to a member function getBackendTable() on bool
Contribution checklist
- Pull request has a meaningful description of its purpose
- All commits are accompanied by meaningful commit messages
- All new or changed code is covered with unit/integration tests (if applicable)
- README.md files for modified modules are updated and included in the pull request if any README.md predefined sections require an update
- All automated tests passed successfully (all builds are green)
Metadata
Metadata
Assignees
Type
Projects
Status