You're about to read a highly subjective and somewhat argumentative post which are my own opinions on the shortcoming of Magento and why I no longer enjoy working with the framework. Which doesn't mean I'm totally free of it at work :)
I've been using Magento for around 2 years and during that time I have worked with both Magento CC and Magento Enterprise on a range of projects with budgets ranging from $15k - 250k. I've contributed open source extensions, reported bugs to the core issue queue and overall used the platform somewhat extensively.
The ecosystem is the biggest problem for me. Magento's extension ecosystem certainly has plenty of free extensions but there are also many proprietary extensions. I'm not entirely against people making money by selling their extensions which are built on an open source product. However, the extents they go to protect them really gets my back up. Developers commonly use some combination of ionCube a licensing extension and an API key that cause a world of problems for developers.
- I've had to install licensing extensions just to install the proprietary extension. Often the license extension is harder to setup than the extension you want.
- Many license extensions try to validate the API key against a remote server and sometimes cause issues if you're developing on localhost because it's not a valid domain.
- ionCube completely removes any chance you may have of debugging an extension. Very frustrating when the US based support takes two days to get back to you and the documentation is practically non existent.
- ionCube requires an extension to be installed on your web server. I don't care about this too much but never the less, another step to use the extension.
There are a hell of a lot of bad extensions out there. Often extension quality is very low, extensions go unsupported and break constantly when upgrading between versions. This is partly because of the way Magento supports rewriting classes which cause all kinds of conflicts.
Enterprise vs Community
As if paying for the extension wasn't bad enough, try get a copy of the enterprise extension? The same extensions can jump from $200 to $500 because you're using Magento EE which means you've got money.
I've tried a few base themes and non of them really impressed me. The themes in core are poorly thought out (you have to use !important) just to reset some styles and other ones which you can of course buy often give you an entire theme which isn't what you want when you've got a custom design. And don't even get me started on the clumsy design fallback system which needs an extension just to work correctly in Magento EE.
I already covered quickly on the class rewriting but let's have another dig. Rewriting classes or daisy chaining as it's often called is probably one of the single biggest problems around upgrading and maintaining code. It's clumsy and error prone.
The whole concept of the XML theme layouts is difficult for newcomers to learn, difficult to diagnose issues and pretty unintuitive all round to maintain. Say what you like, i'm not a fan. Templates are just as bad. Does my theme have this template? Nope, does the base theme have the template? Nope, which template in core do we fall back to now? Ahh finally found the template, copy it into your theme so you never get any updates for that file again, great!
Creating custom pages in the admin panel is just too hard. I'm sure some smart ass is going to tell me it's just a bit of XML and a class blah blah, i've done it all before. It's still too hard, admin pages are clumsy to build, there is a lack of API's for doing common tasks and more often than not, admin pages get overlooked in place of a manage it in code solution.
My admin panel whinge above lead directly into this point. Probably the biggest complaint I hear when taking over Magento projects is that, we can't even edit XYZ. I've no doubt that it's related to the difficulty of building admin pages and the budget it requires.
Magento's a pig. Everyone knows it. You've got to throw a hell of a lot of resources at any Magento site with any kind of significant traffic.
So what should you use?
It's not that kind of post. I don't want to talk another platform up. Whether you use Python, Ruby, PHP or something else, they've all got their own e-commerce solutions and i'm not qualified to comment on them all, i'd certainly try something other than Magento.
But Magento Has Feature X?
Yes Magento might have some features that you can't find elsewhere, maybe it's a POS integration or the multi-store. I don't care, find a new platform and invest in it. I know the next time I find myself choosing between Magento and something else because of one feature i'll be choosing the something else and writing the feature myself to contribute back to the project. Goodbye Magento. If you're looking for e-commerce website development in Perth, why not get in touch.
Sorry to hear you're moving away from Magento. I'm one of the product leaders working on Magento 2; in particular the extensibility platform and want to address your concerns for our next generation product. We've made some sizable changes that I hope address many of the issues that you've raised on the developer experience ( along with others in the Magento community ).
- Rewriting Classes: we've removed the Mage god class and introduced services ( PHP class layer slipped between the m-v-S-c in the typical MVC layer ) to provide a stable interface. Framework also supports exposing service methods as APIs along with a before/after/around concept for service rewriting if needed.
- Front-end UX framework changes: we're now using JQuery, all XML is validate-able ( so your IDE will detect typos ).
- XML; yup still a lot - but now all XML in Mage 2 is validate-able and should be consistently used
- Performance; we haven't worked on yet as we're focused on architectural changes ( Mage 2 code base is in heavy development ).
For paid extension developers and even for us ( i.e. EE licensing ) - what would be the ideal mechanism for paid / licensed extensions?
Have you already and/or would you be willing to take a look at Magento 2 [ https://github.com/magento/magento2 ] and providing your feedback? I'd appreciate hearing if we're addressing your concerns and/or how we can improve the product.
My web developer tells me that he can't upgrade our website to Magento 2 due to the custom solutions in place. I don't have as much knowledge of the platform as a developer but I honestly don't believe that our site is any bigger or more complex than some of the others out there.
Do you have any suggestions, solutions for Magento upgrades that I could take back to my developer?
Glad to see you're making improvements. When is Magento 2 due for release, it feels like it has been in development for quite a while now?
The extensions one is a tricky one. I think Drupal is a good example of a community that has a great extension eco-system. Some of the best bits are:
- A high barrier of entry to post modules. Eg, code reviews from the community
- A coding standard which has to be adhered to get a module on drupal.org.
- There is a centralised place to find modules which are developed in the open with a standardised issue queue and testing environment.
Payment comes in terms of support. Similar to how Acquia offers enterprise hosting and support.
I probably will take another look at Magento 2 but not until it is closer to release.
25 years I've been doing this. Many ecommerce sites, some of which I've completely written from the ground up, Magento?? You are fn kidding me?! Seriously. Been searching for likeminded rants just to vent.
Perhaps Magento peeps needs to actually DO some eCommerce dev work because me thinks devs never left the room. Seriously bad workflow, clumsy IDE, bad docs and a bunch of smartass support "gurus" who never left the room either.
Some of us just want to add a damn category, a damn product, set some attributes and GET ON WITH IT!! 3 hours to find I had to drag a category to "default". Another 2 hours to find "stock on hand" was not default. I just started on attributes and said. NO FN MORE OF THIS SHITE!!!!!
And same "gurus" mentioned earlier... QUOTE - "This has been answered so many times - why don't you LOOK!!!".... Well hello??? Why is that???
I had Zencart up in 3 days. But because I had to rewrite Aus post modules I got sick of the updating and was looking for better options.
It is NOT going to be Magento. I quit!!!
About a year ago we moved from Sunshop to Magento. When we told some partners they said, "Well, we finally moved away from Magento! It was such a beast." Not a great sign to start with, and I have to say it's definitely been a beastly thing. I've been looking into WooCommerce and Shopify. Do you have any experience with either one?
I would stay away from WooCommerce for any kind of complex e-commerce store because I don't think WordPress is the best platform to be building on for websites that stretch too far from a blog.
Shopify has a lot of traction right now, it's not something I've used but I believe you may run into limitations or at least not have as much control using a hosted platform.
Right now we're using Drupal Commerce. If you can find the right development agency it's a great technology for both the developer and the client.
I agree on most parts, but worst of all, the software is seriously violating almost all principles of professional software development. I am in shock that the "programmers" doesn’t seem to ever have heard of S.O.L.I.D or clean code. However, Magento’s success relies on the fact that the people buying into Magento doesn’t have a clue about good software architecture either. So, all the wannabe programmers (yeah, PHP guys, I’m looking at you) grap onto one bad software after the next. To be honest, Drupal, WordPress, Magento, all in the same boat of extremely poorly written software. Oh, did I forget Joomla!?
I am absolutely agree with you. I tried to add some features in magento admin panel and it takes me 16 hours , to understand how to do it. The last thing I found that If you are working on magento , you can't give your client final date of delivery. since you never knew where you are going stuck.
after several migraine attack I decided to quite magento for eCommerce sites. every second on working on magento I feel like every single code in magento is to stop other people creating anything awesome.
I am new in the ecommerce arena; I was looking for a simple "install and configure" solution, ie.. easy install, easy training, etcetera. Customer wanted magento because she heard it "It was like a simple plugNplay solution that had everything you will ever need." She said she was open to other playforms. A buddy of mine suggested Presta, it's easy and cheap! After reading Ben's article above, I think Presta will be the way to go. I will give her a copy of Ben's excellent article (above) in my findings report. Thanks Ben, It was well written with good explanations.
I too have ventured into the Frey that is Magento and have finally left very scar stricken!
It is the least intuitive platform I have used. It is also the heaviest and most sluggish. In terms of community, what community?? All I found was a bunch of arrogant guru's with a *tut *sigh attitude. It would appear that the higher the difficulty level, the higher the ego!
I have now moved to opencart which so far has been an absolute breath of fresh air. I have put down my gun and replaced it with a cigar and a mojito in celebration of this intuitive system, friendly community and great SEO results. Of course this is just my opinion. Thanks for the great article Ben.
I have been involved in about 50 Magento projects, and I disagree with most of the comments.
1) It appears that "Magento has a hard learning curve" is a common complaint. Yes, so what? Software and specifically, code generators and content management systems, are supposed to make it easy for "Non Programmers" to roll out software. If and WHEN those middleware tools can't handle all business situations, then you need a real custom programmer. Magento is powerful AND flexible AND modular, and it takes time for a custom programmer to learn. We inherited several projects where its obvious the previous programmer was a Wordpress programmer who thought Magento was similar and found out he/she was in over their head. A junior programmer can spend a weekend on Wordpress and be up to speed on most features; not so with Magento. That's not Magento's fault; that's the fault of poor programmers. Powerful software requires more intense training to manage; if you don't want to put in the time to learn it, then quit whining.
2) If you are complaining about the costs of extensions in the $200-$500 range, then your client shouldn't be using Magento in the first place. Our average Magento deployment is $25,000, depending on the number of customizations. A $500 extension that saves 20+ programming hours to build from scratch is chump change. Extension developers should be charging money; that encourages them to update the extension. People resentful of trivial charges like that are just cheap. This ain't Wordpress.
I have one exception: www.southnfrance.com. This is a mom and pop outfit, and I convinced them to go with WP Commerce at first to save money. She was already used to Wordpress as a simple blog website, and they only offer about 30 products; seemed like Magento was way overkill. Unfortunately after WP Commerce rolled out, she turned out to be very high maintenance, and kept asking for changes and changes and changes that were custom in WP Commerce, but standard issue in Magento. We finally reskinned Magento to match her Wordpress theme, integrated them together so she can still blog with Wordpress, and all of her business needs were met using Magento. So in her case, a small mom n pop outfit did need Magento, but I have found that is rare.
As a general rule, Magento clients need to be doing at least $10,000 a month in sales BEFORE they move to Magento.
Magento is not perfect, but it has nearly 25% of the market because its pretty darned good.
@Kent, you say you disagree with most of the points but you didn't actually say why? Do you disagree that Magento is a resource hog? the base themes are quite simply terrible? or that the XML template system is a joke?
I appreciate where you are coming from with your first point, the types of developers knocking out WordPress templates are rarely capable of learning Magento. However, I'm not in that category, i've worked with Zend Framework, Symfony, Django, CodeIgniter and frankly, Magento has an unusually bad developer experience, maybe one you've become accustomed to.
I can't resists tossing in my 2 cents. I don't really like talking bad about a product but I can't condone this thing in any form. I hope someone finds this useful.
I recently completed a Magento build for a 10m year storefront of which I was the sole developer. This was my first Magento build but I've worked with just about everything, Drupal, Alfresco, Wordpress, OpenCart, osCommerce, NodeJS, some python frameworks and most of the php mvcs, bla bla
The build included a custom theme, many custom extension and lives in a multi-server environment in the AWS cloud. (Varnish, Redis, Nginx, PHP-FPM, RDS-MySQL)
First lets start with the front end:
Vomit, Close file, Go watch a horror movie to clear your mind.
Ok so thats an extreme example of a really poor view but its a perfect example of why this is so unapproachable. The templates are filled with horribly nested, overly complex, unnecessarily verbose html nightmares. If you think this is ok then you have no business anywhere near the front-end. Most front-end devs have moved on to SPA apps, Angular, Ember and the like which are lightyears ahead of this stuff. Spa is where its at so to say, "we now have jQuery" is a bit of a joke.
The front-end is a freak show by modern comparison, go see for yourself.
Does anyone like XML, masochists aside?
“XML is a classic political compromise: it balances the needs of man and machine by being equally unreadable to both.” – Matthew Might
EAV Schema = Nice idea but not practical
Much of the backend issues are already listed in the other comments. To keep this short, I'll move on.
The Import/Export is a failure (yes use Magmi). That magento can not consume its own export without modification is mind numbing. You will end up writing your own scripts at some point, promise.
Theres so much more I could list but I simply don't have the time. But I'll leave you with this.
Magento Go was killed off for a reason.
Few More Thoughts:
I see too many developers in love with the complexity they create. That someone can, with little experience, successfully build something with a tool is a complement to it's design, not a flaw. That someone must consume an entirely new, unintuitive way of reinventing the wheel is a flaw of which Rub Goldberg would be proud.
The wordpress developer vs magento developer argument is nonsense. Pythonistas have the right idea:
Simple is better than complex.
Complex is better than complicated.
I'm working for about 3 years with Magento CE now. I was only working in 2 different projects but my last one, I'm still working for, is getting big and I'm leading the development.
I can understand both sides. Magento provides alot of features and it's possible to implement almost all custom stuff. But in the end your not always able to add them. Adding to much features will slow down Magento too much. Magento is already very slow. And thats also a problem with the community extensions you can buy. They just don't care about the performance. It's not only a goal to implement a new feature, it should work without loading all stuff again from the db no matter how much resources it costs. Whem I' thinking about all the servers we added for this xmas time to handle the visitor-peaks...
And ya, some templatesfiles are really a pain. The example of the price.phtml is showing very good whats wrong. XML, well it's ok because it's possible to create any kind of page even from the backend.
If I would start a new project, I'm not sure which other software I should use. If we need alot custom changes magento allows use to add them without breaking the core.
I hope magento 2 will improve some of the main issues.
Funny I deploy Magento sites that load in under 2 secs flat. Guess you really got to know what you are doing. Most developers aren't skilled at knowing proper server configs and so on. So no wonder you think it is slow. The truth is while you people complain about this and that, Magento is a very stable and powerful platform. It is also a very fast platform when you do it CORRECTLY which most of you don't. Want to see a real Magento site in action feel free to reply. I have no shame in showing you up!
Oh boy, How I wish I knew this before I started my first Magento project.
I'm used to developing with Drupal for more then five years and I love that system. For our current project we decided (together with the client) to use Magento because it hase so many ecommerce features build in. But the further we got with the development the bigger the problems became.
Choosing extensions for Magento is horrible because you can never just try an extension. You always have to pay up front. And when you decide an extension doesn't cut it then uninstalling it is just horror! (remove files from the app/code folder, remove files from the app/design folder, remove files from the app/etc folder, remove files from the skin folder, manually remove database tables and database entries. WTF!) Whap happend to simply press "disable" to stop an extension from working and "uninstall" to remove all the database tables and entries.
And the theming in Magento... oh man! The default HTML that comes with Magento or third party extensions obliviates me. All the rules for proper accessible HTML we tried to learn ourselves is jsut thrown overboard by Magento developers Tables everywhere, ordered lists where actually unordered lists should be used, inconsistent HTML use, use of tags where actually or should be used. Oh boy!
And documentation for Magento is ... practically nonexisting. Let alone comments in the source code. Why don't the developers write a sentence what a particular function or class is for?
I know for sure that my next ecommerce project will be build with Drupal Commerce. Drupal feels like a warm bath after working on Magento.
I'll try to address your points more specifically:
1) BEN: I’m not entirely against people making money by selling their extensions which are built on an open source product.
KENT: As soon as I saw the word "entirely", I couldn't help but classify you as cheap (fairly or not). I am 100% for developers making as much money as they can. The more "free" extensions we have, the lower the quality, and the less likely we are to get technical support, version upgrades, and bug fixes as well as new releases. Yet, because there are so many free Magneto extensions, the quality is lower, yet as soon as I try to offer an extension for money, the same people bitching about quality then bitch because they have to pay. You can't have it both ways. I have a few extensions that I "sell" to clients directly but I do not try to put them out through the MagentoConnect because I don't think the low price I would have to charge versus the technical support I would have to provide would be worth it. Pick quality or price, but not both.
2) BEN: Do you disagree that Magento is a resource hog?
KENT: I agree it is a hog. I also have optimized Magento to run faster via code, in addition to throwing hosting resources at it. More importantly, I know that the tradeoff for the resource hog is that the architecture is very flexible. Yes, in a perfect world, it would be less a resource hog AND just as flexible, but unfortunately I'm not a brilliant enough architect to build that yet, so I will take a resource hog that does what I need since the resource limitation can be addressed.
3) BEN: the base themes are quite simply terrible?
KENT: My problems with Magento are not related to the themes. The base themes are adequate; at first I couldn't understand their fascination with orange buttons, but customer after customer likes the orange as a call to action. I have also completely re-themed front end as well as back end, so moving from base themes to sexier themes is straight forward for me. Occasionally I do a low end Magento and stick with the base theme or a slight variation, and it works. But since most clients want sexy, we give them sexy. So, I would call the base theme adequate.
3) BEN: or that the XML template system is a joke?
KENT: Maybe I have had so much experience with XML that my opinions are biased, so I'll throw that out there for full disclosure That said, XML is a big part of where the flexibility in Magento comes from. To your point, I recently fixed a problem for a new client where one of their modules was obviously deactivated (the feature set wasn't working) even though the administration panel said the module was active. I found that the value active had been set to "false" in the XML file for that module, overriding the value in the admin panel. Simple fix, but perhaps that is an example you would use to state the XML schema is not an advantage. From my view, no one but a knowledgeable site master should be able to edit a default value like that, and I like having the power to change variables easily. I find it facilitates development.
Magento is by no means perfect. I recently had a conversation with the CIO of Belk's Department store, and they are going with Hybris instead of Magento. Hybris is now owned by SAP, and is the European ecommerce darling at the moment. Their decision will work; its not right or wrong, but I would note that the reasons they decided to go with Hybris instead of Magento were based on marketing and backend/front end. Hybris has some marketing channel integrations that Magento doesn't completely have, and that was their big focus. I actually disagreed to an extent; the Amazon and Ebay integrations for Magento are solid, and certainly integration with Google Product submission is doable. However, Hybris offered some other options. Hybris also has a better backend ordering system (meaning orders input by the client received via non-website placed orders).
I'm not sure I addressed all your points. I see some comments on here related to Drupal Commerce; basically, I think Magento's issue comes down to where we should draw a line based on customer size. Because Magento CE was "free" and "open source", programmers chose to use it for any size clients that were not ready for it. I maintain that if you aren't doing $10,000/month minimum in on-line sales, then you probably shouldn't be using Magento; at that level Wordpress Commerce, Drupal, and Shopify are all better solutions.
But as soon as you get into a larger clients, then you need integration with NetSuite, SAP, Microsoft GP Dynamics, or Sage Businessworks accounting systems (because inventory management using accounting inventory tools beats using the ecommerce system for inventory management hands down), and you need robust multi-channel marketing integrations, as well as powerful workflow and non-web order on the back end. Drupal and Wordpress and Shopify are out of their league at that level.
Interesting discussion. Whilst I agree that certain elements of Magento are extremely frustrating (resource hog, frustrating file structures/hierachy), the upside is well and truly worth the effort.
I am a developer, but also come from an SME sized retailer background (I'm still involved in our family businesses). We have our magento sites integrated with a cloud accounting app for live multi-channel inventory control (easy), ebay store integration, google shopping feed integration, market segmentation/targeted marketing and more. None of this was insanely hard, nor was it perfectly easy. However, trying to achieve this with another open source platform was just out of the question.
I understand the frustration re: extensions of poor quality and/or extensions that you have to pay for up front. As a business owner though, I simply look for extensions from reputable providers, with a solid support track record. Paying for extensions from said providers is absolutely a non-issue.
I guess our point of view is slightly different, in that I am both a retail business owner/manager, but also a developer and as such, view things slightly more real world, than pure technical/coder minded. The learning curve was steep, but rather than saying goodbye to Magento, I'm actually going the other way and simply diving in deeper.
We ended up dumping Magento too. Its buggy, there is no community and its not quick to develop for. The only real advantage of Magento is its flexibility, and, there are constant major headaches with Magento. Its not cost effective to develop for, unless you are using the Enterprise extension, have a full time developer team and are turning over millions per year
I'd be interested in hearing some honest, unbiased opinions on the following...
An online retailer has, say, 300 products (with varying sizes for each) and wholesales to 100+ outlets as well as retails direct from their website. They have a Magento set up which is horrendously slow and basically broken. It doesn't speak to their inventory control system despite them spending $!!! trying to develop an API. Manual data entry is required in both directions whilst this is the case. The inventory control system is an obscure one that appears to have little in the way of a future.
Their options are...
1. Keep trying to find a Magento developer who can rescue them (but being based in a rural area makes this hard for the in-house option and they have been burned by numerous agencies).
2. Use a combination of Shopify and Trade Gecko or BrightPearl to manage inventory and the online store. (Trade Gecko recently launched a feature whereby a retailer can control inventory in multiple warehouses.)
The costs associated with Shopify pale into insignificance (even including the 0.5% transaction fee) when compared to employing a dev or team of devs.
Their instincts are that Shopify is too simplistic for their needs...but, in reality, their needs aren't complex in any way and their existing system fails to meet almost all of them anyway.
One side says that hosted solutions are maturing rapidly and that the shortcomings of Shopify in terms of flexibility will become less of an issue. Also, the costs associated with running the set up are a fraction of what they have experienced (and project) for a Magento set up. If they just got a system that "worked" they could then focus their efforts on promoting their products rather than spend another 2yrs wrestling with Magento.
The other side says that Magento is the best and anything else is a compromise.
Opinions my learned friends?
Unfortunately, you're in a bad situation. If your Magento store is as bad as you say, no decent Magento developer will take it over but it sounds like your requirements are in-need of custom development and not something like Shopify.
It's probably a hard pill to swallow but at some point you'll realise, the best option is to invest hard in finding a development agency you can trust and go for a full rebuild.
Thanks Ben - sage advice :-)
And, Ben, what do you see as the weaknesses in a Shopify / TradeGecko set up that would cause you to dismiss it as an option in favour of a custom build?
Iain, my experience with those platforms is limited but here are a few things I hear from other devs:
- The way the data is stored is often just free text fields, leaving normalised data that can't be used for faceted search etc.
- The number of data fields is often limited by the platform, you can only fill in what's there.
- The way your data is synchronised to a POS system is controlled by the platform. Or any other system for that matter.
- Once you out grow the platform by having business requirements that can't be met, such as complex shipping or pricing rules, you have to throw all the money and effort you've invested away.
I see these platforms as great for prototyping ideas and getting a business off the ground until you can afford a custom build. This all just my opinion, i'm sure Shopify developers may have a different outlook :)
Many thanks, Ben :-)
From comment #1 :
- Performance; we haven’t worked on yet as we’re focused on architectural changes
Yeah, well there's your problem. You can't expect your architectural changes to perform well if you aren't considering performance when you are making those changes. That's the problem with Magento 1.
I'm 1.5 years into taking over a "new" magento site that cost the non-tech client $40k just prior to me taking it. It was so poorly implemented that half the features didn't work. I have written large PHP projects including information management for state universities, but this was my first magento experience. Super steep learning curve. A bear to manage code having to hop around directory trees 8-10+ levels deep and trying to figure out which price.html is actually putting the code out..
While I have cleaned up a lot of the issues they were having, we are still plagued with very slow TTFB, even on a dedicated SSD VPS (one site, very little traffic). The autocomplete search is useless as it would be 2 seconds before a response would come up. After some testing where I commented out the actual search part so it immediately returned no resuts, it only improved 100ms, so to me the slowness is just due to the time it takes to load magento's core...which is why every page has >1 second TTFB. I wrote my own search handler for the ajax query outside of magento (gasp!) and it responds in under 50ms.
Yeah I would never recommend Magento. It's a bloated slob. My $0.02 (US) :)
Another reply from a "so-called" developer that has no talent. Magento loads just fine for my clients 2 secs flat I would hardly call that bloated. Sounds like the server you think is all that really isn't nothing special and most likely just an average desktop mask as a server. You want quality you got to be willing to spend more then 25 bucks a month on a server and if you are spending more then 25 bucks on a server then I suggest you start looking at a better host company.
Magento isn't for everyone. It has a steep learning curve on all fronts - administration, frontend development, and backend development. However, it completely dominates any other open-source eCommerce system when it comes to 1) featureset, and 2) enterprise-level extensibility. Magento's configuration-based architecture makes making code changes more complex, but it also allows you to customize almost any piece of the system, including fundamental core features.
Magento is not what you want to use if you have under a $25k budget and just want a good-looking, functional store. However, if your initial store budget is somewhere in the $50k-$250k range and you need an ecommerce solution that you can integrate tightly with backend ERP or fulfillment systems, and you can afford a significant ongoing maintenance budget, Magento is a very strong option.
Regarding performance, Magento EE with Full Page Cache enabled, using a fast key/value store like memcached or (even better) Redis, and with static pages (CMS, category, product) behind a reverse HTTP proxy like Varnish, will run as quickly as any other solution. But again, this just reinforces the fact that Magento is not a good entry-level ecommerce candidate.
Ben, What is wrong with Virtuemart.
Who said anything was wrong with Virtuemart? It's been years since I used Joomla so I wouldn't be in a position to comment.
I have experience with WooCommerce. We also looked into Magento and Virtual Mart. We ran into the same update problems with WooCommerce as described above. The problem is the sticky integration between front and backend. It scales bad and is prone to errors. Every time we updated the site broke somewhere. This made our client really insecure about the software. Even though we had good testing mechanisms and solved most problem before they where pushed to the live-site, it wasn't a pleasant experience. Maintenance is one thing, the costs for updated was to heavy. I think any CMS like software that is currently out there now has the same problems, it is the ature of how they are build.
Another problem we ran into was search. If your want a fast search that includes attributes, description etc the search becomes really slow. Logically so, with the standard setup. One solution to that would to merge all data in a single table and put an index on it. Never the less a LIKE query remains slow when your catalog grows (We where moving to 8000 products). Eventually we integrated Elastic Search. Now our search query is below 30ms.
One other major factor in the traditional e-commerce software is the fact that its all request based. For example, your order is complete and the confirmation emails are send in the request. If the mailserver is slow, the request is slow and might die before the database is properly updated. To scale, we need a two highway queuing system. That means that any intensive task runs on the background async from user requests. So when the data is validated the user get a thank you page, the tasks of storing data, sending email is done asynchronously on a background que which can take as long as is needed without craching. So there is essentially a fast lane for use requests and a slow lane for heavy tasks that might slow the interaction with the user. None of the systems support this.
We now decided to start building our own software, and we are planning to open source it. The new software will be API first. We will design a restful API and leave it to developers to choose how they want to build the frontend. You can use Angular, Ember or connect with php and generate HTML on the server. We are also taking a multichannel approach giving user the ability cater to multi channels like mobile apps, Facebook or whatever will come in the feature. To make sure the software performance, we take an async approach to everything. This way it always feels fast to the user and the customer. The backend will be based on Angular and completely JSON based.
If anyone is interested, feel free to tweet me @Meulendreez.
Kind regards, and good luck!
Ben, its good to see this thread still going. If nothing else, I should hire you for blog writing; you get some traffic from this post :)
I recently had to present to a client that was on Magento Enterprise and having multiple issues. They were frustrated, and were considering the options of fixing vs switching platforms. I had to explain in detail how Magento flexibility, IF NEEDED, was second to none, so I thought I would rehash that part of the conversation on here.
For brevity, I'll stick to product price rules. Most store owners think price means a) list price, b) special price, c) discounts via coupon, and d) discounts via customer group. And for many store owners, that is sufficient. So if that describes the extent of your pricing structure, Magento's "flexibility" when it comes to price doesn't help you.
Real eCommerce involves far more complex pricing. Sales people love to make shit up during a sales presentations, and then the store owner has to implement it. Rules like
"Customer A gets an initial $100 off their purchase, subsequent purchases they get a 5% discount, unless they purchase between $200 and $400 at checkout, in which case they get 7.2% discount off of everything above the initial $200 purchase, except for special items that have MAP pricing and aren't allowed the discount. Over $400, they get a 8.5% discount (just on purchases above $400), so they would get a 5% discount on the first $200, $7.2% discount on $201 to $400, and 8.2% discount above $400. On top of that, shipping discounts also apply AT THOSE SAME PURCHASE LEVELS, unless its an item that requires shipping by truck and not FedEx/UPS/USPS."
I did not make that up; that is the summary of a pricing rule. And that is ONE RULE for a specific buyer; different buyers get different rules. And that company is NOT Target or Walmart; its a company generating about $250,000 a month in online sales.
So, all the Magento nay sayers, tell me how you would solve that (outside of spaghetti custom code)? Because all of those pricing rules can be handled in Magento without custom coding.
I met with a company recently that has about 500 digital products, but they sell them through every digital format you can imagine, from DVD, to subscription streaming, to Netflix, to Roku, one time downloads, ... you name it. Their Magento catalog of 500 different digital products has generated over 2 million price variations, yet still there are only 500 products themselves.
Real businesses have real complexity, and Magento can support that complexity without custom coding every single variable. Who else does that? Hybris maybe, and their gigantic price tag (Belk Department stores is going with Hybris; I was hoping to talk them into Magento but to no avail).
So, once again, if you have a simple store, don't whine that Magento is a pain in the butt; Magento wasn't written for simple stores. Magento has power that leaves these other products in the dust, but if you don't need the power, stick with WooCommerce or Shopify.
Thanks for the comments Kent, always good value.
> Who else does that?
Drupal Commerce can achieve all of those pricing rules from a UI that any non-technical person could learn in about 10 minutes.
Kent, it may well be true that Magento supports real complex rules, and not only for pricing. But the rule you mention is a complete joke. How do you expect users to implement that? How would they even find out that this is possible? Can you give me a link where I can read up about this?
A system that has user bells and whistles that allow users to make such configuration essentially gets polluted to the extent that those people who have an interest in getting a system up and running fast and need only simple pricing models are exposed to hundreds of meaningless parameters.
Like how many f&*%ing tabs do I need to add a product and when I'm done it doesn't show - without giving me a warning when I add it? How about a single page with Name, Description, Images, Price, Stock, SKU and Tags? Then hide the other 15000 configurable attributes behind an ADVANCED button???
So you ask how we would solve that pricing model without spaghetti code? How about simple callback routine system where callbacks are stored in the database and manipulate using the admin module? For example, you could have a module Checkout and one of the callback hooks could be CalculateDiscounts. When I click it, it could take me to a page that explains the purpose of the hook, what it does by default, the input parameter I'm getting and the expected output. I should even be able to test the code right there. If the hooks admin module is clever, it could even deal with product visioning issues.
This way I can cater for the remaining infinite pricing models which the super flexible current pricing module doesn't support. I can get a coder who works for peanuts to do a good job and I have the confidence that if I upgrade the system, it still works as it did before the upgrade. Ah and lets not forget to mention that such scripting support eliminates 95% of the configurable attributes?
You said yourself that a site with a turnover of less than $10K/months shouldn't consider using Magento but then you state that you've been successfully using it for a mum and pop outfit, presumably with smaller turnover. So maybe more accurate would be to say that unless you have few products and few updates to your catalog and you only operate an online business and no brick and mortar shop you might be OK using Magento as long as you're prepared to put substantial time into learning how to use it and have someone helping you with upgrades.
We (<$500k sales, 20 consumer goods product seller) self-installed Magento, Prestashop, AbanteCart, CS-Cart and Woo Commerce. Magento is the only one we eliminated. The WooCommerce site is mainly being run as a blog.
It was clear to us that managing Magento would not be worth the investment in time/money because of the complexity of seemingly simple tasks. Our only frame of reference was competing carts which were easy to implement/manage. In comparison, Magento way of doing it always was overly complicated.
So we tried debugging and setting up magento websites for a lot of our clients - bloody waste of time. Currently we use a custom shopping cart built in ASP.NET - no heartbleed, no time waste, just super fast click and go!! I'm so glad to see there's people with some common sense out there who don't just suffer with Magento and gripe about it.
If I found a magic lamp, my first wish would be to never have to use magento again.
As soon as you want to go beyond the most basic stuff, everything breaks all the time. I’m currently trying to use the soap api to define product images for several stores. The api sometimes ignores the stoe parameter, I get the label from one language in another store, it changes the default image for no reason even when I set a specific storeView, and there is no option to set a store to use the default settings.
And every time I run into some part of magento I’ve never used before, I discover more broken things.
Magento is the Homer Car of e-commerce: lots of features, some useful and some useless, most broken, built with no direction or knowledge of what they were doing.
I really believe that choosing Magento for my e-shop is the worst decision that I've made till now. For a year I've used it and I've faced with too many problems with Magento that the most important of them are:
1- The main Url does not work . i.e [www].mysite.com does not work and you should use this url: www.mysite.com/default
2- Footer does not exist in main page.
I don't know what should I do? After about 2 days I couldn't fix the problems and I think continue with Magento is a real hazard. I am a programmer but I think creating a new e-shop framework needs huge time and money. I don't know which of these open-source framework e.g. Open Cart, PrestaShop etc. is an appropriate alternative for Magento. However replacing a new one needs to transfer all 700 products and too much data to the new framework.
It would be appreciated if you suggest me the best solution.
Thanks in advance and Happy Norooz :)
As an online store owner of 17 years, I would give my Kingdom to find an ecommerce platform that answers the problem which is being answered everywhere else. An easy to set up system that has no bloat, and does NOT REQUIRE A PROGRAMMER TO DO EVERYTHING. Did you all see that last sentence? That is Magento's biggest flaw (and why its loved by so many developers). Im not a developer and I am tired of sifting through hundreds of "hacks" who claim they are good at Magento development, only to end up with the new guy saying the last guy "sucked" and he ruined my code.
Its 2016. If your software isn't fully customizable by end-users with zero programming experience, you are obsolete. Therefore Magento is a joke, stuck in past times when the only people who could have websites were people who hired programmers. Those days are gone, and so is Magento soon enough.
I have been using Magento for two years. The biggest draw to Magento was the simple PayPal integration allowing customers to not only use PP, but also any credit card. That was the component that I couldn't get to work perfectly on the old solution, which was a simple PHP shopping cart written from scratch by yours truly.
I wasn't in a huge rush to move to Magento 2, so it got pushed to the back burner. The store was up, the client was getting sales. The default theme was a bit gawdy, but a few tweaks and it was acceptable.
For the last three days I have been trying to get that installation back up and working after moving to a new server, identical in every way except for physical location and IP address and the old installation wouldn't work. I tried everything I could think of including entering the error message into Google. I get 15 different possible solutions caused by 15 different problems and none of the solutions fix my problem. I've scrapped and started from a backup of the DB and a fresh un-zip repeatedly.
The online community is rather elitist. Not all of us work with Magento on a daily basis.
So I thought, hey, I'll just migrate to CE 2 because the data is intact, it's the scripts that fail.
I've now wasted another day and a half trying to get that to work. The customer's store is down this whole time. The migration tool should be a simple PHP file download a few thousand lines max, but that's too easy for Magento. Got to pull it from a repository using composer. Why? Who knows! Oh, but you can't just download it, you need an account to create a key. Which I did. And the composer.json update fails with the very insightful error "killed - composer.json reverted".
Guess what else is getting killed, my enthusiasm for Magento. While it is a tool to run a shopping mall and most people just want a tool to run a store, it does work. Or it did. The fact that there's no simple process to move data from version 1 to version 2 is infuriating. Why is it so complicated, because it's not just moving data and product photos, it's moving data, theme changes (which many are hideous), and a half dozen other usually unnecessary things that shouldn't be there in the first place.
I don't want a product that's dumbed down like WordPress - if you want to run a blog about your little league team or sewing group go WordPress if you want to host it on your own. But I don't need a mega-mall solution that requires an act of congress to move from one server to another either.
Giving PrestaShop a try. I may not stick with it, but I'm never touching Magento again.