I'll start off by stating the nature of the problem.


My client has a pre-existing website that allows a user to select a vehicle from a number of drop down lists that tunnel down until they display a list of different types of a certain vehicle model.


    Alfa Romeo (brand)
    -> 145 (model)
         -> 145 1.9 JTD 8V
         -> 145 1.9 JTD 12V (not real but an example)

Once the user has select a vehicle and the "sub variant" (for lack of a better word) of that vehicle they are directed to a page that displays a list of products that a compatible with it.

On top of this, the products that a shown that a compatible with it directly affect the vehicles performance and the gains in power and possible gains in MPG performance are displayed alongside a product.

Their existing website uses a very old system that isn't worth salvaging

The Problem

So in Magento I am not tasked with creating a near enough identical vehicle selector system that displays compatible products with that vehicle and how it affects the performance of that vehicle.

I have tried to use just categories but could see no way of showing the unique product to vehicle performance improvements, there are different products that affect a vehicle, simple idea is that the more expensive products do better than the others (no surprise there).

I have also looked in to create a custom module that adds a few database tables that hold information about Manufacturer, Model and Subvariant to be queried by a front-end block/widget but with one hurdle; that a new custom attribute would need to be created that could be easily edited similarly but not necessarily identically to how categories are managed (with the tree view that is very user friendly compared to a very long multi select).

Any advice or pointers would be greatly appreciated, I've started out with Magento with what I would have to say is a very hard project for a first timer with the system, I have spent a few weeks reading up and learning modules development.

2 Answers 2


This is actually a business question so you might have some varied responses. Magento does not handle this situation very well, there was an extension floating around for vehicles but it was hit or miss as it used sessions so caused problems. You really do not want to create a custom module unless you are very exact about what you want to do, any change in the requirements and your module will stop working.

The key question which you have not provided information about, if the model/make are filtered should the whole site only show products for that make/model. If so how do you plan on the search engines ranking your site, it all becomes quite complex.

There are a couple of ways of doing it, but the problem is how to manage the products linking to the categories, stores, websites, etc. we automate this by external tools and/or scripts, if you had to do it manually it would be unmanageable. Hence we come back full circle to the business problem of the requirement.

  • Thank you for the response Serpyre, I have done more research in to the area and have figured out that it could be done using a simple join table between a car and a product with some extra columns to display performance statistics. The customer would see the details in a graph and be provided a link to that particular product thus leaving the custom module to the core Magento areas. I have done further research in to database relationships in Magento but there is no definitive guide and all resources point to there be no native way of implementing it without SQL.
    – Everon
    Feb 4, 2014 at 12:02
  • Embedding the performance data was an option during early research but it was found that each product affects each vehicle in a different way, the more expensive products give greater benefits of course. The module's development is going well but I'm curious as to how stability issues would appear as the module is only used on one site and to what I've read are the best practices in Magento development. It seems there is no other way and if you can't think of any other way that's fair enough. If you put every thing we have discussed in an answer I'll flag it as correct.
    – Everon
    Feb 6, 2014 at 10:18
  • Also, can you link me to a tutorial about this matrix thing? Sounds useful. I can't find one any where.
    – Everon
    Feb 6, 2014 at 13:08

This can be done using native functionality alone. Add your products in the normal fashion, using attributes to assign parts to specific make/model as necessary.

You can then add a vehicle selector to the site when the user lands, so that they pick their particular vehicle. Store the result in the users session, so that you can use it later.

Then finally, extend the core, so that every time Magento sets the layer (ie. the collection used on both category, layered nav. and search pages), it also performs an addAttributeToFilter() for the respective vehicle.

This is a really simple, very lightweight, very elegant solution to this particular kind of site.

  • Thanks for the response, unfortunately the project ended some time ago but I will remember this for when a similar problem crops up.
    – Everon
    Oct 13, 2014 at 19:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.