Another Trip Through the Inferno: Magento

DISCLAIMER: This is a follow-up post to my previous entry about Magento from September 2013. Again, this is simply an opinion piece and not meant to speak definitely about the platform, but only share this user’s thoughts and impressions about the Magento eCommerce platform.

Fuck you Magento. Fuck you for doing nothing at all.

Well then, now that I got that out of my system and cleared the air a little bit, where to begin?

Two and a half years ago, I had the misfortune to be working on a Magento-based eCommerce site. It was supposed to be a quick and dirty job, one week at most, where we simply had to reimport a site from one domain to another, add a few products, and finish off a tiny checklist to launch.

Oh how foolish and young we were.

One week with Magento was like one month in hell. A few of the fun and unexpected migraines we encountered were:

-We imputed more than 600 products by hand because the spreadsheet import option flat out refused to work (even though we exported it from the exact same site).
-We had to redesign and repeat virtually every single line of code we changed because, again, nothing managed to be imported.
-We discovered that finding missing images was one of the biggest nightmares this side of hell (hey Magento, still waiting for a media manager like WordPress has had this whole time).
-Going more than double our estimated total hours in the first week alone. – and then trying to renegotiate when we knew things were going downhill.
-What it feels like to waste an entire month of our lives working with a system that made us hate said lives.
-Realizing that I never want to do any eCommerce webwork, design or development again (I haven’t, but I have thankfully found it in my to still write about commerce platforms and work on non-eCommerce sites).

Essentially, nothing went according to plan; not because we had a shitty plan, but because Magento public edition (the “free”, open-source version our client was running) was simply a big bag of trash. A big, hellish bag of trash.

At the end of the day, the most unexpected and simultaneously comforting / discomforting part of the whole project was realizing we’re not alone. There are dozens of horror stories related to Magento. Many of them shared right here on my blog.

You know it’s a hot day in hell when people are still running into many of the same agony inducing problems with Magento I railed about years ago.

The big question, therefore, is: why the hell is this still going on? Haven’t the designers at Magento realized their system (though powerful) is a bug-ridden developmental hellhole?

An aside: funny how the word “hell” keeps coming to mind, keeps finding it’s way on my screen as I write this. If only myself and the countless others who’ve used this system had some sort of Virgil figure to lead us safely through the ever burning circles of Magento. I doubt such a person exists, or would want to exist.

So where does that leave us? What do we do when a client asks us if we “do Magento”? Do we say yes? Do we bite the bullet and make a few bucks at the expense of our sanity? I suppose the answer for far too many of us has been “okay, why not. One last time”.

But there is no last time with Magento. It lingers and it haunts us.

The only real hope is working with a different platform. But where do we go from here? Well, I don’t have all the answers, but I have a few honest-to-God better options for eCommerce that I’ve learned from experience (and don’t worry, I’m not getting kickbacks from any of these folks listed below):

WooCommerce
Woo is easy to use, if basic and kind of ugly, but my goodness is it friendlier than Magento. The big downside here is that if you hate working with WordPress and its damn loop, then you should probably stay away!

But if you just want something quick, a little dirty, and so easy that even your client can even add the products themselves, Woo is a good starting choice. It won’t do everything (or even most things), but it’s free, and even the paid extensions aren’t too pricey.

Spree Commerce
So I’m a bit biased when it comes to Spree (I did some contract work for them in the past, and am good friends with some people at the company), but I honestly wouldn’t be listing them here if I didn’t know like the system they put out.

Based on Ruby on Rails, Spree is is the friendly Border Collie to Magento’s rabid pitbull of a PhP nightmare. It’s truly open source, simpler and was even designed by programmers with users in mind (unheard of!).

What that boils down to is that Spree still takes work to get going but it doesn’t actively try to kill whoever is working on it.

Other Options
Lastly, if you never want to program again and just want to set up an eCommerce site that your client can use without any training, go for a hosted solution like Shopify or Payeezy. You can’t do a hell of a lot of advanced things with them, but if all your client wants is a simple store (as most of them tend to want), take the easy route for once.

F***You Magento

DISCLAIMER: This is only the humble opinion of a single Magento user, and is intended as an opinion piece and not meant to be taken as an authoritative review of the platform. Maybe someone out there has had a better experience with the platform than I have. Instead, adult profanities follow. Lots of them.

Hey everyone! How are ya’ll doing on this lovely afternoon?

Fine and dandy? That’s good.

Guess what I spent most of a month working on?

A Magento site!

How was it you ask? Well…

FUCK YOU Magento!

You’re the least user-friendly, arrogant piece-of-shit web platform I have ever had the displeasure of using. You’ve caused me countless hours of migraine inducing, head-scratching, what the fuck moments that I had no intention, or expectation, of having to contend with. Because of your single-handed inept, horseshit way of magically generating errors out of thin air, I’ve not only seriously considered, but already taken steps to get out of the web design business altogether. Go fuck yourself, you piece of shit platform! Why, oh why, didn’t I sign up for some other e-com platform instead?

WHYYYYYY?!

That wasn’t me just now. That was some other angry person.

Phew, now that that’s out of the way, where the gosh-darned heck do I actually begin to describe the nightmare using this platform has become for myself and everyone else who has ever touched it?

For those of you out of the know, Magento is the world’s largest, most popular e-commerce web platform.

Right out of the box, this system pretends that it’s the bees-knees of e-commerce. It’s big, it’s got features, it’s got a community and it’s got a price-tag.

Everything about it reeks of confidence to the point of big corporation arrogance; but if a platform has been around for a decade with some of the biggest names in commerce using it, you would expect a smaller site might be able to reap the benefits that only a robust platform like Magento could offer?

Wrong motherfucker! AMBUSH!

I’m sure there are good things about Magento, somewhere, hidden in that deep, dark pit of despair, but in reality whatever good this platform can offer is in every way overshadowed by its error-ready inherently broken core architecture.

It’s honestly as if every single piece of this behemoth was built from the ground up using psycho-logic and with the sole intention of causing psychological trauma to the poor saps who end up using it for development.

Exhibit A – The Magento import and export functions are dogshit.

In a normal world, when you export and then import something from the same damn site (like taking socks out of a drawer and then putting them back in) you expect them to work / be accepted / import (you expect the mutherfucking socks to fit in the mutherfucking drawer!).

With Magento, I exported the entire catalogue from our site, and then attempted to re-import it back to the same site.

The only difference was that we moved the domain; every single other facet, from attributes, to categories, to currencies, was the exact same.

Then, when I imported them, lo and behold, over 15 000 errors! WTF?!

After checking the spreadsheet, it turns out that it was indeed filled with errors – errors that Magento arbitrarily decided to fill it with!

Why would a system’s own built-in import and export function fuck itself like that? It’s like after unloading a bag of fresh groceries in the fridge, closing the fridge, and then opening it to find a gaggle of geese fly out at high speeds type of insanity.

The best part? After I fixed all 15,000 errors BY HAND, uploaded them and got the perfect green checkmark of “everything works”… nothing actually worked!

In the back end, everything was there, fine and looking good. Products were active, on the right site, in the right categories EXCEPT they weren’t appearing on the front end.

Not. One. Of. Them.

After a good 10 hours of troubleshooting, it turns out that 99% of the products magically didn’t work, and would never work. The other 1% could, but they got imported with the “enabled” switch turned to “disabled” for some mysterious reason.

I tried switching the others to disabled in the hope that they would work, but no dice.

The only way they worked was to copy paste each individual bit of info from that spreadsheet into the product creator… oh, a good couple thousand times.

Exhibit B – In Magento, Errors Appear and then Magically Disappear.

I went into the theme template and disabled every sidebar widget save for a recently viewed products list. I tested it, and it worked… but that was yesterday.

Today, after having added a few more pages to the CMS, updated the store logo and added some images to the home page, etc. (standard stuff) I went to look over with the products and happened to notice the recent product list wasn’t appearing.

I go to the back end, check, and it’s enabled? WTF?

I enable other widgets and they all work, but not the one goddamn widget I want!? FUUUUUU!

Guess I won’t be using that goddamn widget this time around!

Exhibit C – Can I change the Store Logo in Magento Anymore? Anyone?

From the back-end, the only way to upload a media file is through loading up an individual page editor in the CMS section and pretending to insert a file but only going so far as browsing.

Once there, I dumped the logo file into the EXACT SAME directory as the default placeholder and saved. I went to the theme settings, changed the name of the file on the path and then bingo it… wait? WTF!? It’s still the old logo?!

To cut that piece of shit story short, it turns out changing the filepath does nothing – the only way to change the logo was to manually overwrite the placeholder file with the new logo and then go.

Pro-tip: changing the file name in the core database doesn’t even work – other magical nonsense happens… I don’t recommend you try it, ever.

Hmm why not just have an image uploader built into the settings where I can simply upload my logo file and the system takes care of it?

You know… like the GODDAMN FAVICON has?!

But no, that would make sense, and Magento isn’t a fan of having to explain itself.

Final Remarks about using Magento?

As far as I can tell, the only way to make Magento inherently work, to avoid countless migraines that seriously make you question the possible existence of the devil, is to never, EVER, make any changes to any sort of the architecture, template or system, no matter how modest.

Buy a template, and don’t even so much as change the name of one of the pages. If you so much as do, then be prepared, well prepared, to enter into a realm of Lovecraftian madness beyond your deepest, darkest, watery dreams of chaos.

Fuck you Magento, I hate you.

FUN FACT: Two and a half years later and Magento still sucks! I’ve written a follow-up piece to commemorate the occasion. Be sure to read about Another Trip Through the Inferno: Magento.

This post was slightly updated in 2014, 2016, and 2019.