Magento site owners: Get serious, focus on what matters the most

Featured Image

For the last year or so I have been actively involved in online store development based on Magento ECOMMERCE platform. Everyone involved in Magento development can tell you that Magento extensively uses OOP approach. Although not everyone will agree, I like the way platform has been architectured in the backend. Layouts and config files enable you great deal of power without even writing a line of PHP code. Its not perfect, but what is. I believe most of you heard the “cliche”: “With great power comes great responsibility”. Let’s discuss this in regards to Magento.

There is a plain and simple message I wish to shout to current and future owners of Magento powered online stores: “Get serious, focus on what matters the most!“.

Now what exactly did I have (and still have) in mind with statement like this? Unlike WordPress and Drupal (no offense, I use them, I respect them) not everyone can develop quality modules (extensions) for Magento. Platform itself requires developer a decent amount of knowledge from PHP OOP and other fancy object related concepts. As mentioned in one of my previous articles, Observers and “overrides” are among my favorite concepts (approaches) in Magento module development.

One of the projects I was assigned few weeks ago had a great amount of products, total of 46 268 to be more precise. Most of these are simple products with “Visibility”:”Nowhere” and are used strictly as Associated products in some Configurable products. Configurable products are for the most part shown to the user on frontend. All in all, there is a handful of Configurable products in the system, each holding couple of thousands Associated product.

There are two issues here. First and most annoying issue I came across in this “WTF” configuration is the performance. Complete collapse of any reasonable execution time. Loading a page that holds this kind of Configurable product takes from 3-9 minutes, both on frontend and backend. I’m talking about 3-9 minutes on local machine with maximum resource settings for PHP and MySQL. Second issue here is obvious misunderstanding of Magento product types and how to use them.

I have already done Magento project with the approximately same total number of products in system. Number of products itself does not impose that much noticeable performance drop if the products are used the “smart way”. By “smart way” I think in terms where you have wast amount independent Simple products. Magento can handle that quite well. However, having large amount of relations like those Configurable Products > Associated Products can kill your store to “usability equals zero”.

Here is where I draw the line on developers part. If you are lucky enough to get working on a new Magento related project from scratch you are obliged to recognize these kind of issues and react on time. Change the approach to the way how products need to be presented in the system and so on. It is unacceptable to create thousands of Associated products just to make them affect the final price of Configurable product. If you need to come up with solution like this, try developing a custom module to work around the issue not go with it. Performance drop is guarantied in cases like above. So if the client comes with the idea like “I have a lot of products that kind of fall into the category of Configurable products that can use this and that as Associated product to stay dynamic in that and that selection…” you need to stop, think twice how this will affect store as whole and then propose the solution. No need to blindly go with clients (owners) suggestions. His prime wish is to get his store working and selling with least amount of budget as possible.

Now lets look at the owners (clients). I’ve noticed a lot of owners have “special” request for Magento store. Lot of them have products that kind of fit under the category of Grouped, Bundled and Configurable products. This is great actually, since all of these come out of the box in Magento. What’s not so great is that their wishes can sometimes be quite “unreasonable”. Lets look at the “color switcher” functionality lot of people ask to be implemented. This kind of functionality is mostly done by JavaScript where one hides select box that Magento would normally show under product options, and so on.

Zebra

Sure it looks great, its looks cool but the real question is “How much will it improve your selling?”. I realize the usability can be as much as important as functionality. By now, there are even some color switcher modules you can buy. However, most of magento modules require additional work to be properly implemented in order to fit the owners wishes. Due to the complexity of Magento platform, sometimes even the smaller changes require lot of time and effort on developer part. This would all be great and shinny if everything would work after the upgrading Magento store when the new version appears. All this leaves entire development process focused on the “little things”. I say, why not style the theme to the end with the default Magento page setup. Why change the output of product view page? Why not leave it default, just fully style it to match your design. This kinf of approach would be far more safer in terms of upgrades and in terms of bringing the project to the end in as much as possible short timing.

What I’m trying to say, Magento comes extremely feature rich out of the box. Development time is not free, and to my opinion it should be focused on either building fresh, new features for the store or at other parts of the system like Promotions, Catalog price rules, Shopping cart price rules, Customer groups. The latter one seem to be relatively ignored in the big picture.

Adding features like “color switcher” could be left for latter phase of development, the one after the site goes live. The one you are sure your store is working the way it should, its stable, nicely styled, optimized for best performance, and quite well structured so its relatively bullet prof on updates. Then you can start adding modules, fancy usability tweaks and so on.


13 comments

  1. I think i have a very unique problem regarding the Magento configurable product search, here is step by step my problem and looking for some solution and expert advice on how we can implement it.

    1- We are going to convert our product in configurable, right now they are simple like iphone with color,size option, clothing products. 2- We are Using Magento Solr Search and Magento Enterprise 1.10 3- Problem area:

    1- if user search for “iphone red” or “iphone 16 GB”, user should get Iphone product with RED or 16 GB as default selected into configurable and layered navigation should show “Red” as filter option in color attribute and 16GB as size attribute. 2- On category listing, user should get all color options in layered navigation and single configurable product into product display.

    Please advice.

    Thanks, Pankaj

  2. Well Said! – I was like: hell yeah! totally true! – I usually I’m like this with my clients. I try to make them see the important points, there’s no point of filling pages with unnecessary stuff which in the end would distract the customers and affect sales.

  3. “Number of products itself does not impose that much noticeable performance drop if the products are used the โ€œsmart wayโ€. ”

    “Change the approach to the way how products need to be presented in the system and so on. It is unacceptable to create thousands of Associated products just to make them affect the final price of Configurable product.”

    Perhaps a good advice for the Magento developers that wrote the configurable products code in the most unusable way. It’s the single most attractive feature people are turning to Magento and its implemented completely wrong.
    It seems they didn’t think beyond T-shirt sizes and colors when they wrote the code. The only reason configurable products are implemented the way they are(according to devs) is “SKUs”…WTF… So, the avice or the blame(if you can blame someone for giving you their code for free) should be directed towards Magento’s team.
    “Change the approach to the way how products need to be presented in the system and so on”
    How shall I configure a product like a: picture with 12 sizes, 5 framing options in 3 colors, 2 wraping options and perhaps 5 optional backgrounds. That’s around 1500+ simple products just to be able to reflect the price changes and see what the customer selected. Configurable products IMHO is the the most important feature for any modern cart and Achilles’ heel of Magento…
    However, many will trust Magento’s implementation and see it’s flaws after configuring 40000 products.
    If Magento fix that tonight there will be 5000 new converts tomorrow morning. Unfortunately it seems none of the M team realizes it and keeps M a one legged beauty.

  4. I would like to read your ideas about customer groups in Magento, and also understand the upgrade issues when customizing Magento templates.

  5. I use the exact same approach for new projects. No use in reinventing an e-commerce page layout for every new store. If you tell your graphic artist about it, they will be able to create a theme that won’t look like the default Blue or Modern theme and still make upgrading much easier.

  6. Agree, but what the solution. My client has ~5000products with ~560diffrent options to each, my god that’s over 2,8mil and i really can’t find solution. Importing is nearly impossible in one day it imports ~30-60k products. It’s like from 90-45days of IMPORTING? Is that normal? And then? I mean you need relate them to configurable products? It’s like 5min each product. Why? Because 1 you can’t choose more than (don’t remember exactly) 50 products per page? 2 loading that 50 relates products 2min35sec selecting 30-50sec what a hell? You say try simple product with custom options? Then another thing. All prices on catalog 0, etc etc. It’s really not so attractive as it was in the beginning. The only thing why i’m still not quit yet is a lot of more and time spent on this magento, and if not small store 500> simple products i wouldn’t recommend it at all…Updates that ruin all your job. Magento is not so perfect at all. Don’t you agree?
    What do you recommend of this list to your next client?

    osCommerce (2.2 v.)

    Joomla (1 v. / 1.5 v.) + VirtueMart (1.1.x v.)

    VaM Shop

    Oxid

    Magento

    PrestaShop

    Quick Cart (3.x v.)

    Ruby on rails (2.3 v.)

    Drupal (5.1 v.)

    CS-Cart (2.0 v.)

    WordPress (2.7 v.) + eShop (3.3.x v.)

    Zen Cart (1.3 v.)

  7. Super Products remain a pain.

    I have been working with Magento since .06 and would have to say the Super (Configurable) Products remain a pain point out of the box – especially for migrating existing client platforms.

    Grouped products which were firstly & successfully implemented rely heavily on the associated products including their price. Why the team defaulted away from this working model seemed to because of speed issues which people were the top of client concerns.

    Organic (Matt) – Simple Configurable Product extension revisits the path originally traveled which pulls the required configurable information from the associated product. – Some assembly required as its beta. ๐Ÿ™‚

    Speed – We have seen great response time from throwing hardware at Magento. (quad core xeons and at least 8GB of RAM) – After all this is an ‘enterprise’ product with arguably a very expensive overhead.

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=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.