Hi all.
Question about ID attributes. How do they assign non-default numbers? For example, brand1 = id1. Size 47 = id47
Converted Attribute Code
When creating an attribute, Magento usually just stripts spaces
and special characters
and converts to lowercase
when generating an Attribute Code. For example:
I am an attribute
becomes i_am_an_attribute
Assigned Attribute ID
When the Attribute ID is generated, it assigns the last unused ID (as controlled by the DB Table settings). So, if my last attribute have an ID of 45
then the next one would be 46
. This is still the case even if you remove old attributes. The ID never “back-fills”.
You can verify this in phpMyAdmin under the Table eav_attribute
under the Operations tab:
So my next Product Attribute will be assigned Attribute ID 166
Good. Where to change is understandable. The question is a little different. If I change the ID in the database - what is the danger? For example, a manufacturer with “manufacturer=5642” to “manufacturer=30” Or size from “size=5601” to “size=47”.
It’s hard to say. Making direct DB changes normally tends to break everything rather quickly. This post displays a Table Diagram (Magento 2 Database Diagram) that gives you a visual indication of how one table is linked to another. Breaking that chain may have a cascading effect. The only one to know for sure is testing it in your development environment.