Prestashop is a real piece of snit. A source of endless frustration. The root of all evil.
It is, too, a good platform for non-technical people to set up and manage a fully-featured, customizable online shop.
But from a developer perspective, it sucks. It sucks so much.
Recently, we had to work with Prestashop for a couple of clients that required it, and we have gotten pretty familiar with it. We have discovered a huge market, but, as software engineers, we found Prestashop so developer unfriendly and frustrating that I’ve decided to create a series of blog posts (it might be just 1, 2, or 10) to help other devs go through the initial stages of that ungodly steep learning curve. But this one is just an introductory rant.
For some context: we come from a web development background. Web applications, in its vast majority. Ruby on Rails, Python Django, Angular… all those things. We’ve been messing around with WordPress and PHP for years, too, but nothing too serious: just setting up websites and tweaking themes, no plugin development or similar stuff.
A web development framework like Ruby on Rails is tough. It should be. It allows you to do a lot of different things, so it should be difficult to master.
But Prestashop has exactly 0 reasons to be hundreds of times more complicated than WordPress.
Well, it’s not even that it is SO difficult. It is more the things that they don’t tell you and you have to discover by chance. Such a huge loss of time.
Let me list what are, for me, the biggest 10 reasons Prestashop sucks:
- Where are the docs? No, seriously, where is the documentation? I’ve seen some random pages here and there that at best are poorly written, little descriptive, misleading or just outdated. How can I understand how to tweak things if there is no docs? I mean, this is good docs (Angular). Just copy that structure, Prestashop.
- Semver. Semantic versioning. That is: version 2.0 should be a big quality leap apart from 1.0; meanwhile version 1.1 and 1.2 should be rather identical. Nothing that I’ve seen in Prestashop. I feel like version 1.4 and, idk, version 1.6 are decades apart and are even completely different systems. I feel like there are even breaking changes from 1.X.y to 1.X.z.
- The community. Or the lack of it. Or the existence of it, but the low quality of the support, content and forum answers. It’s like Prestashop hasn’t gained any traction at all in StackOverflow over its more than 10 years of existence. There are official forums, but they suck to a degree I can’t even explain. I think I’ve never found an answer to a question while browsing the official forums. Plus, most of the devs seem to be either French or from Eastern Europe, and a big part of the discussion is either not in English or in a really poorly written English. I mean, I’m not a native speaker either, but I try my best to communicate with other technical peers in what I consider to be the de-facto language for computer science.
- Non-technical oriented over technical oriented. This has to do with the community, but it’s more like a business positioning strategy to my opinion. Most of Prestashop content is non-technical. Most questions in forums are from “tech illiterate” or noobs hitting themselves in the eye. We’ve all been through that, but the best languages or frameworks allow both space for non-techies and for techies. It’s like Prestashop consciously decided not to allow room for techies nor to promote technical discussions and development in any way.
- The overall engineering. I might lack the experience to understand the details of such a huge product like Prestashop, but I’d bet money it’s not engineered well. Just compare the WordPress database structure and the Prestashop database structure. I feel like it shouldn’t be so freaking complicated. At least, there are definitely expendable DB tables in Prestashop.
- The counter-intuitiveness. This I have no doubts about: Prestashop is definitely counter-intuitive. One simply does not know how to move things around or how to change some copy text. It might be in the preferences section of a plugin, it might be related to anchoring some module to some specific part of the site, it might be directly hardcoded, it might be in the database, but in a specific language, it might be a static block you can change somewhere…
- The marketplace. Prestashop business model is based, like many other middleware, in a marketplace you can buy plugins and stuff from. Head over to the Ionic Marketplace, that is a good marketplace. The content their users create and sell brings a huge amount of value at reasonable prices. Now go check out the Prestashop marketplace. A plugin for complying with the EU cookies law that adds just a small banner at the bottom of your site that can be written in, idk, 50 lines of code sells for $40. That provides 0 value to the user. That is overpriced. That is not the type of quality I expect from a marketplace. It is just disappointing, even though I fully understand there is a huge market for it (non-techies) and that opens an enormous whitespace for developers to produce quality plugins for free or at reduced prices and position themselves as Prestashop references. I guess there are simply not a big number of great Prestashop developers out there. No wonder why not.
- Slowness. Prestashop is slow and sloppy. I heard it might be Doctrine-related, I haven’t had a chance to get into it though. But it is slooooooow. It takes forever for things to load/reload and get processed. And it’s cache system does not help at all – at least not when developing.
- Error handling and error information displaying. This is simply outrageous. By default, no errors at all will display, and you will be stuck with a plain “500 Server error” page. Once you discover there is a line somewhere in the code you can change to activate what they call “debug mode”, errors will start popping out. But most of the time, these contain no valuable information at all. Expect things like “The server returned an unexpected error” and prepare to dig into Apache logs, SQL queries and network communications to get a clue about what’s happening.
- The barrier to entry. Not in an economic/business way, more in terms of the learning curve. It is just needlessly hard to set up a Prestashop environment and start working at a productive pace.
My guess? Prestashop was a student project that got out of hand. An unexperienced undergrad student creates a glitchy but functional product that solves a real problem and the lack of better alternatives at the time makes it gain traction at a speed they couldn’t handle properly. Now, 10 years later, the monster is so big no one wants to attack it.
So, until something better (and free) comes up, we are left with a ton of crappy sites to mantain and clients that want a customizable, powerful site (don’t get me wrong, I think Prestashop is extremely powerful and featured). If you too have to deal with these situations, I hope these posts will be useful to you.
Photo: Hiep Nguyen