Troubleshooting ByAttribute

When using the Magento module ByAttribute, you might run into some problems with the module itself or the XML-code it's using. This tutorial contains some frequent problems with ByAttribute.

Troubleshooting the installation

For the module to be come usable, you need to upload the files derived from your Yireo purchase. But after you have correctly installed all files in your Magento shop, it might still be that you need to refresh the Magento cache. Our recommendation to refresh the full Magento cache, every time you install a new module.

To confirm that the ByAttribute module is in place, browse to System > Configuration > Advanced and check the list Disable Module Output to make sure the ByAttribute module is listed.


Atribute not showing

By default ByAttribute uses the manufacturer attribute to display the ByAttribute-block. If you want to use a different attribute, you'll need to modify the XML-layout to do so. Our tutorial Using the Yireo ByAttribute module gives you some guidance.


You need to make sure the properties of an attribute are set correctly before this works with Layered Navigation, and there for with ByAttribute:

  • Catalog Input Type for Store Owner: Dropdown
  • Use in Layered Navigation: Filterable

XML-code not working

In most cases - if your XML-code is incorrect - you'll get a PHP Fatal Error because Magento is unable to load your XML-code. Revert back your changes to restore the old situation in XML and try again. There's no need to uninstall and/or reinstall the ByAttribute module itself.


Performance issues

If you have large product-collections (for instance, 10000+ SKUs), it is important that the ByAttribute-extension only handles data contained in the attribute-entities, and not data in the product-entities: Handling data in the product-entities would require running through all products to do a certain thing. To make sure that this does not happen, disable showProductCount and skipEmpty:

<action method="showProductCount"><int>0</int></action>
<action method="skipEmpty"><int>0</int></action>