client login »
888.PIXEL.88
888.749.3588

Currently Reading: Web Savvy

Web design trends and techniques and how they continue to evolve. Don't blink.

Magento Commerce, all that glitters is not gold, or even a well designed piece of software

  • digg
  • StumbleUpon
  • digg
  • Facebook
  • E-mail this story to a friend!
  • Ma.gnolia
  • Reddit
  • Technorati

No Really

At first blush, Magento appears to be a feature packed powerhouse offering all those wonderful features your clients beg for, BUT there is a big catch... well actually several. In this post, we will cover a few key issues in the hopes that it may inform others.

Before we get started - make no mistake, we are not bashing the folks in the community who have put fourth their efforts in this project, however from what we have seen Varien has their own agenda and pays little attention to community feedback.

Downsides of Magento Commerce

Poor Performance

There have been widespread complaints about Magento's performance in real-world situations. Extremely slow page load and response time provide a user experience that is not conducive to a successful shopping experience.

Bloated Code

The application design is resource intensive and requires a fair amount of tweaking/tuning of the software and environment to achieve a useable site. The sheer amount of overhead created by the application design is absurd. Which brings us to our next point - target audience.

Target Audience for Magento - Is there one?

If you are a designer, get ready to "forget everything you know about skinning a site" (according tothe Magento Docs). If you are a developer who is savvy enough to tweak and tune Magento, odds are you are also smart enough to know that "a system driven by magic getters and setters doesn't provide the best API for developers". It seems that the best suited audience for Magento is for a designer who wants to be able to skin a low traffic "mom and pop" shop. But even that seems like a scary prospect - what if they start driving traffic to their site. Yikes!

The Up Side : Emerging Magento Forks

The good news is that there are already some decent forks of the Magento project, just Google your favorite source repository. One that stood out to us was agent-ohm. Check out his design tenets, spot on if you ask us.

These design tenets will act as a litmus test for every proposed change to the source code. If any proposed change does not relate to one of the tenets, then it will not be included in the project.

  1. Style doesn't trump efficiency : Coding styles should not be employed if they have a detrimental effect on the execution of the code. Furthermore, if a certain coding style uses more resources than another coding style, the other coding style is preferred.
  2. Sub-classes are not a design pattern : A large, complex project needs to employ industry standard design patterns to be widely understood by other developers. Continually extending classes in a parent-child relationship does not constitute an acceptable design pattern.
  3. Outside developers should have a sense of mastery over code : Organization of files and directories should be done in a way which helps developers who have never seen the code before understand the structure of the code. Code organization should not be done simply for ease of including. Code files which are intimately tied to each other should be located as "near" each other as reasonably possible.
  4. Business logic should be orthogonal : Customizable behavior of the system should be centrally located in controllers and actions, not buried in models. This creates a top-down view of the behavior of any HTTP request and lends to a totality of understanding a complete request without tracing through many models and libraries. Complex chains of nested function calls results in brittle, oblique code.
  5. Customizing should have one clear way : When choosing to customize a part of the system there should be one method which is obvious and a better choice than the others. This tenet relates to tenets number 2 and 3. Currently there are two ways to override any class in the system, neither of which has clear advantages over the other.

Other OpenSource Options

There are literally dozens of off the shelf carts out there - at the end of the day it all depends on what you are looking for, ask your web developer to go over the options with you. Your key to running a successful online business is knowledge.

  • PrestaShop is robust, professional grade e-Commerce shopping cart that you can download, install, and use for free. In the back end, you will use a full featured back end to manage your inventory, orders, shipping, and customers in real time. Your customer's payments are sent directly to your commercial bank account using the latest security technology. You can even add your own modules to the shopping cart.
  • OpenCart is an open source PHP based online shopping cart system. OpenCart is easy to use and is SEO optimized with a very nice interface. A great feature of OpenCart is that customers can write their own reviews of the products.
  • CubeCart is very popular shopping cart. CubeCart V3 is free, with the exception that you leave their copyright notice in your footer. CubeCart has a large amount of payment gateways and shipping gateways. Their support forums are lively and many people contribute plugins to the cart. To use CubeCart V4 you must pay but it has many features that V3 doesn't have.
  • Zen Cart is a free, user friendly, open source shopping cart. Zen Cart focuses on the merchants and shoppers instead of the developers. Zen Cart also supports multiple payment and shipping options, quantity discounts and coupons. Also Zen Cart is very easy to install.
  • osCommerce is an online shopping cart that offers a wide range of features that allows online stores to be setup fairly quickly. osCommerce is backed by a great and active community. It also supports multiple currencies, allows customers to print invoices from the order screen, and has an easy database backup system.

and the list goes on...

Some Related Links:

  1. 1. Jenna said on June 16, 2009 at 12:54 pm

    Thanks for this great quick review on Magento. I was very excited about Magento before it was launched in beta. I signed up for their newsletter and downloaded it as soon as it became available.

    My first impressions of the beta was that it offered a ton of features at the sacrifice of unsuitable performance and unnecessary complexity. I was hoping Magento would be polished with its 1.0 release. However, after reading your review and browsing the forums, it appears that the same the hold ups that prevented me from going with Magento in the first place are still present.

    We do not have much to complain about since Magento is free, however, I am disappointed with the product and plan on using a much simpler shopping cart product.

  2. 2. Concerned developer said on June 17, 2009 at 3:02 pm

    It's unfortunate but after spending endless hours trying to handle the monster I conceded defeat. The final straw was the inflexible, overcomplicated templating solution and the ****-poor performance.

    This software is improving, but that's like saying you've almost got your sunken ship to the surface. The problems stem not from a lack of resources on the part of Varien, the problems stem from the fact that the developers are not allowed to inject their strengths into the software, to fix the problem and mistakes, to control the bleeding, as it were.

    The hype of Magento is enormous and unchecked. If they could take just a fraction of their marketing strength and reinvest the time and effort they put into that side of it back into fixing the insanity that is their software, they might actually have a fighting chance of taking some market share.

    As of right now, they have an enterprise-level behemoth that requires maximum server resources and way too much in terms of operational resources to keep the beast sedated and functional. I cringe to think what it costs companies to run and maintain the software, let alone what they are doing to their customer's shopping experience with the god-awful performance.

    Big and Bulky is out guys, the other 80% of the market is the small biz developer and company and they have not the time nor resources to keep the Magento barge on course. Ever wonder why only large clients are profiled in the Magento client list? Because they are the only ones who can afford to manage it! What ticks me off is the amount of hype and press surrounding this craptacular commerce package. It's costing too many small developers revenue and clients. Please, put a **** warning sign on the package, stop selling $50 freaking "Meet Magento" tickets and start cleaning up your software, and apologize for not giving a crap about your "community" which consists of thousands and thousands of desperate, frustrated developers who weren't advised that Magento is what it is. How irresponsible, Varien.

  3. 3. ross said on June 18, 2009 at 6:12 am

    Magento has terrible performance issues, if magento is the ecommerce for growth, then 5000 products, should not be an issue.

    I have setup a store with 5000+ simple products and about 1000 grouped to represent them and 3 stores, and on a dual core operton with 2gig ram and sql caching etc.... Dedicated server , it always hits max cpu, well more like 54% since it seems mySQL and Apache just use one core of course per connection, so the dual core don’t help with single hits but should help with more than one person accessing it.

    Importing products, especially 5000 or updating attributes takes Hours, and if you even updated 10-20, during that time cpu will be near max and anyone visiting the site may get ultra-slow preformance.... using SQL directly however, takes minutes to do the same task.

    it hits 100% cpu even with very little products anyways. Magento’s uses zend which is a slow framework, plus the DB design isn’t designed for speeds sake, its just normalized to death.

  4. 4. Al said on June 18, 2009 at 11:12 pm

    Magento is a lot of hype. Magento does not install well, has simply awful documentation and upgrades are next to impossible. Peruse their own forums, which, as of now, they don’t police or participate in (except rarely). Once the Magento team makes the commitment to helping the users, Magento could make a huge splash. Until then, eh.

  5. 5. Erin Morgan said on June 19, 2009 at 11:18 pm

    I work for a large web development company and we were excited at first for magento as well, but after setting it up on 3-4 clients we found some MAJOR scalability issues - the sites crash and can’t handle traffic because of the amount of products and traffic they get.

    I would highly encourage anyone who plans on having a bigger site in the future to NOT go with Magento - it has been the worst experience ever. We even contacted Magento directly with the issues and they had no solutions.

  6. 6. Troy Hansen said on June 20, 2009 at 3:11 am

    Ok magneto as the potential to be an excellent shopping cart. but their are some things that they need to fix.

    First and most importantly is the initial page load. On average its about 250k and takes between 7-9 seconds on a broadband connection. (28 or so seconds for a 56k connection) The reason it takes so long is the javascript they use.

    Second,
    Seo wise it is not the best. Decent, but it needs some work

    last,
    If you have a lot of products, magneto is not for you. it will take you much longer to list a product than pretty much any other shopping cart.

  7. 7. Daniel said on June 20, 2009 at 7:46 am

    I have to agree with the negative comments about Magento (the name still makes me shudder). On the surface, it looks efficient and snazzy, but wading through through the hundreds of files, deep and confusing directory structure and absolutely terrible, terrible documentation for a month, I ended up developing my own system.

    I was very close to finishing the project, but the final deal breaker was the way the products were handled. To upload a product with 10 different sizes (like shoes for example), you would have to upoad 10 different “simple” products, and then create a “compound” product that englobed them all.

    If my client wanted to upolad 100 different shoes, he would have to create 1100 products!

    It may be “free” and “open source”, but that’s just to sucker you in, so that when you get stuck (and you will) you will need to pay them for help.

  8. 8. tintedPixel said on June 20, 2009 at 9:14 am

    Some great points here, I think its important to remember that Magento is FREE software, so it really is up to the developer to decide if the caveats are a worthwhile tradeoff.

    Personally, we have seen NO Magento installs with decent page loads, even on the Magento site, their showcase of sites are slow as molasses.

    To be fair, there are numerous opensource carts out there that leave a lot to be desired, but there is a unique difference for Magento. Magento bills itself as an enterprise solution, and we would have to agree based on feature set. BUT, considering the size of the project and the claims it makes, it seems the most valid critique of Magento is that Varien does not listen to the community - which sorta defeats the whole opensource thing. If you do a search, you will find there are countless posts on their own forums from developers making suggestions on how to improve the performance, yet very little consideration is ever given.

    Last month, we worked with the folks over at MOSSO trying to improve the extremely poor performance of a Magento deployment (on both the cloud and slice). Mosso explained to us that their developers had made numerous attempts to help Varein with Magento's performance issues, but were meant with flat out rejection.

    Now you can certainly debate that this could also be a MOSSO issue or just a handful of opinions from bitter developers, however it seems to us that a piece of "enterprise level" software (opensource or otherwise) should pay much more attention to performance, stability, scalability, and overall application design.

    Finally, we are hopeful for some of the Magento forks out there. Magento is a great set of features, wrapped in a delicious looking UI sitting on top of a crap application. It brings to mind quips like; "lipstick on a pig", "great idea poorly executed" and "missed it by that much...".

  9. 9. sumdude said on June 22, 2009 at 7:15 pm

    Magento Sites Go Down if Magentocommerce.com Goes Down

    It looks like Magento sites have a weakness where they throw a fatal error on the admin side if they can not connect to the Magentocommerce site to check for updates.

    To disable the feed a quick and dirty fix:

    PHP:

    /**
    * Check feed for modification
    *
    * @return Mage_AdminNotification_Model_Feed
    */

    public function checkUpdate();

    {
    return $this;

    in app/code/core/Mage/AdminNotification/Model/Feed.php

  10. 10. Steve said on July 24, 2009 at 2:27 pm

    Great article. I have just had to start looking at Magento as an ecommerce solution for a client and It is on paper very powerful and very feature rich - That is where I stop at the positives. I have never known such a poor community with people that seem to have such little knowledge of the solution. I have had so many posts on the forum that have not been responded to even by their own development team.

    The lack of documentation for extending it is shocking and trying to work through the anatomny of it all is a minefield.

    I have since said styling is not real issue but if you get a client who we all know will say "But I want it to do this" this not being $this but something the client bespokley wants that the system doesnt do you are fooked. Manipulating blocks and adding templates was a git to get my head round but I got there in the end but writing a back end module is just mind blowingingly difficult - Maybe I am just a bit thick.

    As an ecommerce solution it does what it says but if you get a client who wants it just style it and maybe move a couple of the blocks around, dont event attempt to manipulate the back end unless you a have a degree in Convilution and Over Engineering.

    Back to styling my latest Magento project then.

  11. 11. Cip said on October 6, 2009 at 1:19 am

    Spot on.
    I've imported 8k products, with custom attributes, out of which ~2k had custom options (like format/size/etc), with 423 pre-made tags and ~1400 categories (I know, I know, but it's the client's structure) in two weeks!! Which is simply beyond anything I have ever experienced, even though I had even larger imports before in different systems.
    I had to heavily modify the import.. err core/local/model/local/core/adapter/converter/wtf?!.. right... however that is called, while in the same time fiddling in the DB which is probably what I'll use as a negative design example for trainees.
    The import itself instead of being one-two.. heck why not four uploads and runs, took no less than 56 (yes!! again... FIFTY SIX!) uploads and runs because the import process kept crashing being out of memory even though PHP had reserved 1GB of memory!!! (I would've allocated more if I could).
    Backing it up (when and if it works) or exporting doesn't yield the expected result either, so basically that means you're pretty much locked in, or a very expensive migration process.
    Unfortunately I think, as developers, we're stuck with it, because, unaware, but mesmerized by the rich feature list, clients will still want it. Heck it's free and it looks good to them.
    Try explaining them how the poor design pattern, poor DB design and generally poor performance ("we can upgrade our server right?") is bad for them.

  12. 12. BigDirty said on November 2, 2009 at 10:13 pm

    It's simple really. Varien used the open source model to attract attention and for beta testing. They continue to use the community for beta testing and to absorb ideas from extension developers while developing and selling their enterprise solution. It's a scam from the start.

  13. 13. Magento User said on February 6, 2010 at 5:57 am

    Magento ke dushmano... doob maro saalon

  14. 14. Magento Developer said on February 9, 2010 at 3:45 pm

    Of course there are really upside and downside of every thing like with Magento E-commerce. But it really defense on how you handle the applications based also on the business directions. Magento is a great tool, you just need to maximize it well.

Leave your comment here

Comments
(wont be published)
(nofollow in use)
Are You Human?