How do you delete created product attributes in Magento 2?
I can't get rid of it. I have couple of Magento product attributes which not needed
Magento Stack Exchange is a question and answer site for users of the Magento e-Commerce platform. It only takes a minute to sign up.Sign up to join this community
If you do not see the delete attribute button then that means the table column 'is_user_defined' in the eav_attribute table is set to 0. By changing this to 1 it will show the delete button.
If you do not know where to go to find the attribute then you can follow the answers. In the admin Stores->Attributes->Products
You can remove unused product attributes in Magento 2 by using command line as well.
php bin/magento catalog:product:attributes:cleanup
Sees more details command line catalog:product:attributes:cleanup by using command line help or option -h:
php bin/magento help catalog:product:attributes:cleanup
php bin/magento catalog:product:attributes:cleanup -h
Let me know if you still have any issue.
eav_attribute table set from
1 worked perfectly. I had migrated from Magento 1 and had all these left over attributes that needed to be removed but I could not because when they were migrated they treated those attributes like system attributes and therefore could not delete.
That last comment changing the
eav_attribute did the trick. Thanks.
In order to delete product attribute from backend navigate to
Stores -> Attributes -> Product
click on desired attribute and in next page you will see Delete Attribute button in the top bar, click on it to delete attribute.
If you do not see the delete attribute button then it means the table column 'is_user_defined' in the eav_attribute table is set to 0. By changing this to 1 it will show the delete button.
If you had migrated from Magento 1 then this attributes were considered as system attributes and therefore no delete attribute button is displayed in backend.
Run below query in database to set this value for multiple attributes
UPDATE `eav_attribute` SET `is_user_defined` = 1 WHERE attribute_code IN ('attribute_1','attribute_2');