Magento Sucks

Some might think that I want some attention, or have become a grumpy old man. Considering my birthday is tomorrow, turning 36 might be as close to a grumpy old man as I can get.

I want to make some things clear. I have nothing against people using these awesome tools coming out every six months, only to be used for a short period of time. I just want to share my experiences in the 12+ years I’ve been developing. Also considering the fact that I’ve been programming since the age of 11, self taught in basic, I think I understand a few things about writing code.

For the same reason that Apple became the number one company in the world, I like simplicity. Even when it comes to programming. Just because I’m a programmer doesn’t mean that I have to be some rocket scientist that only a few can understand.

Good programmers can write complex code that intertwines on itself in amazing loops and conditionals that will make even the smartest of people look at the code like a dog looks at someone whistling. Great programmers will write code that programmers at any level will easily understand.

This reminds me of the time I picked up Magento. What a convoluted piece of crap! I’m not talking about the basic use of pulling it out of the box and creating a template, but I’m talking about trying to revert from Enterprise back to the Community edition. I mean, holy crap! My head spun around for over 3 months trying to duplicate all of the functionality that already existed in Enterprise. Don’t ask me why business wanted to do that. They’re the ones that think they understand the product and sell it like that to their clients.

I vowed to never touch Magento ever again. Unless, someone needs a simple out of the box solution with a pre-purchased tempalte, there are other programs out there that can do everything much simpler. Presta-shop, wordpress, even weebly has introduced an ecommerce solution for moms and pops.

I like the idea behind Magento and its flexibility, but there’s no way you can build something so flexible to allow for everything you ever wanted. There are workarounds around it, and even then, you still have to revert back to simple PHP in many cases. If it was so flexible that you could do anything, well, then, you’d have PHP. So, why the need of a framework?

From my understanding, Magento was built in two weeks by an offshore Russian or Ukranian who worked nights and weekends to get this magestic piece of crap out to the market… And boy, was it buggy… Many revisions later, it’s still a monster that no normal developer wants to touch. For those that do, best of luck to you. You’re obviously MUCH more intelligent than someone like me.

At one point, the company that I worked for even had a project where the only reason to use Magento was to store user information. Everything was ignored, even the templating system. Everything was bootstrapped to render out custom template files outside of the working template folders. Talk about spreading butter with a chainsaw.

Basically, I’m never happy working in an environment where we start out with a framework, and in months we’re using custom code to run everything. Why not start fresh? Tabula Rasa! Clean slate. So much more control over what you do, and so much you can customize from the beginning.

So much abstraction in the programming world. I left the world of Physics because I wanted less abstraction and more reality based practical involvement and construction. Abstract thinking is just that. Abstract. It has its place in the world of physics and math. Engineering just doesn’t function on abstract ideas. You have to be precise and realistic, otherwise your building collapses.

I guess some programmers just like to be challenged for the sake of being challenged. Not this guy. I like keeping my brain functioning beyond the age of 50.

Let’s keep it real, folks!

  • mint

    i agree. magento is a piece of crap. been fighting with it the whole day. just changing a template or a piece of text is a horror.

  • Carlos Romero

    Totally agree. Used it once and promised myself never ever to use it again…

  • I am currently using it for a client. I gave the green light because everyone here is using magento and it had all the plugins needed to start working on the project. I was an experienced developer in Woocomerce in wordpress and already made quite a few stores but OH BOY what a pain in the ass this whole experience had become..

    Not only do I spends huge ammounts of time trying to actually FIND the freaking option to just WRITE on the main page, I had to go ahead and FIX a custom template (usd100) that my client paid because half the options are not working as they should and then we have the plugins, they have to be manually installed (the paid ones at least) and there is no way of turning back, unless you manually delete file after file if you don’t want it because, basically, there is no uninstaller process whatsoever and let’s not talk about the dashboard, it is the biggest worthless piece of crap I ever saw in my life, there is not a single option that has the slightest resemblance to an intuitive GUI.

    Theme options inside the CMS menu, but also on the configuration manager, but also inside the Theme own menu and also on the Layout and if you want to modify the homepage you have to go through at least 4 iterations of different menues to link all the options together.

    HOMEPAGE should be HOMEPAGE for christ sake, let’s put a simple HOMEPAGE button there and be done with it ! but here it goes, everything is like that in Magento.

    The System menu does not open anything but a bunch of options and then inside the System menu you have Configuration which by ITSELF opens up a bunch of options that are part of all the other options which throuws you in a loop and then you have the custom “This configuration -> this store” on the upper front to remind you that this is your won HELL you’re working with and then you have all the options sticked together of all the plugins you installed which, of course ! will be all together with the actual configuration options, which are replicated in different menues through magento..

    This is all because, of course ! magento developers WANTS to make life difficult for all the people using the dashboard because, NO COMMON human being will ever think such a convoluted piece of crap of a dashboard unless he/she has some serious issues in life, like WASTING VALUABLE TIME trying to find out where is each option !

    I hate it, i hate it with all my being and I really hope to finish this project to not ever touch it again.

    • George

      The guy that wrote it originally, wrote it in two weeks. It sure seems like it. Now everything makes sense, right? He was under a lot of pressure to make the most flexible system ever. He sure succeeded in doing so, but look at the expense. Back in 2010, there was a rumor that went around that Magento 2.0 would come out, but it never did. It was supposed to be a complete revamp. Instead, they ended up focusing on the mobile crap that didn’t really get much traction. Oh well, you live, you learn, and it’s funny how in demand these magento devs are. Even though I have “No Magento” on my linked in profile, I still get calls about Magento projects. I’m like, WTF? Can’t you read? I even had a recruiter ask me to take that line off. Haha! They dug their own holes. Now lie in them!

      • It’s an absolute nightmare. They made sure people using it WILL suffer. I developed my first store hardly knowing anything about wordpress and managed to sell more than usd1000 on virtual items with woocomerce, 2 years later i’m somewhat an expert in wordpress, I am the sysadmin of my own hosting company and managed to build the entire structure, from licensing to VPS, webshoting, cpanel, interworx and all in-between and I can safely say, with my hand in my heart that magento is about the harderst thing I ever saw in my life, it is so convoluted that I STILL prefer to make all my hosting company all over again than spending 1 more minute with it.

        Im at a crossroads now, telling my customer that I will back off from magento and probably ruining this bussiness or finish this and turning myself crazy in the process…

        • 👑 Ionstorm 👑

          Best thing to do is just put all work you get for Magento to Upwork and never directly deal with it again. That’s what I have ended up doing.

      • Ionstorm

        If he wrote that in two weeks he must have been high on drugs or some shit, there’s so many files he must have worn 100 keyboards out in that time.

  • Paul Owen

    Why is this package popular? Seems like a lot of these e-commerce packages are like this. They are too complex and don’t really do much of what a real established company actually needs to sell online.

  • Chris Donalds

    I tend to agree with the comments posted here. Magento is a beast to operate and modify — there is no doubt with that! But I am not talking only from the point-of-view of a website developer or module programmer. My background is in the creating of CMS systems like WordPress, Joomla and, yes, Magento.

    On a scale, WordPress is possibly the easiest to customize, reprogram, and extend. Next is Joomla, then Drupal. However, there is a huge gap before we reach Magento! While Magento might pride itself with being a very popular and competent eCommmerce solution, its robustness is greatly outweighed by several key deficiencies:

    – Its codebase is extremely difficult to master. Even ZF, CF and PHP-OOP experts have trouble getting the hang of its obtuse logic flow

    – Its folder hierarchy was organized with a blender! Unlike WordPress and Drupal’s straight-forward approach to installing plugins/modules (either in UI or directly via FTP to a single folder), try uploading Magento extensions using FTP! The folder arrangement weaves in and out of the app, var, skin, etc. folders. Better yet, try removing an extension using only FTP! Yes, although not recommended, it is possible with WordPress or Drupal.

    – Code is buggy and not properly unit-tested. For instance, good programming practise dictates that all input parameters to a module should be checked and validated BEFORE use. We all recognize PHP functions like isset(), function_exists(), and empty(). I cannot count the number of times I have seen parameters being used without validation IN core functions. It’s one thing to find poor programming in extensions or themes, but that is inexcusable for the core system.

    – What happened to proper and extensive documentation? I see several comments here that address the lack of documentation in both the file code and on the Wiki/help sites. I agree that Varien should spend some of the thousands of dollars it receives from clients hiring people to solely write documentation!

    – The CMS mechanism is ugly and cumbersome! Again, we’ve all experienced the fluid ease that is WordPress (BTW I am not even a true WordPress lover myself). I have read several blogs out there that tell people to upload files directly via FTP and modify some esoteric PHP code file just to display a bit out output. Rediculous! Additional coding should only be needed to add or modify system functionality not give clients a new field. While Magento excels at eCommerce it sorely lacks at CMS — it’s almost better to write the HTML old school directly than hunt around for the widget or module that deals with output

    – It bastardizes the MVC structure. I have written code in CF. Better yet I have built two MVC platforms from scratch, mostly to see if I can produce a more user-friendly system for site owners, site developers, plugin/theme contributors, and core architects. Magento’s typical “views” mix in controller and model code.

    – XML files are not the easiest way to extend a system. A proper, tight, robust extension architecture is the easiest way to extend a system.

    So in a nutshell, run away from Magento like the plague. Try PrestShop, osCommerce, even Drupal Commerce or WordPress’ WooCommerce. As a site developer, before purchasing a solution, compare required features against implementation and long-term

    costs!

  • I would disagree that Magento is a rubbish platform, its packed full of useful and in depth features and functionality, but granted it can be hard to pick up and start developing with, especially pre 1.9 and granted the import / export does suck. Also it is a beast, so is not really a solution for retailers with a small budget in terms of hosting platform, or developers who dont follow the templating guidelines.

  • jsmith

    Fully agree with you men. I stumped upon your page from Google because i feel so depress with Megento. It has been 5 years now I am fucking done on this. fuck this crap. peace !!

  • I agree with every word! Maybe the idea behind Magento is good, but the implementation is so bad, that sometimes my eyes are bleeding.

    Common design? There aren’t recognizeable and repeatable patterns, that developers may use – diferrent parts written in completely different ways. You will spending your time finding real code in bunches of abstractions and thinking “Where should I put my own code?”

    Flexibility? Magento is not flexible at all, it just pretending to be flexible. All flexibility often is in “rewrite” feature, when you can just rewrite core code with your own.

    Buggy? Of course! It looks like developers didn’t have a good IDE, that could point them at really terrible and obvoius mistakes, such as using undefined variables.

    Documentation? No, never heard. But hey – internet offers thousands of different approaches to solve Magento issues and questions. Please choose any.

    By the way, most extensions have terrible quality too, and I think it is all about spaghetti design – not every developer can figure out how to make things right. Is there any “right” way at all? Who knows.

  • Tets Tets

    Man, im working right now in a Magento for a costumer, and oooooh boy, what a crappy experience when you meet with a 3+ Years magento developed in Israel. They even opened their php with just “<?". Im really suffering, lol.

  • Magento is based on symphony and zend framework and it’s the best tool for large ecommerce sites.But definitely it’s tough for programmers.

  • CalDub

    Totally disagree with this conclusion. Magento may have a steep learning curve, but you wont find a better open source website management option which will function and have the flexibility that you will need to create the most professional and future ready website. I have tried them all, and time and time again i felt ripped off as i compare my limitations when moving over from Magento. Some people may like to pay more for less in a simplified fashion, but i dont. This author had troubles converting from Magento Enterprise… the very expensive paid option which gives you a team of specialists to complete everything and keep it running, to its free open source community edition, and complains about hardships? No duh! Multimillion dollar companies invest into the enterprise edition, and the free community edition is the SAME from the front-end, but VERY different on the backend. From what i understand its designed to move from community to enterprise very well, but not the other way around.

  • Ionstorm

    There are some love and hates I have with magento. The few loves are annihilated by the constant string of shit this platform gives you.

    I’m writing about 2.1 now, I tried v1 years ago and cried and called it a dogshit mess. A client wanted a stable ecommerce solution that was industry standard (how the fuck did this become standard?) anyway I sold them a magento 2 store.

    The worst fucking mistake of my life. Getting multisite to work was a walk in the park (yet oddly harder than expected. Your so smart magento but you can’t edit a fucking htaccess file yourself?).

    Homepage, welcome to your new store… Might as well say, welcome to hell, good luck adding widgets and useful stuff to the home page because doing a Rubix cube with one hand whilst blind folded and spanking it with the other hand on Pornhub would be easier. It’s terrible. There’s not even a module to simply add latest products… Except the only default is to add new products and all those products need to be set with a time stamp before they’ll show. Fucking brilliant.

    Cron, it’s the first time I’ve had to setup a cron job for an ecommerce solution, that’s off the shelf. Best thing is, you add a few products and the thing stops working so new products don’t show and you’re left wondering what the fuck is going on, pissing about with caches. Custom cron is now running every minute to force update of product count during dev.

    The code/script. There’s just far too many files on magento. Way too many files, it’s actually fucking retarded how many files there are, and so is the folder structure. It takes a month to upload, not because it’s like 300mb, no that’s fine, it’s then thousands of files.

    The whole things a cluster fuck of shit. Honestly anyway thinking they’re a professional and they should no this shit inside out, don’t even go there. It’s not even easy to use.

    Not once has this developer stopped and looked at other ecommerce options out there, products such as opencart have their annoyances – but magento is next level bad.

    It’s a bloated pile of shit that needs stripping back, potentially two or three options.

    Fast, Light weight, user friendly, reliable, low maintenance… These are all things Magento 2 is not.

    Avoid it, because quite frankly it’s got more aids than Africa.

  • I almost lost a customer after I installed the SUPEE -‘security’ patches. The shit hit the fan. Errors as far as my eyes can see. Luckely my backup system saved me. Never touched Magento again. Iam developing now my own lightweight webshop. No stress anymore. fuckin hell