What's the difference between an user defined attribute and non user defined attribute?

Actually Magento user_defined = false attributes are known as system attributes. So Magento has some of their system attribute, which we can not delete from admin panel. So magento won't allow system attribute to be deleted. We can delete them through database but it is not safe.

So Attributes which are highly required to run a system that type of attribute we can create as system attributes. But in opposite side, we can easily delete user defined attributes from admin panel.

Hope it helps Thanks.


Magento system attributes are set to false for user_defined so our custom attributes should be set to true. System attributes can not be deleted so if you set false to user_defined, your attribute will work as system attribute.


To add to this:

If you add attributes via Install-/ UpdateSchema make sure to add to 'user_defined' => true. Only non system attributes (eg. is_user_defined = 1) can be used for configurable products.