Custom attributes for categories in Magento

Sometimes there is a requirement to have custom attributes for a category, but it isn’t that straightforward to add, at least not through the GUI.

The method, for a text input, is:

  • 1

    Create the new attribute via admin, or via SQL using the following:

    INSERT INTO `eav_attribute` (`entity_type_id`, `attribute_code`, `attribute_model`, `backend_model`, `backend_type`, `backend_table`, `frontend_model`, `frontend_input`, `frontend_input_renderer`, `frontend_label`, `frontend_class`, `source_model`, `is_global`, `is_visible`, `is_required`, `is_user_defined`, `default_value`, `is_searchable`, `is_filterable`, `is_comparable`, `is_visible_on_front`, `is_html_allowed_on_front`, `is_unique`, `is_visible_in_advanced_search`, `is_configurable`, `apply_to`, `position`, `note`, `is_used_for_price_rules`, `is_filterable_in_search`, `used_in_product_listing`, `used_for_sort_by`) VALUES
    (9, 'ATTRIBUTE_CODE', NULL, '', 'varchar', '', '', 'text', NULL, 'ATTRIBUTE_NAME, NULL, '', 0, 1, 0, 0, '', 0, 0, 0, 0, 0, 0, 0, 1, '', 1, ', 1, 0, 0, 0);

    Replace ATTRIBUTE_* with your variables.

  • 2

    Create the relationship, using the following:

    Replace 944 with the ID from the attribute above and 5329 with the next incremented ID in eav_entity_attribute

    INSERT INTO `eav_entity_attribute` (`entity_attribute_id`, `entity_type_id`, `attribute_set_id`, `attribute_group_id`, `attribute_id`, `sort_order`) VALUES
    (5329, 9, 12, 7, 944, 2);
This entry was posted in Magento and tagged , , . Bookmark the permalink.

11 Responses to Custom attributes for categories in Magento


  1. Chris

    Hello,

    I tried the above but could not get it to work – I get an error on column count ?

    I am running version 1.4 and need to specify 4 new inputs and one text area under the General tab for categories. If you can help it would be great!

    Thanks,
    Chris

    Reply


  2. Hi Chris,

    This isn’t tested on 1.4 – so I cannot comment. I can give it a try at some point next week for you.

    Reply



    • Ronald

      Hi there,

      You need to add the same id in the catalog_eav_attribute table as well…
      Tested is 1.4.

      Hope this will help someone

      Reply



  3. Shaun E

    Thanks for posting this solution guys. This approach works OK but I think I would like to recommend another approach that involves creating a mini module. It seems more upgradeable. Here is the link.

    http://www.magentix.fr/modules-magento/ajouter-categorie-attributs-champs-personnalises.html

    It is in french, which I don’t know, but if you have a little experience with Magento you can probably figure out the steps.

    Reply



  4. Daniela

    Hello,

    I tried these steps, but it won’t show me the two new attributes within a Categorie under Manage Categories. What else do I need to to to get these attributes shown there to insert some more information?

    Hope, someone has an idea for me?

    Thanks, Dani

    Reply



  5. Piers

    Hi,

    I seem to be having the same problem as Dani. Is there a missing step to make it appear?

    Thanks,
    Piers

    Reply



    • Piers

      Ah, You also have to register your attribute in table “catalog_eav_attribute”.

      Just insert a new entry with the attribute_id to match your new attribute.

      Piers

      Reply



  6. Narendra

    I inserted the data in all three tables i.e. eav_attribute, eav_entity_attribute and catalog_eav_attribute but I still could not see new attribute in backend. Why isn’t it visible in add new category form?

    Reply


    • Are you sure you inserted the appropriate attribute type ID?

      Its worth looking at some of the other standard category attributes – then comparing the default values to ensure yours are the same.

      Reply



  7. Sunil Rana

    Quick and easy steps every seen on how to add custom attributes.
    http://www.phptechi.com/how-to-add-custom-attribute-to-category-in-magento.html

    Reply


Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">