The attribute system is what makes Magento one of the most flexible e-commerce systems there are. Items in Magento consist of a standard set of attributes like Name, Description and URL, supplemented with your own attributes. The attributes you want to use, are bundled into attribute sets, which in turn are applied to items. 

Item attributes can be used for every piece of information you want to add to your items. No matter what kind of products you sell. Whether its wooden furniture, where attributes like 'type of wood', 'color' and 'size' are important, or laptops where you want to use attributes like 'CPU speed', 'screen size' and 'HDD type'. Just define your attributes and attribute sets, and apply them to your items. 

The use of item attributes can make or break your online shop. If you don't use them, your customer has to have deep knowledge of your products, otherwise they cannot find anything. And still if you have this information but you don't use it correctly, you still don't get the best results.

In the next few paragraphs we'll use a set of garden chairs to demonstrate how to design and use an attribute set.

Selling Chairs

Below is an example of the product that we want to sell online. Now, we could just create an item, and give it a name and an image, and see whether that will work. But, there are much better options. And therefore we start by designing the appropriate attribute set. 

We will need the following attributes. 

Height, Width, Depth. These will be of Data Type: Decimal, because when doing so, input will be validated so that your users cannot enter any other value than just numbers. 

Product Material. This will be of Data Type: Multi-Select. Dropdowns and Multi-Selects allow uses to only select values from a predefined set. This eliminates spelling errors and other inconsistencies. These data types can also be used as filters on the Magento front-end, allowing users to easily make selections like 'all wooden chairs' or 'all aluminium chairs with color red or blue'

Caring Instructions. For now this will be a Data Type: Text attribute. But, you could also choose make it a Drop Down or Multi-Select.

UV Resistant. This will be a Data Type: Yes/No attribute.  

Creating Attributes

First go to Attributes > Attributes. And then click on the New button. 

Give your new attribute a Code, and select the right Data Type. In this case we want to create a Decimal attribute. 

For more information about all other data types, see the last paragraph on this page. 

Provide a Default Label. If you are building a multi-lingual store, you can provide translations for this label in the Store Labels section. If you only use one language, you can leave this section empty. 

The next section contains the Storefront Properties. Below is a list of what these properties are for. 

  • Use in Search; Specify whether the values for this attribute should be indexed by the Magento search engine. Usually for attributes like our example Height attribute, this doesn't make much sense. The search index will probably be flooded with a huge list of numbers. But an attribute like Brand Name or Color will be more useful to add to the search index.
  • Comparable on Storefront; Magento has an Item Compare feature, and with this property you can indicate whether an attribute will be listed when users are comparing items. 
  • Use in Layered Navigation; This is a very important property. This one specifies whether an attribute will be used for filtering within product categories. It can only be applied to attributes of type Yes/No, Dropdown, Multiple Select and Price. There is a bit more information in the final chapter of this page.
  • Use for Promo Rule Conditions; Specifies whether you want to make use of this attribute in the promotions engine within Magento. 
  • Visible on Storefront; Sometimes it might be useful to create an attribute which is not directly visible on the front-end. If you have a requirement like; for some products we would like an additional banner to be shown on the product detail page. The you can create an attribute Show Info Banner [Yes/No]. And ask your web developer when this value is set to Yes, to show the banner.
  • Used in Product Listing; Used to specify whether an attribute should be shown on product listing pages. Check with your web developer whether the front-end designs and code also support the use of this property. 
  • Used for Sort in Product Listing; Used to specify whether an attribute can be used to sort the product lists. 
  • Position; The lower the number, the higher this attribute is positioned in the Layered Navigation

Attribute Mapping

Attribute mapping is a powerful feature to reuse data that already exists somewhere in your Business Central system. When mapping is used, users don't have to fill in attribute values manually. Instead the values will automatically be taken from their source table and field. 

Click here to read more about attribute mapping. 

Release the Attribute

Just as Items, Customers, Attribute Sets, Attributes also have a final Release switch on top the detail page. This is to prevent users from already working with attribute you are still working on. Make sure to release an attribute in order to be able to use it. 

Create your Attribute Set

After you have created all the attributes you need for your new product, go to Attributes > Attribute Sets. And click on the New button. Fill in a Code for this new set. And then create the Groups in which you want to place the attributes you have created. You don't have to create multiple groups, you can put all attributes in one group. But, it might help to better structure your attribute sets. In this case we will create Dimensions for the Height, Width and Depth attributes. We'll put the attributes for Product Material and Caring Instructions in a group called Details. And our UV Resistant attribute will be placed in the Outdoor group. 

After the groups have been created, click on the number in the last column to add attributes to each group.
Be aware; only attributes that have been Released can be selected. If you are missing an attribute, you should first check its released status. 

Release the Attribute Set

Just as with attributes, an attribute set has to be released as well. For the very same reason. You don't want people to start working with an attribute set until it is fully finished. 

Once an attribute set is released, you can apply it to your items. To do this, open a Magento Item Detail page, select the new Attribute Set Code, and in turn that will create all the attribute value lines further down on the page. 

On the Magento side this will produce a page like this. With Product Material and UV Resistant shown as filters in the Layered Navigation. And when both are set, the product list is down to 1 product. Our Topa Dining Set. 

Attribute Data Types

Below is an overview of all possible data types and a description of their characteristics. 

  • Text; A single line of text. 
  • Text Area; A multi-line text without formatting. 
  • Text Editor; A multi-line text with formatting. A rich text editor will be presented when you want to edit such values. 
  • Yes/No; A boolean value. Boolean fields can be used in the Magento Layered Navigation. 
  • Decimal; Only accepts numeric values. 
  • Price; Also only accepts numeric values. Values will be presented as a price in the Magento front-end. 
  • Date; Only accepts date values. 
  • Dropdown; Users can only select one value out of a list of predefined values. Suitable for Layered Navigation.
  • Multiple Select; Select one or more values out of a list of predefined values. Suitable for Layered Navigation. 

Layered Navigation 

Layered Navigation in Magento is what most people call Filters. As you can see in the screenshot above, these are filter options which are shown when browsing though catalog pages or search results. This is a very powerful feature which can enhance the user experience a lot. 

Usually the more products you have, the harder it becomes for your customers to actually find the right product. And this gets even worse in categories where there are many products which look very similar. Think about selling nuts and bolts, or car tyres. 

In all cases, making proper use of the attribute system, and a good strategy on which attributes to show in the layered navigation, can make a great difference. 

Be aware that only certain data types can be used in the layered navigation. And sometimes it might be wise to create an additional attribute just for filtering. Or to use a dropdown instead of a decimal, because then it can be used as a filter. 

A nice example is a product like a Makita Powerdrill, which has a Voltage attribute. And you want to allow users to quickly filter products on either 14.4v, 18v, 40v. You should consider creating a Dropdown attribute instead of a Decimal attribute. That dropdown can be used as a filter. And this allows users to quickly select a product which is compatible with the battery-packs they already own.