The task at hand
Your next task is to provide users with the option to add custom material descriptions and perform accounting operations based on that user-defined descriptions.
The user-defined descriptions should work as follows: multiple custom characteristics are allowed for each material (such as color or manufacturer). When materials arrive, users can enter specific values for the relevant characteristics (for example, when power supply cables arrive, users can enter that the cables are white, with a cross-section of 2.5 sq mm, and when rubber tubing is delivered, users can enter that it is black and manufactured by Fagumit).
Then you will always be able to find out how many white-colored materials you have or how many black rubber tubing units you have used.
Since you do not know in advance which characteristics users will need to describe a material, you have to provide them with the option to create any characteristics, and, most importantly, specify value types for these characteristics. And when a user enters a characteristic, they select only from the values of the specified type.
You can implement this feature using the Chart of characteristic types configuration object.