Attributes are essentially characteristics or properties which when assigned to a particular element of the store, allow you to further define that particular element. Attributes in Magento are an incredibly important part of managing your store in that they help define products, categories, customers and promotions.
By default, Magento creates and assign a number of attributes but you have the ability to create and assign an infinite number of attributes. While there are many similarities, the creation and management of product and customer attributes are slightly different so we will explain each separately here.
To Create a new Product Attribute
- Navigate to Catalog > Attribute > Manage Attributes and click +Add New Attribute.
- On the New Product Attribute screen, complete the information on the Properties tab as follows:
- Attribute Properties
- Attribute Code: Enter a identifiable code to be used for the attribute (code must be lower case with no spaces - underscores can be used in lieu of spaces).
- Scope: Define the scope of the attribute. Setting the scope to 'storeview' will mean that the attribute can be defined differently for the product for each storeview, or alternatively setting this to 'Global' will mean that this attribute can only be defined once (or set everywhere the same).
- Catalog Input Type for Store Owner:
- Default Value: This option is applicable only to 'Text Field', 'Text Area', 'Date', 'Yes/No', and 'Price'.
- Unique Value: If you want to ensure that the products attribute is defined with a unique value (not shared with other products), set this to Yes. Typically though, this is set to No.
- Values Required: If this attribute is assigned to a product, do you want to make it mandatory that this attribute is defined? If it is key to defining a product (e.g Price or Weight) you may want to consider setting this to mandatory.
- Input Validation for Store Owner: This field is for the purposes of validating the type of data entered into the attribute field. You can define the type of data you want the attribute to be defined with or set this to None (typically this is set to None).
- Apply To: Select the product types you want the attribute to be available to be used for.
Note: It is worth mentioning that once defined in the attribute, Attribute Code, and Catalog input Type for Store Owner cannot be amended.
- Frontend Properties
- Use in Quick Search: Set this option to Yes if you want customers to be able to search the catalog using this attribute.
- Use in Advanced Search: If, when using Advanced Search you want customers to be able to search the catalog using this attribute.
- Comparable on Front-end: If you are using the Compare Products feature and want people to compare products based on values of this attribute, set to Yes.
- Use in Layered Navigation: This option is applicable to Dropdown, Multiselect and Price input type attributes only (as the attribute values are predefined for these). This option dictates how you want the attribute to be used in regards to layered navigation filters on the category pages. Setting to No will mean that the attribute is not used for layered navigation. If you want the attribute, and all the attributes values, to appear as layered navigation (regardless of whether each filter has a product assigned) set this to Filterable (no results). If you want only filters to appears for layered navigational purposes within the category if there are products available for each of the option then set this to Filterable (with results.
- Use in Search Results Layered Navigation: if you want this attribute to be used for layered navigational purposes on a search results page, set this to Yes.
- Use in Promo Rule Conditions: If you want the attribute to be available to be used as a condition in promo rules, set this to Yes.
- Position: If the attribute is being used for layered navigation, define the position of where you would like it to appear.
- Allow HTML Tags on Frontend: This attribute option applies to only 'Text Field' and 'Text Area' input types. Set to Yes if you want to be able to format the attribute values with HTML.
- Visible on Product View Page on Front-end: Set this attribute to Yes if you want it to be appear on the product page frontend (by default will appear in the Additional Information tab).
- Used in Product Listing: Setting this to Yes will mean that the attribute is included in the product summary (which appears on the category page), as well as that its available for use in the Smart Categories section of the Visual Merchandiser.
- Used for Sorting in Product Listing: Setting this to Yes means that that the attribute will be available to be used as a 'Sort By' option on the category page.
Once happy with the above assignment, click into the Manage Label / Options tab. This tab will look quite different depending on the Catalog Input Type for Store Owner type selected above. if you have selected Dropdown or Multiselect, you then have fields to begin entering the attribute options that would exist in the dropdown or multiselect. Regardless of input type selection, you will have an option at the top of this tab to manage the titles of how you want this attribute to be defined (by storeview) in the catalog (e.g. for UK storeview could have 'colour' vs. the US storeview which you would want to label 'color').
Once happy with your new attribute, click Save Attribute.
To Assign an Attribute to an Attribute Set
Once an attribute has been created, you need to then tell Magento where you want it to appear in the catalog (what types of products is it applicable to). This makes sense, and helps with the organisation of the catalog. If you think about it you wouldn't want a 'Shoe Size' attribute appearing for a camera - this prevents unnecessary and irrelevant attributes polluting products of where they simply aren't relevant. So with that in mind, lets proceed to assigning the attribute to an Attribute Set.
- Navigate to Catalog > Attributes > Manage Attribute Sets. Click into the Attribute Set that you want to add your newly created attribute to.
Note: If you are unsure what the attribute assignment is for a product, you can usually figure this out by having a look at the Manage Products grid under Attribute. Set Name, or by clicking into a product and seeing what appears in the (" ") beside the product name at the top of the page.
2. After having clicked into your attribute set, you should see 3 columns on this screen: Edit Set Name (with an attribute set name field), Groups and Unassigned Attributes.
- Edit Set Name: Amend the Attribute Set name if necessary.
- Groups: This is where all the already-assigned attributes will appear. Attributes in this list already exist in the attribute set and are available for all products with that attribute set assigned. The 'groups' here are the tabs that will exist in the product edit page, which can be added to, moved around or deleted.
- Unassigned Attributes: This is where all the other attributes which are not assigned to the attribute will appear. If you have just created your attribute, you should expect to see it here.
3. This screen operates like a drag and drop. You can move attributes from the 'Groups' or assigned column, to the Unassigned Attributes column, thereby removing them from the attribute set. Likewise, you can drag and drop Unassigned Attributes into the Groups column.
4. Once happy, click Save Attribute Set (and voila your newly created attribute will now be available for products belonging to that attribute set).
As mentioned, while many of the same principles apply to customer attributes in Magento, the management of them is slightly different. They are the characteristics that you assign to customers See below for a low down on all things customer attributes.
How to Create a New Customer Attribute
- Navigate to Customers > Attributes > Manage Customer Attributes. On the Manage Customer Attributes screen you can view all current customer attributes, or if wanting to add a new one click +Add New Attribute.
- Similar fields exist on the New Customer Attribute form, so i will describe the ones unique to customer attributes below:
- Input/Output Filter: This option is specific to Text Field, Text Area and Multiple Line input types and defines which filter will be applied to the attribute during the input / output operations.
- Use in Customer Segment: This option determines whether the attribute can be used to define a customer segment (mainly used for targeted marketing)
- Forms to Use in: Select which forms you would like the new customer attribute to appear on. Options here include: Customer Checkout Register, Customer Registration, Customer Account Edit & Admin Checkout.
3. Once happy, click Save Customer Attribute.
What you then choose to do with this customer attribute is entirely up to you! It can be added to any of the customer forms, for customer segmentation (enterprise only) to be used as part of a targeted marketing campaign or simply for internal purposes.