Why you should never use opencart

Recently I had the opportunity to work on a decent sized e-commerce project based on OpenCart. I haven’t used it before but I had heard its a very simple and easy to use. So the following is just a quick overview of all the fundamental flaws and issues with OpenCart and why you should NEVER use it as a platform of choice for your projects, unless you want constant headaches, ugly code and incredible amount of code repetition.

The obvious

So lets start with the obvious… A quick peak at the installation sql schema reveals something mind-boggling. The engine of choice for ALL tables, including orders is MyIsam, which first of all shouldn’t even be a consideration in any MySql 5+ setup really, especially for web purposes and second and more important maybe IT DOEST SUPPORT TRANSACTIONS. Simple logic dictates that transactions are a fundamental part of e-commerce, but apparently the team behind OpenCart decided thats not that case!? I am already stunned but lets not stop here… MyIsam doesn’t support foreign keys either, so all integrity and constraint checks are done with PHP, nasty…

Code Repetition

The system is FULL of code like the following:

$this->data['heading_title'] = $this->language->get('heading_title');
$this->data['text_my_account'] = $this->language->get('text_my_account');
$this->data['text_my_orders'] = $this->language->get('text_my_orders');
$this->data['text_my_newsletter'] = $this->language->get('text_my_newsletter');
$this->data['text_edit'] = $this->language->get('text_edit');
$this->data['text_password'] = $this->language->get('text_password');
$this->data['text_address'] = $this->language->get('text_address');
$this->data['text_wishlist'] = $this->language->get('text_wishlist');
$this->data['text_order'] = $this->language->get('text_order');
$this->data['text_download'] = $this->language->get('text_download');
$this->data['text_reward'] = $this->language->get('text_reward');
$this->data['text_return'] = $this->language->get('text_return');
$this->data['text_transaction'] = $this->language->get('text_transaction');
$this->data['text_newsletter'] = $this->language->get('text_newsletter');

So, we load the language file and manually map ALL the entries from the simple array that each language file is, to a new array with the exact same key as the language string. That usually makes a 10 lines controller into 50 or 60 lines one… Some heavier controllers have in excess of 150 lines just to map the languages !? Then we move on to the form handling. Well there isn’t a form handling framework to speak of, inputs are handled like so:

if (isset($this->request->post['model'])) {
$this->data['model'] = $this->request->post['model'];
} elseif (!empty($product_info)) {
$this->data['model'] = $product_info['model'];
} else {
$this->data['model'] = '';

if (isset($this->request->post['sku'])) {
$this->data['sku'] = $this->request->post['sku'];
} elseif (!empty($product_info)) {
$this->data['sku'] = $product_info['sku'];
} else {
$this->data['sku'] = '';

if (isset($this->request->post['upc'])) {
$this->data['upc'] = $this->request->post['upc'];
} elseif (!empty($product_info)) {
$this->data['upc'] = $product_info['upc'];
} else {
$this->data['upc'] = '';

if (isset($this->request->post['ean'])) {
$this->data['ean'] = $this->request->post['ean'];
} elseif (!empty($product_info)) {
$this->data['ean'] = $product_info['ean'];
} else {
$this->data['ean'] = '';

And again for a form with 50 fields we have 50 blocks like the following. Of course that code can be replaced with 3 lines that do the same, something like:

foreach($this->request->post as $k => $v){
if (!empty($this->request->post[$k])) {
$this->data[$k] = $this->request->post[$k];

Because there is no validation framework, each Controller invokes a validate method for each entity it processes, where validation is done with good old PHP functions manually for every form field. I mention that last, since its kinda ok for a PHP app from 10 years ago, but nowadays it doesn’t make sense.


I already explained the usage of MyIsam, lack of transactions and lack of foreign keys but lets elaborate on the database a bit. Because of all the previous items, each controller has a validate method where different constraints are checked and validated (instead of using the MySQL engine to do that). Same goes for the deleting of entities, so intead of having Cascading foreign keys, we manually first find all related entries and then delete them.

The madness doesn’t end there. The query to get an actual product is fairly heavy, joining 8 or 9 tables to gather all the product info. What boggles the mind is that this query is called in multiple locations inside of loops with no caching whatsoever. Same goes for the getProducts function which represents the heaviest query in the entire system. No sign of caching…

In the entire system there is almost no caching anywhere, what’s funnier is that there is caching in the backend at certain places but not in the frontend. For the places where there is cache, the default and only supported one out of the box is file, which if we have proper caching on the mysql server is probably even slower, to open ,read the file and deserialize the result. The list goes on and on and on, but the bottom line is that is a mess.


Templates you might think are good old PHP so what could go wrong, eh? Wrong… The way the system works is that it treats every single content block on a page as a module, so in order to add something, even as simple as


well, you need to create a module. So creating a module consists of adding a backend module(necessary step), which involves copying some dummy existing module, refactoring the names, changing all the 50 language lines and so on, then creating the frontend view and controller for it, and voilaaa 2 hours later you can render something. If simplicity is its core selling point, thats everything but simple (or correct me its simple but so tedious and time consuming you can call it complex).

Seo URLs

Again mind boggling. Take a look at this snippet(SEO url handler):

foreach ($parts as $part) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");

if ($query->num_rows) {
$url = explode('=', $query->row['query']);

if ($url[0] == 'product_id') {
$this->request->get['product_id'] = $url[1];

if ($url[0] == 'category_id') {
if (!isset($this->request->get['path'])) {
$this->request->get['path'] = $url[1];
} else {
$this->request->get['path'] .= '_' . $url[1];

if ($url[0] == 'manufacturer_id') {
$this->request->get['manufacturer_id'] = $url[1];

if ($url[0] == 'information_id') {
$this->request->get['information_id'] = $url[1];
} else {
$this->request->get['route'] = 'error/not_found';

The url_alias mapping table contains two field entiti_id=id and keyword for that entity id. What happens if you have a manufacturer and a category with the same name one might ask… Well its up to the gods of OpenCart to decide which one you will get back. Of course they could have prefixed categories with category/ manufacturers with manufacturer/ and so forth and added an entity type to the rewrite table, but why bother. You cannot add your own parsing and rewriting logic if you want to extend the system (thats due to architectural issues which we will get to soon), so that means you go in that if statement and add your logic(making sure to add something to prevent the same key linking to different entities lol. The rewrite method is the same thing essentially. By far the worst routing system ever.


I havent seen any major security issues yet, everything is filtered pretty well, even though in a really stupid and repetitive way as everything else in the system, but this probably needs some looking into: http://www.opencart.com/index.php?route=common/home/__construct


Let my start by pointing out that this is not an OOP software. It uses PHP OOP syntax but the way things are done is completely procedural. There is no abstraction, no separation of concerns, methods call eachother all over the place in some cases such as the tax and shipping system passing reference of one variable through 10 different tax classes with no clarity at all. That is not object oriented programming or a properly structured application. Of course you cannot extend any of the core services, you have to modify the core itself.

There is a frontend and admin apps which share the same core, the same functionality, same entities, but yet they are 2 separate code bases, repeating eachother almost 1 for 1. Any change in an admin Model should be manually done in a frontend Model as well…again retarted way of doing it. So because of the poor architecture, the guys decided to come up with this thing:


Don’t ever use that please, after installing a couple of modules, you end up working with more xml containing PHP, than actually PHP code. Biggest mess ever.


That was my experience with OpenCart and I shall say by far the worst programming effort ever. Its a system that somehow works, barely hanging in the balance with stuff going all over the place. I tough its good to share it with you, so if you are doing some research about what to base you next e-commerce project off of, you should’t even consider OpenCart. Just FYI, extensions are not much better either, they are as a big as a mess as the core itself. If you are doing a serious project go with Magento or a good Java alternative would be BroadLeaf. If you need something with a shorter learning curve, try Prestashop.


After posting this article it has gained some popularity and people have expressed both agreement and disagreement with my views which of course is fine. However most of the feedback I received in the comments from OC supporters was limited to trash talk, personal offences, absolutely technically flawed ideas (like explanations on how code repetition is OK if the code is “simple”) and all other sorts of nonsense ideas (envy of how much the OC author makes, etc, etc), but very little if any real answers to my points were provided (including from the OC author himself, who mostly resorted to trash talk). I would advice people who read the article to quickly gaze over the comments too, so that way they will gain a better idea of not only the software flaws of OC, but the kind of vibe and technical skill level that goes around in the OC community…

  • Qphoria

    Just found this article and figured I’d say my piece….

    You are of course entitled to your opinion about any software, but this article is riddled with a mix of inaccuracies and overzealous slamming of some relatively common coding methods that you claim to “have never seen before”. This leads me to believe your exposure to the world is a rather new one (read: know-it-all youngster).

    First off, the database using MyISAM.. You should realize that OpenCart has been around for about 8+ years now. Back when it was first started, innodb was hardly even heard of. Everyone used myisam and still many do today. zencart, oscommerce, even WordPress.. the very blog you are using uses MyISAM (http://markmaunder.com/2011/06/23/wordpress-myisam-vs-innodb-mysql/)

    It always humors me when I read about how people write about myisam “Oh the horror” or “I cannot believe it” or “this is an outrage” as if using MyISAM was the equivalent of burning down a church. This is the usual fresh-out-of-college points of view where people look back and say “why would you ever using analog electronics when digital is so much better?!”. Congrats on your youth and new found programming knowledge. But your first lesson in life is that not everything is magically going to update to the latest bleeding edge technology overnight because you read about it once.

    You might have noticed that HTML5 has been around for years but only starting to finally take hold with most major websites. Even Amazon.com is still HTML 4.01… “Oh the humanity!!”.. I’m sure they are losing sleep while counting their billions.

    MyISAM is plenty popular and still very valid in use. Sure it is true that other database methods: PDO, innodb, etc could improve things in the long run but it isn’t something that happens overnight. You don’t just upheave a community of mods and code examples and invalidate them overnight with a new transaction engine. These things must be finessed in. InnoDB also cannot use fulltext search so you have to find alternatives to things like this. It isn’t so black and white.

    Code Repetition:
    I’ll be the first to admit I dislike the reuse of code. I personally added loops for most of these and an automatic language includer to avoid needing to write code like this. However, opencart is also a learning cart and is aimed at newer programmers. Daniel preferred keeping the code this way as it adds a sense of reference for understanding with minimal performance hit. It’s not ideal for the advanced programmer, but great for newbies. You can still choose to code the other way in your own addons and extensions. The core code should be viewed as a learning tool. Again, there may be room to improve, but nobody losing business over it.

    Well your understanding of this section is just plain wrong so I can’t even comment on this. I think you are referring to “modules” which you are right.. there are 6 files for a module to satisfy the framework design… but modules generally do more than simply display one line. If you look at an actual module like “latest” then you’ll see reasoning for all the files. First off it is an MVC design.. so MVC means 3 separate files. Since there is an admin and a catalog piece, that means 3 separate files per side, hence the 6 files. You don’t need 50 language files.. in fact OpenCart has language fallback that allows the module to show in English until you find time to translate the module to your own language. The use of language files is nothing new in any platform. You can’t expect every mod to include 200 languages when most don’t need more than 1 to 3. As far as needing 6 files. One of the features of OpenCart is the ability to store the “admin” folder on a separate server than the “catalog” folder. This is another great but underrated security feature. So while it might make sense to share the “controller” file for both catalog and admin pieces, it is meant to be kept separate. Sometimes you gotta do what’s best in the long haul and security is more important than a few extra files.

    Agreed. This was done poorly. It was actually done much better in old 0.x versions of OpenCart but changed in later versions and I personally agree that it should be done better. The hardcoding of the types is the more annoying part to me because as that code shows, only the 4 major item types can be SEO, the rest are just left without the ability to add a custom keyword. But this has been handled by over 100 different 3rd party mods already and there are ample options to solve this. So while it could be better, it isn’t like there aren’t possibilities, and many of them free.

    This is the first and foremost the main focus of OpenCart. You won’t find any major security holes because the coding is done very securely. Even all the database joining and stuff is done meticulously to properly clean and filter malicious calls. There hasn’t be a real threat since back in the 1.4.7 build 2 years ago when the admin session was added to the url for enhanced security, preventing anyone from tricking you into running commands on the admin side while you were logged in. Before that was a dompdf hole which was caused by using the 3rd party dompdf library and not directly related to OpenCart.

    This is where you get a bit full of yourself with small things like reuse of code for clarity purposes and the use of the more popular MyISAM being taken as a violent act instead of understanding it as a viable alternative. To say it is the “worst” only shows that you are wet behind the ears and have seen very little. You forget that OpenCart is the fastest rising open source cart in history and its security as well as its ease of use are what make it so promising and popular. There are always bugs to be fixed and features to be added with ALL software… even with big names like Microsoft and Apple. But these do not happen overnight.. they take years.

    Your naivety and ignorance shine through on this article more than the alleged faults of OpenCart. It reeks of spite against the opencart coders and general misunderstanding instead of being a credible source of argument or critique.

    • ferisoft

      Well you say it yourself:
      “However, opencart is also a learning cart and is aimed at newer programmers.”

      and I think that is the key – it is not a serious piece of software to run critical application such as an ecommerce one on. I actually used it for a very big store since I had to so I had to customize most of it for the exact reasons I outlined in the post. I think its fair to address some of your points though:

      MyISAM doesnt support transactions so you can forget using it for applications such as ecommerce where transactions are CRITICAL unless you handle all the transaction logic in memory which opencart doesnt. So what happens if you are saving an order and one of the related queries fails? That is just one simple example. So I dont remember seeing a decent ecommerce application which doesnt use that feature (that counts to the never have seen before ones). Never mind the lack of foreign keys and handling of constrains into memory. Also to your argument its a 8 year old software and changing that takes time, it took like 2 days to change everything to InnoDb and make it work somewhat. This blog uses InnoDB, so not sure which version of WordPress you are talking about. The problem with HTML 5 is not the same issue, it is a problem of browser compatibility, which has nothing to do with features and stability.

      Coding repetition – I agree you may not be loosing business over it, but you gotta find a bunch of sub-standart developers who are fine with working in such a mess.

      I dont see any security gains of separating the admin and frontend. I see it only as convenience and separation of the logic in the application but the model is your domain layer, it should be shared between all the apps given they access the same database, having two models with exatly the same logic behind them and copy pasting code between them makes 0 sense, you can however have a CORE app in addition to admin and catalog that holds all this shared information.

      I agree with the security and I said it in the argument I havent been able to find anything major really, accept by default you can access methods like __contruct and __destroy in the url which is a bit sketchy even though it doesn’t tie to a vulnerability directly from I have seen.

      SEO URL- I really dont care about the modules, my point is to the system that comes stock and its maybe the worst possible approach, I am not sure really why its taken too.

      This blog post was inspired after a team of highly experienced developers – 4 of them worked on a big enterprise level frontend that we had to use opencart for. All the points are mentioned are true and were shared amongst all who worked on the project. It is the single most painful open source codebase I have had to work in for the reasons I mentioned and is full of bad practises. Just by looking at how some stuff is done you start to ask yourself – are those guys really handling money transactions and orders…? Yes sure its growing fast and there are a lot of garbage PHP projects that are growing fast because its easy for people to click install in Cpanel and install a small shop on their hosting…If you plan to do any serious ecommerce work I strongly advice against using it. Also can you please tell me one way, shape or form in which any of the mentioned recommended software at the end of the post is worse than opencart, because I personally cannot think of one.

      PS. I agree the language is a bit too harsh and pointy but this article was inspired by tremendous amounts of frustration after working with opencart for a few months so I wanted to really help other people by sparing them the pain they are going to go through… Also the software you gave as an example – zencart and oscommerce, I think they are garbage too for many of the same reasons listed in the post, I would use one of the ones I recommended at the end of the post.

      • Qphoria

        Being “newbie” friendly doesn’t necessarily mean it’s not professional. It may means there is some extra code reuse but it is completely optional when developing your own modules.

        You may not see the benefit is a separate admin/catalog but so what? You can’t pick apart every platform for things you don’t like or you’ll never be happy. I wish the start button was on the right side of Windows instead of the left, but you adapt. Being more secure shouldn’t be a negative, even if it means you have to have a few more files. At least not to the point where you need to make a slam article about it.

        Your biggest issue seems to be with MyISAM vs InnoDB. According to this: http://wordpress.org/support/topic/wordpress-use-innodb-by-default InnoDB is a rather newer feature… WordPress came out in 2003 and just got innodb in 2012. if that is the case then perhaps you should allow the same right for OpenCart which only came out in its current form in 2008. It has some time still. It is true that something can break in the middle of a query causing the order to be only half completed. But this doesn’t happen enough to be an issue. The core itself works and all the hype and potential of losing orders etc because of MyISAM is so rare that it’s not even an issue.

        You also seem to be comparing a “free” cart to “Big Enterprise” carts that get a ton of money for development. This is more of a hobby and is still young. There is only one main coder on the project and it has come a long way since its inception but is still young and there are tons of things planned for it. Slamming it at this point is like ridiculing an 8 yr old for not knowing Calculus.

        In the future HTML5 for the default theme is planned and I would assume InnoDB is inevitable. I appreciate that you can get frustrated with OpenCart or any software when you don’t initially understand it but really if you are going to slam OpenCart then it is only fair that you make 2 more blog posts to slam Zen and OSC and every other product you hate. I assure you that if you hate OpenCart, you will loathe zen and osc. At least OpenCart core is well tabbed in the php files. Even with all the reused code, it is readable.

        Magento may seem nice on the surface but it is also backed by Paypal which is good and bad. It is also a pain to customize. Prestashop is backed by a full team of around 50 employees but most modules on their store cost upwards of $200-$300 for the same mod found on OpenCart for $50. All carts have their own quirks. No cart is perfect for everyone.

        • ferisoft

          Anyways, you are a module developer for OC so I get where you are comming from. I wont comment any more on it so it doesnt escalate more. You are entitled to your opinion and Im happy that you enjoy using OC and working with its code base. In the meantime for anyone else wondering “Should I choose OC for my next project”, please go over the points in the article, download it, make a small module for it and see for yourself if those points are valid. It will definitely save you a lot of frustration and pain in the long run… Bottom line for me is that there is a lot better open source alternatives such as the ones mentioned.

          Just one question to you as a developer. How exactly did you verify and test that:
          “The core itself works and all the hype and potential of losing orders etc because of MyISAM is so rare that it’s not even an issue.”
          With no acid transaction support there is ALWAYS a risk that your data might not be consistent, that being rare doesnt mean it doesnt happen. Also your orders table will get locked for every order you write, so concurrency and scale in opencart dont really look achievable to me.

          • Daniel Kerr

            Hi this is Daniel the owner from opencart.

            you are an amateur! I don’t know what big project you claim to have worked on but what you have pointed out here is pathetic!

            you also forget to mention when you recommend people to use magneto is that it requires a dedicated server just to sell one product! obversely not very optimised! even with cache opencart beats the crap out of it in page load times.

            every company i have met at expos are moving away from magento because its a bloats piece of crap!

            there is a reason why opencart is the no.1 most used ecommerce solution in places like china and india, its the easiest code base to understand!

            my biggest competitor magneto has paid millions of USD to advertising fees. yet opencart is still no.3 in the world without paying a penny!.

          • ferisoft

            Your codebase is jokes I dont know how that makes me the amateur. From order handling, to session management, to blocking and concurrency to millions of unoptimized SQL queries, thousands of lines of code repetition, lack of abstraction and modularity and clear architechture. To me it looks like this was a learning project for you and it caught up because other people who want to learn PHP find it easy to get used to, which is true. Its not a serious piece of software by far and you shouldnt be offended by that, I guess there are passengers for every train…I would appreciate if you can point out how each point is pathetic too. I think it makes sense for people to see your logic behind those decisions and why they were made.

          • Kevin

            I’ve been developing websites for roughly 8 years. About 5 years ago I was asked to do a store. So I started into eCommerce.
            First store was completely made by me. Coded everything front and back end. Needless to say wasn’t the most efficient but they only had roughly 20 items at any given time so it worked well.
            A while later I was asked about another store. The customer asked if I could do the store in Magento because they had heard it could handle unlimited items and was the best. So I installed Magento and ran through it and learned it. It was on on a shared server which was recommended but I gave it a shot.
            Talking about slow as crap!!! I had only loaded about 40 items on it and it took forever on the front end. Back end wasn’t too bad but the front end was plain horrible.
            Customizing wasn’t too much fun either.
            So I asked them if I can load something else and we can see what we can get. (This customer wanted roughly 300+ items and adding more frequently.
            Did some searching around and came across Opencart.
            Built the site and added some extra modules and got everything they wanted. Ended up being around 450 items by the time I finished the site.
            At this point the Magento store was lucky to hit 35/100 on speed tests.
            Opencart with 450 items easily hit 75/100.
            It was WAY faster.
            Very easy to create Modules for and very very easy to do XML Vqmods for.
            So far in the past 5 years i’ve probably created 15-20 stores with Opencart and so far it is by far the best i’ve worked with.
            I have worked with Oscommerce (junk), zencart (good but not as good as OC), and WordPress ecommerce.
            So far the absolute worst i’ve worked with is Magento.

            Just a few months I wanted to give Magento another try and it still haven’t improved at all.
            I like to do every few months or every release I install the new verison of eCommerce CMS and go through it.
            I even offer to build some free small sites for people to see what I can do with it and if I don’t like that version of the CMS i’m trying to quickly build them an Opencart site.

            It sounds like you have a personal issue with Opencart, Opencart so far is the fastest and easiest to work with.
            Magento is the most expensive if you don’t feel like creating your own extensions.
            Opencart may not come loaded with all of the new bells and whistles but you can easily upload a vqmod or module and get it how you want.
            Magento, if you don’t feel like creating every single add on you want on your store you will end up paying a few thousand dollars just for some extensions.
            Plus if you don’t feel like creating a template and you decide to download a template for Magento well you will spend a TON of money.
            Magento is expensive and BLOATED.
            I have servers I run web hosting from and even doing a private server with 8GB of ram and 2 dual core Xeon processors and 65mb internet Magento was STILL slower then Opencart.
            I’ve tried just about every eCommerce CMS out there roughly 5-10 times each and Opencart stays at the top of the list.
            Every site I go to do now I use Opencart.

          • Thomas Mccaffery

            Oscommerce Junk? Your kidding right? Oscommerce would run circles around Opencart period. The problem is you need to mod it and when there is a update its a pain in the butt. However, the new version of Oscommerce is going away from that. OpenCart will die once the new version of oscommerce comes out guaranteed

          • http://www.netsh.pp.ua Igor Chishkala

            Ha-ha ) 2016 year now. How is going ‘die of OpenCart’? )

          • JooonsJoonz

            the same applies to drug cartels…

          • OG_Sean


          • JooonsJoonz

            os commerce isn’t even mantained anymore

          • Luke McLachlan

            thank god you didn’t put your money where your mouth is!

          • μωα

            Just wondering … did that new version of osCommerce come out? Because after 4 years openCart is still here strong and on version 3 …

          • Madhur

            We are working on an opencart store (we have heavily customized both frontend and backend) to suit our needs. We have over 30000 products in it, and increase 1000 products a week.
            From database point of view there are definitely some issues, which we are solving on our end .. but definitely opencart is way way better than any of the other CMS out there. Definitely simplest to learn and adapt. Despite two well experience tech guys, rest of the team is college freshers, yet they have adapted to it quite well because of its simplicity. One ridiculous thing is VQMod which we have tossed out completely, mainly because of the level of customizations we needed and we could not waste our time juggling with XML

            P.S. 30000+ products did slow down the website frontend. So we now use Solr engine to get the ids.

          • Hörman Klaus

            I would be interested on how you threw out VQMod. This XML format kind of annoys me too. Any ideas on how you did that?

          • Madhur

            If you are using too many third party extensions, then this will be bit cumbersome to do.
            Also note that from the day 1, we decided to dig and rewrite/enhance a major chunk of the OC core code. So, we were never worried about upgrading OC to a newer version. We rather look at changelog of every new release, and if an important bug fix / feature or security issue has been fixed in the new release, we take that bit of code and implement directly in our code.

            Coming back to getting rid of VQMod: We basically went through each and every XML file and started replacing / putting the piece of code in XML files to the respective core code files as mentioned by XML tags in there. It is a bit tricky job and if you dont know core code structure then there is a very high chance that you may screw the core code completely.

            Few system files were changed to avoid any vqmod class references in there.

            Finally removed vqmod references in the index.php files of frontend and admin area.

          • Richard Bill

            Ferisoft, I am not sure if OpenCart code base is a joke..its okay kind of system. Nothing great about it. But certainly Daniel is a joke. He is an idiot who just got lucky with this OpenCart system.

          • Leon

            Sorry dude, but from my experience OC should be No. 1!

            I have been struggling with so many e-commerce solutions (paid and free) and man.. I paid a lot of money just to end up totally frustrated.

            I also used magento. Its not bad but in my opinion it should be place 3 right after Prestashop with OC as No. 1.

            I am not a developer – I’m seeing OC with the eyes and as the person who it was programmed for.

          • John Julian Pyle

            I’ve seen the three carts you mentioned from both ends, user and developer. I’ll place OC and Prestashop equal first, with Prestashop being more expensive to extend. Then Magento last unless you are very good at caching and have good dedicated server.

          • http://samarsoft.co.in/ Vipin Kr. Singh

            Ferisoft, you forgot something in this article, “Code Comments for
            documentation” in source code, which I think is the beauty of Open
            Source. That is completely absent in OpenCart. Isn’t it? :)

          • Sergey Smirnov

            Hi! Totally agree with you. What if we fork OpenCart, do a refactoring and make great e-commerce product?

          • http://samarsoft.co.in/ Vipin Kr. Singh

            Great thought!! But Sergey, who is going to initiate that, if you are that person, I’m with you and will join that fork on github. :)

          • Sergey Smirnov

            Great, but I think we need gather a team, and we need an architector. Because I know how to improve some parts of opencart, but not general architecture (modularity, extensibility etc.).

          • http://samarsoft.co.in/ Vipin Kr. Singh

            You are right buddy, but every long journey begins with the first step.

          • Sergey Smirnov

            Great words, you made me believe! I’ve created a fork. Please, join https://github.com/forkedcart/opencart

          • Sergey Smirnov

            The first step I did: https://github.com/opencart/opencart/pull/3230
            Let’s see what other Opencart coders say…

          • Ben

            I would love to do that, in fact I have a client who has improved opencart so beautifully

          • syed nayab

            if we go by the stastics, Opencart is number two http://wappalyzer.com/categories/web-shops

          • Melroy van den Berg
          • Juan Perdon

            This article has only one name, dirty envy. Opencart is a great ecommerce solution, I installed on servers with limited hardware and works better than anyone.

            Prestashop maybe, for the moment i use opencart.

          • techchattr

            Envy what lol ? :D
            If it was envy why i didnt rant on Magento, they make a lot more money than DK lol :D

          • Ravidev Thangavel

            Daniel Kerr is correct. I am using opencart. It is fantastic. I support OC

          • SwampCritter

            Thanks Daniel,

            I have used Zencart, then PrestaShop, then moved my site to your code. It has been a few years since leaving PrestaShop because of performance issues. I loved their admin tools and their look, but for some reason the performance was horrible. I replaced it with OpenCart on the same server and performance was no longer a problem.

            I assume that PrestaShop has improved since then, but I haven’t seen a need to leave your software.

            Thanks again.

          • Dondon

            But you still stupid person…. and that’s the bottom line…

          • Richard Bill

            OpenCart will not be #1 Daniel just because you head it. You know dickheads do not go higher. C’mon have sense to accept criticism.

          • Amazed_by_unprofessionalism

            Wow Daniel Kerr. I have never seen such an unprofessional display of nonsense. You own a company, yet you cannot even form full sentences, use proper grammar, or conduct yourself in a professional manner. Your arrogance is similar to that of a 7 year old and you are obviously too immature to accept criticism and grow from it. Every comment you leave on this article basically just says “WAAAAHHHHHH. My code is good. WAAAAHHHH. Stop being mean to me, I’m the best ever!!!!”. Please grow up and remove your head from your own rear end. Opencart can be good…. but is it flawless? No, it is far from flawless. The architecture and organization of the code is atrocious, VqMods are terrible and messy, and the unnecessary code repetition greatly hinders development. There are many other problems as well. Honestly, I wasn’t too impressed with opencart to begin with but after seeing the way you handle yourself (childish, arrogant, unprofessional), it makes me not want to use opencart again.

          • N.T

            Two years later and after reading Kerr’s responses, I am pretty sure I won’t use his ecommerce solution ever.

          • http://www.flippers.com John Robertson

            I too am surprised by the developers responses – assuming that person is actually Daniel Kerr and not someone pretending to be. However I have been on oscMax 2.5.4 since 2009, and am now looking for a new platform (not much happening on Max I’m afraid) and aside from the vitriol I see here (as of two or three years ago) I am still considering switching to OC. I have to wonder if both sides would like to speak up a bit more on their positions.
            Still playing with OC, and talking with a developer about some questions about his Canada Post module as it doesn’t yet support Harmonized Codes and dimensions of the products to take advantage of Canada Post’s sellonline.canadapost.ca box fitting routines. This is important to us as we have products that are physically large, yet light and weigh based shipping only screws up the actual cost. A solution might tbe to go to volumetric weight for our products but that would be a pain to implement…

          • http://bitlucid.com/ Roy

            You just convinced me… …that opencart is an amateur affair, if this is your professional handling of criticism. I came here looking for alternative viewpoints on opencart, which I planned to take with a grain of salt. But if this is how you handle a little criticism on the wild web, I’d hate to see how you run your software business. If this is actually Daniel Kerr of opencart, always hard to verify.

          • JooonsJoonz

            the clown appears

          • @rno

            are you really the owner or a troll? If you are, instead of welcoming any negative feedback and improving your platform you fight against it and try to defend it. Yet another reason not to go for OC for me.

          • Eugene

            My clients who are using magento always ask for security technical supports, and I really don’t like magento. My clients who use opencart have very little problems.

            Magento has messive disorganized codebase and disgusting old school file structure design pattern and it is a resource hog via that indexing system ( imagine you have 10000 products ). To me, Magento has very outdated file structure, it is like using and old shopping cart and trying to make it new.

            In addition, magento has that illogical control panel design that creates lots of learning curve to users. No shopping cart is designing that way these days while UI and UX are taking into consideration.

            If you know design pattern, php programming and server administration, you will go for opencart period. Good job Daniel!

            As to prestashop, that cart was mainly created for advertising revenues from extensions and it sucks big time.

          • OG_Sean

            haha, good points.

            VQMod though? Could there be a DIFF previewer tool or something to help with that workflow? It’s hard to preview plugin collisions before you try them.

          • curtis

            Daniel- you suck…you are like a 10 yr old child…and your opencart platform looks like it was built from a 10 yr old child…hell man you put out a new version nearly weekly…so many that none of the freelance developers can keep their mods working! Think im full of BS…go look at comments in opecart marketplace nearly EVERY comment is from someone who purchased something that didnt work…you really are a pathetic little loser

          • aarusysdotcom

            Respected Daniel Sir, This is Rajan from aarusys.com (INDIA). Using Opencart our company has grown and gained more clients, Magneto (spelling changed wantedly), offcource we have used for couple of clients but its not for the starters or economical clients, its way too expensive to maintain. Opencart has really contributed a big value to the Ecommerce market. Hats OFF Mr. Daniel and the entire Opencart Team.

          • Blah Blah Blah

            Your attitude has always STUNK! I had one situation with you and found you remarkably RUDE and full of yourself. I hope they find you are doing stuff illegal and get the book thrown at you!!!!

          • Blah Blah Blah

            ” why should i stop working on the next version of opencart that 100’000’s of people are for just to deal with you personally! we provide you with free software that would cost you 100’000’s to write from scratch and you think you can blackmail me!
            you are banned!”
            – Daniel Kerr

          • Daniel Kerr

            I don’t know how you have the balls to criticise my work when you produced this:


          • techchattr

            You really are an idiot. This is my first website, which I created when I was 14 , six years ago and yes it sucks. But I dont care to admit that and to take critics for it. You on the other hand are a complete retard, who doesn’t understand what constructive critisism is and think through it. I haven’t seen any meaningful answers to my points, nor to the topic on Opencart forum, where the guy clearly points a lot of weak points of the system and you call him an idiot. Instead of talking trash, you may want to try to explain in plain terms how those points dont make sense. Can you show me some serious companies and big stores that use opencart? How much of opencart codebase has been tested? How do i scale opencart for many app servers once I start getting traffic? How do I override core functionalities without changing the core and without using this devilish invention VQMOD? The list just goes on and on and on and on… Like don’t get me wrong, its great for someone new and with poor understanding of PHP to work on and learn. Its definitely not good for someone who wants to do business with it (which i guess is the main point).

          • Daniel Kerr

            So where is your big open source project that gives you the right to criticise my work! I have coding in php since 1999 so thats 14 years of php coding experience on top of what ever programming language the c64 ran back when was 7 years old!

            you seem to think you have a lot of experience under your belt at 20. I wouldn’t trust a 20 year to work on a big project.

            apart from the opencart site that does over 1 million unique hits a month, there is also:

            http://www.officeking.com/ This site pulls in quite a few mill a year.

            but you seem to have changed the subject from framework to the application.

            before you continue arguing with me you need to actually ask your self can you ever admit when you are in the wrong!

            I have studied the history of many OOP languages and can tell you that there is not one OOP framework in PHP that follows the correct principles of OOP programming. developers are supposed to be able to show ERD diagrams and visually displaying the program before even writing one line of code. with frameworks like ZF and symphony ERD goes out of the window because they use static methods for a lot of things.

            “How do i scale opencart for many app servers once I start getting traffic?”

            many apps servers! what does that mean? you mean different applications running from the same framework? you build each application starting from the index.php file and include what ever library classes you require.

            “How do I override core functionalities without changing the core and without using this devilish invention VQMOD?”

            I have never recommend vqmod to anyone. its not part of the opencart core yet!. it can be used to replace parts of a file that already exists to change the behaviour of the file. phpbb has a system similar to vqmod called automod. the advantages are that you can have multiple mods on a single cached file. I don’t believe symphony has a system that can change just parts of a code in a file. I imagine it would replace an entire file or which ever method is being called. not the best way integrate multiple extensions.

            “Like don’t get me wrong, its great for someone new and with poor understanding of PHP to work on and learn. Its definitely not good for someone who wants to do business with it”

            Like anyone in their right mind would listen to some one who is 20 years old on how to run their business!

            you have recommend people to use magento. I know plenty of companies that have had to switch from magento because its costs them to much just to maintain the site. one company i worked for took 9 hours to fix a tax bug. that is not cost effective, but some one like your self at the grand old age of 20 is giving people advice on how to run their business.

          • ferisoft

            I read an i laught: I don’t believe symphony has a system that can change just parts of a code in a file.
            and you claim to understand OOP. I will stop since otherwise I have to send you an invoice for my time that i spend on answering your jokes… People who know programming will draw conclusions after reading what me and others said…

          • Daniel Kerr

            you and who? there is only you, steve and noname who i suspect is you. you really are a nobody!

          • endbellen

            The guy who wrote the article is most likely a bellied. Oop is shit. Cunts love it.

          • Richard Bill

            Daniel…you are shit for sure. No doubt on that.

          • chandan kumar dubey

            I have also used opencart system engine to make my project which is like elance.

          • Sajjad Ashraf

            Yeah and you are a mighty dick head period.

          • jonnyynnoj

            “before you continue arguing with me you need to actually ask your self can you ever admit when you are in the wrong!”


            I hope this doesn’t cause offence to you, the mighty DK, but is there a chance (albeit a very small one), that maybe, just maybe, it is you who is in the wrong?

          • malinda

            hi, i’ve done e-commerce projects using Open cart, Magento, prestashop , and pure PHP, yes open cart is not 100% OOP , but i recommend Open cart for the e-commerce

          • octp

            Screw you Daniel, screw your OC, screw your lousy codes and lousy database.
            But thank you for letting many developers earn tens and thousands of bucks using your lousy shit.
            Btw, wtf is ferisoft?

          • chandan kumar dubey

            hahahaha,,,nice one

          • Daniel Kerr

            So where is your big open source project that gives you the right to criticise my work! I have coding in php since 1999 so thats 14 years of php coding experience on top of what ever programming language the c64 ran back when was 7 years old!

            you seem to think you have a lot of experience under your belt at 20. I wouldn’t trust a 20 year to work on a big project.

            apart from the opencart site that does over 1 million unique hits a month, there is also:


            http://www.officeking.com/ This site pulls in quite a few mill a year.

            but you seem to have changed the subject from framework to the application.

            before you continue arguing with me you need to actually ask your self can you ever admit when you are in the wrong!

            I have studied the history of many OOP languages and can tell you that there is not one OOP framework in PHP that follows the correct principles of OOP programming. developers are supposed to be able to show ERD diagrams and visually displaying the program before even writing one line of code. with frameworks like ZF and symphony ERD goes out of the window because they use static methods for a lot of things.

            “How do i scale opencart for many app servers once I start getting traffic?”

            many apps servers! what does that mean? you mean different applications running from the same framework? you build each application starting from the index.php file and include what ever library classes you require.

            “How do I override core functionalities without changing the core and without using this devilish invention VQMOD?”

            I have never recommend vqmod to anyone. its not part of the opencart core yet!. it can be used to replace parts of a file that already exists to change the behaviour of the file. phpbb has a system similar to vqmod called automod. the advantages are that you can have multiple mods on a single cached file. I don’t believe symphony has a system that can change just parts of a code in a file. I imagine it would replace an entire file or which ever method is being called. not the best way integrate multiple extensions.

            “Like don’t get me wrong, its great for someone new and with poor understanding of PHP to work on and learn. Its definitely not good for someone who wants to do business with it”

            Like anyone in their right mind would listen to some one who is 20 years old on how to run their business!

            you have recommend people to use magento. I know plenty of companies that have had to switch from magento because its costs them to much just to maintain the site. one company i worked for took 9 hours to fix a tax bug. that is not cost effective, but some one like your self at the grand old age of 20 is giving people advice on how to run their business.

            also relating to your post about symphony. after looking through the code its just a mashup of other projects libraries. I don;t think symphony came up with yamil yet because mageno uses it they say magneto is using a symphony component.

          • http://www.thefactsite.com/ Luke Ward

            Mark Zuckerberg was in his early 20’s when Facebook was founded, he seemed to do a good job at such a young age? And just because you’ve had 14 years of php coding experience doesn’t mean you’re the best, and the thing that makes you so much worse is that you’re extremely cocky and can’t take constructive criticism. I have used opencart for a few projects and dislike it for many of the reasons above – would I use it for one of my own projects? Yes… I’m fairly new to php, so I would use it.. however… reading this, and seeing how much of a bellend you are, I wouldn’t bother with opencart… I know my one opinion doesn’t count in your mind, but you won’t be “the best” forever – not with that attitude.

          • Cozzbie

            You call Techattr’s piece “constructive criticism”? I mean the post started with “Never use opencart”, how is that constructive? I won’t say that Tech doesn’t raise valid points, he does, but going through the banter between him and DK, I will say that they are both very similar minded people bashing themselves for pretty much the same things ie claiming they are both PHP gurus.

            Having said that, I must say that the onus was on DK to show more maturity in his approach. In the world of PHP you always meet criticism and getting worked up over it all is never worth it. He really should’ve answered some of the issues raised by Tech and show more zeal towards the “educational” pattern he claims opencart was built on in the first place.

            Now to Tech, lovely piece of an article, shows lotta indepth that even I never considered. I’m an opencart user too and I like it, it works, and quite well too, good luck to all of you out there looking for “advanced php frameworks” that work. Sadly you seem to miss some core points. Ecommeerce frameworks, should meet a basic standard in the very least, and EASE OF (FRONTEND) USE should be number 1, and opencart does this well. You mentioned Magento, but failed, (in the queer constructive manner that you claim) to point out that Magento isn’t easy to setup and costs a fortune to maintain. Prestashop is a good option though, kudos

            Once again, lovely piece, at 20 you have shown great insight on programming that even I at 29 find puzzling but instead of bashing someones good work so bad, be more constructive, showing better alternatives in every criticism and if opencart doesnt solve your problem, make a framework we all can use and enjoy and tell us how easy it panned out, and to DK, I think name calling shouldn’t be something an advanced person like you should be getting into, but a more constructive approach, where users like me can actually learn something new with every new line you write should be embraces

            I remain very loyal to the GURUS of this thread.

          • ferisoft

            Well most of those points have already been raised many times and DK has plainly disregarded them and bashed anyone who raised them. You can see numerous examples both here and on OC forums. after such complete denial of the truth i dont think i couldve named the article differently because the attitude of the author shows what the future holds for this project.

          • SwampCritter

            I didn’t like the name calling between either of you. It seemed too much like WW Wrestling.

            However, I can see how DK could be offended. Just looking at the table structure of OC shows he has dedicated a HUGE chunk of his life toward the product. The product works and it is a lot easier to use than you give it credit. It is great work and it is amazing that one person did most of it with no guarantee that there would be a payoff.

            I also agree with Cozzbie that you show a lot of potential. Go write a replacement cart. Competition is good. Can you do it using razor (.cshtml and C#)?

            take care, and thanks for the article

          • Richard Bill

            He man…no one asked him to do any favor. He is making money because of OC that is why he is supporting so DK (or better DH :P) should stop ranting about that. He is not in community service. He gets offended like a child every now n then and then starts crying.

          • Richard Bill

            I agree with you ferisoft.

          • Kyle P

            I have never seen such an arrogant and cocky person as Daniel Kerr.

            OpenCart is a great cart but its developer founder thinks he is a genius and every other developer is a fool.

            He never listens to anyone. To him ideas are criticism and questions are disturbances.

            Something simpler prettier and with a great listening developer or community will crop up in the near future and OpenCart will start to die away. I wish that future comes fast enough.

            The most disturbing fact about OpenCart is that themes have to break on every OpenCart version upgrade because themes are part of core files. The worst suckage.

            Mention “backward compatibility” to Daniel and he ignores you or gets offensive.

            What an attitude?!

          • kevin

            There was nothing constructive about the rant.
            It was plain dissing.
            Daniel Kerr isn’t cocky about his program, he knows it works!
            Techattr seems like a wanna-be cocky douche him self.
            Does he have an eCommerce CMS out there for millions of people to use???
            Daniel Kerr has the credentials to back up what he says.
            Techattr doesn’t

          • ferisoft

            What credentials did you read his replies in this post?

          • Lasse Rafn

            Daniel is posting on TechChattr – wtf?

          • ese

            Well said.

          • JooonsJoonz

            Daniel Kerr isn’t cocky ? he is the single biggest moron on opensource

          • @rno

            FUlly agree, any smart entrepeneur, especially a software developer, should embrace any negative feedback and use it to his advantage to make his software better. Daniel seems a prick, that alone makes me choose Magento. Was looking at OC but no longer, rather pay more for professionals. You dont see Ebay writing crap like that hahaha. The fact that he even has time for it says enough…

          • FSU_nole93

            Zuck is a bad example. He had the biggest business sharps behind him, you can’t accredit Facebook’s success to him like that because of the stories his Publicists have spewed up and spit out on the internet to fuel American tech dreams.

            While I think it was harsh, Daniel’s implication of experience being King is true. You can’t replace it.

          • FSU_nole93

            Daniel, thank you for all of your work with OpenCart. It has allowed me to eat, and it has allowed many of my family members to eat as well. Bless you.

          • Richard Bill

            Your 14 years do not seem to have yielded anything useful which would have made you come up as a mature man in your comments. Looks like you are still stuck at 7 years of age.

          • Guest

            ad dumb statements towards me; I don’t give a shit anyway, why should I? – Your opinions are dumb and your behaviour is like a kids.. I’d say you’re 14 years old, not that you have 14 years of experience..


          • Lasse Rafn

            You’re an ignorant fuck. I can’t believe someone can be so annoying. You’re like a fucking Jehovah at someones door.. Preaching all your shit, that you probably just heard from a book or teacher back in ‘your days’, when your skills was relevant and you mattered.. Get down from the high horse, you’re not special.. Or, are you? Show me something, and no I don’t want to see some clients ugly webshop which, not at all, follows the HTML5 and CSS3 standard (‘OH HUMANITY!!!!!?’), show me something that allows you to be so cocky, let me see your huge Open-source E-commerce platform with millions of users. IF you can’t show me that, shut your f*cking cunt and get over it, and stop using OpenCart. Get the sand out of your vagina, remove the itch from your ass, and stop being so butthurt, because some code does not follow your way of coding.

            – This is coming from a person who is not very ‘fond’ of OpenCart either, but I see the difference between a cocky bitch, and a good developer, pretty well…


          • Zeljko

            ‘ I have coding in php since 1999 so thats 14 years of php coding experience’

            If you write a code this bad after 14 years of experience, maybe you should look at some other job. Seriously.

            I just checked OS on github and oh boy… Administration should be the simplest thing yet, I can see 1000+ lines in single file. Just for the simple CRUD operations you need <30 lines in any decent framework.

          • Thomas Mccaffery

            Why are you using MyIsam he has a point with that. Look Oscommerce Harald is way better and takes criticism and he just says I will look into that. Criticism is good sometimes to make your work better. Opencart has potential. However, looking at your choice for database engine has me thinking you have no clue.

          • Elizandro G. Roos

            Who asked? Let go of your ego, and stop answering these guys. Find real meaning in something else and face work just as it is, work.
            I use opencart btw.. it’s ok, but could be better.

          • kabatza

            - Opencart is not perfect – but nothing is!
            – Code is repetitive but this is not really a problem – if you don’t like it you can easily change it if you want.
            – The SQL queries are again easy to change to your liking.
            – Why don’t you spend a couple of months and make your own perfect fork version and let us see the result…you are welcome to do so. Oh, and do it without using vqmod, the “devilish invention” as you say.
            – Vqmod is FANTASTIC for the development stage. In the production copy files should be replaced with the cached-modified ones.
            – What is professional or not is very subjective. following the trends is not necesary professional.
            – I don’t know why you sugest to people to use Magento… their comunity eddition sucks big time!! Prestashop is OK and may actually be better for those who cannot code at all, but modules and extensions still cost more than the opencart ones. I personally hate the auto-install im prestashop.
            – “How do i scale opencart for many app servers?” is this a joke or what? what does this have to do with opencart? You create a cluster of servers behind a load balancer. The more the better of course and there is no restriction like with Magento Enterprise where you have to pay extra after a number of servers. Optionally move the admin side in a separate server (very easy to do with opencart).

          • ese

            There is nothing constructive about the title of this post. There are better ways to criticise constructively.

          • Jim

            OK, here is a constructive answer to your article.

            1. Repetitive code makes the codebase longer but doesn’t necessarily make it slower or less readable. If you repeat the “if” statement 10 time or you wrap the “if” statements into “foreach” loop the execution time will be probably very similar. So this is really irrelevant.

            2. Database queries can be improved so I agree with you on this.

            3. Where did you get the idea that OOP is better than procedural. This is nonsense that is widely practiced. OOP is a cancer that grows on PHP. Please view these videos https://www.youtube.com/results?search_query=oop+sucks

            4. I agree however that if someone uses a lot of classes but structures the code as procedural it leads to unnecessary confusion and obfuscation of clarity.

            5. Again who said that validation framework is a good idea. True that it can can save you coding time but it doesn’t make the code any better or faster and in most cases validation frameworks out there inject the OOP cancer into the project.

            6. If you do some profiling you will find that procedural functional code is faster than class based OOP code. However I would agree with you that mixing too many classes while writing procedural code is not the best solution and leads to confusion and lack of clarity.

            7. You wrote that the code lacks abstraction. I would say that this is good thing. Abstraction is another nonsense that came from OOP and although it creates perception of superficial simplicity it hides atrocious complexity of OOP under the hood.

            8. I agree that SEO handling could definitely be improved so you have a valid point here.

            So my verdict is that OpenCart can be better but it is not too bad however I find the response of Daniel Kerr very unprofessional but your response to his criticism isn’t much better. You call each other idiots so perhaps both of you are right :)

          • Jason Judge

            And there you go, an example of just why OC has stayed in the dark ages. To improve any product, it has to be accepted that it is not perfect. If all issues are rejected as a personal criticism about who’s willy is bigger, then it’s a lost cause. Don’t go near this thing.

          • swed

            I absolutely second you in all but your
            last sentence! I been following OC since v.1.4 and have come to really like
            it… I have now however become wary. It wasn’t coz of ferisoft’s article that I find
            interesting but far from constructive. No, DK’s totally unreasonable answer
            here made me reflect on the state of OC’s future development and it also
            confirmed that the author of OpenCart is in fact not the least open minded!
            That’s serious!
            After witnessing DK’s childish outburst
            my faith in him is gone. Now I also understand why I feel that the team behind
            OC constantly is being held back. It’s a pity that DK have become a hindrance
            to the development of his own creation. If it wasn’t for Qphoria, who is rock
            solid, I would migrate to another cart this very evening.

          • goinindia


            I am a newbie web developer. I designed my first website with prestashop. It was a great first experience.The code in prestashop is easy to replace and security is also great, But then I came across Magento and was amazed at the software and what it offered. After spending 2 whole days trying to learn magento I came to the unfortunate conclusion that magento required a team of 4+ php coders just to setup and do basic tasks which I was doing using prestashop without much of PHP knowledge put to test.

            So finally after that realization sunk in and after being depressed(about it for a couple of days, and a drink binge to recover), I decided to give opencart a try just to cheerup (I had heard horrible things about opencart , including this article ).

            I had the most amazing experience using opencart I would like to say, it was like an epiphany…I realized for the first time what I was dealing with. Here there was this amazing piece of work which could help me setup an almost flawless website in minutes. I had the support of almost 1700 free modules to work with and the design was totally editable to my requirements.

            Now I am not a great programmer like ferrisoft or some of the other guys… but opencart has made me a truckload of serious money. I really dont mind if the sql uses mylsql (or any other for that matter) as long as it works correctly and my clients are happy with the end result. Because of opencart I can design a website for a fraction of the cost what big designers charge and I can deliver a fully functional website in less than 2 hours………

            In the last 1 year I must have designed over 100 websites in opencart and have zero complaints from my clients. I have no complaints about the code of opencart , I have no complaints with daniel K (cmon man he is actually giving this awesome software for FREE).

            After going through the article and reading through the comments section (as recommended by the author of this article) I have come to a few conclusions:

            1) Daniel K is an extremely cocky SOB , but if I would have created a great software like this I WOULD BE COCKY AS HELL especially if I was distributing it for FREE.

            2) ferrisoft and likechattr are the same single person.

            3) I can understand ferrisoft’s anger with opencart since it would take away a significant part of the income he could generate by using his great undertanding of PHP , since even a newbie like me can create a great working website in minutes without being as knowledgeable like him.

            4) ferrisoft has amazing grasp of php and looks like he could be a great coder someday. Maybe even better than daniel K if he creates a free ecommerce platform better than opencart without any of the flaws of opencart.


            1) In the past one year I have made a living out of developing websites using opencart and would say that I am biased as hell about opencart as it has made me a lot of money.

            2) I am a PHP and programming newbie so a free software like opencart has provided a good source of my livelihood.

            3) I am in no way associated with daniel K and quophoria to write a positive review about their product but my parents would like to bestow their blessings on daniel K for providing me with a opportunity to make a living.

            I would request ferrisoft to create a mod which plugs all the errors in opencart and post if for free so we all can benefit from his knowledge.

            Even better if he can create a free shopping cart with all this features it would be even better since with his knowledge(which he has been kind enough to share with all of us here he has been quite open about having the knowledge of how to improve the software).

            I would be quite looking forward for a future release from ferrisoft.

          • Tommy Lee

            Daniel Kerr is the enemy of OpenCart as SJ was the enemy of Apple in the nineties.

          • Richard Bill

            Seriously daniel don’t you have any other work but to scratch your balls and criticize people. You cannot pull out someone’s initial days website and rate them because by that comparision first version of Opencart was even shittier than OS Commerce.

          • Donfrancis

            @Daniel, don’t mind haters bro. Pls can u refer me the module i can use for baby registry in ur open cart version Open cart remains number one!!!! I love Open cart.

        • booyaboo 99+2

          you can have code written correctly and to the standards of 2019 or at least this side of the decade without writing code like a r3tarded monkey!

      • Andy

        Firstly, if it took you a month to get into OpenCart development, you aren’t really a developer.. It took me less than 1 week to get a website online, with a customised wholesale system, and quite major modifications. So, either my PHP (which I’ve barely touched in 3 years), is really good, or…

        In regards to code reuse, I think the current design is actually good for business. It’s very easy to understand, and VERY fast to develop for in practice. Yes there are more lines of codes. But, they invented Ctrl+C for a reason and there is no reason why you can’t speed some things up.

        Also, I find it hilarious you mention Magento. Magento is great if you have site developers who don’t know PHP. But, every layer in magento is a complete headache. The only thing that works is the modules system (when the layout XML is properly documented, which it often isn’t). Even if code reuse is better, it takes far longer to develop a module for Magento than OpenCart.

        Finally, it doesn’t matter what you do with it, Magento will always be slow (we are running PHP 5.5 with Opcache and its still noticeably slower than Opencart).

        Also, can you name any benefits IN PRACTICE you have seen from using InnoDB on an ecommerce site? In practice, all I’ve seen are broken websites caused by the foreign key constraints failing (in cases where it wouldn’t have been a problem anyway).

        Unless you run Amazon.com, I don’t think you’ll really notice any benefits.

        Also, strange you recommend against VQMod because of the XML.. When you need XML to layout your interface in Magento (which is a pain).

        I’m sorry, but are you seriously recommending Magento instead of Opencart? If you are running enterprise, yes. For any other business which doesn’t generate millions in profit per year? The additional development costs will drown you!

        • ferisoft

          “Also, can you name any benefits IN PRACTICE you have seen from using InnoDB on an ecommerce site? In practice, all I’ve seen are broken websites caused by the foreign key constraints failing (in cases where it wouldn’t have been a problem anyway).”
          You are a morron.

      • booyaboo 99+2

        learning to write bad code! Open cart is a classic example of how NOT to write code in 2019! it is a disaster!

    • Victor Hornets

      Wait… What’s wrong about burning churches?

      • neki

        It is wrongly primitive as society moved towards from the fire by cause, ingle and fireplaces further into constructiveness.
        I had to reply here as although lately, found this thread important, and both supportive :)

      • Roy Anon

        Yeah, it probably mean something very wrong. And it just happen a lot in China, they burn churches.

      • Stavros G

        ask vikernes, lol

        • N.T

          Hahaha funny. Now the count Grishnack is a Vlogger living in France.

          • Flavio Renato

            he said: “if using MyISAM was the equivalent of burning down a church”…Did he means MyIhsahn from Emperor?
            Also collaborate on 92’s burning churches…LOL

          • N.T

            LOL true !!!

    • http://somewhere.com/ FMN

      Thanks Qphoria, I mostly agree with you.
      The best part is, OpenCart is simple and nicely structured, be it database or folder/file. It is so easy to learn as compared to Magento & Prestashop, which I have installed and played.

    • Christof Coetzee

      I’ve been building ecommerce sites since 2000, worked a lot with oscommerce back in the day and later Magento (the beast).
      About 2 years ago I evaluated some alternative platforms because the TCO of Magento is too high for most owners and also an over-kill for most projects.

      I’ve been using Opencart ever since and I have to admit that under the hood Opencart does look a bit naive and basic, but I’ve learnt to embrace this as it makes the codebase VERY easy to grasp and modify, you can modify or build an Opencart extension or module in 10% of the time compared to Magento – less frustration and easier to maintain.

      No software is perfect and I find that Opencart is 100% sufficient for most of my ecommerce needs, sure you will get the odd project where i.e. Magento or a PAAS like Shopify and Bigcommerce is the better solution, and then you go with that, but Opencart will serve you well for most of your projects.

      • SwampCritter

        lol, your comment made me think of KISS – Keep It Simple Stupid

        There is a beauty in simplicity.

        “If you can’t explain it to a six year old, you don’t understand it yourself.”
        ― Albert Einstein

        “Like all magnificent things, it’s very simple.”
        ― Natalie Babbitt

        “Life is really simple, but we insist on making it complicated.”
        ― Confucius

        “Simplicity is the ultimate sophistication.”
        ― Leonardo da Vinci

        “Our life is frittered away by detail. Simplify, simplify.”
        ― Henry David Thoreau

        “The greatest ideas are the simplest.”
        ― William Golding

        “Nature is pleased with simplicity. And nature is no dummy”
        ― Isaac Newton

        “A child of five could understand this. Send someone to fetch a child of five.”
        ― Groucho Marx

        • Atanas

          Absolutely agree!

        • David

          I have 22 online shops and 3 of them use opencart

          Having now seen how Daniel Kerr has responded here I will not be using opencart again.

          • paulfeakins

            Why? The platform is great and it would be a third party that implements and supports it, not Daniel himself.
            So the fact he’s angry when people say that years of his hard work are no good shouldn’t affect your choice of software platform.

          • JooonsJoonz

            because of legacy, 2.0 came out with more holes then a basket and they wanted us to carry water with it why? because of Daniel’s poor leadership

          • john paul

            hi david what list of online shop use it

            i min the best onlineshop tnx

    • Dabnis

      I have used OpenCart for many clients since version 1.4.x and for small e-commerce projects it is fine. It’s also great if you DO NOT use added modules. I agree with most of what is wrote in this article, but for most starting out on the a-commerce route I would still recommend it.
      If however you are serious about your on-line e-commerce project and you want to see it grow, then OpenCart is not for you. Thee are many technical & design failing within OpenCart as there are in most pieces of software, but in MY OPINION the major fault in the OpenCart design philosophy is the total lack of isolation between modules. Add to this the crazy philosophy of VQMOD and in a very short time your opencart system will become unstable, probably unusable.
      Summary: A good starting e-commerce platform, but be prepared to move on if your store becomes successful.

    • Thomas Mccaffery

      You are wrong with MyIsam osCommerce uses Innodb for years now. He is absolutely right the Opencart code is a total mess

    • lyoneel

      I agree with you, the most important thing is SECURITY because you gonna do transactions there.

      I found a lot of things that can be improved but like UI, or non elegant code, but that not impact in performance, is pretty fast, and i like the idea that not depends of other frameworks like wordpress.

    • Lucid

      Fantastic reply :) I have no issues with multiple lines for clarity and this is also great for beginners. Speeding up the thing and reducing the code is something that can be done while customising it.

    • Roy Anon

      Comment of the year!

    • booyaboo 99+2

      sorry but this code is written worse then a highschool project. And yes no OOP is applied, no separation of concern, hard linking etc… it is these kinds of code writing skills that give open source a bad name! It may have been initially written last century or what not that is in no way shape or form a reason to keep it that way in 2019!!

  • Daniel Kerr

    so after reading your profile i suppose you recommend a code base like Symfony2.

    wow! how many years has that project being going now? I remember it just starting out about 10 years ago. and its still scraping the the bottom.

    talk about flogging a dead house. its like zend framework. another fad thats dying the death it deserves!

    no serious open source project uses them because they are bloat.

    • ferisoft

      Yeah except Drupal 8, PHPBB and so on that use Symfony2 components. Also looking at the most popular packages on composer I see mainly packages that are either symfony ones or part of the full-stack symfony framework distribution:

      Actually the architecture behind the full stack Symfony2 framework is way superior than the MVC framework thats in the core of opencart for a complicated application like a full-blown shopping cart. Thats not even my point, im not recommending using Symfony or Zend or whatever else, write it yourself if you want to reinvent the wheel, thats not the issue, the issue is the lack of best practises and solid architecture behind the software that you built, heck there isnt even a testing framework in it, how do you guys write tests for stuff in OpenCart…oh wait its not even tested… :)

      • my2cents

        1) FROM: http://forum.opencart.com/viewtopic.php?p=72582#p72582

        General feedback and suggenstions about OpenCart

        by cstuder » Tue May 18, 2010 5:50 am

        cstuder wrote:
        Coding guidelines
        The trailing ?> are also not required and always the source for potential problems.

        DK reply: Idiot

        2) FROM https://github.com/opencart/opencart/tree/master/upload/system/library

        removed ?> from all files with classes in them

        took DK just a little more than 3 years to admit even that!!!!

        • cprksh

          i think repeating of code is acceptable with it’s best loading time.

          • my2cents

            My opinion is that nothing should be write twice.

            When you need to change it, you need to change it twice. What happens when you have the same stuff repeated in different files. Why just not refactor it?

            Repeating code makes controller actions too long and not very readable.

            Translatable text should not be handled inside a controller action.

            Why store html encoded data in the database?

            Look at the auth code for customer and admin users. The password crypting algorithm is repeated inside every query.

            That is very error prone and silly.

            Opencart has an overall clean design. Coding leaves a lot to be desired.
            So developers should focus on improving the underlying framework or move to a maintained framework. It does not need to be ZF2 or SF2. Could be Yii, kohana, laravel.

            It will pay back…at least just to avoid that totally unacceptable thing called vqmod.

            Extension can be added using mixin-like classes, class inheritance (kohana cascade for example) and especially events.

            using xml to instruct how to replace/insert/delete part of the code is quite illogical for a serious programmer.

            The main developer should stop adding new features and rethink in new terms some of the basic stuff.
            It’s not 2004 anymore. A lot has changed and good things are now in PHP that weren’t there before. Bringing all that into openacart will make it a better platform. …but i understand there is a lot of business around the extensions….

            ..but again…my 2 cents

          • ferisoft

            Keep in mind loading time and scale are not the same thing. What you need for a web environment is scalability not just fast load times from one app server. There are no scalability mechanisms in opencart. There is some sort of retarded file cache thats not distributed and slower than just querying the DB, and you cant abstract any of the other components such as session, filesystem, etc in order to scale them. So as soon as you start to grow, you either have to rewrite the entire system or export everything, delete it and start from scratch, which was the whole point for writing this article. Also as soon as you start getting some sort of concurrency you will have tremendous issues since MyIsam locks on table level not row level.

          • opencartuser

            You mean like this?

            if (!$this->error) {
            return true;
            } else {
            return false;

            instead of just

            return !$this->error;

            i use opencart but the same code over and over again…kind of a copy and paste framework.

          • techchattr

            Or 1000s of lines of:
            $this->data['heading_title'] = $this->language->get(‘heading_title’);
            $this->data['text_my_account'] = $this->language->get(‘text_my_account’);
            Notice key names…same.. o_O

          • splatterHead

            Would you little bitches stop the clatter?
            If feri soft ? has better ways for solving code then write them and submit them to use. shiz there is always a better way of doing things so do them and make them public. standing around pointing out flaws is not helping any one, it sounds like your smart so write some fixes and lets see if it improves something.

            Daniel, why do you care what a guy who has started a fight just to make money advertising other carts thinks!

          • techchattr

            Im not making any money from other carts nor are they perfect. But they are much better than OC simply because its hard to be worse in a technical aspect. Pointing out flaws helps everyone its called bug reports and its a concept that doesnt fly very well in the oc community as you can see from dk replies. On why i wont fix it because the fix would be shift+del and start from scratch any patching here and there wont help its just too flawed.

          • goinindia

            so ferisoft and techchattr are the same single persom , with MPD

        • ferisoft

          Yeah I see most of the points clearly overlap, but DK replies in that post are hilarious. Clear lack of knowledge, clear lack of professionalism, clear lack of experience. Just goes to further highlight my point that you shouldn’t ever be using this system after reading what its author has to say.
          This is what made me cry laughing though:
          “You don’t know OOP! go back and do more research and try and filter though the crap thats put out by idiots! Like the people at Zend.”

          If you think the people at Zend are idiots, uhm why did you voluntarily decided to use their product(PHP)? At least I mentioned you were an idiot but I was forced to use Opencart, i didn’t choose it…

          • kevin

            Doesn’t look like his “lack of professionalism” has hurt his rating on Opencart downloads lol
            Still going over every other eCommerce solution out there haha.

          • ferisoft

            Its great that people like it I would wonder why any DEVELOPER would anyone download it after reading this post though and again that was the whole purpose of the post, it was intended for developers by a developer.

      • Daniel Kerr

        components are different from the actually framework. also Symfony creators the people who created many of these compents. they are taken from other projects and just used in Symfony

        • ferisoft

          Really, how are they different? :D

          • Woods

            Feras – I’m no programmer, but I do know a thing about ethics. You straight up attacked this software. Then get butt hurt when you get attacked back? You’re a hypocrite. I’ll chalk it up to youth and hope that one day, you’ll look back and see that you are the asshat here.

            I tried Magento and unless you’re a programmer, forget about changing anything on your own.

            I’m using opencart and it works. It’s fast and does everything I want it to do, reliably. You may argue with all this techno jargon crap, but there is one point that you will not win. It works really well and is easy to configure and modify.

          • ferisoft

            I dont think you read the article or understood it. It is targeted specifically towards developers and it stresses weak points in OC’s architecture and why its not suitable for any SERIOUS e-commerce work. Sure you can install it and sell a few products, handle a few orders a day and all that, but as soon as you start getting thousands of visitors it will start showing its weaknesses. The post is mainly targeted towards people who are developers and are considering OC and a few other options as a starting point for a project. It clearly outlines the problems with it along with sample code. Anyone is free to interpret them however they want. I am glad that the software works for you, unfortunately it didn’t for me because of the reasons outlined above, so I decided to share them and spare a lot of headaches for other people.

            I don’t recall where I am being butt hurt or hypocrite really? I show clear examples of flaws in OC and all the people who commented seem to see them. The author DK, hasn’t come with any solid answers to those, except for bullshit and bullying not towards me only, but anyone who ever dared to argue his ridiculous architecture decisions (you can see references to threads in the OC forums where other people voiced similar issues as me), instead of point responses and explanations to those decisions. I dont understand how my first html learning project that is still online (from 6 years ago) is even remotely related to the points in this post?

          • my2cents

            …and did you know that he stores htmlencoded data into the database, because he’s too lazy to create a plugin system to escape variables in the views???…well he encodes all the request parameters…so when you try to use smtp authentication with password containing htmlentities you cannot connect….but he have had only 14 years to rethink that…

          • Woods

            You’re blowing things way out of proportion. To attack a guys livelihood with exaggeration is morally deplorable. One day you’ll get cornered and maybe then you’ll realize the error of your ways and why DK is pissed and striking out at you and others. Technically I’m sure that you make some good points. Ethically your in big trouble here. Check yourself.

          • ferisoft

            If you are not a developer how do you know it’s out of proportion, when the article is mostly technical? The system is fundamentally flawed on many levels and I am objectively reviewing it by examining the code and providing clear examples. It’s not a personal attack to anyone and DK’s name is not mentioned anywhere in the article, the only personal attacks came from the author really. His livelyhood is not of my concern (its called freedom of speech in the developed world), again the point of this article is to spare fellow developers tons of pain and as you can figure after reading the comments I am not the only one.

            And I see you are clearly defending the guy, which would be OK if I was the first raising those issues so he had no time to address them, but those are fundamental problems that were raised many many times about OC, and the author did nothing except to personally attack the people raising concerns and giving advice (calling them idiots, morrons, incompetent etc), while actually the only incompetent person seems to be himself fooled by his denial to accept the truth and constructive advice. No serious person who develops software and receives valid and polite notes about clear problems answers like that…

          • richarddale

            Woods you’re talking shit my friend. Nothing wrong with expressing an opinion. I’m a front end guy and I’ve just used OpenCart. Most of its templates and CSS are out of date but I didn’t find the system too bad. It might not work too well for large projects but for smaller stores it worked great for me and my client loves using it.

          • R. Rogerson

            Out of date? It’s a mess.
            2 JS versions for adding to cart – called from 2 different locations.
            JS calls in the header (local only, no CDN’d stuff).
            Half the CSS seems redundant … not to mention the Div-itis and ID/Class-itis.
            (And don’t get me started on set heights and position absolute – changing 1 thing requires modding 6 others!!!)
            (Fixed width? In this day and age? Really?)

            Lets all be honest here – “it’s acceptable”.
            It’s not good, nor great – but it’s free, and fairly simple/easy to make basic/minor changes.
            The code base, the structure, the naff queries, the design – all of those are bearable for mom-and-pop stores. They don’t know what’s under the hood, and generally don’t want to. It runs, it does the job. When they want something serious, they leave and migrate to a proper ecommerce platform.

            So OC is acceptable as a launcher, and passable for small outfits.
            For any serious sites (speed, usability, accessibility, seo etc.), it’s a lot of work to fix, to the point you might as well go for a different platform (or fork out over 500 to get it patched … then struggle with updates!)

          • stefa

            great post! I can only aggree on many of the aspects you mentioned. Can you recommend any alternative free Ecommerce product similar in performance and complexity to OC?

          • techchattr

            I tend to like Magento, but since you say similar in complexity and performance, give Prestashop a try: http://www.prestashop.com/
            Its definitely much better written than OC and its more feature rich out of the box too…

          • goinindia

            ok so finally the cat is out of the bag you are a magento developer… I can understand the pain opencart has caused to your bottom line

          • Steven Mars

            I’ve done magento development. For a client who understand security risks, and a developer who understands how to turn cache on, it’s a good solution. FYI I mostly do prestashop work though.

          • goinindia

            I was doing prestashop in 2010-2011 but discontinued because of 2 reasons:
            1) Apps were way 2 expensive
            2) Software was very heavy so website used to take some time to load.

            These problems were resolved by opencart. But yes it did come out with its own set of problems. The checkout of opencart is no where near to the awesome checkout of prestashop. Also developing in prestashop is much easier. Also prestashop code is way much better than opencart.

            But everything else is much better in opencart

          • Open Cart User

            I’m currently using Open Cart because it seems like the most cost effective solution (for me) to run an online shop. I’m no coding guru, but I can tweak things and get by so open cart suits me well. One thing I must agree on is that Daniel Kerr is a total W@NK3R! I do not understand why he has such an overly defensive posture about everything. I once posted in his forum about a potential security flaw. I was then banned from the forum. When emailing to ask why I was banned, I just got crazy aggressive rants like you see in this thread. This guy is sure to have a heart attack before 50 unless he learns to relax!
            I was previously using Cubecart which is quite similar., but not “free”. I’ve not found a product like Opencart(plus paied addons) that actually works and is equally cost effective. So at least for now I will keep using it. When you consider setup costs, monthly fees etc, I find it works out OK. There are however features that you must buy as an addon that really should be standard in the program. (product options updating price etc) It is just such a shame that the admins are such egotistical @holes as if they approached it with professional attitudes they could really make it great.

          • Steven Mars

            I would switch to prestashop, 1.6 is really good

          • Dave N

            Shame that it’s gone so far and neither side can back down.
            Here is my 2c:
            When deciding on an e-commerce solution there are many factors. The specification should dictate what you need completed. The initial points in the post are valid (code repetition isn’t great, polymorphism seems misplaced if non-existent, transactions are critical…) but for the majority of simple online stores opencart is a godsend. It’s simple to setup, simple to modify (small modifications/touch ups) and simple for non technical users to administer.
            I like using it for simple stores that have less than 100 products and roughly 20 transactions / month.
            I don’t mind VQmod either for simple things, at least it’s simple to see which core files are modified. Not promoting it but not bagging it.


            This article does attack a free bit of software. The points are valid but represented with an opinion which (in my opinion) is too harsh.
            I agree that there are numerous improvements that ‘could’ be done and probably should be considered by the developer (opencart 2.0?)
            I will continue to use opencart whenever the need arises telling merchants that we are using Opencart and noting down potential limitations should the store blow out be hugely successful.

        • imho

          4 simple and hopefully useful advices:

          1. (try to) learn english language
          2. (try to) learn serious php coding
          3. (try to) learn a couple serious frameworks (they are actually a little more than their names)
          …after that, you can comment on them.

          (if you ever used zf2 or sf2 you would know that they are a collection of decoupled components, you can pick what you need for your projects….many other projects actually do that)

          4. if you haven’t appreciated the tone of 1.2.3, remind that to yourself when you post replies to other people.

          the same goes for opencart:

          before criticising opencart, keep in mind that the project is mostly an effort of a single individual offered for free to anyone (including yourself…the reader). Take a look at the overall design and recognise that it was clean even at the time when oscommerce ruled and presta hadn’t a single front controller.

          people with more skills than the oc developer are welcome to join the project and help improve it bringing their knowledge and contributions. the oc developer(s) is(are) welcome to review contributions without offending and tagging people as stupid.

          • Daniel Kerr

            my poor english is because im typing on my phone.

            also your lack of experiance as Programmer is showing. you should know its harder to code simple code than complex code. writing optimized, straight farward code takes years of experiance.

            also both of you are cowards to critise me when you have not posted links to
            anything you have done!

          • imho

            So if you haven’t seen any of my work (which btw is property of the company(ies) i work(ed) for), how can you say that i (we, everyone that is not you) lack of experience. I’ve been a software developer for 20 year. I worked and work in c, c++, java, php, ruby, perl. I wrote a couple of php framework and carts for customers back in 2002.

            I agree with you that it’s harder to write simple code, because REPEATING CODE IS HARD TO DEBUG HARD TO READ AND TO CORRECT. so it makes you waste a lot of time.


            In my opinion, Opencart project, your project, started with a clean design. Merits to you (the 2nd part of my comment was weighted on your side). But wake up, it’s not 2004 anymore.

            Try to be a little humble and listen to what other people are trying to tell you.
            The impression you give is that you flag as stupid every(thing|one) that you don’t (want to) know and that is arrogant.
            Not everyone who’s not you is stupid: that’s just statistics. And learning from others makes everyone better. If you don’t think so, good luck to you.

            As a proof of good faith, please get rid of those language assignments in controller methods.
            Just build a view plugin to do that automatically. Controller methods should only let entities (raw arrays in opencart case) and services play the game…

            …but these are just humble opinions of an inexperienced and stupid guy…tomorrow i will ask my company to fire me for being so.

          • Daniel Kerr

            “I agree with you that it’s harder to write simple code, because REPEATING CODE IS HARD TO DEBUG HARD TO READ AND TO CORRECT. so it makes you waste a lot of time.”

            this is what search and replace is for!

            another big the difference between opencart as a framework and ZF and symfony.

            Symphony uses the template system twig that is nearly 1mb.

            Zend frameworks template system includes 40 files on every page load!

            OpenCart template system is 104 bytes and is just one file. On a page load there i s generally 90 includes.

            Symphony uses swift mailer which is over 1 MB.

            Opencarts mail system is 10.4kb

            So a part from copying and pasting code to produce each desired page which is the more efficient framework?

          • noname

            Daniel, search and replace is really not a tool for good programmers.
            “if (substr($request->get['route'], -10) == ‘__construct’) {” are you kidding with that kind of code? don’t you know what regexp language is? e.g.

            preg_match(‘/__construct$/’, $request->get['route'])

            The project size is not a measure for speed, by comparing relative size and feature capabilities, its way more richer that yours opencart “template system”. They has smart caching too, so code size is not related to speed in any case.

            Btw. look at the symfony 2 validation and I cannot imagine what cases you cannot cover with that validation component.

            And don’t try to invent all stuff by yourself “your own opencart mail system” “your own template system” wtf? who cares. better use 3rd party components which is used in many systems, has many bugfixes and are still maintained.

            Its looks like you are some kind of person who are closed in your room and don’t read any news, any books, any information, you are just building your world just from your own imagination. Like psychopath.

            PS. I see you love to copy and paste and don’t imagine how can we build a systems without a copy and paste :)) I remembered one coworker who duplicated each method which he has needed to change, and named it methodname2 methodname3, and called its named method instead of original :D It was really funny then he didn’t have a clue who could possible to solve that problem without copy and paste :D has no clue about polymorphism, inheritance or overrides :D

          • Daniel Kerr

            “And don’t try to invent all stuff by yourself “your own opencart mail system””

            so i should rely on 3rd party projects. I should include a file that is an added 1mb and god knows how many includes for such a simple task as sending a mail.

            My final thoughts:

            There is a reason why opencart is the 3rd most popular ecommerce solution in the world even though we have never spent a penny on advertising, unlike projects like magento which has spent millions. Its because i never used a bloated framework like ZF and symphony and because i don’t listen to sh*t for brains code monkeys who are going to spend the rest of your lives working for slave labour wages!

          • techchattr

            Get yourself together dude…3rd most popular. You sent me two websites. I cant imagine more than a dosen bigger websites using this piece of shit, one of which was actually made by me, hence the blog post. No self-respecting CTO will choose opencart for any meaningful ecommerce work. Sure to sell 10 products, who cares…And I dont know about the slave labor but seems like you are too broke to even hire a designer… lol

            But to everyone reading, after going through the comments I am pretty sure how solid of an idea you have right now about the author and the quality of the software, so I hope this helps your decision to move away from OpenCart.

          • my2cents
          • techchattr

            But thats what the Cambridge IT professors advised him to do guys, allow access to constructors, getters and setters from the URL and throw plain errors and warnings…Its a best practise, didnt you know it?

          • ecommdev

            That would be that professor who now lives under a bridge on the Cam river.

          • stefan

            Hey Daniel,

            you created a really successful product with opencart! Thx for that! Although some of the points made in this article are quite vaild, why not even discuss some of the points?

            – are you really satisfied with the vQmod search and replace approach? Have you ever tried to update a OC installation were you added several customizations with vQmod? Have you ever tried to use source code highlighting or other features from an IDE for php coding inside xml tags?

            – did you ever needed to test OC extensions/code with acceptance/unit tests?

            – did you ever needed to switch off functionality you don’t need like comparision, affiliates, manufacturers. It is possible, but with effort…

            – synchronize orders, customers, products with an ERP System via an API?

            I don’t see the need for bloating OC with frameworks like ZF or Symphony. Transperency for the community of develpers would be much more effective, why not create an open roadmap and integrate the best ideas of developers, which are willing to commit? Anyway keep on with the great work!

          • swed

            Good thinking stefan, I second that! Especially this part: “Transparency for the community of developers would be much more effective, why not create an open road map and integrate the best ideas of developers, which are willing to commit?”

          • Josh Arcadia

            Yay! I see Daniel Kerr defending his methods, rare on this world to hear from developers (i.e. vBulletin, Xenforo, phpFox, etc) and even Opencart makes more money and generates more money than those mentioned…
            Why the critics are saying is: I want you to do what I want cause I am helping you…
            Yes the suggestions are valid but not in the way they were explained…
            I support DK cuz he gave work and let make money too many ppl (like me 10k and counting) and not those know-it-all telling others how to live life…

          • Steven Mars

            Excuse me, but I take offence to this. I’m a shit for brains code monkey spending the rest of my life working for slave labour wages? Here I was thinking I was a reasonably good engineer with decent experience, a good job and a good education providing a living for my family. Oh, wait. I have to use your solution, one that has no documentation for the latest version? Yeah, right. I use prestashop and Magento with excellent results – why? Because I know what I am doing. Your “excuse” is that open cart is built for beginners but it has no code comments? How will a beginner learn from that? The more I’m reading your comments the more sure I am that I nor anyone in my company will ever use your product.

          • atir

            Opencart owner Daniel is a crap! This is not at all a professional company, it makes feel that he is sitting with a team of 2 people like a house company and does whatever his shit mind make him do.
            He is not associated with developer company, Developers work on opencart and suddenly finds account banned after 3 years. He eats their money. Even regular buyer account gets banned of no reason. My AMC client since 4 years, having sales of 90 orders daily on his opencart store got banned because he raised a paypal dispute. he too lost 400$ worth software’s he bought.

            People should go with other professional companies like magento, oscommerce etc. infact this is where Daniel finds update and put in his cms. He copies it all from there still opencart has lot of bugs which we developers now and end user might not!

            We had 1500$ sold amount and 500$ paid downloads in account. Lost total 2000$. Daniel ate it all. I am filing a legal case against daniel since he is not transferring our money against our copyright sold softwares. Begger!

            You get this abusing language here because you used terms like f*ck, as*-h*ole etc on a warm professional communication . this shows how much professional you are. you really deserve it

          • Daniel Kerr


            you behavior is disgusting. you were caught many time reselling other peoples work.

            you want me to post your companies details online? no problem for me.

            below are the comments from your account:

            Date AddedComment01/11/2014 05:53:23reselling isenses work!



            30/12/2014 02:34:50Hi Daniel,

            We receive a complaint from andy2012 telling kodecube steals his code

            He provided some evidence here:


            (left side our module, right side his one)

            our original code – https://dl.dropboxusercontent.com/spa/30qy60dkw47nal1/lhdxwzxj.png (look on dots and lines)

            code in his files – https://dl.dropboxusercontent.com/spa/30qy60dkw47nal1/k_1x1tiz.png

            white-spaces (dots) and tabs (lines) is identical which proves that code was copied.

            his code – https://dl.dropboxusercontent.com/spa/30qy60dkw47nal1/cibbn716.png

            our original – https://dl.dropboxusercontent.com/spa/30qy60dkw47nal1/lsdrea9d.png and https://dl.dropboxusercontent.com/spa/30qy60dkw47nal1/x6sq5yly.png

            Please decide if kodecube needed to be banned again

            Best Regards,

          • Bogart

            I agree this… he also did the same exact issue to me. Daniel is really unprofessional.

          • HCM

            OpenCart is a massive piece of shit. Upgrading to 2.0 is like pulling teeth. Never again. Look at your own fucking support forums to see how much trouble users are having with it.

          • Andy

            I already see what kind of programmer you are! Regular expressions generally are extremely time demanding operations. In this particular case you have replaced a relatively fast substring operation by preg_match which will execute up to 20 times slower than substring! Way to go! You should join Magento team, they are experts at super-slow e-commerse solutions! ;)

          • imho

            “this is what search and replace is for!”

            oh c’mon D. !!!!!

            i admit i like twig (you can choose to use php template in symfony) for it’s clarity, but i don’t use it because i don’t like compiled template cache. I prefer pure php.

            But ZF2 use 1 view file + a decorator (layout) => 2. Everything else is achieved using the partial template helper. Opencart uses 1 file view per block. header, footer, left, right, top, bottom, center area. so at least 6.

            I don’t mean for opencart to use zf2, but improving the bas framework to look a little more modern…something like kohana or yii (2). There are a lot of useful programming patterns that could benefit the opencart project. You use a few of them yourself (closure table, registry, mvc).
            I don’t mean for opencart to use doctrine2 either. But using popo entities would improve the design.

            If, as it’s been said, opencart is a learning project, it should teach best practices.
            if one needs a learning framework, i cannot think anything more complete and modern than zf2.

            About search and replace: if you think it’s a good practice, why do you put model code into model class methods? why don’t you just repeat sql code in each controller? I’ll tell you why, because repeating code is not good, and you know it.

            if an extension needs to something that the framework already does, it should always be able to call an object method with a well defined signature (doc blocks would help too), not copy the code from the framework. if a new version of the framework change the code, the extension should not be needing to be changed too.

            i just read in other comment that validation is not needed in a framework.

            Well, in my opinion validation and form builder are a must for a framework, since ther are always needed in a (web) project with user interaction. Every framework i use(d) has it.

            Create a validator class and use it like a service, like the tax class. You can put validation configuration in files or even as customisable parameters in the database.
            Standard validators covers most of the cases.
            Every validation system i used lets you define new validator that use any php callable.

            if ($customerForm->isValid()) {
            } else {
            $errors = $form->getErrorMessages();

            looks much better and simpler than repeating the same validation code in different controllers

            so something like: $customerModel->customerExists($email) can be called to cover the db table row case.

            I also think that the simple model classes in opencart should extend common base classes shared among admin/catalog …same reason…avoid rewriting the same code twice.


          • Daniel Kerr

            this is the issue you are not getting!

            validation can not be be used the way you describe above because the requirements may change depending on which controller calls a model. the validation you describe is not a one solution fits all types of validation.

            as for the layout stuff. who cares. you are including close to 500 – 1000’s files per page load for many zend framework.

          • imho

            take a look at Yii use of scenarios in model validation…..

            yii doesn’t use 1000 files (well zf doesn’t either)…and it covers 95% of the cases with its standard validators….when i need more i add a per class validator callback….. this “issue i’m not getting” saves me a lot of time and lines of code and let me look at the project(s) with less headache.

            about controller callable methods via request url, i believe it would be better to prefix or suffix the action with a name as “Action” or “action_”.

            In this way you avoid name collisions with other controller methods.

            Another possibility is to add a $callable_actions array in the base controller, customize on a controller class basis and check it before calling it.

            if ($controller->isCallableAction($method)) {
            $controller->$method($args) ;
            that it’s what i did as a quick fix with opencart, similar to Silverstripe solution on ContentController subclasses.

          • Steven Mars

            This just sounds like a lot of excuses to me. Real developers do not make excuses, they make products. That work. Properly.

          • javaguy

            …citing Weiss….I’ll let you find out who this is…

            “Copy-and-paste is a weak design option, fraught with significant liabili-
            ties. First, there is the problem that if you copy garbage, you wind up with
            more garbage. This makes it very hard to fix programming errors that are
            detected, especially when they are detected late.”

            …enough said!!! This closes once for all the “copy-and-paste” matter….

          • Steven Mars

            You are seriously comparing opencart to zend framework, and saying opencart is better because it loads a page faster?

          • ferisoft

            Ok ok Mr. Pro, at least dont do stuff like that in your pro code:
            and which part of the snippets in the post you find simple…they are plain stupid, especially major components as routing and validation, lets even forget the language as a minor thing…

          • Daniel Kerr


            so? do you see any errors? is this in issue with the frame work? no!

            easy fix add in index.php

            if (substr($request->get['route'], -10) == ‘__construct’) {

            “especially major components as routing and validation”

            routing and validation classes are not required to build a framework.

            validation classes can not cover every possible situation such as validating if a customers username is already in use. using simple php functions are enough for most validation without building a class.

            also applications using opencart can be built very quickly if you remove the language layer. everytime a new layer is added obviously creates more work.

          • techchattr

            Its not an issue of the framework that it allows me to access constructors and destructors of controllers from the URL ? I am speechless as always reading your ever so funny comments…

          • Abba Bryant

            They most certainly can. I routinely use a number of validation packages and I can’t think of a single one that I can’t tell to check if a row exists in a table for a provided value. Pull your head out of your ass.

          • Steven Mars

            “routing and validation classes are not required to build a framework” – EH? oh, and why in gods name are you routing to a constructor?

          • malinda

            i also so need to tell that open cart has some coding issue like repeating, but readability is perfect in open cart i’ve done many projects , some projects got less than 1 week to customize every thing that my customer asked and it’ gives more power to developer to do the changes what ever he need . :D

          • R Rogerson

            More than fair comment.
            The problem is that they tend to drive away anyone that doesn’t share their views/mindsets.
            Pointing out a flaw (no matter how nicely you do it) seems to result in flack and grief.

            I can understand taking it personally, it’s their baby!
            But if lots of people say your baby is ugly … then sorry to say, you have an ugly baby.
            Ignoring them will not make your baby prettier :D

    • noname

      Daniel, have you ever been working on some php open source system instead of your created open cart? Have you finished university of computer science? Or are you that self learned guy who don’t read the books, and only do coding. Stop taking drugs and look around one day. Many companies switching to symfony2 full stack framework, or at least uses some of components e.g. HttpFoundation.

      And your Open Cart don’t follow any of standards of object oriented design principles. Only procedural piece shit of code. And you didn’t even find out how to design extension mechanism :D

      VQMOD is what ? text search replace utility using regexps? its for programming? where is the IDE plugins to support autocomplete for that? and debuging? :D
      Open cart its not for a professional programmers, its for amateurish schoolkids, as you was then you coded that peace of shit. Its popular not because its good, but because many stupid people cannot understand more advanced and well designed frameworks.

      • Daniel Kerr

        if you actually had any real coding skills you would have your own open source projects.

        as well as a degree in software engineering i also had phone calls with Cambridge IT professors and meetings with members of the British computer society telling me how well structured my code was.

        • techchattr

          Whoever told you that, tell them to tear their diplomas and NEVER EVER go in a classroom to teach programming to people. They will make a huge favor to society. If your code was that well structured you weren’t going to have posts like this one and people complaining like the ones that do here and on your own forum. Structured code is not subjective, it either is or is not…and yours is clearly not if you get that amount of complains. I posted a couple of code snippets in the post which are definitely not all the examples of ridiculous code in OpenCart but anyone with sub-standard PHP skills will cry laughing at those so…yeah…

          • John

            Guys, settle down… what’s the point of this argument, Daniel has done a brilliant job with OC, moreover he has created tons of jobs for people around the world who provide development services based on OC – which is way more important than whether a piece of code or data is the most efficient way of doing something. The whole point of a project is that you keep developing it – I’d rather be in Daniel’s position with a solid piece of software to build upon (that also no-doubt has a decent income stream for him via Plugins), which helps the ecommerce world than to sit here complaining about it. Get a life…

          • techchattr

            Your same argument goes for any other open source project, so when there are better open source e-commerce alternatives why not use them instead…

          • goinindia

            like magento… right?

        • Steven Mars

          I do have a degree in computer engineering and I have more than 15 years experience in the industry. There is no structure to your code, there are no comments, everything is repeated at least once. Things that other people have done properly you have thrown out so that you can claim to have written it yourself (phpmailer, for instance). Opencart is not scalable. There is no documentation for version two, even though that is the current stable? Or is it? You know that before you do a foreach you actually have to validate the data you want to loop through, right? Just because you are capable of making a few things work in PHP, doesn’t mean you should. I can do some engine work on a car, but even if I gave my time for free to work on someones car I’m going to mess it up, because I don’t have experience. In 14 years you have what open cart is now? Good God man, what did it look like 14 years ago? How have you not learned anything in 14 years?

          • http://manchestervacs.co.uk/Dyson/ Manchester Vacs

            Steven, I’d like to get in touch with you as you seem to have the skills I need to repair an Open Cart installation. I don’t seem to be able to message you, but Googling my user name will find me.

          • Steven Mars

            Have mailed you at your site

    • raushan

      Daniel Kerr hi i am using your opencart from last 5 years i am not facing any problem and i appreciate you that you give a eCommerce platform free of cost, I am an Indian brain and i know what the code is,In India every small shopkeeper want a website but they dont want to waste too much money on to this but your platform is very best fro them. please keep growing so that we can learn something and grow.

      Raushan Kumar (India)

    • Dennis G

      I’ve seen a lot of the big companies use OC. Wal-Mart, CVS etc. It cant be that bad. It is better than using WIX lol

  • Steve

    Daniel is a inarticulate DICK who cannot handle alternative opinions or constructive criticism… not good traits of someone and definitely not of someone who is the owner of a company.

    • ecommdev

      That what the guy’s name initials DK stand for.

      Don’t forget the misinterpretation of best programming practices:

      KISS: keep it stupid, stupid! (…oh no wait, it’s a rock band)
      DRY : duuude…repeat yourself! (god, i wish i had some water)
      SOLID : Software Organised Like Inconsistent Dirt. (is that ice?)

    • Brian

      It is rare for me to actually enter into an internet conversation, but having run across this item, I simply could not pass it by.
      Having been involved in computer science for over 45 years as a programmer, professor and member of the apollo space flight program development team, I feel that I have the credentials to state the following.

      Young Feras, I applaud your initiative to provide information that you feel is relevant to the programming community, However, you only supply a single side to the argument.
      As you mature and develop, you will learn that there are TWO sides to every situation.
      As a programmer you need to know that every statement has a NOT statement associated with it.

      But enough of your lack of education. I shall dispense with a couple of observations on Open Cart. and yes, I have had experience with Open Cart.

      First, as having designed several custom ecommerce solutions for large corporations I feel you need to know that my own personal ecommerce site is based on Open Cart. It works fine, as it is intended.

      Open cart is a simple, elemental ecommerce solution for very small web stores,. I.e. those with limited market access and internet usage. For that purpose it is perfect. At that level of usage, the coding does not matter as long as it works. You seem to be under some misguided impression that coding must always be pure. Not the case.

      The code we developed for Apollo was indeed as pure as possible. It had to be. The code I wrote yesterday to get the current value of silver fed to my computer was nothing less than pure garbage, BUT, it gets the job done. The same applies to Open Cart in comparison to other, more advanced ecommerce solutions.

      Your article does not appear to actually be a notification of Open Cart’s short comings, nor does it provide any viable information as to WHY it is designed as it is. More accurately I feel, your article simply seems to be an avenue for displaying how intelligent and professional you seem to believe you are. As to this final statement. I would suggest that when you finally get your Bachelors, Masters or doctorate in computer science then you should pursue your journalist interests. Until then you may consider keeping your opinions within your personal sphere of influence.

      • ferisoft

        Thanks for your comment. I tend to disagree with you. My impression is that if you are running an ecommerce business and your business depends on a piece of code, you would like that piece of code to be “pure” and as well though of and implemented as possible. This is definitely not the case with OC and the issues with it are not minor but more in the “mind boggling” magnitude. Furthermore there doesn’t seem to be any will or desire from the community or author to fix them or address them at all, which makes the situation even worse, his attitude is actually amazing, that’s why i had to write the article in a rant-like way to draw more attention to those problems and as you can see from the comments I am not the only one who shares them.

        Lastly my article was written specifically towards developers considering which Open source solution to use for their next project. I believe that working in OC as a developer is pure torture and given your experience as a programmer I would assume you have to agree. So yes if you are a guy who has no knowlege of development and want to sell a couple of products online, maybe OC will work for you. If you are a developer considering what tool to use to build upon, OC will be nothing more than suffering and dissapointment (again if you dont believe me, browse through the comments).

        If you believe that writing ecommerce applications the way OC is done is the proper way to go about it thats OK, I completely disagree…

  • Ryan

    Im a professional PHP Programmer/Developer (10+), and decided to try the Opencart software to save me some time writing my own. It looks good at first glance, visually it seems nice enough to show to customers, but it is fundamentally flawed. if you are thinking of using this, it will cost you more time than its worth…. it has serious issues under the hood and even UI problems which will make it hard for your customers to use.

    The project requires hacky modules with “hopes” of making it function like a regular shopping cart, and even then its still just a big hack job that will always be fundamentally broken. after reading through the comments by the owner on this page I now see why the project is the broken piece of crap it is.

    That’s my 2c worth,

    Have a nice day :-)

    • kevin

      I haven’t had a single problem creating modules. Every module i’ve custom created for sites i’ve built work 100% all the time.
      Never had a customer complain about the site isn’t working.
      Only complaint i’ve had from a customer is on a Prestashop cart, crap kept breaking so I took the business owner to Opencart and they easily do $35k a year and the only thing i’ve had to update on their system was they wanted to switch from USPS shipping to quantity shipping due to a change in their business.
      Your $.02 seem kind of invalid.

  • Peter Stuart

    Well, I think the comments you make here are valid. Some things in the OC framework I would like to change, like code repetition.

    I don’t know much about MyISAM and InnoDB so I am not going to bother commenting on that.

    Despite a little code repetition and a few MINOR things that DOESN’T affect OC’s performance and security, I wouldn’t go as far as saying it should never be used. However I do beleive the repetitive code you used as an example is great for beginners as they can see exactly what is happening, it’s kind of like reading how the page is being rendered.

    I am a freelancer in the UK and have used OpenCart for many small to medium sized businesses with very little hassle.

    I totally agree with Qphoria, it is great for new programmers, in fact, I attempted to use Magento and switched to OpenCart when I was new to programming and I have learned a lot about programming and PHP frameworks. Although I was a “noob” to begin with, it doesn’t mean that OpenCart isn’t suitable for selling items online. As a matter of fact, OpenCart has taught me that how simple and easy coding can be (of course I am not suggesting that programming is easy right away, there is always room for learning).

    So to any professional or new programmer, give OpenCart a shot, I love it and it has done me a lot of favours over the past 4 years!

    Oh, and Daniel, I’m 20 years old. I don’t think it is fair to judge a programmers skills because of their age. Zuckerberg was 19 going on 20 when he started Facebook.

  • Badr Elmers

    I think normal people and no programmers should not comment here, the discussion between them is going very well, and I learned a lot from this and them. I hope only that they remove some bad words (specialy Mr DK :) ) and continue sharing your knowledges with the world as you claim you create open source for the world .
    an Arabic proverb says ‘It is not a shame to take the wrong way.. But the shame is to continue in the wrong way” DK bravo and continue the good work please,we understand it s hard to accept all this points but as a normal son of Adam and Eve i didn t like your act when this happened http://blog.visionsource.org/2010/01/28/opencart-csrf-vulnerability/ , that s was a serious problem about our money and you take it as a joke and you insult the one who advice you to the good way!!!!!?? , I m noob and I speak from humanist point of view, but i think all is clear, repetition means noob, and DK doesn t accept easly neither quikly but his software is rising very strangely ,thanks to God that I did read this before choosing my second cart after using virtuemart ,then now I go for prestashop but I will comeback someday to opencart maybe DK will change then OC. but i like in OC the payment gateways in core.
    thank you fera for sharing this with us and do not be angry with the bad attitude of DK, it is not easy to break something you built hhhh but you did a good job, our DK is like this and he share something free with us so as a humain be I should say to him thank you ,what can we do just to hope to him a good wife that absorbs his nerves hhhhhh

    lol my first comment in disqus

    good luck to all and thanks to all specially to DK for his attempts to answer, he did cleared at less some points
    and sorry my english

    • SeeBehindTheLines


      • Badr Elmers

        there is no SHOPIFY SPONSORED LINK ON TOP OF THE PAGE!!!! maybe it s a temporary ad that you had lol, now I see maxcdn ad, this is not a static ad but a random google ad

        • SeeBehindTheLines

          ….i always get a shopify google ad just on the right of the OBVIOUS section.

          regarding the use of db storage for validation, that’s even worse than opencart!!!

          validation should be done by a validation service, not inside the model entities, not in the db layer (its purpose is storing validate data). Domain models should never be in an invalid state!!!!! You just use valid data when creating or updating them.

          i agree with many of the objections, but having worked with both magento and prestashop, If you need a highly customizable cart i would recommend opencart, just because it’s so easy to change things and make it do what you need.

          It’s just too bad the original developer didn’t switch to kohana or yii.

          Let’s wait when Varien recognizes that Magento is old and need to be ported to ZF2 (which is a completely new and cleaner framework than ZF1) to see how many developers will complain for the hours spent studying the old version.

          • steve

            DK is a tosser, read how he answers people on the OC Forum, he has no respect for anyone, Q as is head so far up his arse all you can see is the soles of his feet.

      • ferisoft

        This is a Google Ads banner, I am in no way affiliated to shopify or any other ecommerce service.

        • Josh Arcadia

          you mom is stupid and you father is in jail, that´s why you attack successful people that make more money than you…
          my technical opinion :)

          • techchattr

            I wont answer or delete that its priceless…Id rather have people see it when they google your name…

          • swed

            I’m certain that there’s something basically wrong with you. There’s no way you can reasonably have any knowledge what so ever about the mental state of ferisoft’s mom and the same goes for the present location of his father. And how do you figure your assertions relates to the topic discussed here? Judging from the post’s linguistic profile one might come to the conclusion that Josh Arcadia and Daniel Kerr are the one and same. Anyway, you claim to have made some 10k of money… how and in which currency if any? I think a lot of us reading your nonsense post are calling your information in question. That a person with your poor mental capabilities is able to make any dough in the field of software is definitely out of the question. Furthermore your approach here tells me that you are used to be somewhat careless with the truth. Obviously you didn’t belong to the brightest stars in school either. I really pity your parents that in all probability did their outermost to raise you to become a decent human being. If they were to read what you have accomplished in your post they would no doubt regard their hard work a gruesome failure and constantly wonder where they and/or what went wrong. techchattr decision to keep your post to be viewed by the world is just plain beautiful… It would be highly
            interesting to have your “technical opinion” on how much money, provided that
            you actually are able to make any, you will lose when your potential customers
            reads your disgusting twaddle here. Well, I didn’t expect you to sum it up and
            it’s of coz difficult to calculate but let’s say that 10 grand in any currency will
            appear as pocket money or small change by comparison. I truly believe you will have reason to regret your offensive and cutting words many, many times in the future.
            This is related to your text emoticon – HE LAUGHS BEST, WHO LAUGHS LAST!

          • Josh Arcadia

            Ok then… HA, HA, HAAA!

          • Josh Arcadia

            Ok then ¬¬

      • swed

        Using AdBlock will relieve you from seeing all the fatiguing Google crap…

    • ferisoft

      I agree for a non professional it seems like a good solution, you download it runs on every host, there are a bunch of free/cheap plugins etc. But again i stress i focus on development and more serious ecommerce work, as soon as you get into those OC is complete unfeasible and unusable. If you want to experiment with other carts and assess for yourself, check the examples at the end of the post. For your level of experience i would suggest to try out Perstashop, its definitely not as good as Magento or Broadleaf, but it’s very simple and much better written than OC, the authors are not dicks too so they take user feedback seriously and implement features suggestions and fixes all the time.

      • Shinrai

        I have to completely disagree with this post. While yes Opencart does lack some major features to make it a world class shopping cart. It’s opensource, therefore it can be modified to do just about anything. Some of it’s conventions or even database schemes are kind of meh. But in the end I have a client who runs a search though 20million+ records in approx 4 secs. It’s a solid code base for a shopping cart. Though needs many changes to make it work on a large scale. And yes I’ve worked with the other ones you have mentioned. Magento, Prestshop, etc. After over 400+ clients and nearly 4 years of doing nothing but ecommerce I can honestly say Opencart is my go-to when it comes to shopping carts. VQMOD was not made by the same guy as opencart. Though VQMOD did make a module for opencart as it’s relatively easy to change just about anything just with a drag and drop.
        Though I will note, most VQMOD module writers are not looking at the big picture, just their own module. Which causes many issues when adding multiple modules in the same system. Personally I have upwards of 70+ modules for opencart. Varying from Complete Diagram system to a caching system which can cache entire pages and update them automatically when the content changes.

        • ferisoft

          I am glad you are satisfied with a 4000ms database query in a web app context and that works for you. It definitely wouldn’t for me. Yes VQMOD is not required but you mention the caching module, how would the caching module have access to the core libraries to override them and enable the caching functionality if it’s not for VQMOD, right now thats not possible unless you go and manually change the files. Thats one of my main points there is no architecture in OC, there are a bunch of files tossed together and kinda working unless you start modifying stuff and extending it, then you have no choice but either modify the core files or use VQMOD, both of those choices are poor. I am not looking for solutions to change stuff with drag and drops I am a developer and I am looking for solutions to make my life as a developer more pleasant and more productive, unfortunately OpenCart is not one of them. If you tried Magento and Presta and you still prefer OC, the only reason I can think of for that is:

          1) you either are a non-developer or non-professional and OC is easy for you to mess around with

          2) you are very inexperienced and don’t have a clear knowledge of application design and proper architecture

          That’s all fine but if its the case and you completed work for 400 clients it’s kinda scary really. You say it yourself:

          “Though I will note, most VQMOD module writers are not looking at the big picture, just their own module. Which causes many issues when adding multiple modules in the same system.”

          There is no big picture to look at since there is no way to test the code, there is no architecture in the system. How am i supposed to test if my code is going to break some other modules code if there are no tests and everything is overwritting core files through xml patches left, right and centre. It is really JOKES.

          • Shinrai

            That’s incredibly ignorant of you. While VQMOD did not have access to half of the library/system files of Opencart until recently it wasn’t hard to make it have access through another vqmod. Now it does by default so my modules which gave it access had those bits of code removed. The ONLY file which is not modifiable through vqmod now is the index.php and config.php which should never be allowed to be modified through a module.

            Both prestashop and Magento make horrible choices in many of their programming schemes. And neither are as easy and as fast to modify as Opencart. You’re also failing to see the point in VQMOD/Opencart. VQMOD while yes does give you the ability to drag and drop and have new code on the site. It’s main purpose it to allow seamless upgrades. While some modules may break during an upgrade the core files are never modified thus allowing you to easily upgrade.

            In reply to “1)” you would be hard pressed to state I was either with the knowledge and the sites I have built. I’d post some links comparing the shopping carts but they are to laughable to even post. These are just as your posts show. People who didn’t get everything they wanted and jumped ship.

            Now lets give a real world example (not that I’m an Apple fan). An iPhone comes with very few features as a base. These features allow it to be comparable out of the box to any other phone on the market. But if you want more out of your phone you can purchase an APP. Galaxy on the other hand has MANY features, most people don’t even use half of the features. Thus making it run more CPU cycles then needed. Same is true for Magento vs Opencart. Opencart is a canvas, make some art. Afterall that’s what a programmer does. But here is a better question. If you’re so knowledgeable and can so easily jump to conclusions of insulting a programmer who disagrees with you…. Where is your shopping cart software? But before you say it… Any decent programmer knows better then to re-invent the wheel. But in that case whats your arguement for Magento or Prestashop? Yea you can modify the code, you can add modules/extensions. But at the end of a year when an upgrade is needed are you going to go back and re-write those 70+ modules again? Or in my case with opencart I modify the one or two which break during an upgrade and am done.

            In reply to “2)” application design is what you make of it. Any decent programmer could tell you that. You’re application could go through 50 different services and still be valuable. The question isn’t how it’s done it’s how efficient it’s done. Does it meet the requirements of the end user? And finally was it cost effective?

            And lastly… There is no such thing as “proper architecture”. I lightly touched on this in this in the previous paragraph assuming you were refering to the framework of the code. But if not reffering to the framework of the code then you’re way off as “proper architecture” in terms of programming would generally consist of how the project is assembled and in that case refer to: http://www.wbdg.org/design/dd_archprogramming.php

            But if you were referring to the framework. Then what’s to say one framework is better then another? Simple answer, there isn’t anything. It all depends on the project which you are programming.

            As a final note. If you want to see a shopping cart which just has a bunch of files tossed together go look at OSCommerce (one of the oldest and still one of the most used Open-source shopping carts). It’s what I would consider spaghetti code.

            But hey at the end of the day we all get paid to program. We hopefully meet our clients expectations. But simply telling people they have no experience and not to use a piece of software without any REAL reason not to. Yes some of the conventions in Opencart COULD be done better in terms of what the programming LOOKs like. But in the end it all gets the same job done.
            Your example of the foreach on the posts shows just how clearly you don’t understand Opencart. And anyone who doesn’t understand a piece of software has no room insult it.

            Funny Note: I used to hate Opencart. But then I got to using it and writing programs for it. Like I said I’ve worked with prestashop, magento, osc, cubecart, opencart. And yes many of those have some great features out of the box. But what if I don’t want those features? Many of them aren’t so easily turned off.

          • techchattr

            Have you ever programmed in anything different than PHP. Do you know what OOP means? I will rest my point there. I dont see a point arguing with a person that tries to explain to me that patching php files through xml changesets is a better approach than using abstraction and extend the system. And as to breaking modules both are the same, but in one case you have clearly written and defined code and in the other you have a bunch of xml’s flying around with no clue whats going on. As for speed, in web terms scaling is done horizontally and because of the lack of abstraction you have to start rewritting the opencart core or use a bunch of xml patches to change the system so that it supports horizontal scaling. Performance of the code itself doesn’t matter. But I really don’t know why I am arguing with people who even don’t understand those simple concepts (including the author itself ). It’s how scalable the system is and how easy to maintain/extend/test, not how fast the code is. If that was a concern it would’ve been written in C. Unfortunately OpenCart is not scalable (many explanations given in both the article and the comments), its untestable, and is extremely difficult to maintain because everything is essentially a patch… Actually I will stop answering comments like yours and focus on the ones that at least get those simple ideas. I am very worried that people who do not create ecommerce websites for 400 satisfied customers. Have you written 1 test in any of those 400 cases ?
            Also if you want performance go with Broadleaf it’s much more enterprise ready than the PHP options. In my comparison the language is irrelevant its more about how the system was designed and implemented. I get the impression from my work on OC that it was implement first, then figure out how to solve it (hence idiotic contaptions such as VQMOD). Have you ever seen any serious project have an xml patching mechanism as a sole method of extending its core ?!? WTF o_O

          • Shinrai

            Yes I’ve programmed in many languages. Just recently did a project in Perl. But the subject is PHP since each of the described Carts are written in PHP (for the most part).
            Patching is patching. Regardless how it’s done. When you modify Magento or Prestashop you are essentially patching it. However you’re more then likely hard coding it. VQMOD is xml yes, but it’s xml to search and add/replace code. The PHP code itself is still there just fine. The fact you object to it simply means you are unable to abstract the code without looking at it all at once.
            Easy to maintain/extend/test? Where in Opencart is it not easy to maintain, extend, and/or test?

            My “star” client has over 20 million records, his search runs in 3-4 secs. His pages load in approx 150ms. All on Opencart and all with VQMOD. When he wants to upgrade his Opencart he can. He doesn’t have to worry about what modules will have to be re-written into the files.
            The one thing I will agree is Opencart (out of the box) is not scalable, but neither are the other shopping carts mentioned. They all fail around 20,000-40,000 product records. Depending on the correlating data. And what portion of the shopping cart you are at. Specifically the search is the area where most fail out.

            Oh and to your OOP question. The funny thing about all of this. Is the basics of OOP is exactly what I’m describing, Modulation. Maybe you should read up on what OOP is and why it’s around. There are many ways to implement OOP and even more on how to execute it. But all of them share the same thing. They are designed around being Modular and scalable. Keep in mind this is all based upon thinking of OOP from the programming level and not the compile level. But hey lets not mix and match different portions of programming and get all flustered here.

          • ferisoft

            Well i guess well have to agree to disagree because my idea of clarity modularity and oop doesnt include xml patch files which use regex to overwrite and generate new php files out of, lack of testability and clear code. Its cool if that works for you it just doesnt for me. As to the search look into elasticsearch or solr since 3000ms database query on the frontend is really not great. Good luck.

          • Andre

            Thanks for this post and your perseverance… but poor you…

            Save your breath, anyone finding any virtue in such a crime as vqmod doesn’t know anything about programming. And sentences like: “the basics of OOP is exactly what I’m describing, Modulation” make me want to cry laughing, modulating…

            Seriously, VQMOD! I think I laughed that one out for three days in a row. Building and selling plugins that search and replace code!!! That’s like fixing the space shuttle with duck tape.

          • ferisoft

            You were not alone I was in the office when i read this one and the whole team was laughing…

  • Pingback: Google

  • GWork

    Can you come out your own ecommerce platform? I will comment it.

    If you don’t have the time, please appreciate other works.

    • ferisoft

      So lets not have car reviews then, because not everyone is building their own car ?

      • GWork

        Well, if you can offer me a free car, I will appreciate it :)

        Every system has its own pros & cons. Trust me, if you can post your project scripts (if you have 1), I am sure others will criticize your coding as well.

      • GWork

        Well, if you can offer me a free car, I will love it instead of criticize it :)

        All the platform has it’s own pros and cons. I am pretty sure if you post your scripts, others will criticize as well.

        • techchattr

          Which I wouldnt mind one bit if the critisism is backed with code and remarks and i would be more than happy to fix it, something that DK doesnt seem to share. And I am not sure you would get a free car that barely runs and is a threat to drive – thats the case of OC, it somehow works but its almost magic…

          • goinindia

            ok so lets get it clear , are you unhappy that daniel has crated opencart or are you unhappy that he is not implementing the changes you have recommended?

            Can atleast that point be made clear

  • Mahendran Kathirvel

    Opencart, simply the best and good for small sized shop.

  • Lost in OC

    Having coded php casually for the best part of 15 years and being a coder since C64 days I agree with most of the comments by the OP.

    As a semi-retired bum, I started a new OC project for a small store and for the first week, reveled in the simplicity to plugin a module and watch it run. Thinking this was easy money, I ploughed on.

    Then I hit my first mod compatibility issue…. From that point it was time to start hard coding in the xml so I could trap what was happening. Then I started to SEE what was happening and my exclamation was a rather loud OMFG!!

    Then I wanted to add a page. Just an info page. Nothing serious. Yeah. Right. 3 files later I had “Hello World”. Rejoice all who stumble here.

    Then I started an attempt to optimize because really….. the checkout was killing me. I then exclaimed an even louder OMFG!! As I dig deeper down, slashing and burning, I have moved to an incredulous OMFG!! Wha….Why??!…. Why did he?!? Oh no!! What’s this?

    Me> Google, what is MyISAM?
    Google> No result found. It’s before my time.

    As an ex senior programming lecturer who expunged “cute code syndrome” rapidly from the minds of virginal coders, I am happy to recommend OC to my learned colleagues. As a tool espoused as “for beginners”, I absolutely concur.

    OC is a tool on how not to code. It is a classic example of redundancy, repetitive bloat and proves how annoying bug hunts can be using only 3 x 23″ screens. It will be enough to exasperate even the most dedicated of students assuring those that pass their course will be made of the “right stuff”. The rest of them will no doubt move onto majoring in astrophysics…. because it will prove easier.

    (as an aside, for fellow lecturers, the first exam should involve injecting random exit(s) into your students checkout code during a heavy use period and getting them to man the helpdesk for 3 hours. If their booth is still intact after the exam, they should get honors. NOTE: If their customers use real money, ensure emergency service personnel are on hand)


    Alas, having invested heavily in the project for my client, I’m committed here. It is my first OC.

    It will be my last.

    (I’m guesting… I’ve vented and I’m busy. Something in ControllerSaleCustomer has hitched…… I have to fix $this->little_error->but->I->cant->seem->to->find->because->there->are->9->modules->I-have->to['follow'])

    • Lost in OC

      TASK: Edit controllers to provide view and sort options on tabulated data. (eg: orders, transactions etc.)

      But……. (within controllers)

      $data = array(				  
      'sort'  => 'date_added',
      'order' => 'DESC',
      'start' => ($page - 1) * 10,
      'limit' => 10

      and then slightly further *down*

      $pagination->limit = 10; 

      OK, it’s an easy fix for sure but I ask. What happened to the oldest coding rule of them all? If you’re typing an *actual value*, YOU’RE DOING IT WRONG!!

      Despite this glaringly bad practise, OC seems to work OK. (atm!) But I hark back to a comment made by OP. It’s a very straight assessment.

      [quote] Its a system that somehow works, barely hanging in the balance with stuff going all over the place.[/quote]

      My concern here is when you find this kind of refusal to follow the most basic premise of coding, doubts creep in to the integrity of the entire package. Good coding practises are about the ability by developers to EXPECT certain conventions. It reduces tracking overheads and increases the opportunity for the “unforeseens” to remain unseen…

      Sneaking doubt is a horrible place to start on another days development…

  • Exception

    Holy crap. The amount of illiterate comments here from the site owner and from OpenCart’s owner is ridiculous. You’re attacking each other for what reason? To defend your intelligence? Who cares, there are always bad reviews.

    The author of the article seems to have made some valid points about the flaws of OpenCart and I’m sure plenty of people will read this and be a little more informed on the software, such as myself. This doesn’t give him the right to attack the owner of OpenCart when he responds though. You wrote an article on the internet, what did you expect? A medal?

    For Daniel; I’m not against you. There’s one comment here that really stood out. “This guy needs to stop being so defensive or else he’ll have a heart attack before 50!”. This is completely true. You take an overly defensive stance on comments, posts, emails and articles alike and it’s really not helping your health. You’re the creator of OpenCart, develop it instead of responding to random people on the internet. Even then, if you *do* decide to respond, don’t insult them. I have literally not found a post where you give positive feedback.

    For everyone, it’s a fucking article over a piece of software, calm your tits and the fuck down, bloody hell.

    • ferisoft

      Lol, how does your comment even relate to the article? :) Thanks anyways :)

    • Andre

      Exception, please realize that the OP posted an article on his blog, not on OC’s website. He has every right to write what he feels like. I agree the critique was not always very diplomatic and maybe a little harsh but I felt the same working in OC. I completely understand that.

      This being said, there is absolutely no reason for the author to react like that. From my perspective he is the one that has been an absolute arse from the beginning. He is throwing out things that no decent person, let alone a programmer, would even think about saying. The OP pointed out very valid points that he did not invent himself. They are all basic stuff you learn as a developer and that all good frameworks follow. Not accepting, or at least challenging, these points is completely ridicule and shows a clear lack of professionalism.

  • Andre

    This thread is funny and very sad at the same time. The OP has very valid points. OC is indeed very poorly designed and programmed. That does not mean it doesn’t do the job but it does not scale, will (did) age poorly and any serious project using it will end up like a bowl of spaghetti.

    I had to build a few customizations for OC in the recent weeks. I had no choice to use it as it was already in place and the client wanted new features. I went through a lot of different emotions doing so and never happiness (except when I was done).

    One point I would add is that there is no API. I shouldn’t have to write SQL when building a simple plugin. Why is there not at least a core set of functions to manage products, categories, etc. Not to mention the complete lack of an extension mechanism. VQMOD is the most ridiculous idea of an extension mechanism I ever saw in 20 years of coding. It’s a search and replace mechanism for god sakes. How can you properly manage versions with that? How can you write anything that you can expect to last (without prayers)? If you have to use OC, please stay away from it!

    Why would you choose OC, knowing that, for any serious work that require significant investment. If you plan on generating significant revenues from your online store and want it to grow, why shouldn’t you invest money on a proper cart? It’s mission critical. Save elsewhere!

    And please do not say I am not experienced… I have worked on software a thousand folds more complex. Real-time financial applications, software managing trillions of dollars a year. Traders expect good software.

    DK, you may not agree to this and all other critiques. That’s you prerogative. You successfully created a market for OC and all the better for you. That doesn’t mean you are (or were) on the right track technically speaking. I would suggest you take a deep breath and try to relax, then read the comments again and see how off the mark you are. With a little bit of humility, you could take the constructive critiques of professional and make OC much better. That would ensure is longevity and, possibly, an even bigger market share for you and OC service providers. If you fail to do that, OC’s position in the market WILL drop to the floor eventually.

    • Lost in OC

      VQMod…. EGADS!!! Had the devils own on this just yesterday.

      A “respectable” mod writer decided that a CDATA search would be best done against a comment line. As part of my rewrite of the (ridiculous) voucher code system I “inadvertently” deleted that very comment line. Well… I mean… Comments should be able to be safely deleted right?

      4 hours later the “bug” was detected because I gave up and hard-coded 49k of xml so I could get to the root of the cause. Daniel and [unnamed] mod dev must have had very, very sore ears. Even my dog ran away until the sun went down!

      Workablity : 6 – before you touch the core.
      Scalability potential as soon as you do touch the core. 0.
      VQMod integrity if you want to touch the core. 0.

      This is NOT a developers cart. You have been warned.

      • ferisoft

        VQMOD is a joke and your last sentence pretty much encompasses what my post is all about, it would seem a lot of people missed the point somehow.

  • Rolf Brugger

    Thanks for the detailed comments about OpenCart. I’m using OpenCart for almost three years now in a small online shop. I have done quite an extensive evaluation of the platforms that were available at that time. Of course I’ve tried Magento, but it was too overloaded with functionality and far too slow on my shared web hosting platform.

    I finally chose OpenCart because
    – of it’s clean and simple look-and-feel and modern look. I only had to apply small changes to the css and templates to get what I wanted.
    – the response times on a shared web hosting platform are good.
    – of it’s stability. I never encountered a serious bug.

    I agree with the criticism concerning code repetition and sometimes hard to understand overall architecture. But so far – after doing some research in discussion forums – I was able to apply all my modifications and extensions.

    Would I use OpenCart again? I’m not sure. I’d definitely check out the current alternatives. But choosing OpenCart and trying to live with it’s flaws might not be the worst thing to do.

    Cheers – and thanks again for the article

    • http://somewhere.com/ FMN

      I concur, I use Opencart for the same reasons like yours.

    • camsjams

      I’m surprised that you think opencart has a modern look – it isn’t event responsive yet, and uses fairly outdated style cues.

      • Juan Perdon

        Opencart + Vqmod + responsive Theme = Modern look

        • camsjams

          Opencart != Modern look

          You went and added things to it :)

          • Jay

            In that case would you use WordPress Shop as your ecommerce ?? no you will have to add things to it like Woocommerce to make it look like Ecommerce.

          • goinindia

            please show me one free shopping cart with similar to opencart with a responsive theme inbuilt. Besides there is a few free responsive themes.

          • Richard Bill

            Ohh…I think you have not seen Prestashop. Look at prestashop.com and see that their default theme is responsive.

  • lucho69

    funny debate !!!

    Daniel, I would advise, keep your calm, I think the title was just a provocation … successfull if you look at the number of posts !!! and you can find exactly the same provocation on prestashop, magento , everything

    and it is always coming from IT Programmer, Ferisoft you are talking code, programing etc… and sales ? business ? margin ? More important for me !!!

    Let me explain my experience with ecommerce platform and I will speak more as ecommerce expert than programer, my client are doing ecommerce, not IT

    I am web agency manager in France, and 60 / 70% of our projects are eCommerce

    We use Magento, Prestashop and Opencart …

    I explain why :

    Magento … my god … very good for a web agency … we can charge a lot , a lot … so complex to customize that we can justify a price starting to 10 000 euros just for a start !!!

    we get a couple of sites based on Magento, I explain to the client, that a dedicated server is not enough : 2 dedidicated are needed …

    summary : I do not propose it anymore !!!

    So , now we work with Prestashop and Opencart.
    I use PRestashop mainly when the client is imposing it : too famous in France
    But I try this message : you are the business man, we are the builder of your shop, do not impose a tool , it is our business
    If he keeps williing PRestashop, no issue, we do it
    The best advantage is for e.g. integration with ERP

    So normally I propose Opencart
    My first projects Opencart were in 2010
    some small, some are now very big shops !!!
    king-cordes as e.g. is one of the biggest actor if guitar business …
    critizism on code or DB ? I could ask my programers , but what I see for the projects we are doing :
    – we are never blocked to respect client requirement
    – modules are quite simple to plug, and developers are reactive
    – prices are very low
    I am very proud to get one of my Opencart project nominated n°1 ecommerce 2013 , in France sure, France is not so big … but anymay :-) and you know what ??? we developed nearly with a standard Opencart a new concept “Butcher drive”
    the site nominated is brouard (-) boucher (.) fr
    and you know what, 7 butchers are following ….

    as summery, everybody can love or hate a system, but I can affirm, Opencart is well done for ecommerce
    not want to make the same provocation on Prestashop but

  • iuseoc

    Daniel is one of the most unprofessional owners of a company I have ever encountered. If you criticize OC on the forums, he will threaten to ban you and tell you to go with magento. I’ve never seen such a thing. Qphoria, you are the only reason OC is worth a damn. Thank you sir. Daniel, this negative blog post just shows that OC is growing and your comments simply stunt its growth.

  • Mohit Kumar

    Nice article! Totally accurate about the points. I am a Yii expert and for past month I am stuck with the mess Opencart is. I created a custom shipping module and now it is messed up because the Tax module decided to modify the variables by reference.. Opencart just uses classes but nothing there is OOP way, no loose coupling, horrible way of language variables invocation, and you mentioned getProducts query- that is the dumbest query I have ever seen in my life..

    • ferisoft

      It’s also quite funny how this query as dumb as it is, is only cached in the admin model, but not in the frontend one…like WTF were you thinking ?! :D

      • test

        Funny, my reaction exactly when I saw it. “WTF were they thinking?!”

  • paulfeakins

    OpenCart is a fantastic, well-written and well-structured platform. The issues listed in this article are minor, Daniel is aware of them and has made the design decisions he’s made from his unique perspective as someone who knows more about the project, OpenCart and ecommerce, its history, its users, its extensions and the community than anyone else.

    I’m glad that @techchattr:disqus wrote the article to bring the issues to @disqus_N8h7oWiEFn:disqus’s attention and if it improves OpenCart further then great, but he is wrong to suggest that any of them are reasons not to use OpenCart or that there are far better open source alternatives out there.

    • techchattr

      I agree with most, but not with the statement that those issues are minor, I would say most of them are actually fundamental and cannot be fixed by slight adjustment but rather need a radical rewrite…

      • paulfeakins

        Thank you for such a quick reply, this is why I consider them minor:

        When I was looking for an ecommerce platform for our company to use, I reviewed a lot of the most popular platforms in detail including their functionality, features, benefits and indeed I reviewed their code.

        I downloaded and installed most of them, and worked with the code a little to implement some new features to get a feel for the platform. I found Magento ridiculously complex to add even something as simple as a banner to the home page, whereas of all of them, the OpenCart code was the simplest and cleanest. Just a quick look at the folder structure will show you that there are far less files and folders in OpenCart than the others.

        The goal of my review was to find the platform that would deliver all of the required ecommerce features from a business point of view with the most easy to work with, flexible and therefore simple code.

        So to answer your points, based on my criteria above:

        1. Database engine – okay so OpenCart uses a database engine that isn’t the latest and doesn’t support transactions and you say this is essential for ecommerce but actually it’s not. We have clients who sell £20k per day worth of products on OpenCart sites and not once have we had a problem because the database engine isn’t transactional.

        Business impact?
        Zero to none.

        1. Code repetition – yes, there are parts of the code that may have been written with Daniel’s –verbose flag set to true. Why? For readability, and so that they can be modified independently in future if required.

        Business impact?
        Zero to none.

        2. Database – okay so the database doesn’t recognize foreign keys but if you’re familiar with relational databases and the naming convention in OpenCart this isn’t an issue. Perhaps the product page queries are heavy but even our heaviest traffic sites don’t slow down because of this. What does slow down admittedly are sites that have a lot of categories and a lot of products (we’re talking 10s of thousands) but the installation of Jeff Hunter’s excellent “Increase Page Speed” extension fixes this by adding some caching.

        Business impact?
        With a cache extension: none.

        3. Templates – I’m not really sure what the issue is here, I mean most of the time you won’t just be outputting asdasd on the page so the ability to control this in the backend is essential and the nomenclature around that is necessary.

        4. SEO URLs – well perhaps this could have been done better but some sites we’ve built and put live have started to get lots of organic traffic with very little marketing. Perhaps the way this is written and works could be better and sure enough there are great SEO extensions that do implement all the requirements from an SEO point of view, although that doesn’t mean it’s an elegant solution to have to rely on an extension. But back to the point – is this a reason to “never use OpenCart”? Certainly not.

        Business impact?
        With an SEO extension, very little.

        5. Security – I’m not going to say that none of our sites have ever been hacked because I’ve been in this game long enough to know every host/company gets hacked at some point. If you haven’t been yet then you will be soon enough. But the exploits we’ve seen were more likely to have been through weak passwords somewhere else in the software stack than holes in OpenCart.

        Business impact?
        Very positive that OpenCart is so secure.

        6. Architecture – you’re saying OpenCart isn’t OOP, well you could argue that no HTML web application is OOP because it’s not stateful and the objects don’t really exist in memory in the system… but either way the OpenCart code is structured very well indeed in my opinion. Even before I knew the system, I could very easily find the exact file I needed to modify to make any given change because it was EXACTLY where it should be according to MVC and well-known programming conventions.
        And as for vQmod… well it’s trying to solve a very hard problem – how to upgrade the core of an application that may have been modified without overwriting those changes. Seeing as you can’t know what the upgrade will change, it is difficult but can you recommend a system that tries to achieve something similar and does it better?

        Business impact?
        The architecture of OpenCart is great which brings many business benefits including a lower cost of development lower hosting costs due to more efficient code etc.
        Re. vQmod, if there are a lot of changes required then there will be a lot of XML and upgrades will be time consuming and costly. But are there really any better alternatives?

        Perhaps a well-meaning article by a frustrated developer but with a conclusion that is unfortunately just plain wrong!

        In fact I would say OpenCart SHOULD be used for most projects ranging from small shops with just a few products right up to SMEs and bigger businesses where ecommerce functionality is required. This is true even for hundreds of thousands of products, hundreds of thousands of users per month and many thousands of orders per day.

        • Florina

          That’s about it when it comes to OpenCart.

          Also of note is that most customers don’t give a damn about which piece of software I use, they just want a website that does exactly what they want.

          But where I can deliver a great OpenCart website with $50 to $500 worth of addons, the same cannot be said about PrestaShop. And what on earth can be packed into 20MB of zip archive? Magento is slightly larger than that – the zip that is.
          I went to Magento to download it just now and I didn’t have an account. Oh well, I clicked on ‘create account’, input my name, email, and password and it took me straight to an empty page: https://www.magentocommerce.com/products/customer/account/createpost/
          Must be something about those tables and transactions.

          Updates are complicated when you have many addons, that’s the part that bugs me most. But the code itself is simple to read, the code of any addon is just as simple so in the end it’s not a deal breaker.

          I don’t update, I make a clean install after I review all the addons. Chances are, the customer won’t want the same look and features 6 months from now on.

          If you are a developer who goes to work for a company and you have to ‘fix’ OpenCart websites every now and again, then you would probably not be pleased with how OC looks like code wise.

          If on the other hand you are self employed, then you need to balance the security / features / ease of development / cost of development. As far as I’m concerned OC is good to go.

          Oh no, oh no, oh no! I choose crappy code because it doesn’t have security issues and it’s cheap to maintain. That’s just your point of view.

          My husband would drop dead if someone would ever suggest he should use a Windows server for… anything really. He wouldn’t touch Windows with a 10 foot pole. So what? Windows is not a piece of crap, plenty of really large corporate websites run on Windows – it’s their choice. The fact that my husband thinks Windows is crap doesn’t mean anything else that he made a different choice for his own particular reasons. I myself started as a VB programmer and worked for some years and I know it’s not crap.

          I’ve seen more ‘PHP is dead’ and ‘PHP is crap’ posts than I can count. So what? You know something? Those people are right in that PHP lacks a number of features some consider important and OOP is not fully mature after so many years.
          So hmm, yeah, it’s a tough call for me. I’ll just… deal with its shortcomings.

          Once you understand what works best with a certain language or framework, then you’re good.

          Also Daniel the developer is not someone who I’d have for dinner any time soon. So what? I work with clients on a daily basis and have seen plenty of people I can’t stand. This is business, I’m not planning on marrying him. I’m a big girl, I can deal with difficult personalities.

          • paulfeakins

            I’d agree with all of the above except the not having Daniel for dinner part – I’ve met Daniel and spent some time with him – he’s a really great guy to talk to, not in the slightest bit rude in person and I can understand his frustration at negative comments on the web about his software which he gives away for free!

          • techchattr

            Enterprise Windows is not even remotely comparable to OC. OC doesnt even have a test suite or any sort of testing done, you kinda make changes to it and pray..This is not the way software is built and maintained. Its fine if you do it that way, but its not the professional way of doing it…

      • Wessel Louwris

        I have too agree with most points in the article. I just took a quick glance at opencart 2.0. Coding style has not really been improved it seems. Even still myisam on the create script (although I think that’s not the worst thing of the coding since it can easily be changed)

        But no known security issues on opencart, as was mentioned in the article! That’s quite good if it was designed that bad. So the coding might be ugly and not up to current standards. But apparently that doesn’t make it unsafe.

        I’m using 1.5.6 for a long time for 2 small shops with <1000 articles and <20 orders a day I maintain in my freelancing hours. And sssht, don't tell anyone, but I even changed some core opencart files in my projects for a few specific wishes, with very little effort. With VCS on my project I could even do upgrades by applying the changes again. (I looked at vqmod, but that was just too awful for me)

        And the bad coding does not make it slow also if read the average comments here.

        I have to agree with the other comments about magento too (which I have been coding against professionally in a project). The coding is better but what a terrible performance (not amazing with soo much code in php). And what a terrible documentation.

        So I guess a "good" (according to the design patterns etc) coding style makes a project better maintainable and more fun to code with but not necessarily faster or safer.

        So as long as I can tell my customers that for their budget they can use opencart but have to stick to core&modules functionality I think opencart is an acceptable solution.

        I have a new freelance project coming up, I will take a look at prestoshop…
        Or try something with one of the cakephp shop plugins (my personal favorite php framework).

  • Alex

    When is techchattr’s ECommerce system coming out that is way better than opencart? You sound like an extremely intelligent person, Yet you sit behind your computer and bash what countless programmers contribute to (mostly for free) to make opencart a better program than it was in its last version. Its unfortunate you spend your oxygen and electricity bashing other people’s work instead of promoting your own because a quick look over this blog and there is a lot of great programming resources here, too bad ill never use them to ensure I am not supporting people who feel bigger than they are when they sit behind a keyboard.

    • techchattr

      There are already a bunch of better ones out there, seems like you didnt read the article to the end, I am just pointing the major flaws in this ones which makes it unusable for anything serious…Since when pointing out the obvious flaws of a system means that I have to write my own one and open source it LOL…Your argument doesn’t make any sense, its like saying that Honda for example makes shit cars and pointing the obvious issues with them, so you should build your own to justify it…Wtf!?

  • G Harvey

    Hi all,

    I have just come across this post, and want to talk about the pro’s and con’s as a shop owner, as one of the very people who use the software and not a developer. It is us after all, that these sites are aimed at. End users don’t really care about how a piece of code works, all we want is something that does work, at an acceptable cost.

    I have to say I am very happy with opencart. Our site turns over £100,000’s a month and while we don’t experience many problems, we do have them (Thankfully I know someone who can sort most of these out for me). But there are some drawbacks – remember – as a user.

    The opencart system on its own is basic. To do many things, you need to buy extensions. I haven’t worked it out, but I would think that over the first year, for the amount we spend on extensions, we could have probably purchased a bespoke solution. Qphoria has been a savior to some of the things we have required (particulary the Zone Plus extension). It was also very easy to learn the structure of everything which for someone who only has a very (very) basic comprehension of either html or php means everything.

    Updating is a nightmare. Sure its easy enough to update opencart, but then all the themes and extensions need to be updated too to make sure they work properly. Some developers update their software, many just abandon them. Which is not very helpful when you reply on them.

    The opencart forum comes across very much like the XDA forum at times. If you need help as you don’t understand something, you can get treated like crap for not knowing something that is considered simple to others. I can appreciate also that Daniel gets a lot of criticism and takes it to heart, but they was he replies to people doesn’t help. Just look at the posts on here (if you’re reading this Daniel, please don’t take this as me bitching about you as I’m not, but you do need to look at comments made towards you on the forum as a query rather than a personal; critcism).

    My biggest worry is what the future holds when the fabled opencart 2.0 is released. There are many comments about how great it will be, but I have a feeling it will be a minimum of 12-18 months before we would be in a position to update due to the amount of extensions we run. If you want it to be a success, you need to do something to encourage developers to speed up their updates (maybe provide limited discounts on the %age you take from sales to those who update their extensions in a timely manner. We are on as we consider it stable (and to be honest I can’t be arsed with spending a couple of days hunting down updated versions of everything).

    And to the moaners on here – don’t hate me for my opinions, they are just that – OPINIONS.

  • metrics

    @ ferisoft You might be a talented programmer and might even have a good job that pays good $$. I feel you are on the wrong side of the fence because:
    – you are not exposing your products but find it easy to criticise the work of others and above all when others are famous.
    – Your article is provocative probably with the deliberate intent to get traffic to your site using Opencart brand and popularity.
    – If you wanted to help others as you claim you would have been donating some of your knowledge and code to the project to prove yourself before talking ;)

    With regards to DK (very smart guy imho)
    – he created a business and a living out of nothing
    – he looks at things from a business point of view not only programming and code (see cost savings for small business )
    – He listen to his community and many things come from community suggestions.
    – He has a free open-source product with a large community to protect. – he’s not politically correct however he’s contributing to make the world better –

    What’s not clear to me is your role in this. You are getting traffic to your site and fame by criticising a product that is very popular, so the question is: how much do you charge per hr to get me an e-commerce better or equivalente to OC up and running?

    Let me say that many business (including big ones) start in a garage with very little money. OC is the best friend for these guys :) It’s about $$ and we’ll understand that.

    Replying to your statement below. → We are reading and we are not stupid mate.

    “But to everyone reading, after going through the comments I am pretty sure how solid of an idea you have right now about the author and the quality of the software, so I hope this helps your decision to move away from OpenCart. “

    We live in a real world which is not perfect but, I repeat, we are not stupid,

    PS I’m not associated in anyway with DK or OC

    • ferisoft

      You can say whatever you want about price and how cheap is good for a business. That’s not a legitimate reason to base your business on SHIT code. I gave a few other open source carts that are significantly better written than OC. And then I get the other argument OC code is simple, well think about it if you run a business and your developer says I dont understand magento code (which is actually much better architected, even though with its own flaws), you should be running away from this guy fast…The fact that some code is more complex doesn’t mean its worse…I also said I am not investigating the business side of things here, purely the code and the architecture of OC, so developers who are considering it can see the issues I faced before they decide to use it. As you can see from the comments obviously im not the only one with those issues…

      • metrics

        Note that I don’t say whatever I want. I made my points and you simply drifted them away.

        As I said, you might be a good coder = your points might be correct however you detract and criticize someone else work which happened to be very famous and popular not to mention it’s helping others more than you do.
        I suspect you deliberately wanted to jump on the opencart wagon for a free ride. But just in case you wrote this article in good faith and you are a smart kid, think this way:
        is WordPress the best piece of software out there, or at least was it when they started?
        well know it was not. It was however easy to use and extend than others and
        that made them famous, the world adjusted around them and they improve
        their software as they go. Was Microsoft windows the best OS out there
        when they started? .probably not …and the list goes on.

        back to your statements -> …..about price and how cheap is good for a business…..
        It’s not about how cheap it is, it’s more about using the right tool for the job without wasting resources. On top of that, no one stops you to move from OC to Magento, prestashop or even django + ecommerce etc as you grow. it’s not that complicated to migrate from OC to a different system.

        -> base your business on SHIT code
        That is not correct and defamatory. You are talking about a product that works out of the box, is secure, easy to modify and understand. The code could be prettier and better organized but I would say there are other things more important than that.

        -> The fact that some code is more complex doesn’t mean its worse.
        I agree but not sure why you mention it. python and java are also more powerful than PHP …..so what. Users decide what is to survive and what not. you have to respect that.

        -> As you can see from the comments obviously im not the only one with those issues…
        there are plenty of opinions on both sides. I usually base my decisions on more than few comments :)

        Here is a REAL example for you. A company started a small business from the back of the garage selling on ebay and on her own website which was based on Oscommerce (similar to OC more or less) after 6 years of hard work and growth (millions in revenues) the company moved on to use Magento. The move was necessary mainly to improve the processing of orders for different customers groups and keep stock control accurate and sophisticated. importing data from OSc on to Magento was not too difficult it turned out more complex and expensive to make magento perform well with approx 1k visit per day on a dedicated server (note -> not a server farm).

        • ferisoft

          Well i guess well have to agree to disagree, I dont really see a point in prolonging this argument, if you love using OC and developing on it, good for you, keep doing it. In the meanwhile you can just briefly browse over the comments and see its not only me that is putting out the points in the article.. :)

          • metrics

            It’s always good to discuss and listen to others opinion ;) yes. I read all comments -> I see much show and little substance.
            Do you agree that every coder/programmer has his own recipe that is superior to everyone else?

          • ferisoft

            No but in programming there are “best practises” they are called best for a reason and frankly open cart abolishes most of them…

        • R Rogerson

          Not being funny, but read through all of this – and count how many times ferisoft insults someone who disagrees with him. Then go read the same number of posts on the OC forums, bug reports and FRs, and see how often the poster is insulted.

          Personally, I think ferisoft should get a medal for not calling the OC owner several foul names :D

          Just look at some of the blatant, glaring and unforgivable issues that OC has (Such as poor canonical structure, lack of accessibility on forms, lack of proper caching mechanisms, bloated and sluggish sql calls etc. etc. etc.) – many of these items have been flagged for ages, many with “fixes” and “patches” ready to go … and they have not been included in any recent OC updates!
          Free should != pants, but in this case, it does (it’s things like this that give opensource a bad name … that and Daniels disgusting reactions to honest and accurate bug reports etc.).

      • goinindia

        so you ARE selling magento…………

  • Guest

    Now this is interesting. Personally, I used to use a small eCom platform
    that worked perfectly well back in the day and used to serve my clients
    to what they needed. But then they closed down and I started looking
    for a suitable replacement.

    Now I’ve build sites in OC, in
    Shopify, in Magento, in WooCommerce, in LemonStand, Presta etc, you name
    it, i’ve built a site in it. I found that in the early days, OpenCart
    won the draw and I started building a bunch of sites with them.

    issue though for me is the maintenance of an OpenCart site. I’ve never
    once, in all my years of using it, had a smooth update. Ever.

    notice that the upgrading instructions are 13 points long. 13!! Nothing
    should be THAT complex to update. I swear I’ve had furniture from IKEA
    that have had less instructions to assemble the most awkwardly named

    I think alarm bells start sounding when the first
    instruction is to overwrite your entire site except config files. SQL
    errors appear to be the norm, and repeating code is a nightmare. You
    shouldn’t have to define the same thing for every different page, or
    element of that page should I mention. Global variables should be
    carried throughout, you shouldn’t have to define a title to use in the
    header, then the body, then in the footer. If I want to use a title, I
    should just be able to use a title.

    I now dread updating clients
    websites, and hate the thought of how much time and effort has to go
    into me explaining to the client that their site has yet again broken
    due to an update that most likely won’t benefit them.

    I feel
    sorry for the guys and girls who make VQMods, as they have tried to give
    hope to a bad situation, so when you update, it’s less likely to break

    I know OpenCart is a community driven platform, but I
    can’t help sense the lack of constancy and passion for the project, it’s
    like it’s still in it’s infancy, it lacks style, substance, and
    overall, a reason to use it other than it being free.

    And for
    this, Opencart has no doubt lost out to the new kids on the block; The
    platforms that charge a small amount a month, but provide you with a
    slick interfact and customer feedback. They run workshops, they improve
    constantly, and they make it their best effort that you never even know
    that your site is constantly being updated to more secure code.

    final say would be, I’ve moved away from OpenCart now, apart from two
    clients I have that use it, I’ve moved over to using WooCommerce for
    Wordpress. I don’t recommend you just drop everything and move away, but
    consider your options carefully. Read comments on pages like this to
    get a feel for what people think (and what the creator thinks to that).

  • yratof

    Personally, I used to use a small ecommerce platform that worked perfectly well back in the day and used to serve my clients to what they needed. But then they closed down and I started looking for a suitable replacement. Now I’ve build sites in OC, in Shopify, in Magento, in WooCommerce, in LemonStand, Presta etc, you name it, i’ve built a site in it. I found that in the early days, OpenCart won the draw and I started building a bunch of sites with them.

    The issue though for me is the maintenance of an OpenCart site. I’ve never once, in all my years of using it, had a smooth update. Ever. You’ll notice that the upgrading instructions are 13 points long. 13!! Nothing should be THAT complex to update. I swear I’ve had furniture from IKEA that have had less instructions to assemble the most awkwardly named wardrobe.

    I think alarm bells start sounding when the first instruction is to overwrite your entire site except config files. SQL errors appear to be the norm, and repeating code is a nightmare. You shouldn’t have to define the same thing for every different page, or element of that page should I mention. Global variables should be carried throughout, you shouldn’t have to define a title to use in the header, then the body, then in the footer. If I want to use a title, I should just be able to use a title.

    I now dread updating clients websites, and hate the thought of how much time and effort has to go into me explaining to the client that their site has yet again broken due to an update that most likely won’t benefit them. I feel sorry for the guys and girls who make VQMods, as they have tried to give hope to a bad situation, so when you update, it’s less likely to break things.

    I know OpenCart is a community driven platform, but I can’t help sense the lack of constancy and passion for the project, it’s like it’s still in it’s infancy, it lacks style, substance, and overall, a reason to use it other than it being free.

    And for this, Opencart has no doubt lost out to the new kids on the block; The platforms that charge a small amount a month, but provide you with a slick interfact and customer feedback. They run workshops, they improve constantly, and they make it their best effort that you never even know that your site is constantly being updated to more secure code.

    My final say would be, I’ve moved away from OpenCart now, apart from two clients I have that use it, I’ve moved over to using WooCommerce for WordPress. I don’t recommend you just drop everything and move away, but consider your options carefully. Read comments on pages like this to get a feel for what people think (and what the creator thinks to that).

  • Geo

    By the way, there are several typos in this article. If you have made such typos in your PHP you’d end up with bugs the size of your entire shopping cart.

    • ferisoft

      English is not my first language and grammar is not the point of this article, thanks for pointing out anyways

  • ttt

    I agree. Wholeheatedly! The code is absolute BS. And I think DK mentioned somewhere that English does get loaded as the default language. Well, that’s not completely true. It may be true for Opencart itself, but not for the modules, which I think is insane. You could quite simply force it everywhere that English is always loaded. It wasn’t that nice to have something like ‘text_export’ in my admin menu (store default language was not English).

    BUT I do like OpenCart. It is rather fast, it gets the job done. I do find it a bit difficult to understand with the module/extension placements etc. E.g. why is ‘account’ installed as a module? But it is popular and is more used because it is popular (meaning as a store you want something that is widely used and has a large extension/module collection as such OC’s popularity gains even more popularity).

    And I do like vqMod! For more serious work, it ofcourse doesn’t work. But I have some small changes and I do not want to edit core files, so it is perfect. I am a Magento developer and to make some changes I have to write a module. I can override a local file, but that is not recommended nor safe. Thus, you have to write a module. And it is quite tedious sometimes. E.g. to write a module to simply override a cron job scheduling time. I do wish Magento had something akin to vQMod.

    Though I am a it apprehensive about installing OC lately. Beside the awful code, the major drawback is DKs attitude. If you say one word, you’re the devil. The points in this article (or any other) are all justified and instead of addressing them properly, the author’s personality gets attacked – you are pathetic etc. It leaves me gaping!! Not to mention, how does one have the time to argue with all the critics. Write better code instead! E.g. was release with a MAJOR bug – it checked if there was <? in an image file. Well, it does exist quite naturally in an image file, which made image upload virtually useless. And instead of releasing an isntant bug fix, it is scheduled to be released in the next version. What are the people supposed to do until then? I mean, at least turn off the buggy download so that people couldn't get it! I am apalled!

  • R Rogerson

    I’m forced to use this heap for a client … but I’m not happy with it.

    OpenCart = Simple.
    That would be “simple” as in “nothing clever”, not “easy to use”.

    The worst part is, there are extensions (sometimes tons!) to patch things … and most haven’t been included in any update (you’d think if 10 people develop a patch, and hundreds download it, that someone, somewhere would stop and think “erm, maybe we should do that?”).

    And to me, the final straw is the reaction you get.
    If you look through the forums or the bug reports, you see people raising genuine issues basically be spoken too like idiots. They raise legitimate concerns about things like SEO_URL, and get given dumb responses about quantum physics, when the reality is that the problem isn’t the user or the desire, but a lame infrastructure with poor application (they don’t seem to understand just how limited/stupid the SEO URL system is!).

    If I could avoid it – I would.

    That said, I wouldn’t touch Magento either.
    2+ seconds to import a single item (try 25K+ items!).
    Data split and shoved amongst umpteen tables, then some of that compiled into a single table … and the search is every bit as bad as any other platforms.
    Standard pageload times of 5+ seconds (and a sod to improve).
    Though far more powerful and flexible (and professional) than OC, M has it’s own bag of bones to struggle with.

    The real problem is (for all CMS/e-Com etc.) … Developers.
    In the vast majority of cases, they aren’t developing thinking of end users (other site owners) or end-end-users (shoppers/users). Further, they don’t tend to be up on “other bits”, such as usability, accessibility or SEO.
    I just wish people would either learn the additional stuff, or at least go and find someone who knows and collaborate with them.
    Instead, we end up with Dev-Toys, half-baked apps and nightmares to work with :(

    I see that Daniel Kerr responded here…
    … lets play!

    Security – why do you Not use Nonces for things like the login?
    Why use a URL based token rather than a system/value based method?

    SEO – why do you not (as default) include a field for custom title (meta-title (Though that is the wrong name!))?
    Why do the SEO-URLs fail so badly? You cannot run with 2+ categories with the same seo_url. A tree system would permit it. compounding the values would permit it. Chaining the checks would permit it.
    None of that is done though.
    How about custom Link Text?

    (ideally you should have inputs for Title, H1, Link Text, Link Title attrib, Image alt etc. – all customisable, all defaulting to prior input (no title, default to product/cat name etc.))

    None of this is “new”.
    This is stuff people have asked for in just about Every e-commerce/CMS system for the past 10 Years!
    Yet you went the same route as every other dev, and ignored the common features that others have to patch in.


    Please, look through the extensions, see what the most popular ones are, look at why they are popular, and start including that functionality into the next release!
    (And if you want SEO help, find and SEO. Then go find someone that deals with Usability and Accessibility, and get them to give some input! THEN you may have something to be proud of!)
    (What, you’re popular? So what, so was OS Commerce, so was PHPBB and VBB :D IT sounds awful, but your “customers” are ignorant – they don’t know what issues to look for, they don’t even reaiise what is bad, let alone why it is bad! That’s part of your job! You’re meant to know, and handle it. Not ignore it for years!)

    • goinindia

      You are absolutuly spot on…

    • Cristian Vultur

      Spot on! I’ve just been asked to do SEO on an OC site and I ended up switching to Magento. It’s been 2 years since Panda and Penguin are crushing sites all over the place and I was absolutely astonished that the guys at OC didn’t bother to include some basic fields that communicate with Google about what the hack is on that page.

      What puzzles me is that everybody complains about Magento being slow. 1.5-1.8 seconds for main page or product page is slow !? (on a shared server with a site that has over 2k+ products in catalogue, verified from a server that is in Holland and the site being in Romania some 2000 km away) I don’t think so, and neither does the site testing for speed which stated “Your website is faster than 77% of all tested websites”.

      In a world in which SEO has become a must (even if you run on adwords – i’ll explain later), things like cache, CSS & JS merge, should be in the built in package and not left to be dealt with third party plugins. I don’t see them in OC.

      Adwords is much more expensive if your page sucks at SEO, and this is a thing that few clients know from start, and that translates in costs that build up to huge amounts over time.

      I’ve read above that in France you need 2 (two) dedicated servers to run Magento!? Are you using X86 (1985) technology!?

      I’ve been using Magento since 1.7 version went trough 1.8, 1.9 and all versions were SEO more than capable, and if configured properly capable of delivering the page under 2 seconds.

  • http://www.redfrogstudio.co.uk/ Dom Kape

    Reading your comments – What would you recommend?

  • proud_singaporean

    i use opencart a lot since i was in my high school… wow, after looking at how the author of opencart, Daniel Kerr behaves, i think i might just stop using it…

  • realitysource

    Is the whole opencart community made of spoiled 10 year olds? that’s the impression I get here. These people can’t really be professionals, who’d give them work?

  • Danielfans

    Dear Author,
    Can you write a better cart for us?
    I have used osc, zencart, cscart,prestashop,opencart,magento, woocommerce, tomatocart…
    The one i choose finally is opencart.
    You know why?
    Easy to use, user friendly, cheaper but pretty theme+modules, no need much time to learn.

  • Feras

    Ok, I admit I am a fuck suck asshole, i write this article becuase i can get 5$ commision.
    I am sorry to everyone.

  • Pingback: Friv

  • Your dad

    fuck you, why delete my post? I am a user and i love opencart.

  • http://lasolutionauxregimes.fr/ hamiseady

    You are of course eligible to your viewpoint about any application, but this content is full of a mix of discrepancies and overzealous slamming of some relatively typical programming techniques that you declare to “have never seen before”. This brings me to believe your contact with the globe is a rather new one (read: know-it-all youngster).


  • Lamberto Azzi

    I use OpenCart in my webshop and i am very satisfied: for the first time i can edit the php and tpl files and make small customization myself without the need of a professional… And the prformances are perfectly fine also on a regular hosting.

  • Kevin

    At the end of the day, it is all about performance. OpenCart runs FAST and with one of the nice ajax one page checkouts it converts well also. Code can always be improved, don’t care what cart/program it is…

  • Ng Han Wei

    You guys are mostly developers. please think for us non-developers. We want something easy to use, smooth.Takes up little space as we rather use the space for images.

    I tried megento,presta,zencart(was the worse for me) Woocomerces was abit limited.

    And about the repetition code, whats wrong with it? We try to reuse the same tools to reduce cost instead of buying new one. Not sure how it works in the coding world.

    • Niechea

      This is an article written for developers.

      Inspecting and critiquing people’s work in the open source community is actively encouraged in most circles. It’s called peer review. Sometimes it can seem harsh, but it is nearly always constructive.

      When multiple developers are contributing to a project, only the best code should make it’s way in.

      A good web application should be extensible. You SHOULD be able to maintain and update the source code of your application, and therefore modifying any of the source code should be prohibited, as it would be lost in an update of the source code.

      From glancing over this article, I see some are resorting to rather archaic practices to achieve what they need to do with this platform.

      • Reed

        Without business, who needs e-com solution(or e-com developers)?

        • ferisoft

          There will always be ecom solution and currently there are a bunch which are superior to OC, so if you want to use inferior technology in your business and suffer down the road when you have to do updates and add functionality and resort to jokes like VQMOD and have a complete untested piece of software that your whole business relies on, all power to ya :). So of us prefer to do things professionally.

  • Niechea

    I would sooner write my own e-commerce platform. There are a lot of people criticising this article. The author of this post has pointed out a series of flaws which have largely been ignored for many years. A community of half decent developers would have recognised the need to abstract the repetitive code a long time ago.

    I see that author has become a target of abuse on the count of him being supposedly unintelligent, young/new or simply uneducated. I do not see how this offers any critique regarding his article.

    In that same light, I might be considered new, uneducated or unintelligent. Unfortunately, whilst I lack a computer science degree and have been involved in programming for only 6 years (professionally), I often come across the same snobbery in person. Sadly, I have met developers who, having been involved in programming for the best part of 20 years, felt that their approach to, or opinion of a project is the only one to consider. Often, they are completely wrong, or misinformed, or just stupid, in fact.

    Now, it doesn’t take a rocket scientist to recognise that a large proportion of OCs codebase is now old hat, dribble. In fact, for those who are quick to validate their judgement based on years of experience will be surprised to hear that even a Project Manager that I worked with was able to recognise some of the flaws in the codebase (he was delightfully curious). So we didn’t use it. Thankfully.

    It’s all great that you defend your precious applications, whatever they may be. The truth is, nearly every bit of software out there is in some way malformed, ugly or painful to work with. But that’s a matter of opinion.

    The main reason I wouldn’t use OC is because I have no need for it. I have found a ‘solution’ which negates the need to use any other approach, in almost any case. It’s a little bit like using WordPress to make websites, when it’s a great blogging platform – except, I don’t know OC is supposed to operate as normally.

  • Reed

    Well, I have a small one-man-shop and I find opencart just fine. The reason for using my own e-com site is that ebay/amazon charge me too much.

    My very simple expectation of an e-com solution:
    – Low up front costs
    – Even lower maintenance cost.
    – Easy to implement by just myself.
    – Fast, I hate delays after click.

    So that pretty much limited my options to WP+Woocommerce, OpenCart, Prestashop.

    I tried to avoid WooCommerce because WP code base is a whole mess.

    Tried Prestashop for a few weeks, and the amount of problems for a clean install is enormous. Everything is a challenge. The most stinking issues with Prestashop:
    – Can not calculate shipping cost by weight. Has to buy an expensive plugin.
    – The shop URL is stored in DB, so I can not run two different copied from the same DB. (Hard to test between localhost & VPS)
    – If I modified two different tabs of a product and save, only the current tab is saved.
    – Try switch the theme and back, all configurations are lost!

    With open cart, I had none of the above problems and the site is up in less than a week.
    I spent about $110 on theme&modules, and $5/mo digital ocean VPS loads the site lightning fast.

    The few things I like about OC:
    – Themes/modules are generally cheaper than Prestashop.
    – The core system has very little bugs.
    – Default shipping module is 10x better than Prestashop.

    The bottom line:
    Change your post title, it does not represent the reality for many small business owners.

    • ferisoft

      It does however reflect the reality for most develipers and thats to whom this article speaks. Thanks afor sharing your experiences with it though.

      • Reed

        To whom this article speaks, I see a very legit reason that you developers should keep offering OpenCart as a viable solution to us(customers).

        I only posted because the other solutions you have recommended all fall short at places. You know what I mean if you spent 4 hours a day to maintain catalog in Prestashop. Opencart saves a lot of time.

        Not everybody willing to add headcounts and pay 1/2 million for what we make. Without business, who needs e-com solution(or e-com developers)?

        • ferisoft

          The backends of all those systems – Magento, Prestashop, Opencart work in the same way UI-wise in terms of managing the product catalog, so I am not really sure how it would take you 4 hours more to manage the catalog in any of the alternatives, both of them actually support bulk updates…so that should be cutting your time.

  • Emily powell

    Am Emily Powell from Canada I never believed in spell casters until my life fell apart when my lover of 4 years decided to call it quit. I was so devastated that i had an accident that left me bedridden. After 7 months of emotional pain and languish, a friend of mine introduced me to a certain spell caster, this was after I have been scammed by various fake spell caster. I was introduced to DR ONIHA ( A Spell Caster). In less than 12 hrs i saw wonders, my Lover came back to me and my life got back just like a completed puzzle… am so happy.. Dr ONIHA have all kinds of spells from pregnancy to love,from employment to visa lottery winning. He has spell to stop divorce,spell to make someone look attractive and others. here’s his contact for serious minded people only, it might be of help….onihaspiritualtemple@yahoo.com. wow Dr.ONIHA…thanks am so grateful as you saved my life.

  • Mostafa

    I’m an OC developer (well, not for a decade), and I see myself eligible enough to give a point on the article.
    First of all, the author is true, OC is a pain, and the developer who has to work on it is in pain, too. My point is to developers who has to use OpenCart.

    Well, first of all, this CMS or E-Commerce CMS (OpenCart) does not have any SQL-Wrapper which could be used dynamically and quickly. WordPress could be a great example of how query-handling could indeed be implemented, the thing all missing amongst foolish OpenCart SQL statemens. I never mention ORM, since it would be a never-coming-true-dream.

    Second, the author is right, the input handling could have been reduced to three to four lines, and using a central logic inside a function could have been much more robust than such traditional out-dated line-by-line approach.

    I see a person here claiming to be a computer expert for almost five decades, yet he does not bring forth any fact on why the author is wrong! He says OC is good for small e-commerce apps, yet we all know that being good does not equal being good technically. However, I even do not agree on this..

  • swed

    Jesssusfuckingchrist… Seriously, paulfeakins, you just gave naivety a brand new and hardly flattering face. Daniel apparently belongs to a rare type of persons; the two faced ones that kicks ass downwards and licks ass upwards. Him being (what we in Sweden call) a besserwisser (know-all, know-it-all) makes it all the worst. What are you trying to say here? Shall we hail Daniel or regard him as a savior and what do you mean by, “…gives away for free!”? There’s no such thing in this world, nothing is “free”! Everything comes with a price, everything! So does OpenCart, let be it’s indirectly but there’s still a cost to make it work as one desires. As a merchant I really don’t give a shit whether my web shop code makes programmers cry or laugh. My only concern is that the software does what it’s supposed to do. No fuckups and that it satisfy customers shopping experience so they return. These days I never directly trust what I read or see on the net, and I felt that ferisoft wrote his article more from being upset than to inform others about OpenCart’s shortcomings. He, for sure, didn’t use best practice writing his stuff. On the other hand, Daniels reaction is incomprehensible and his behavior definitely unacceptable. That dude certainly needs to be taught to shut up and sit still in the boat and furthermore, be utterly thankful to all the decent people that are trying to improve his creation. Surprisingly enough he’s not all content with the massive and gold worth help he receives from the OpenCart community (or anybody else, for that matter). Why? How come? Why does he constantly and stubbornly decline to listen to his own team’s suggestion for improvements? How come he refuses to implement all the things that would make OpenCart a heavy player in the e-commerce world? Why is he keeping the apple of his eye, his baby, more or less undeveloped and even remove functions? At first I thought Daniel was plain stupid or a poor moron alternatively suffering from a sickly boosted ego that had/has a restraining influence on his ability to elaborate OpenCart. Boosted ego, yes but stupid, nope! Daniel has proven beyond reasonable doubt that he has quite a disturbed personality, though. The whole thing obviously boils down to a well known human imperfection, namely; the unrestrained greed. OpenCart as a commercial product isn’t sellable on the market so the only way Daniel can generate some dough is by charge an unreasonable stiff provision on third party add-ons. Naturally he wants to keep OpenCart as basic as possible thus violating the very essence of the open source idea! Judging from today’s OpenCart’s deserted community, that just two years ago was a vibrant and active place, I say that this cart will sooner than later fall into oblivion. I for one will move away from OpenCart quick as hell coz Daniel have sowed the wind and will reap the whirlwind or as they say; what goes around comes around. BTW, I just visited prestashop.com and folks, that site are truly everything opencart.com is NOT!

  • Biscuit

    What a great post! I am guessing maybe this software started out as something for one particular job and was once just a couple of files and somehow morphed into a “project” and then it was too late to go back and sort it all out…

  • Opencart is fine

    Wha wha whinge wha

  • Lucas Ansalone

    Well, its Open Source software, so you should help and contribute…

  • Jack

    If you could implement an open-source project which is popular as opencart, i think you are a good developer. You don’t know how hard to maintain an opensource project. One more thing, don’t think and comment a project just like a technical boy.

  • manuel

    ferisoft, many thanks for this article. I was planning to migrate my shop por OSCommerce (what a mess! but was a good choice on 2004) to OpenCart. I had done already some tests and I was anoyed that the installation broke after installing a few modules and trying to modify their behaviour. I thought, well, probably I’ve done something wrong, let’s start over again. Since then I have not had the time to re-start but now witht your article I think I’ll re-start but with Prestashop (for which I had a kind of ilogical repulse which I should get rid off).

    It would have helped if you kept a bit more calmed in your writting and if you showed also some of the good parts of OC (which should have some I guess), but I agree with your criticisms to OC. And I’m not 20, actually I’m 43 and a MsC in Computer Science with experience programming in assembly, C, C++, java and php, and experience working with enterprise level databases like Oracle (for mobile operators billing systems).

    Moving more OSC to OC initially seemed like a good improvement, but I’m learning that in some areas it is not an improvement at all. Form handling seems better on OSC if I have understood it well (which I might not).

    In any case, I’m dropping my current installation of OC and moving to Prestashop, which probably is more expensive to buy modules but it will save me a lot of time (I hope) that cost a lot more money.

    Thank you ferisoft, you probably saved me a lot of time and headaches.

    Daniel, thank you for your work, it is a great achievement, BUT you need to move on with times and step by step modernise OpenCart with transactional DB, a simple modular framework and advanced OOP with proper use of polymorphism, etc. Please take this constructively, I’m not trashing your work, I’m just saying that I think it should modernise building on what you already have which is a lot.

  • http://mickmurillo.com/ Mick Murillo

    This night I just installed opencart and I found it don’t recognizes my admin credentials, that’s a bad start… but the code is effectively more lightweighted than others.

    • http://www.m1ck.pro/ Mick Murillo

      Easily solved the issue changing the password to a simpler one.

  • http://www.janes.co.za/ Janes Oosthuizen

    I have been developing for Open Cart for 2 years now. We run a e-commerce shop and after reading the above I can happily support the fact that its constant hacking and tweak and absolute abuse of vqmod to get things working.. There are numerous flaws, duplicate orders, checkout js fallback gives headaches, repetitive code the list goes. I wont use Open Cart again. Thanks Feras. Great compilation.

    • kabatza

      1. Opencart without any extensions will not break on upgrade unless you are doing something wrong!
      2. If the extensions are bad or you hardcoded them in core files without keeping a vqmod as a reference then this is not opencart’s fault! Also any software update needs updated extensions as well… this is not opencart’s problem… all software is like this.
      3. “abuse of vqmod to get things working” Same cause as no.2 Do you actually know what vqmod does? Does “Production” and “Development” mean anything? I never use vqmod on production… but I do use vqmod in nearly every php development project (not just opencart).
      4. So what are you going to use instead? Magento or Prestashop? You will soon have new headaches because “perfect software” does not exist!

      ferisoft does have some points for opencart but the statement “should never use” goes way too far!

      Where he does have some valid points:
      1. The language system and the form handling. The 2 language arrays are indeed pointless, but so very easy to change, I wonder why they have not been done. I guess it is for extensions compatibility probably. I personally do like the repetitive code in the form handling because it is easier to debug…but as ferisoft himself demonstrated it is also so easy to change.

      2. SEO URLs. I will agree there is the small problem if you give the same SEO name to both a category and a manufacturer, but once you know this, it is not a problem any more. What I do is always add “-m” and “-c” after the seo names. It will also only take 10 minutes to edit the code so this suffix becomes automated, but never bothered to do it because after all how often you will be adding categories and manufacturers?
      I don’t think a routing system like this is needed anyway and in my own custom apps I use regex instead like this:
      ^mnfrer/([*.]+)/([0-9]+)/$ index.php?itm=$2
      ^category/([*.]+)/([0-9]+)/$ index.php?itm=$2
      ^product/([*.]+)/([0-9]+)/$ index.php?itm=$2

      Where he is not right!!!
      1. MyISAM instead of Innodb. You can debate all you want but MyISAM is 3x faster in fultext indexing and SELECT than Innodb and I would drop transactions and foreign keys in favour of this speed difference any time! A combination of MyISAM and Innodb could be an option if you can spare the RAM to use 2 engines. A large store with thousands of products will run faster on MyISAM….period!

      2. Templates and modules: @ferisoft:disqus you are doing something wrong here! Unless you don’t know Opencart…there is no way it will take two hours to copy a dummy module or edit a template. I think you did not understand how things work.

      3. Architecture: Yes, there are 2 sets of files one for the admin and one for the frontend. This has been explained in the past and it is done on purpose to enable the admin to be separate, if need even hosted on a different server etc.

      4. OO programming vs procedural programing.
      He tals like procedural programing is useless rubish and this is not true! It is a fact that Object oriented design is complicated to do well and it is only considered to be best practice when it is done well. What is usually happening in OO software where there are various extensions from various developers, is that you end up throwing an override method which calls another override,
      which calls another override, etc….This is just spaghetti not OO and definitely not best practice! Procedural programing on the other hand tends to force people to think a little before writing. Again I will go with speed and speedy development….if this means procedural programing then so be it!

      5. Vqmod.
      This is a surprise from somebody who is claiming to be a pro! I dont think ferisoft knows what vqmod is doing or how to use it. Qphoria claims there is no noticable performance issues when vqmod is used…. but I prefer not to use it in production.

  • ryan

    OC is having a good market share and became popular in a short period of time.. yes it has some issues but any system do have issues and with time these will get sorted out ( no system is 100% perfect).. so what i like to suggest you is, invent your own eCommerce platform ( rather than criticising someone`s hard work ) so that we too could test and see where you stand and may be your system might become popular and even overtake others in the market…!!!

  • Tobse

    I am working with OC right at the moment. The task is to create a new checkout that suits the owners needs and style requirements. “Nothing bad about that” is when i thought of it wen accepting the task. Now, 10 working ours later, i regret it that much.. its a complete mess. Within that time i could have created 2 chekouts for a well-designed and programmed system. “NEVER use OC”, signed!

    • kabatza

      So because you cannot do it is automaticaly a mess?

      • https://creadev.org/ CreadevDotOrg

        Hes correct. The OC checkout scripts are indeed a mess. I started on the same and ended up re-writing them all to use component functions for mitigations rather than a pile of static ajax locked into a cheesy stepping process loading hardcode nomad notifications/triggers. I was very surprised to see basically the same scripts in the 2.x branches. What makes it worse is that there is no common notify, push, and/or actions (classes??) system, which you would figure would have been implemented (like other suggestions above) somewhere along the lines of, oh i dunno, 2010.

        • kabatza

          If it’s such a mess and you have now fixed it …why don’t you share your code and help opencart become better? If not, then you have no right to complain!! By the way…I like a single-page checkouts too, and there is a very good OC extension you can use and style to your liking very easy and it only costs around $30.

          • https://creadev.org/ CreadevDotOrg

            I’m not complaining, im simply stating a fact. Its messy there. And Eventually I will contrib. Actually I have started refactoring the entire cart instead of doing pull requests for each “issue”. The master branch progress is too monolithic, its not on their roadmap to get anything highly “progressive” into the framework ATM. I assume this is due to stabilizing and vQmod targets being lost or something backwards compat. There is a bunch of stuff missing that i have made such as: A better UX frame with JS listener/breakpoints, better global controllers, a preaction controller, layout TPL overrides, vQmod priorities, remote/front admin api, cache-asset busters, rework the entire SSL system (assets, HSTS, CSP), IP rewrite/proxy-buster, JSON-LD/microdata/SEO everywhere in general, CDN based libs, input masking, form field isset->selected check, various other admin-side helper functions for building settings interfaces, global notification system, pagination rework (inc rels), atom/json feeds of all lists, a proper [to spec] google shopping feed, more caching in general, better logging, better brute force prevent, spam prevent validator, cloudflare/proxy support, CPU/ram monitors, “tag manager” injects, hours of operation, information page directory with nested pages, make an offer popup, disable cart button options, auto generating metas, page title, alt tags if not filled in, minimum password strength, better free shipping system, permalinks everywhere, subcategory images, entity subtitles, language fixes everywhere, whitespace fixes everywhere, etc etc etc. It would take me like 6 months doing the dog and pony show to get all those pull requests in arguing back and forth as to why they are needed, hence a port is coming in 2016 for those who are interested :)

          • http://www.shaunfreeman.name Shaun Freeman

            @kabatza I tried sharing my code with OC to make it better only to be completely rejected without a reason. Daniel Kerr rejects everything from good developers trying to improve things. This make OC open source in name only, not in community spirit.

            Anyway there is a lot I like about OC but the way it’s programmed I don’t like.

            OC should be be rewritten from the base up as just hacking the old code will make it worse, there is a saying ‘you can’t put new wine into old wine skins’ if you did it would burst the wine skin, same with OC trying to improve the old code will just make a tagged web of code, so I am thinking on rewringing the code base with all the improvements I know it needs.

            If anyone wants in let me know.

          • kabatza

            I will be the last to defend Daniel Kerr’s attitude or practices…but he does not have to accept your code in his repository. This is not what open source or free software (GPL) is about! You are free to fork it , edit it and distribute as much as you like. Then, if your fork is better, people will start using it instead…and you can also make some money! Take MariaDB for example… it is a fork of MySql, and what many (including myself) use now.

            You are right about the “new wine into old wine skins” and this is why personally don’t use OC. But if you only have 3 choices (Magento,Prestashop, or OpenCart) which one would you pick. I would pick opencart without question.

  • Arturs Sinelnikovs

    This is true. Been using open cart a few weeks now. Nothing works out of the box. Everything needs to be fixed and edited!

  • Ian Brindley

    If this issue with sub categories breaking with duplicate urls is still bothering you. Check out the link below.


    • kabatza

      Good job…. I never bothered doing it myself because it is not a big deal anyway.

    • R Rogerson

      That may fix part of the problem (there are other alternative fixes too) … but the whole approach is flawed.
      1) different “modules” with the same short name will conflict (first found in DB will be served)
      2) you can access content via the “last” component (/p1/p2/p3 loads “p3″, as will “/p1/p3″ and “p3″, and even “whatacrock/p3″ and “p1/p2/p3/whatacrock”
      3) trying to get it to return a proper response code for erroneous URLs is a PITA
      4) trying to implement proper/correct Canonical urls using the correct SEO_URL is a bigger PITA

      You end up patching it to the point that it’s 30% fixes!
      That’s not good – that categorically screams “F*ed” :D

  • http://stuffthatspins.com/ James O

    I’ve setup many stores using Magento, Shopify, BigCommerce, WooComerce, OSCommerce, etc… I rolled my own e-commerce solution in Java WebObjects for 8 years. I always comeback to OpenCart. It’s awesome, fast, powerful and stable. Plus, it’s constantly being developed. This is crucial for me when picking a software solution, I like to see that it’s in active development. After you do a bit of research and wrap your head around the codebase you’ll find that it’s a wonderful Open Source tool for developing sites. Additionally, I don’t see where you can jump on Magento’s boat. Talk about a bloated SLOW e-commerce solution, Magento is a CPU and resource HOG. Here’s my latest fully responsive OpenCart store – http://store.TischInternational.com It has 10,000+ products, has <1s page load times and handles a couple million in sales / year. OpenCart is a SOLID solution! If you go bashing some product or software, you should *really* have a better level of comprehension of the big picture. Or, as I see in these threads, try to defend yourself from real-world developers using OpenCart everyday with great success.

    • R Rogerson

      I’m not understanding how you can say OC is fast.
      For numerous versions, one of the biggest and most common complaints it’s how slow it gets with moderate>large numbers of categories/products.
      The general “solution” is to disable product counts.
      That’s simply a shortcut, avoiding the real problem, which is the way the system makes a DB call for root (parent) categories, then a DB per child category (if any) … then a DB call to get the number of products in each category (root or child).

      Then there is the general lack of caching – DB Queries, item template compilations, general pages … not seeing any caching for them.

      It’s a shame, as slapping in a “not-activated” page cache turned a 2.2 second page to a .8 second page, and popping in some recursive code for the category menu with single “get all” DB calls took the 2.2 down to 1 (so either way, still darn fast!).

      (And yes, I tested your site – and it lags when I try to use the cat-menu as it seems to load via ajax)
      So again, I’m not seeing OC as fast.

      That said, I agree, nor is Magento (that’s a dog and a half to work with, and the code base is far more complicated to work through)

  • Serdar

    Thank you for the terrible article and hidden rant.

  • A bloke who uses OC

    We have an OC installation on a busy shop. It works, it makes money, but it is running constant errors backside. This is because various add ons seem to clash with each other at some point.

    I need an OC expert to fix some stuff in ours, but cannot find one I trust. To be honest, I would rather hire Daniel if I could reach him. I have had several guys poke around – including Q – but faults still remain. Our theme and add ons cause the faults, not OC itself.

    I love the software personally. I’d love it more if I could get it running the Paypal Express mod fault free, the emails fault free and the search fault free. Yes, it does have its faults I guess, and I don’t have the tech knowhow to know if the OP’s claims have any merit. But I can also see Daniels points when challenged by a guy who can’t/hasn’t done better himself who just got out of the proverbial nappies @ 20.

    Its a shame that there is not a commercial version of OC that can be had with all popular add ons built in, tweaked, tried and tested. I would rather buy that than keep buying add ons as we grow and then paying people to fix the clashes. Or not sometimes.

    As a store owner or a customer, nobody gives a rats ass about how its written backside. All we care about is: is it safe? Does it work? Is it fast? Well, its safe, its fast, and if some of those Indian blokes who write the themes and add ons knew what they were doing, it would work. Vanilla works perfectly, so the fact mine runs some faults is not Daniels fault. So in my view, as a user, it is perfectly fit for purpose.

    As has been said already, if the OP can do better, show us all your skills.

    If we have an OC repair expert here, with verifiable credentials, who isn’t 20, do please get in touch.

    • Guido


      I’m a Opencart developer. (I’m selling my extensions in opencart store)
      Please contact me to my email


      with gmail


  • http://jagansindia.in Jagadesh Boopathi

    Across all the ecommerce platforms i feel Open Cart is the best and fastest.. Easy to Enhance the modules and we can write VQMod without affecting core files :) I run 4-5 stores and all works good and efficient :)

  • MrMagne

    Funny post and comments :) I have been working as a web developer for 14+ years now and i have been working with OpenCart, Magento, Oscommerce, Zen Cart, Presta and more.. OpenCart is in my opinion the best choice for a small/medium shop. But i will admit that there is room for improvement, as in most software.

  • TonyMclane

    Oh yeah, I was looking for something like this, I’m new with OpenCart and I recently installed

    Pretty bad bad coding standard, it’s weird that in this year 2014 we still see these things

    One of the things I really hate is the Model classes, it’s just a mess of code, it does not follow the MVC, come on we are in 2014 not 2003

  • http://www.gadgetrophy.com/ Gadgetroid S

    I saw this article the first time I came across opencart but decided to push on. 1 month into using it I agree with some comments that it can be very powerful in some ways. On the other hand I have come across errors that I never encountered with any other similar distro before as the author notes. On the point of database structure and functionality – am no expert but it throws up an unusually higher number of sql errors. Its scary, if for example when they start cropping up at that point where your project is scaling up.

  • Le Thach Thao

    O this is fun. I just wanna say, I support OpenCart :)

  • scanner85

    I fully agree with the author. Code is outdated. Primitive style. But it works. Before the first load and crashes. Then begins hell.

  • Mike

    You are just butt hurt and sore that you didn’t get help on the forum and have a problem with helping others so now you decide to slam something because you are too child-like. Grow up.

  • Tim Ward

    “If you are doing a serious project go with Magento”

    Or, alternatively, you could try throwing yourself down a well.

    Look, Open Cart has a lot of flaws and I think this article does a good job of nailing them, however I think it has some advantages as well, and chief among these is that it’s not goddamn Magento.

  • texelate

    I’ve just used OC for my first project. It does have good points but one con I feel you missed is it’s even worse than WordPress in its reliance on plugins. I had to pay for a plugin that changed the image along with the drop down and another to set postage based on Geozone. It’s not that I resent paying — it’s just that it worries me that it needs a plugin for functionailty that I feel should be out-of-the-box.

    While I get what you’re saying when you make the comment “ALL tables, including orders is MyIsam, which first of all shouldn’t even be a consideration” I don’t fully agree. If you have a table that has no relations and is SELECTed a lot, MyIsam is faster than InnoDB. Maybe that requirements doesn’t come up very often but it’s worth noting.

  • anirudh7

    Opencart + Joomla = Magic Happened;

  • Simone

    Just to add to the mix and have some fun time commenting. I am using OpenCart for a small sized eCommerce. I must first admit that I am a self learnt PHP programmer with a degree in IT Engineering. I mostly learnt PHP by reading and coding by myself and I am far away near to a professional developer. However my first impression was that it looked clean and working good, since btw I was coming from OSCommerce which is even older I believe. Then when the site started to structure a little more I realized how a headache it was to achieve anything. It took me an outrageous amount of hours to learn how to do things and implement them on the website properly. Also the available documentation is not enough in my opinion.

    I was actually even more surprised and impressed in noticing how passwords are managed in OpenCart.. they are simple MD5 hashes of strings which are saved in the db. At least we can say that we should be happy that they are not directly saved as strings but I find funny how for my personal websites which I share exclusively with friends I actually even add some salting with more advanced hashing techniques. Luckily I feel to be still an amateur in PHP programming but from OpenCart I would expect some more advanced security for administrators like Google Authentication and not still plane MD5 hashing which btw also PHP.net suggests not to use.

    To be honest I never followed much the forums other than asking simple questions but I never read replies from the author of OpenCart and even though people say that his reaction is caused by the way this article was written, I do believe that he could have handled this discussion in a more professional way. Which he obviously didn’t which was quite disappointing.

    Anyways thanks for the article since a more professional point of view regarding a framework is always useful.


    I have to say, I totally agree with you!! I have been working on it for about 8 months, and I actually can tell you, not only what you have mentioned about, but also a lot more bugs & issues in its code. I just got shocked when I found all of them, and I couldn’t stop thinking that why there are so many people still choose it as they are IT technician, when I asked for one of them, and the answer is “it’s simple and easy to use”.

    I agree that’s true, it’s really simple, simply not design correctly, the vqMOD could be the most ridiculers part of all !! I actually read all its core code throughly, and I can make a long long list of issues of it, frankly speaking, I have submitted one of them to their codebase issue list in github, but there is no reply but deleted by the author, for now, IMO, there is no way to fix it, this system should be re-written, sooner or later it will be abandoned if they don’t do, or if I have read your post early, I would never agree to work on it.

    I admitted that I don’t like those complex system, that to deal with the problem not in that level of complexity, but for opencart, I am really tried of it.

    The truth about e-commerce software is sometime ugly, not all of them provide us the details of system benchmark, when there are 5,000,000+ products and categories, Magento crashed a lot too, anyway I learned a lot from this works, and I think before choosing any e-commerce software, we have to test it and do benchmark of it for our practical cases, then make decision.

  • manish

    opencart much much easier than magento and prestashop just know to understand the working of that open source

  • Karel Trnka

    You dont know what you are talking about.

  • politicos

    Why you should never read articles of that sort…Because it’s crap. Magento “expert” trying to demonstrate that the competing system is bad.

  • Simon Collings

    I used to like using OpenCart, but after contacting them about a simple query I had…
    The guy is so STUPID, he can’t even spell it.
    My conversation copied/pasted:

    and seller status removed!

    On 7 October 2014 15:59, Simon wrote:

    You are extremely rude, no wonder people are moving away from your platform.
    Me being another now.

    — Original Message —

    From: “Daniel Kerr”
    Sent: 7 October 2014 08:46
    To: “simon collings”
    Subject: Re: OpenCart – Enquiry

    dont ask me stupied questions!

    On 7 October 2014 14:26, simon collings wrote:

    Contact Details

    Username: webcookie
    Name: simon collings
    Web Site: webcookie.co.uk


    A customer has bought my extension but it says “waiting for proof of id”. What does this mean?

  • Pashka

    What??? You’re absolutelly wrong. Maybe lack of practise and knowledge causes such a topics… Opencart is perfect platform and many people love it!

  • Marco

    OpenCart is the best. I have over 34 years of experience as programmer. I know the web since before he was born and so I can say you what is the best ! That is all !

  • Bogdan Moisin

    Great article. Open Cart was a big step at the time it was developed, but now it has lots of issues. It’s not efficient regarding the time you spent debuggin and doing stuff around it

  • Rob van Hoose

    You make some good points, particularly in the architecture section. However, being OO doesn’t necessarily make a system better.

    However, I find it just mind blowing that you would, given these concerns recommend Magento to anyone. I would use its database design as a class example of what happens when someone does not understand relational concepts and tries to build a database. Its filled with normalization problems; just awful awful design.

    Further, I’d say Magento, and most Zend framework 2 applications exhibit the flaw of over-engineering. Where I am not an Opencart user or supporter, I can appreciate code that does not over build. Perhaps it should be refactored to support extending it externally. I agree with building a protected and upgradable core. However, it’s also very easy to “go too far.” Many projects like Magento are extremely glutinous with resources and require an extremely high learning curve to operate and modify; despite the fact that what they are doing is not all that complex.

    Open cart may be under built — and perhaps a refactor and continued evolution of its code would be good.

    Magento is extremely over-built with a very heavy framework and mis-conceived database schema and display view/block system that makes it very difficult to implement auto-responsiveness. You recommended this pig? *shudder*

    • ferisoft

      Well I gave a couple of options every single one of them better in my opinion than opencart. You can use Prestashop if you want more simplicity and it will still be 1,000,000 times better than OC. As far as complexity I am not sure. When I first tried Magento it took me about 2 weeks to get going and pretty much everything made sense, despite their utter lack of documentation, I found it to be quite flexible for me and much much much better development experience than OC. In other words I prefer a heavy or a big framework, which I find intuitive and makes sense to me, rather than light weight pile of garbage…

  • Asif

    Nic I have also use opencart for many e-commerce web sites (y)

  • pda

    I am a professional programmer for 20 years mostly with Microsofts Products and

    of course a Microsoft Lover.

    Yes, right you heard. Microsoft.

    No i am not trying to change the subject. The subject is php and OpenCart.

    But let me make an introduction.

    I started developing windows application since Visual Basic 3 and Web applications

    with classic ASP and Dlls back in 1998.

    I used ASP with new ActiveXObject(“Microsoft.xmlHttp”) to make AJAX calls back in 2000

    to fill a 2000 options in combobox without refresh and everyone thinked i was a magician!!!!!

    For many years i used only IE with the WRONG BOX MODEL allthough in my mind it was the RIGHT BOX MODEL.

    When you say 100% width you mean the entire length to be 100% and not only the area you write.

    As the years passed by, many companies discovered the magic of AJAX and SILENTLY all started to use

    the WRONG OBJECT MODEL of IE via box-sizing: border-box;.

    YES Bootstrap cannot work without box-sizing: border-box. Its impossible!!!

    Today i use all the latsests technologies c#, ASP.NET MVC, AngularJS, Microsoft WEBApi, Entity Framework ORM.

    jQuery to write MODERN SOFTWARE.

    That is the key point: MODERN SOFTWARE!!!

    When you are a devloper with Microsofts tool you MUST BE MODERN. YOU HAVE NO CHOICE. Even the core language c# keep changing from

    year to year and you must always catch up.

    Entire frameworks abandoned (e.g. Web Forms_) and new comes into place (MVC Razor).

    Every year something new, every year something BETTER, something MORE MODERN, with diffrenet

    architecture. No they are not doing it for selling products. They are programming/technology maniachs. Every change they

    make – after a while – you realize, you cant live with it. You cannot go back!!!

    This is my background. A background

    – to abandon classic ASP because you write ugly spaggethi code,

    – a backgound to give up writing SQL statements directly to the database but use ORM with models

    – a background to write Object oriented code just like microsofts core library. Each object .e.g. Response, Request, httpContext has at least 3-4

    parents. Every method with more than 50 lines of code means it is badly designed!!!!!!

    The Question:

    How modern is php, the holy grace of programming?

    i come by accident to this web page and i see 10 pages of comments

    …talking about DB transactions??? in year 2014??

    …talking about copy/paste code programming??? in year 2014??

    …talking about global functions, global varibales, namespacing polution??? in year 2014??

    …talking about project with dir–>dir–>dir–>dir–>dir–>dir hierachy in folders as mandatory??? in year 2014??

    For making money, i am also a free lance developer for 3 years behind an eshop build with php Zen Cart.

    Also i delivered a project in Drupal 7 for 6 month now.

    My opinion?

    All and i mean all…open source projects (drupal, prestashop, opencart, zen-cart, oscommerce e.t.c) are 10 years behind in code, technology and

    innovation. Many of them have CRUP UGLY CODE that only a first semester IT student could write.

    In prestashop, in Opencart, in Drupal what happened if i choose to write a module that has the SAME NAME as an commercial module. i suppose

    you cant. I must changed it becaouse the folder name is occupied by another module!!!

    1000,2000,3000,10000 open source developers for 10 years are updating their code base and that is the best they can think of? A module name must be unigue

    all over the world for ever and never till the end of time!!!

    1000,2000,3000,10000 open source developers for 10 years are updating their code base and that is the best they can think of? To make directory levels of

    4 depth to discover you view templates (see. PrestaShop)

    1000-2000-3000-10000 open source developers for 10 years are updating their code base and that is the best they can think of? To use the work “module” and “hook”???

    1000-2000-3000-10000 open source developers for 10 years are updating their code base and that is the best they can think of? vQmod?? Repace text in source code???

    if someone in my company propose such a solution for ovveriding, i will laugh and fire him!!!!

    So the million dollar question? Why thay are here?

    Because it is free, because the developers do not care about innovation and are happy with copy/paste, because they are already have any isntallations,

    because even in a crup code if you keep debugging it for 10 years, sometime the bugs will end!!! Full Stop.

    So until the born of a new fresh php Signle Page Application eshop platform comes live using AngularJS + robust modern framework (like Laravel)…

    the behind code, architecture and space for extensions…are all of them in the same level.

    Use only what suits you needs.

    I will stay with OpenCart and maybe with Prestashop!!!!!

  • Steven Mars

    I’m a professional PHP Engineer. Reading this article as well as the comments have led me to a few conclusions. I also downloaded and checked out the code (I did write a small module for it a few years ago, and couldn’t remember much about it.)

    Firstly, the article is indeed written in a one-sided manner, and could have been better phrased. The author’s comments do seem to be intended as a way to make himself look more intelligent. Sadly, mostly what comes through is the arrogance of youth.

    There is, however, a bit of truth to the article. I find the lack of any comments (I looked through most of the system stuff and didn’t find any) rather unsettling. No matter if you are writing for beginners or open source, good code is commented. Uncommented code can lead to confusion. I would seriously suggest that the developer who wrote this code at least commented the important parts if he wanted to be taken seriously in the PHP community, or anyone in the coding community. I found a few places where foreach statements were simply run without checking if there was even valid data to do so. This is basic coding stuff.

    I would feel more comfortable with PDO style database queries, bindings too, of course. I’m not sure why a standard, mysql_ type driver is still in there (probably just for backwards compatibility?) but I would remove it. Also, running this code with error reporting reveals a few nasty things.

    All in all, however, I must say that opencart does work. Sadly, I’m a purist, but I’m also a developer how understands the amount of time and personal sacrifice that goes into building something like this. That being said, I think the developer acted in bad taste being bated by this article and turning to personal slandery when he was very aware of the age and maturity of the author of this post.

    I’ve built many complicated and simple systems, small and large. Sometimes you have the convenience of time, sometimes you don’t. The same may be said of budget. Anyone who has ever put blood sweat and tears into a project that they are giving away from free knows the price you ultimately pay by letting your baby go out into the big bad world. Some guys are going to love it, some will hate it. I suggest both the author of this article as well as the author of the opencart code have a lot of growing up to do, whatever their ages.

  • RegularMan

    Im not a programmer or understand any of the framework or an OOP or anything related PHP, but my guess is someone is so not like how the OC are getting millions or maybe a billions hit, when we criticize many of them willing to punch us back with their words, but think this… If we talking about OC and you know where’s the keypoint inside the OC itself and you know how terrible it would be, and suggested other people to use different shopping cart and then you want them to leave the OC (That has millions maybe a billions subscriber) in the world, i don’t think you can do that, unless you’re willing to get your ass for 10 years of coding of your own ecommmerce site.

    Im not a coder not even a programmer, but i do love how things happen im a user basic person, just a regular one..

    WHY DONT YOU CREATE YOUR OWN ECOMMERCE SITE AND SHOW DK (OPENCART OWNER) THAT YOU ARE THE BEST!? If it’s worse but why does millions of people download it and use it and coded it and then used it until now? because they’re stupid and you’re not?

    Criticism is something similar like you loved it but didn’t liked it you used it but need improvement, not by getting telling them that its useless to used it…

    I don’t think you can accept the criticism yourself… why must DK?

    Want to be on top of #3 in the world? try and create one ecommerce site that DK has done in his entire life.. im not supporting anyone or judging anyone here, it’s only part of my point of view..

    You know programming you know where its lacked, so why don’t you just email DK and tell him you have something to show him, helping others wont hurt.. The more you help the more you can get touch with their script and played with it and help more of them and im sure you guys could tag along…

    But im not sure DK will accept you anyway now.. :D ahakz.. what a loser…


  • John

    Opencart is horrible. Try removing it.

  • kal Exan

    I too agree that Opencart code is a mess and requires many improvements to meet basic programming concepts (especially in terms of code repetition). Opencart future can be extended a lot by completely rewriting many parts of the code, however doing so all vqmods out there will not work. The worst thing is that the projects only developer and owner does not accept any constructive criticism. I am sure that sooner or later somebody out there with a lot of spare time will fork the project for sure. The same happened with OSCommerce too…

  • Adam Dougherty

    What aload of shit I just read, even in the comments alone. If it works don’t complain, if it isn’t perfect but still makes sales, don’t complain. The most popular user operating system is the worst code I’ve ever seen. It still gets used everyday all over the world. Even Facebook code is pretty shit! What a useless article that wasted so many decent developers time.

  • Mike

    I have no specific criticism for OC because I’ve never used or work with it before; as a matter of fact I’d not heard about it until now. However, the OC creator’s response is a complete put off, the most unprofessional attitude towards the people with concerns about OC is not a nice one at all.

    And I wish that the OC had not publicly made a mockery of himself this way. Yeah he may have put a lot of work in his own software, not that the world will stop if it doesn’t exist. Everyone’s entitled to their own opinions and Oh boy! The guy sounds like he loves himself too much, he only reminds me of the saying “An empty barrel makes the loudest noise?”

    And unfortunately for him, either he likes it or not, he will have to learn not to be too sentimental and accept constructive criticisms.

    I like the way the author of this article had laid it out, right or wrong, it’s there for everyone to read, agree or disagree with. In my own opinion, he’s more professional addressing this audience than the OC creator. If the OC creator is not full of himself, how can he label people that disagree with him amateur, when the proof is in the pudding, the OC’s creator’s response here is more amateurish than most of us.

    Neither I’m I biased reading this article nor using OC (NOT), rather, against the OC creator himself, his responses here , not positively responding to a constructive criticism, is basically telling us that his software is probably a piece of thrash as described. I mean, if you represent an organisation this way, you already got a sack.

    Lastly, if the OC creator repetitively used the phrase “criticise my work” in this article about three times, do you need further answer to why he has “Code Repetition” in his software as discussed by the author of this article?

  • Tissy Joseph

    ***** 5 stars to Opencart. I have very successfully running an e-commerce site for over 5 years now, after testing a few others like Oscomerce. Great great work from Daniel and Qphoria. Don’t listen to these jealous morons!!!

    Keep up the wonderful work!
    Regards / Tissy / tmart.in

  • http://samjoyce.co.uk Sam Joyce

    Could not agree more, I am new to e-commerce and skimmed opencart and it seemed OK. Put it a few clients sites, OMG how much code repetition and lack of adaptability. Opencart sucks the fun out of coding in PHP.

    I expect the vQMOD will need updating every time they update the core, as it searches core, if that changes vQMOD will fail, whats the point?

    Going to learn Magento instead.

  • Al Brookbanks

    My name is Al the owner of a competitor company to OpenCart called CubeCart. I came across this post which was interesting. I think Feras has missed the point a little in that there is a market for crude coding within the (dare I say) less experienced or less academic developer community.

    I can understand why Dan is so defensive about criticism when you have worked so hard but he clearly hasn’t dealt with it very well here. OpenCart seems like a great product and is clearly doing very well. I wish them the very best of success.

    • ferisoft

      That’s perfectly fine to build a mom and pops store that sells a couple of items. The same can be done with shopify or any other service that lets you build a store. I dont think any real and comprehensive ecommerce work should be done by “less experienced” developer community. That will lead to stuff like:

      Serious ecommerce and any other applications that touch confidential information, monetary transactions and such should be handled by people who know what they are doing, and not be developed as a learning experience. So when someone with less knowledge downloads a piece of open source ecommerce application they assume that the people who developed it knew what they were doing. As it seems from this post they not always do, so it’s just a warning im throwing out there.

      • Al Brookbanks

        I actually disagree so long as any security holes found are taken seriously and patched within 24 hours. Security is key and just because a software may not be developed in the queens English doesn’t mean it can’t be secure.

  • KanVin

    I’ve been working with PHP roughly for about 7 Years now, I still don’t think I am a great programmer, but I get the projects done on time, it works well, and handles good load of traffic, takes decent care of security, cleaning user inputs (As basic as it sounds) etc….

    I’ve always thought, the best way to go forward if its your project, or a software you are building and continue to support and earn from it over a long period of time is to do it for yourself from the scratch.

    You can not expect to take any framework off the shelf, and hope that it will be the one for your serious big enterprise level and will take care of all your functional requirements.

    Heres a list of eCommerce platforms I used, in the order:
    1) OSCommerce
    2) ZenCart
    3) Did something on my own for a client (I should have continued working on it, its already been about 5 years now since) and released it as OpenSource.
    4) Magento
    5) OpenCart.

    To be honest, I have been most satisfied with OpenCart, and for my own eCommerce project which will launch around March first week, will be using OpenCart, will carry about 10,000+ products.

    Agreed, not all frameworks are good, not all of them are bad either, its just what fits for you well, for me it certainly is OpenCart, simply because the others don’t.. and its a big community, when lot of people use it, the problems that people run into are the same, most likely, you are not the first one who would have ran into a bug in the code etc… You are most likely going to find solutions on the Internet somewhere or on the community page etc…

    Thanks DK for the Open Cart being Open Source. Will not suggest any changes or criticism about Open Cart, simply because, I haven’t even contributed anything to the community yet, will do so in some time… :)

  • AKK

    Let me join you. I like OC and so far I made good amount of £££ thanks to OC. Love Qphoria’s modules and I appreciate his involvement. OC wouldn’t be the same without him. I agree, Daniel K is a big time idiot and his attitude sucks. He won’t take any criticism or advice. He’s the one and only. OC isn’t the best but it’s free and mixed with some paid modules it does the job pretty well. I maintain a few websites with up to 1k products on a small VPS with 4GB of RAM and QCore CPU. It works and it’s fast. I have even donated once some dosh to OC and so far, £300+ were spent on modules. But I’ll repeat myself, taking some anger management classes by DK would make the overall experience much better. He really sucks and yes, he’s cocky bit time. Shame.

  • DaveG

    Daniel Kerr – you come across as an absolutely awful individual that no decent software company would want to hire. You should be embarrassed that your comments here are publicly online for the whole world to see. I’m not going to properly weigh in on this, other than to say in my opinion (no one special, but a professional software developer of over 12 years), yes by the professional programming standards I work with day to day, OpenCart’s codebase and architecture is very poor. The fact that PHP development as a broader industry is prone to slack standards and poor practices doesn’t make those practices any more acceptable or less bad. I don’t deny that OC is popular, or that it fundamentally works, but that doesn’t make it good software. Here’s a very simple benchmark anyone can try to determine for themselves whether or not the architecture is any good; try and write unit tests for it, then come back and tell us all how that went.

  • The Russian Forums

    I will preface my comments with the fact I am not a coder – I am an OC user.

    Knowing what I know now, several years later, in hindsight, I would probably have gone with Magento or another software. But having said that, now we have OC, and it mostly works, I am more inclined to try to fix it when it breaks for now; that is if I can find someone who can do so – which is a challenge in itself.

    It must be said that nobody cares about the underlying code if it works. Yes, you pedantic tech blokes might, but store owners and customers do not. If it works, it works, the end.

    But there is the problem. A vanilla installation works perfectly. But it is not feature rich. To add what you need, you must buy add ons. They seem to all be written by random blokes in India and installing one sometimes breaks another one. This is where the wheels fall off.

    It cannot be updated easily that I can find. If you do, it breaks all the add ons and you start to need to hire a coder.

    Our tech kicked out the VQ mod right away as he didn’t like it. He installed everything theme and add on related manually, then he had to work days to get it all to work together in harmony mumbling about crap code. An installation that looked and worked how I wanted it cost several thousand Euros in the end.

    Why oh why isn’t there a feature-rich fork that is tried and tested that can be bought? One where emails work properly, one where search works properly, one where Paypal Express works properly? One that can be updated?

    My installation still needs more functionality as we grow (why in hindsight I may have been better with a Magento type installation originally).

    My installation still runs many faults I would love to have fixed, but I cannot find anyone capable of doing so. Qforia couldn’t fix his own mod with my theme and Daniel didn’t reply. And I offered to pay both.

    About Daniel: I have read his comments here and on their own site. Yes, he can be a bit arrogant and doesn’t suffer fools gladly. But then again I am the same. I take his point with the article author that he can offer criticism of OC without doing anything comparable or better.

    If you can do better than OC, do it and show us all. Its easy to throw stones and tell us how you would do it better. Well, unless you do, its just words. Daniel is out there doing it – most here are just throwing stones. Most here haven’t used the product and seek to pick it apart on the basis of stuff customers and users cannot see.

    Is OC perfect? No it isn’t. But I do like it, its good for SEO and I dearly wish to find a tech that will help to make ours work properly. Building a shop is a LOT of work, and I would rather repair and update what we have than start over.

    Bottom line is: even though our OC runs many faults and I swear at it sometimes, it makes money. We have a large and busy OC site.

    If I could find someone to fix it where Q failed, and update it, I would be a happy bunny. Every coder I show it to runs a mile.

    • ferisoft

      That was exactly my point, businesses rarely care about the software, usually the attitude “hey developer, fix that”. That’s why my article is mostly targeted towards developers, so the next time you hire one and advise him to use opencart, he will have all this background information about the technical stuff that is broken. Which leads me to your main point “Please someone fix it…”. Unfortunately this is impossible, if your system is fundamentally flawed and build on shakey foundation, it will never work well, it will be a constant patchwork where one patch breaks then ext one and you become lost in the mess, which seems to be your situation. I don’t need to write a comparable software and spend a few years on my life doing so in order to critique it, the same way i don’t need to build my own car, in order to critique one with obvious flaws… Anyways, thanks for your post from a non-technical user standpoint. Im afraid, if you don’t make the hard decision to switch earlier, the more you grow, the worse the problems will become.

      • The Russian Forums

        Ferisoft, thank you for the reply. But you are missing some points. Yes, ours runs some faults, but it is heavily modified. Is it still OC? Yes, OC is the base platform, but what we have now is rather bespoke. Hence why so few are prepared to help fix it. I know enough from my html days that our faults will be one or two characters somewhere. Finding them is the challenge.

        Does that make a bad platform? No it doesn’t. You know why? Because 99% of customers check out OK. Because while you are reading this, someone probably checked out on our site. Tomorrow morning my family will eat a nice breakfast paid for from a mix of my SEO skills and Open Cart. See what I mean? Even when faulty it is doing the job.

        It is OK to use from the Admin side once you have the hang of it. Google LOVES Open Cart (an essential point some of you blokes forget).

        However, what are you offering as an alternative? What can you offer me? Can your magical skills improve our installation? Do you have an alternative that will preserve our URL’s? Have you developed an OC fork that works better? Have you released a version that has cleaner code?

        Offer some of that stuff and you may make some money. Daniel made some money doing what he does. I made some money doing what I do with the help of what Daniel did.

        What will you bring to the table?

        • ferisoft

          Well I hope it keeps working fine for you, because fixing any problems in it at scale will be extremely difficult. What I offered in the post were a few other alternative pieces of software that in my opinion are much better designed, and they vary in features and learning curves. Thank you for your work proposition, but I am not interested.


          • The Russian Forums

            So to clarify, you are bringing nothing to the table here?

            I didn’t make YOU a ‘work proposition’ that I recall, BTW. I hire ideas people; not Chicken Little’s just out of nappies. You are right that fixing problems will be difficult, but in the absence of ideas from blokes like you, I shall seek out someone with a tad more experience.

            When you have developed your commercially viable, updatable cleaner fork, drop me a tweet. If I can keep my settings and URL’s, I’ll be your first customer.

  • http://shrunkenquasar.net/ John Barner

    I think it is important for people to read the comments of this page. Seeing that most of the supporters of techchattr are just as vile, if not more so in their vitriol is telling. The author of this post asserts he has the moral high ground in this argument, but he lost that when he and his supporters turned to logical fallacies and personal attacks to try and make a point.

    Just because someone else does it, doesn’t mean you should. It doesn’t make your point more valid, and it doesn’t make you right. I’d be embarrassed to be a part of this argument. If you can’t maintain a level head, you’ve already lost the argument.

    For shame.

  • Etki

    Gosh, what a hell in comments.

    I was whining about wordpress architecture for years, but then i met opencart and stopped whining about wordpress. I got a better (worse?) thing to whine about!

  • AC

    TechChattr may be right in every points he wrote, in the ideal programmer theory side. Well Done! But you need really work for the huge and really big projects, like the government.

    Daniel Kerr create OpenCart – which is in the REAL WORLD side. From his experiences, to make the product useful to the real world. Thanks Daniel. You’ve created something that is affortable to the general public, you’ve made lot of people’s life easier.

    The conclusion is, You both are right! So no need to continue the war. You are living in different world, serving different group of people, and may have different life too.


  • Al Brookbanks

    Hey all! If you fancy a change from OpenCart, CubeCart is now open source and defintely worth checking out. https://www.cubecart.com

  • ser

    there is no winner in this discussion. you both lost here. you both came over as “aroganza” filled.
    opencart may be not that “professional” coded in your opinion. ever thought that the way it is coded is also the reason for its success? easy to handle and fast for a deployment of a shop with basic functions. there is almost nothing opencart can’t do, that a shop owner would need. mostly it does the job and it does it fast.
    as i see you earned money using opencart as a developer. not even a dog bites the hand that feeds it. second, you gained attention while trying to put one of the greatest shopping cart solutions down. you lack of human sense.
    you guys just want more money when developing for a client and opencart is easier and faster to deploy. so you can request less. that’s the issue with most developers for eCommerce solutions.
    when someone in the forums try to do it on themselves you bash out and attack him. i know your type of humanbeeings. you are green behing your ears.

  • Tei

    *troll appears* he guys, OsCommerce! *trolls runs away*

  • Douche Baggins

    I’ll keep it simple: If I don’t like something, I just don’t freaking use it! And certainly I won’t waste my time or half a freaking day writing a long article with code samples bad-mouthing everyone’s code left and right. If anything, at most, I’d just share my insights in a forum, or even more simple, I’ll just look the other way. I don’t like osCommerce, ZenCart, Magento and a ton of other cart solutions out there (if you do like them, just can it!) I can work with them, but I choose OpenCart. After all, no one is putting a gun to my head. If I’m forced to work with any other cart solution by any reason and I see something that’s not working right, then I fix it … after all, I’m a developer, and I think most people in this discussion are too, or at least I would hope someone voicing a negative opinion to be one or they are way out of their place. I really think Daniel has no respect for anyone that says “here’s a bug” or “something’s not right” but that’s a different topic altogether. He’s a jerk, yes, but I don’t have to “love” the guy in order to use some code he writes. And finally I use OpenCart on all my projects. I currently develop a website for a client that does almost half a million dollars each year and it runs smoothly. If you’re a developer then develop, if you’re bitching then guess what that makes you?

  • Yani Haigh

    Good list of things that need to be done before a 3.0 release of Open Cart. I’d add an ability to turn off product attributes that are not in use. There is likely a good case to be made for applying library code too.

  • bubach

    Is this still the case, now 2 years later and with OpenCart v2?

  • Hayal

    i have used opencart and prestashop and i find opencart is very difficult and imigrated after 3 months to prestashop. I couldn’t make changes on the theme in opencart and also there are some bugs i realy didn’t understand. Now prestashop has no issue and i can solve the problems and minor bugs if happens. Because it is easy. And my store looks like a big old website: http://mayovebikini.com/ You can check.

    But to be fair i have got almos no coding skills. I simply search online and try to do it myself.

  • http://adriancallaghan.co.uk/about-2/adrian-callaghan/ Adrian Callaghan

    Open source life cycle for a developer:

    1. Imagine a cool product.
    2. Put a great deal of time and effort into making it a reality.
    3. Document and offer it for FREE to help people.
    4. Get feedback/requests/complaints from ungrateful people.
    5. No longer maintain product.
    6. No longer release open source.

    Some of you should be ashamed, its quite a bashing you are giving Daniel!

  • Turbo

    Here’s another example of Daniel Kerr:
    Closes a valid bug report and bans the user, just because he had the nerve to post a bug report in the Bug Tracker.

    Good project, idiot owner, nuff said!

  • Ercan

    I couldnt find a simple extension for simple things on OC. I install one, it breaks other parts. I fixed the part, but that extension does not work well with another one. OC is COMPLETELY waste of time. Also very useless UI on admin area.

  • http://www.greenlitmysql.com greenlitmysql

    Wow I never thought a Open Source software could generate so much passion, and almost “hate”. I’m a Sr. Mysql DBA who provide Mysql Optimization consulting. I was recently tasked to Optimize Magento and OpenCart. The Magento Ecommerce solution was running on a beefy server (20 CPU, 64 GB of ram) and yet, it had some issues. After creating a Slave, and splitting the read/write, it was better. (I also had to do some tuning). For openCart, i had to convert myisam to innodb which take few minutes.
    In todays world, Start Ups Biz, developers want to do it all alone without involving a DBA. A DBA has database knowledge and for many of them Architecture background and they know how to best “Design” a database (modeling the database) and how to implement it. Database design can represent up to 40% of an Application performance. If your DB is badly design, the code sitting on top won’t make it better. Mysql has been using innodb engine for a while now. (5.0 i believe, which is 7+ years old). Converting MyiSAM to innodb does not take long (better to do it off peak time though). I also noticed that OpenCart did not have much indexes in place (which confirms what I wrote earlier, Developers might not know how to best optimize a DB). Finally, Mysql has evolves since 5.0 and 5.1. A sub-query in 5.1 won’t perform as well as in 5.6 for example.
    In the end, it comes down to :
    – What’s available on the market
    – At what price
    – How quickly your store will grow
    – How much traffic you will get

    Final note: I would not be too harsh on someone who probably spent a lot of time creating OpenCart without being paid, but for passion and to satisfy a need. It’s always easy to criticize, to write a few offensive words or sentences especially when you don’t know how much that person put into the project. (See movie Birdman, M Keaton, scene with Theater critic in bar).

  • JooonsJoonz

    ok, just let me point ou that OC sucks, but broadleaf? seriously, it’s almost worse

  • Steve Green

    thank you. You’ve just saved me a lot of trouble.

  • Zenon Przychlast

    I just wanted to thank you for your article. It helped me a lot in choosing the right e-commerce solution for me – one less to choose from :)

  • Lucy

    I agree to a number of points given by you. In addition, for security conscious people this is the right article for securing their opencart shop: https://www.getastra.com/blog/inside-guide-opencart-security/

  • http://www.snapyshop.com/ Sarath Uch

    It’s good that you mentioned about those points; I read your article one before I started prototyping my product; But now I am using opencart for my MVP: http://www.pengpos.com You are right but I don’t agree at all. Normally CMS is not the right now choice for an one going product development; but if they think in a very lean way, using opencart is great enough for getting start prototyping product before investing much time in developing a great system.

    I like opencart, because it’s lightweight ecommerce CMS, if compare its performance to Magento. Opencart is much much better.

    In term of development, Opencart MVC is really easier to implement. Learning curve was really short. (If you have Model-View-Controller concept)

    + I don’t like a few points in Opencart. Its module communities are very limited and almost 80% of them are commercial, which is difficult sometimes for developers. Especially its document are very less
    + Repeat the code: Especially Controller, sometimes the same function which is used in different place, but you need to repeat the code again & again. That’s waste lots of time & confusion.

    + Server Configuration: Such a really crazy configuration file.

    However, I would prefer to use opencart for MVP to demo and test user first. At least we can start faster, and redesign the architecture from scratch would be later on.

  • Daniel Portales Rosado

    I wish I had found this before…

    I’m a professional developer with years of experience in PHP and after some time working (against my will) with procedural stuff in WordPress, I decided to give Opencart a try, since i was sold by the idea that it uses MVC. One of the first things i noticed is that you need to create XML files with PHP and regex in order to make your own modifications to the original files… WTF?! I mean… seriously, WTF?!

    Why on earth you would want to do that since OOP and PHP provide a natural way to override code made by others? Did the creators never heard of Class inheritance? As the post says, the code is somewhat using OOP but it fails big time at implementing some basic concepts. Even at procedural level, a lot of refactoring could be done.

    I’ve been trying to use OC, which is a pretty recent release at the moment of writing and I can backup everything the post states.

    Unfortunately, I now have to work on this platform due client requirements but if you, fellow developer (I’m not talking to you, script kiddie) are still wondering if OC is an option, I’ll simply tell you one thing: RUN. In the other hand, if you’re in a similar position as mine and you cannot escape this terrible fate, I’ll give you an advice: Google for “Opencart override engine”, which is a very good approach to use OC in the “right way”, like an oasis in the middle of the desert, yes, but you’re still in the middle of a desert…

  • electic.lv

    After couple of days, after install trying to figure out how I can fucking delete all demo data and start new blank shop. I found there is no easy way to do, this. What is my next move? Next move is newly opened windows with search string in google “open source internet shop”, get more than one suggestions what I will try instead of this pile of shit.

  • Nasredine
  • Raj

    Simple isn’t bad for some people. I’m not a programmer, I own a small business. I have mediocre tech knowledge. (My degree is in history / poli-sci.)

    I created a website 9 years ago and it was ugly and poorly designed by today’s standards. I recently scrapped it and tried an opencart theme called journal. After a few days of messing around I had a reasonable site up. I didn’t have to pay someone $5000 to create a site. I paid $49 for the theme + my time.

    I can’t comment about the programming architecture, but I like opencart. (I’m using OC 2.2) There are a lot of areas that could be better designed for ease of use. For example: the catalog > product page set up could use work. Mass picture uploads would be nice (though I found a lot of modules for that).

    This being said, with opencart I made a website I am happy with. It wasn’t that hard. I have control over it. I didn’t have to learn html and build something from scratch.

    The author’s overall conclusion that Opencart is bad is wrong. There are a lot of Opencart modules that can give you additional functionality.

    My conclusion: Opencart is good because it is simple to use and can be customized heavily. The OP’s criticism is a technical one. My praise for opencart is for its ease of use and cost. Not requiring a programmer is really liberating for me and lets me make more creative content.

  • OG_Sean

    How did you not mention VQMod!? VQMod is the craziest part of opencart. I can’t believe that’s what they have as a plugin architecture when things like WordPress make it so obvious how to do it so much better. Honestly besides VQMod nothing to me is really alarming… let’s talk about VQMod though…

    VQMod basically provides an encouraged method of hacking in code rather than using hooks like other ecommerce systems do to allow plugins to interact with the core functionality. It has it’s own XML format of going into existing core code by line/location or searching out parts of PHP code, and then basically hacking in / inserting lines at a certain spot for you. Works fine if all you want in life is 1 plugin, and that plugin is relatively short. But, now think about if you have 20 plugins and they all modify one of the core files – 20 different “hey insert my random code right there” type configs all at once, with no like DIFF previewer or something to help you manage that approach. Collisions and issues are inherent to that kind of approach and it’s no wonder there are so many issues with OC plugins breaking the site. This is kind of a ridiculous idea in general!

    Also it makes these insertions at runtime the 1st time the file is run, so the result output of the insertions isn’t even there debuggable until you hit said page at least once to generate it, then it generates the new file and puts it in a cahce. So, if you’re running version control, you better be using a dev environment and committing off your server or you don’t even have a copy of the files that are modified until they run, which is ridiculous!

    I almost feel like the name VQMod (“very quick modifications” I think?) was a cry for revision because anything you program that’s a very quick mod is typically a hack, and a marketplace of hacks I doubt was the original intention, but that’s what it is now. It’s an interesting way to hack a core file without modifying it I suppose, but the workflow and the concept being the backbone for thousands of plugins seems kind of crazy, even to a mid level programmer like myself.

    The first time I worked with VQMod trying to fix a plugin and figured out what was going on it was like a twist in a movie you don’t see coming… I was like wait… so SOME of the core files don’t even run anymore? What the… where did these modified / cached core files come from? What the… wait…. noooo wayyyyyyyy


    I agree that the noticeably repetitive code style is ugly / not the best but it’s not really a problem, at least it makes it obvious what’s going on. The heavy DB calls is really more of a concerning issue than the code style. The architecture is pretty well organized so that’s almost more important than what the core files look like.

  • Mike

    I started using OpenCart 9 months ago and have a shopping site for a small client and it was a painful and slow process. If I were to do it again I would steer clear of OpenCart for sure.

    The code is messy and finicky, there is no abstraction so theme templates are stuck in the version they were created it, you can’t simply migrate to the latest version of OpenCart if using a theme. That single point is enough to avoid it.

    The MVC engine is as slow as hell, it taking a long time to load products or do anything basic. Especially the admin system, that is the slowest of them all. Repetitive code everywhere, takes a whole day to change minor things because again, there is no abstraction layers. OpenCart is like a half-pregnant woman, it’s not a CMS and it’s not a real shopping cart, it’s kinda inbetween. It doesn’t do either very nicely.

    About security, although the owner brags about “meticulous hand-crafted SQL” (why not use stored procedures?), he doesn’t mention the hundreds of extensions that have very badly coded dynamic SQL and likely open up big security holes.

    The owner has a nast disdain for young people and their IT knowledge, specifically 20 years old, dunno why, maybe envy. But I’m somewhat older than he is and I can still say OpenCart is very badly written, it’s a mess and I dread having to make any changes to the cart. Don’t let his confidence fool you, it’s a crap system and after seeing his immature responses on here I’ll be looking for an alternative.

    By the way, how many people work on core OC, I bet only 1. There are major OC annoyences and flaws which he refuses to fix for years, while spending time on forums blasting everyone else, while us programmers have to painfully work around them or advise clients that it just can’t be done, because the guy who owns the source code doesn’t see it as a problem. Open source at its worse!

  • Mike

    Oh yeah, VQMod was another painful experience, my advice is do NOT use this product it will ruin your OpenCart core modules. Avoiding this modification system is not easy as most extension developers are using it. It makes maintaining OC a big pain. There is also a “Modifications” folder which is another nightmare. In closing, Opencart is not something I would be proud of developing, despite its popularity, which seems to give the owner a moral highground to reject all bugs and complains. Its not a real open source project in the true sense.

  • Pete

    The biggest single problem with this article is that the programmer and his friends decided to use a low tech open-source product to build a large store.

    Perhaps the author should have done more research before trying to bolt
    on their system to a piece of software designed for a much different

    ..Because that was a stupid decision.

    The title should be “Why you should never use opencart on an industrial strength, high budget shopping site”.

    OpenCart is great for low budget, fast and hack proof shopping carts. It is more functional than OsCommerce, and even with 100,000 products it is much faster than Magento or woocommerce on a shared server.

  • Peter X

    Our ecommmerce coded with OC and hosting on AWS with customization with S3 Cloud search and Cache.. The site are 100% online with more than 4000+ products and speed tge same as only 10 items.

  • aaa

    Interesting article, but tbh you lost me with “If you are doing a serious project go with Magento”.

    How can you seriously suggest Magento as a decent platform for eCommerce? Half the faults mentioned in this article also fall on Magento (some are much worse), and design-wise Magento is one of the worse bloated pieces of crap I have ever seen in my life. One glance into the way they implemented the products grid (everything hard coded in core template files…) should tell you enough about it. And as for speed, unless your servers are NASA super computers or you use external (obviously paid..) full-page caching mechanism, forget about serving more than 3 clients at the same time…

    • Kelvin Jones


  • Shinn

    i totally agree with you, my previous project was with opencart, it’s really good that contains everything i need for online shopping, but the code was Sooooooo much Code Repetition, some complex controller has over 2000 lines full of language->get, request->get, this->error and validation, please make a shot to Laravel, you will see what ‘beautiful code’ is.

    • mithereal

      once you autoload the languages, errors and filters upon loader -> controller -> view instantiation, most of the annoying repetition is gone, too bad dk didnt accept my pull request and decided to talk shit instead of including this feature.

  • https://twitter.com/RussianHQ Stuart Smith

    I realise this post is quite aged (not to mention controversial), but what do the members here think of OpenCart 2?

    We have a 1.5 site that is getting old (and still earning money), but to be properly responsive and do a few other things, my devs suggest upgrading to OC2, which they say is much better and I won’t have to pay to have half of it re-written to actually work.

    Can anyone advise if on OC2 search and emails actually work properly? Does it still have a tedious multi-page checkout as standard or must it still be re-written for a one page checkout? Any facility yet to split out non-EU sales for zero VAT purposes or even account for VAT at all and/or sensible accounting reports? Are upgrades automated yet or are we stuck with manual upgrades and the dire VQmod for the add ons (that most devs dump).

    Or better yet, has anyone developed a commercial paid-for fork that works as it should?

    I am quite a fan of OC generally (even though it cost a couple of grand to make what I have work right) but I dont want to leap into OC2 if I again have to spend 4 digits to make it work right.

    Or an alternative question might be what is a better alternative (with proper support) for a big, busy shop that OC1.5 can be migrated into without too much pain that doesn’t cost 5 figures and that staff who know OC can pick up quickly?

    • Kelvin Jones

      I love opencart, theres only a few methods of doing things, unlike Magento where there are dozens of routes and thousands of layers of admin! All just waiting to be hacked!
      Version 2 is evolving and sadly there are silly bugs that never seem to get patched, but there aren’t many and while this article is 100% correct with the repetition that does create an extremely readable and understandable coding structure to anyone dipping into the project.
      We have tweaked the core files to allow three tiers of templating/theming in one site and the repetition allowed us to easily apply a mod across the whole system in a few minutes, and its easy to remove.
      Its not had the time to grow that Magento has, but it honestly has less bugs (by a country mile)!
      Go for it on OC2.2 and upwards, there are quite a few differences between 2 and 2.2 but it seems that 2.2 has a structure that isn’t likely to be rewritten in a hurry.

  • Amir Ali Khan

    magento is the hardest to learn .. i love opencart

  • Kelvin Jones

    Oh and just for a giggle. In answer to the authors question “What happens if you have a manufacturer and a category with the same name one might ask…”?
    Well, the same thing as any other system! The manufacturer page /siemens/ and category page for /siemens/ in any system will take the user to just one end point – they haven’t added mind-reading into HTML5 yet (I have heard that Qphoria is writing an extension for that though).
    Fortunately the people who developed the system had the foresight to make all the url keywords UNIQUE in the database, meaning that you’ll have to go for /siemens-products/ or similar for one of the two routes anyway – and hey presto, solved.

  • http://www.findmehotel.net/ Find Me Hotel

    I have been using OC for more than 6 years now for my site http://www.tmart.in and I found it excellent by all standards. I am not any advanced techie, but found it very simple, very easy to understand and tons of free modules as well. I am all cheers for Opencart

  • mithereal

    opencarts got lots of bugs, but all software does, only when you really start developing large applications do you realize everything is always broken, all the time. as far as 2.x goes its just 1.5x with the certain code rearranged ie loaders, error handeling, output, view has changed to be more responsice-ish, see here http://forum.opencart.com/viewtopic.php?f=181&t=131934#p520383 not much as far as db or security has changed, vqmod was rolled into oc and renamed to ocmod and stripped of key pieces of vqmod making many extensions incompatible, they need to be rewritten for ocmod, the js is all kinds of crazy, my biggest gripe is you cannot debug this thing, dumping varibles to the screen is not debugging, there is no way to step through the logic. im not a fan of bootstrap or ne of the larger mainly useless css or js thats included. its just a big ball of mud with no definitive separation of responsibilities, which makes it not future proof, ie a change in one model can have cascading unexpected effects. this ties you to this platform, it is not data centric, and when you need to upgrade, its gonna be a major undertaking.

  • Jack Kopimi Mcleod

    The only reason to use OpenCart is that the other systems can’t be explained to a client that has very little experience with website management. I lost a few clients who just got discouraged when I showed them prestashop and magento. The code is horrid and yes, it’s made by amateurs, but the system is also made for amateurs.

  • Ronaldo Santana

    I’ve been using Opencart for years now – both as an out of the box solution and as a base to build something else. But of course there is room (A LOT) to improve.
    The system is good enough for what I need and far better than the bloated and slow magento and others I’ve tried.

    The code is easy to understand and change – but it is not, by far, a brilliant piece of code and the handling of the criticism by his creator is appalling. Seriously!!??!!

  • Joey

    I couldn’t agree more with you. THANK YOU!!! Opencart is the worst commerce software EVER! Even if you need to do simple things, you must think and act like Einstein to figure out how to configure it! And maybe you have a slight chance to make it work. Otherwise LOOOOOL it’s almost one way: You end up to 5-10 developers they really know – actually developed opencart- begging them and paying them extremely expensive , for a job of 5-10 minutes, if you were using other ecommerce product.
    The past one month is been a nightmare for me. I have a new client, who has glue in his mind and he wants opencart. Man…. even a simple feed, is not possible to make it work! S U C K S.
    Have a beautiful day.

  • Jiří Petruželka

    Well, gotta agree. Actually this is list is even too short and polite for what it could have been. As for security – OpenCart isn’t even secure, to name just a few examples: none of the templates employ any sort of escaping (yes, it IS necessary, on every level), front-end is vulnerable to CSRF etc. Reported ages ago, response was “do it yourself”. Same for numerous other bug reports – either “do it yourself” or “not a problem”.
    There are some positives that can be said – it’s quite consistent (bad, but consistent), readable.

    Their praised VQMod is hopeless by design as well, you can’t make a robust modding system by rewriting the code using regular expressions !!, let alone let several different modules do the same over one codebase. It can easily result in broken syntax, broken semantics (experienced both), practically untestable. And if it works, it’s by a sheer chance.

    Then there’s rudeness of some of its developers…

    The cost of transition seemed to high (tiny team) so we’ve stick with it, but we’re making huge changes and rewrites so the codebase looks less and less like OpenCart, eventually it should become something completely new. A problem is that extensions are no longer usable, but using extensions of questionable quality deployed by the horrible VQMod … I’d rather do it all myself.

  • Bugly Schwansen

    Hey folks, Do use OpenCart! Our Opencart webshop, functions really smooth and well! Many thanks to Daniel Kerr for making the beautiful OC source available! Britt Bastian from the http://www.bugly.dk team:)

  • Ernest Ng

    Magento 2 is just a joke, bugs are more than functions, taken out major function and cheating for license fee, suck all your profit and time to manage

  • Blir Kalim

    Must write this, you are so right.
    I will leave Opencart as soon as I have time to test something else.
    The support team is under all level aswell, even done some extensions but if you think they will be happy to earn 30% for all you are selling YOU are totally wrong. As soon as someone complain they just bend over and get fu**ed. So if you read this please think about another system since you need to buy many extensions to get it running just slow and looking nice.

    I have been using Opencart for 5 years now and it still is very slow if you have many products. I have even an own VPS and there is room for more in memory. I have spent over $400 for speed, cache, seo, checkout, payments and so on. But when you have over 4000 products it is so slow and still take seconds to load the frontpage, okey we have over 3000 visitors every day but after 5 years you think the system would be faster. After every realease i download and test it and same smile all the time, what have they done?! This version is not faster as last version.
    All from me…… listen and learn a lesson.
    I have done mine.

  • honeynatividad

    The thing is, Im using OpenCart ever since I have read your post. I dont like Magento so I tried the opposite. Its really good for beginners but if you are an egoistical borderline psychopath programmer, use Magento. Anyway, I totally agree with all your points but I am still using OpenCart. Because of a simple reason. Easy to use.

  • Daniel

    After 20+ years of development Opencart is the biggest piece of s**t I have ever seen.
    Opencart is made for people who have no idea what development is and they just want to buy all sorts of modules and add them to the project.
    THAT’S IT.

  • https://www.autotrade.com.ph/ Abigail Carson

    Interesting artice. Thanks a lot for posting.

  • Martin Tonev

    I use this platform from 5 years and I agree with everything you talk about in this article.
    But customers are not interested how the code is written and they keep used it.

    I was hopping version 2 will change the code but the repeated code is again there.

    Maybe it is time for someone with more free time from me to extend and make opencart for developers and the code to be little bit Laravel style :)

  • Łukasz

    Hello Feras,
    please update your article as it does not affect version 2.x

    For the moment OpenCart 2.x version is one of the best shop engines I have ever used, and certainly one of the simplest to modify.
    Compared to working with PrestaShop or Magento, OpenCart is simply convenient to use.

    We must remember that OpenCart is designed for small, medium and large e-commerce systems, not for very large monsters serving tens of thousands of orders per day (MyIsam here is just ok).

    1. OCMOD (vQmod) is like preprocessors, XML is just a draft, in effect we have a ready to use PHP file. ONE OF THE BEST IDEAS WHICH ARE EXISTING. Again see how it looks in Magento, PrestaStop or WP… and remove this point from the list :)

    2. OpenCart language support system is simple, fragmented and efficient. Everyday I work with WP and PrestaShop, in these systems, language management it is problematic. Not in OpenCart.

    3. Security… ok, this is not the Symfony framework, but if you do not break anything in the base code, OpenCart 2.x has no major security vulnerabilities.

    4. Templates… again, one of the easy-to-use solutions. With OCMOD, module view files are cached, remove this point from the list :)

    At the end, you called the OC community group – inexperienced people. It is just nasty. Sorry, but this article is very intentional.


    • Jiří Petruželka

      0. If it’s just 100 orders a day then it’s ok for the DB to end up in a non-valid state?
      1. vQmod by definition is not guaranteed to work, even on syntactic level, let alone semantic one (especially when you combine multiple mods, it’s purely luck-based). It’s just a patch to a big flaw that OC was never designed for overall extensibility (it does offer it in some specific parts like payment options etc.). The proper way would be to utilize architecture that supports extending and replacement of components (OOP kinda lends to it, though it’s not strictly a requirement).
      I’ve seen how vQmod works in practice – you end up with files that cannot even be compiled
      2. Yet (without modification) it requires you to write dozens or hundreds of lines of boilerplate code for every template…
      3. It does have major security vulnerabilities even out-of-the-box, for one the default templates are completely void of any escaping. It’s been reported yet ignored. Another example – passwords are still SHA1 (which has been broken; nesting doesn’t matter)

      Looking in the code base I see some effort and improvement done, needs to be acknowledged, but it is far from anything like a “great job” or “high quality” and the criticism is imho warranted.

  • chosonnom

    I think I have to agree with the author of this article.

    I happened to have a look at the code of opencart. This is 2017.

    No InnoDB and no transactions. Also the queries don’t have much protection from sql injection. The mysqli doesnt use prepare. Prepared statements. Also too much controller code is bloated with localization text retrieval.

    However saying all that. I have modified it to take InnoDB, transactions, and to use prepared statements.

    And the modification doesn’t take too much time.

  • N.T

    After seen the getProducts() method I have decided not to EVEN DOWNLOAD OC. Period.

  • Jesse Duran

    COMPLETELY AGREE TO THIS POST! Someone who understands my pain.

  • Wayson Lin

    I completely agree with you. For non developer, it’s a cool and fast CMS. For developer, it’s a piece of crap. It’s for amateur developers. The key problem is opencart has no offical documentation for developers. That’s why we should charge more for extensions than other CMS.

  • Mark Cherepanov

    Dont agree with your opinion. I have been used opencart, joomla, 1c bitrix, frameforks like yii2, simfony for more 5 years. Sometimes I use opencart cause it’s simple. If you wanna create a shop no more 20 000 products it’s one of the best free solve!

  • Arnis Juraga

    Many of these are in scope of re-manufacturing for Copona. https://github.com/copona/copona

  • vinon

    i am not a programmer,opencart is where i learn scripting coding, so far i manage to create what i wanted with my website, and some complicated ones i purchase module from others . i could only say opencart is good for a non programmer

  • named

    Obviously sponsored article by Presta or Magento. Take care :)

  • Yuriy Lisenko

    Absolutly agree developers opencart seems never heard about patterns.
    Just uing MVCL.

  • Arnis Juraga

    Just a funny thing to follow: https://twitter.com/ocalternatives
    May be Opencart owner can learn something from public responses :(

  • http://www.geeksvilla.com/ Zubi

    true, OC is good and should use instead of other technically hard platforms.

  • Alex

    Could you make another blog post based on the newer Opencart version? Like 2.3 or 3

  • http://www.switchymedia.nl Pieter Ten Cate

    This article can no longer be accurate after the release of opencart 3.x. Probably still not perfect but still..

    • Thomas Lang

      Agreed, I’ve been using opencart and magento and shopify+ for many years professionaly, yes opencart has it’s flaws, but so does magento and shopify, time to remove this blog post, it’s old and inaccurate.

  • Stefan Nick

    Magento? Maximum 10.000 items. My OpenCart is working well with over 25.000 and transactions is accepted.
    See: http://www.KM100.ro

    • Arnis Juraga

      Thats good! Except … it’s not an Opencart…

      • Stefan Nick

        It was OpenCart and i still use it on AutoAccesorii.eu
        KM100.ro migrates on CS-Cart platform because i need MultiVendor

  • Jim Bob

    Opencart may have flaws but I’m using it anyway.

    Why so? Because it’s easily modifiable whereas as a few opensource projects have a steep learning curve in terms of modding.

    That’s one aspect that I see seldom mentioned.

  • Leandro

    and when you want help them with a ideia, to improve something, they just close your issue without say anything. assholes! they are just assholes

  • Arnis Juraga

    Opencart is either moving to payed Cloud platform, or will just die in the next few years. It’s good for out-of-the box, but lack of community (and that’s an achievement from @disqus_N8h7oWiEFn:disqus ) is main problem of project.

    They really must change an attitude :(

    Otherwise – anyone should take a look at OC alternatives, originally forked from Opencart:
    or even Laravel Based: https://octobercms.com/

    Have more fun:

    • Ernie

      > … but lack of community (and that’s an achievement from Daniel is main problem of project.

      Well, it’s not that easy, OpenCart is a commercial Software, and every OC User is a potential Competitor of everybody else, trying to get a FREE foothold in the online Business. And who would assist others, even for free, 99.9% of all OC Users only visit the OC User Forum, if they are looking for some FREE assistance, but NONE OF THEM would ever be willing, to assist others as well.

      Some just expect too much from others. In addition to the uncounted masses of opportunists, trying to make a Buck with stolen OC knowledge. And under such circumstrances, one cannot blame one only Person, it’s the System itself, wich makes it hard, to keep such a Project alive and well for a longer Period of time.

      At least as I look at it, beeing around OC for 4 Years, and with 8’998 Replies, I guess I know, how the User Forum works…

  • Takietamhehe

    Opencart is the same crap as Presta. In order to change the module name (“Featured”) they tell me to fucking edit a PHP FILE. IN 20 FUCKING 18!!!!!!!!!!!!!!!!!!

  • Zaur

    Prestashop is a shit than Opencart.

  • željko šimić

    Thank you very much for this review and explanation. It helps me a lot. But pushing Magento as alternative (which is the same mess and worst) makes me doubt some of the issues you mentioned as correct so I will double check some stuff you mentioned because person who review some CMS and promote another that is even bigger mess is just an invitation to double check everything. I can agree with WooCommerce, PrestaShop and Shopify as alternative. Magento is a total mess, and with that a lot more expensive (more then 1000 bugs and constant need for IT agency to administrate).

  • Andrey Zhidenkov

    I was going to use OpenCart for one of my projects. Catalog had about 5 millions products and 200 thouthands categories. So, after I imported this in OC I even was not able to login into admin. So Indecided to write my own engine using Flask and PostgreSQL and it works well. It took 2 weeks to do that from scratch.

  • http://blog.ganeshdas.com/ ganesh

    Thanks author for saving me,
    I have no issue with opencart, as I am a learner, I can learn from anywhere
    but learning from a bad code or source will also make me think and logic like them
    Learning from a good teacher is always better.

    just now when I installed opencart and tried it, I found it very slow, I thought my internet may be slow, but when I tried prestashop it was working smoothly, I had no idea why it is so, Then I google why not to use opencart and it brought me here, many other forums also said negative about opencart,

    But I insisted to use opencart because it has less nos of files and codes, so I thought it may take less time to learn,

    on the other hand I also worked in prestashop, and I am very much impressed with its features and admin section, and its quite fast, thought its code base is large may be complex to learn but I will learn if I get good MVC and OOPS here,

    • Arnis Juraga

      Opencart has changed few of described problems and “mess” in latest OC3 version master. What can be interesting, to look on some Opencart forks to check them out.

  • Paul Linos

    I agree. Also the opencart software itself has many bugs and tricky issues that you need a developer to correct those delivered mistakes. Almos every extension and module like payments, contac form, etc has many bugs. If you buy an extension many of the extension developers will ask you for passwords and personal information. So they are not clear in the installation of the extension so you need to give them your passwords and info. DONT GET THIS OPECART APP. VERY BAD AND VERY COMPLICATED TO CHANGE OR CUSTOMIZE

  • http://nodws.com/ Nodws

    The code is garbage even with their recent update, close second is WHMCS!!

  • Olav S. Sovik

    I am quite disappointed with OpenCart. I have been running Prestashop for over 3 years, Opencart for almost as long and for a short while also using WooCommerce for one project. Prestashop is very good but the modules cost a bit more. So I thought OpenCart was a good choice since the modules and apps are much cheaper. Been using Opencart for about 3 years now for one project. My experience is that many of the apps/modules/themes developed for OpenCart are of poor quality, and after installing some we had several instances of virus infections spreading on the server. That never happened in any of the other stores. There is not even a function in OpenCart to export all the sales invoices into an Excel sheet for tax purposes. To do that I had to buy an app from an indepdendent developer in India, there were not many options in the marketplace and this one had some of the best reviews, but still it was unable to export VAT details for each invoice – it only exports total, sub-total and postage. If orders use different currencies they get all mixed up, and with the currency sign on the wrong place so that Excel cannot read the value correctly and convert. I have asked the developers if they can fix this but personally starting to get fed up with OpenCart and seriously considering moving all shops over to Prestashop and WooCommerce. Many similar extensions that cost money when using OpenCart are available as free extensions for WooCommerce.

  • Miguelangel Cabrera

    Actually I’m using oc in june 2019 and it’s the same crap.. a waste of time trying to learn and code for freelancing.. since now I will pick another ecomm like Prestashop or Magento.. so oc please rewrite your framework into a real ecomm platform..

  • Luke McLachlan

    i used magento and would never return to such a bloated piece of crap! thank god for opencart!

  • petears

    So what’s your alternative then, …Prestashop?
    I tell you what!
    Prestashop is the most pathetic difficult shopping cart to install and worst of all, try to install it with PHP7, …good luck. I even had my server guys working on it but, after 2 days, still to no avail.
    Prestashop H E L P on that?
    Zero, nothing.
    Look at their forum, how many similar issues stay unanswered,
    Awesome Crap, really.
    Worked with Opencart and it works, flawlessly, none of the headaches like with Prestahop, just tog et this da** thing installed.
    So, what’s your alternative?

  • Fakhriddin Umarov

    You totally right bro. Thier code is very very very repetitive. Not humanable. Total trash. There’s so many long lines you can’t reach scrolling your editor horizontally. I finally found someone who understood it. Thanks for right post man.

  • Димитър Димитров

    Opencard has a clear and understandable structure. It has scalability and openness to external manufacturers, that’s very good. The author’s thesis infuriated me, so I write here. I started working with an assembler 30 years ago, today I can easily appreciate the qualities of software like Opencard, it is something well thought out and implemented.
    In short, I do not agree with this article.

  • Mike 223

    Bugs,bugs and more bugs. You can spend hours cleaning all those bugs from extensions, themes and the OC itself. Virus?, yes you will get some virus in your server from the free extensions. Very difficult to customize the ugly style of the site. It takes more than 20 seconds to make any change because it is based on modules and you need to click several times to get the module you want to change. It is designed for web developers that have a lot time to waste. Zero support. Extension are not update and many time the extension is just abandoned by the developer how created the extension. NO RECOMMENDED

  • http://www.pcware.gr Γιάννης Ράλλης

    Just found this post in 2020 and I have to say that, while I agree with the Author, OC is the cheapest (including any extensions and themes you might need) and most reliable e-commerce platform that I know of. It is very easy to modify with moderate PHP skills and runs pretty fast when paired with a caching extension (many themes include one). IMHO you should stick with version 2.3.2 as OC 3.x has nothing new to offer other than fresh bugs. Running multiple OC 2.3.2 shops with PHP 7.2 and they outperform both WooCommerce and Magento shops with a fraction of products/orders/views compared to the OC ones (same hosting ofc).

  • Ted Spinkle

    It’s so sad to see so much vitriol over this article. I know it’s a very old post now, but it’s still generating responses. I won’t join in on the fray, but here is my 2 cents.

    Some alternatives have been mentioned, but I’m very surprised no one here has yet talked about LiteCart as an alternative platform.


    I tried OpenCart a few years back, but decided to go with LiteCart – and I’m glad I did. LiteCart is a fantastic open source PHP cart that’s been around for about 8 years(?) now. It has clean code, is lightning fast, and it’s creator is open to suggestions. I’ve been using it and programming for it for over a year now and the more I use it, the more I like it. The only thing “lite” about it is it’s footprint (the latest download is only 1.4 MB!).

    Bugs and coding errors are quickly fixed. Just check out the Github commits page — https://github.com/litecart/litecart/commits/dev

    When visiting the web site, don’t let the images of cute little rubber duckies stand in your way. This is a powerful cart that can handle whatever is thrown at it.

    Besides the ducks, the only negative I have is that I wish there were more comments in the code. The online wiki does a decent job at explaining things, but it would be nice to have more comments.

    The only area where OC has LiteCart beat is the number of add-ons available for it. But that difference is getting smaller. The add-ons I’ve bought work well, but if they don’t, there’s a 14 day money back guarantee if the mod author can’t get it working for you. Pretty nice! I’ve even written some modules myself (it was easier than I thought it would be). And for end-users, LiteCart’s add-ons are generally less expensive.

    I wouldn’t go so far as to say that LC’s author is obsessed with speed, but every other version seems to speed up the script, which is surprising as you just don’t see how it could get any faster than it is now.

    It’s already powering three of my stores, with a forth one on the way. I have zero qualms about recommending LiteCart to anyone – developer or end-user – who needs a new e-commerce platform. I think both groups would be pleased with it.

    Has anyone else here used it?

  • http://developermode.co Yavor

    As a programmer I initially thought that OC is ok too because I heard things and code seems simple. I had to work with it’s so-called “API” and let me tell you this is an “API” that is like no other API you have ever used:

    – ZERO documentation. Probably relies on the notion that “OpenCart is open source so you can read the code and figure out how to use it on your own.”
    which translates to
    “We expect you to figure out what was in our heads at the time we wrote it. We don’t care how much you will struggle. You will probably struggle a ton even considering you’re have a dozen years of experience in PHP already… but hey, It’s open source, you can do it!” The go* *amn Linux *cking krnel has 1000% more comments in their code than OpenCart..(I didn’t pull that out of my ***. Go check the Linux kernel code and check OpenCart)

    – Super-unintuitive code examples you might not find anywhere but a home-grown PHP project from the early 2000s.

    Example one: How to do validation of POST input data?

    How the normal programmers do it:
    – Option A) Break on first error: Take 1 parameter. Check it for errors. If you find the error return it right away and stop execution.
    If parameter 1 is ok, check parameter 2.. etc.
    – Option B) Break after all checks are done and return all errors in a list.
    I.e. check parameter 1, if it has error — add it to a LIST of errors.
    Check parameter 2, if it has error add it to the list
    at the end of the validation block — check if the list has errors — and return them all. Stop execution.

    How opencart “API” does validation:
    (It is the first place I see a so convoluted validation ever)

    Check if parameter 1 has errors. If it has errors put it in $json['error'] = “There is an error with your Payment details”
    But don’t stop. Don’t use a list…
    Just check the second parameter, is it wrong? No? It’s right, Ok but now let’s replace the first error with the current possible error, because why not spaghetti please?!
    $json['error'] = “There is an error with your shipping address”;
    continue through a maze of if-else statements which the OC creators didn’t give a flying f*** to debug themselves.

    Now return the last error message, no it’s not the real error of course. Who needs the real clear errors?! Other people? Who gives a d*mn about other people? :)

    Example 2:
    – What do GET requests in a REST API do?
    – They GET you an item/a list of items!

    Nope. Not in OC “API”

    In OC api GET api/payment/methods
    what do you expect it would give?
    A list of payment methods?

    Well it does… with side effects. You cannot create a new order without calling this endpoint! A f*cking GET endpoint!

    Why? Well the *technical* reason is because it sets data in your session record and later uses that that data to get the payment method for your new orders.

    The real reason though is that OC is just a mess and it’s programmers have no idea what a REST API means. They don’t give a f*ck and write their code like the rest of the world does not exist.

  • Rick Yoder

    I have had an OpenCart store since 2019. My main gripe is the piss poor extensions that people make.

    OpenCart is great for DIYers who want to code their own customizations. But when you want something done ASAP, you go to the extension store.

    Let me be abundantly clear: I have NO problem paying for extensions.

    What I DO have a problem with, is paying for extensions that were PURPOSELY made to ONLY work with the default OpenCart theme. Developers create a problem so they can provide you with a PAID solution.

    I’d rather they code it so that it’s theme agnostic and charge EVERYONE $10 or whatever than make it free and force a select few to pay God-knows-how-much.

    There is literally no reason for some of these extensions to depend on jQuery UI and Bootstrap.

    Currently trying to get iSenseLabs to assist me with the Square payment extension they offer.

    They could have made the extension much more simple…So much more simple.

    But instead they embed everything inside a Bootstrap form with “form-group” elements, use jQuery UI for fancy sliding effects, and then contain each payment method (card, Google Pay, Apple Pay, Afterpay) in Bootstrap tabs.

    This extension could have been made UNIVERSAL very easily.

    Literally. Just plop the code for the Square payment form, and put the Google Pay, Apple Pay, and After Pay buttons underneath. Make the buttons fluid with percentage-based widths and pixel based max-widths maybe. That’s it. No tabs, no jQuery UI, no Boostrap. Just the card form and clickable buttons with fluid widths that are center-aligned. No need to obfuscate something so simple with a bunch of jQuery UI and Bootstrap code. And any extension-specific CSS styles should identify elements via VERY SPECIFIC CSS selectors, as to not be falsely styled by the theme itself.

    Again, I have no issue paying. But when these devs go out of their way to make “free” extensions not work with the dozens (maybe hundreds) of themes that people could be using, it pisses me off.

  • In Trade Media doo

    After 10 years, there is no cheaper and safer solution than opencart when it comes to e-commerce, no matter how much any add-on costs to make opencart work perfectly. If you already refer to prestashop, then you should say that you will never get far on prestashop if you do not have an extremely large budget. And even if you know how to program, on another platform you won’t have satisfactory results like on opencart. These are facts regardless of the fact that sometimes a little more effort is needed to add new ones to those powerful ranks, and this is proven by the year-by-year increase in the use of the opencart platform. The only thing I would agree with is that Daniel is exaggerating the commission by selling extensions. You are not right anymore, but on the other hand, as a programmer, you are not deprived of earnings, and as far as I can see, you do not have much experience in programming, because if you had, you would be satisfied like other programmers and their customers. And considering that this is one of the few articles on the internet that think badly of opencart, it can be said that it was written precisely because other platforms are galloping after opencart. My conclusion is based on my shop on the opencart platform, which has over 70,000 items, thousands of categories, brands, countless photos and other information, all of which has been working without problems since 2015 and with minimal programming effort. And it was not possible to do all this as easily on another platform as it is on opencart. If it was easier on another platform, we wouldn’t use opencart. Greeting. ;)