
Magento is dead – Merchants want a suite of marketing tools, not refactored code - peterjaap
http://jmk.io/en/node/16
======
debacle
Magento has been poor software since Varien started trying to monetize. It has
always been slower than necessary, a huge resource hog, and relatively complex
to configure.

The real problem is that there is nothing better out there.

Magento is the Drupal of the eCommerce world - relatively prominent, but
almost universally reviled by developers and not all that easy to use for
users. It's the worst of many worlds.

It's too bad, really. Five years ago I was really excited for Magento, but
within months I realized that it would almost universally be cheaper (from a
development standpoint) to write an eCommerce project from scratch than use
Magento - it takes you 95% of the way there in a lot of ways, but that last 5%
is critical.

~~~
at-fates-hands
>>>Magento is the Drupal of the eCommerce world - relatively prominent, but
almost universally reviled by developers and not all that easy to use for
users. It's the worst of many worlds.

This a thousand times.

I've used both and as a developer it was incredibly painful to customize
either for any specific feature or function. The first time I upgraded
Magento, it completely broke the client's site. A nice Sunday afternoon was
spent hacking together plugins to fix what the update broke.

Both are horrible to work with and I shudder anytime someone suggests it to me
for their ecommerce platform. You'd be better just hiring a .Net developer and
have them build you something from scratch.

~~~
benmarks
Let me know how bespoke commerce apps work out for you financially.

------
lsaferite
While this article may be correct on a few points, the idea that Magento
should bundle every feature under the sun is silly. That is what the module
marketplace is meant to provide. And even some of the features tagged as
missing ARE provided in the Enterprise Edition if you are inclined to pay for
a license.

I think the bigger issue with Magento 2.0 is the missed opportunity to use the
backward compatibility breakage to clean out some of the horrible bits of
home-grown code in Magento and replace them with 3rd party libraries.

If anything, I think Magento should actually drop features from core and
become a solid platform for others to build upon.

EDIT: Speeling :)

------
justincormack
I havent looked at it recently, but the code used to be awful, which is
perhaps where the rewrite comes in. But giant PHP applications with even more
features are not really the future, these things need to be built as sets of
APIs and libraries that you can put together to add the features you want
(which are complex).

~~~
James_Duval
It is indeed still awful. I know someone who works in Magento and they
frequently come to me with genuine WTF bits of code. Added functionality would
be a nightmare.

A rewrite is sorely needed, and will help developers who have to work with and
on Magento to save their bosses time and money.

------
gesman
From the developer's perspective Magento is a maze of spagetti nightmare.

The cost to maintain it, adding custom extensions and keep it up and running
as a whole is way, way more than using off the shelf SaaS ecommerce solution.

~~~
weaksauce
Absolutely the worst maze of spaghetti files. To get anything done on one page
you had to edit a few different deeply nested partial files. I hated working
on it.

~~~
aeno
I assume you have never worked with xtCommerce... My first experience with
eCommerce applications was xtC 3 and _that_ thing really got me headaches...

~~~
weaksauce
At the time it was supposed to be the best eCommerce solution out there. Tried
it and it was painfully slow to both develop for, to administer, and for the
customer to use.

------
c0n5pir4cy
Every single little thing he mentioned shouldn't be in the core product.
Magento is not an all in one marketing, shop and aftersale solution; it is an
eCommerce platform. Anything above/beyond that should be a plugin/separate
solution.

~~~
ForHackernews
That's not the way the small businesses that use Magento think. They want one,
all-singing all-dancing tool that does everything they could ever imagine
wanting. And they never want to update it or maintain it or have to think
about it.

~~~
mgkimsal
And they also want it to adapt to the changing needs of their business and the
wider marketplace. Without upgrading, modifications, downtime, adjustments to
how they work, or having to pay anything extra.

Did I get close? :)

~~~
lsaferite
You missed free. They expect it to be free or practically free. I mean, it's
an Open Source project, why should they have to pay for anything?

------
seivan
The developer hostility in this is astounding.

~~~
tokenizerrr
Yeah, seriously. The entitlement. My favorite was

> automated SEO using artificial intelligence;

~~~
mariusmg
Most likely he meant generating page keywords/description using the product
name and details.

A very fancy way of putting it, but something very common sense from a
business perspective.

~~~
lsaferite
But still, not something that should be baked into the core platform. Perhaps
your idea of how it should work is different from a large portion of
merchants. Why should one version or the other become a core part of the
platform for every merchant.

Even if the module providing a 'core' feature is written by Magento, it
shouldn't be in the core project but should be treated just like any other 3rd
party module.

Ultimately you want a core platform that is rock solid and extensible. That's
what a good integrator then build out either from the low-end of just adding
and configuring OTS modules to the high-end of bespoke modules.

------
tramov
Magento's largest problem is that most people who look at it assume it is like
Wordpress. Download, click install, change the theme somewhat and get started.

Very unlike Wordpress this is hard. So you either shell out cash to outside
developers (a healthy enough marketplace exists) or pay the price in learning
how to program it yourself.

Enough decent materials on how to do this exist but it is definitely not aimed
at weekend programmers.

~~~
aleachjr
I don't think anybody would disagree that Magento has a pretty healthy
learning curve. Additionally, there are too many companies out in the world
who are just looking for the cheapest developer that they can find. This
combination creates a huge problem. I would venture to guess that most weekend
PHP developers think that they are capable of developing in Magento. I mean,
do you think you can take on any new PHP project and figure out how to make it
work? While some may have skills to do such, it is the large marjority that do
not have the drive, desire, or knowledge to do this the right way. In the end,
it is this group of people who are giving others in the Community a bad name.
They hack Mage code, lack even basic development skills, and leave projects in
an even worse position than when they started. The Magento community can only
do so much in education and help. Additionally, Magento recognized that this
was a huge problem and started providing training with Magento U. While this
may not be cost effective for every developer in the world, at least Magento
has acknowledged that this need exists and continues to provide training and
new programs on an ongoing basis. TLDR, Magento is complex, and complex
systems are not meant for every developer in the world. Pick your developers
wisely and they will not burn you with bad code. Magento representation in 26%
of the market sure does not seem dead to me.

------
Zyava
Half of points aren't true, for some other there are extensions in Magento
Connect...

------
username42
Refactoring is something that has to be done before adding features. If you
first start by adding features, ignoring the fact that the code needs
refactoring, the code becomes impossible to maintain. Stopping development of
new features during refactoring is also a good pratice. Obviously, the anti-
practice is to refactor so often or to spend so much time refactoring that
nothing useful is developed.

------
happywolf
I have been using Magento Enterprise Edition (EE) for 6months on a production
sites in Europe and US, with total revenue so far exceeds a few million
dollars. The reason I mention this is to give everybody a context of my
comment and background. I work for a large company, so the money doesn't go to
me.

To be fair, some of the features mentioned, for example abandoned cart
reports, do exist in Magento EE. While some features like consumer profiling
don't really belong to an eCommerce platform. Instead, those belong to CRM
(consumer relationship management) tools. One of the reasons CRM is an
independent system is a lot of shops have offline presence also, and lumping
CRM features into eCommerce platform unnecessarily complicates things. There
are extensions to sync between Magento and a few CRMs.

My wish list for Magento: built-in A/B testing, and multiple campaign
management.

------
ceejayoz
> A developer focus on Magento 2.0 gives us jQuery, OWASP security policies,
> faster product imports, better performance and less CSS. But it does nothing
> to advance merchant's needs.

Merchants don't need security, performance, and a more easily developable
system for the developers they hire to build on?

~~~
tokenizerrr
Of course not, it's just silly developers creating spaghetti code to keep
themselves in business /s

------
adnam
My main problem with Magento was it's lack of an API to integrate with 3rd-
party systems. Someone implementing a competitor should start with a decent
API, and build the interface on top of that. If I had time and money, I would
do this myself.

Also the EAV database was horrible to deal with.

~~~
rch
Is it going to use a similar scheme after the rewrite?

~~~
adnam
It looks like EAV is staying
[https://github.com/magento/magento2/search?q=EAV](https://github.com/magento/magento2/search?q=EAV)

~~~
conradfr
The EAV problem has been mitigated with the indexes feature some years ago
though.

------
coldcode
Apparently spell-check is also a dead technology.

------
clark-kent
These are features that an e-commerce SASS could build into their service, it
obviously creates a huge mess adding such features into the core of a
platform. Some of these features could also fit in a plugin but it really
sounds like OP needs a SASS.

------
danielweber
Anyone have a cache?

 _EDIT_ : here it is. No infringement intended.

Magento has been in decline since Varien sold to eBay. Magento Community
Edition is dead. Magento Go is a failure surpassed by Shopify. Magento CE
releases have dried up.

So now what?

Magento 2.0 sounds promising. However, Magento 2.0 is lead by developers-only.
No marketeers are involved to communicate merchant needs. I have tested
Magento 2.0 dev60 and it is nothing more than a technical rewrite. Magento 2
offers the same feature set as Magento 1. You'll just need to pay a developer
to migrate all your 1.x extensions to 2.x, since there is no upgrade path.

But the community cost of everyone moving to Magento 2.0 ranges in the $USD 1
billion. This is how developers keep themselves employed: by regularly
clusterfucking your code. A developer focus on Magento 2.0 gives us jQuery,
OWASP security policies, faster product imports, better performance and less
CSS. But it does nothing to advance merchant's needs. Magento is missing a
most important suite of marketing and sales automation tools.

Here is some features online merchants really dream about:

built-in A/B testing; integrated social media ROI tracking (e.g. SumAll
statistics); sales automation tools: abandoned cart reports, automated follow-
up emails, automated payment reminders; consumer behavior profiling to live-
target marketing efforts based on behavior; customer persona segmentation such
as "single men / mothers with children / affluent customers", to increase
marketing effectiveness; easy-to-use multi-site and multilingual installations
(Magento is cumbersome); helpdesk ticketing system, built-in live chat; built-
in onestepcheckout; automated SEO using artificial intelligence; scheduled
product imports to update product prices, stock, images attributes - including
the ability to create new products and disable out-of-stock products;
automatic product categorization based on product description content; social
ecommerce ("share this product" with product landing pages for
Facebook/Twitter); clever discounts such as bundled product discounts: "buy
A+B together, get 5% discount on B"; built-in product XML/CSV exports for
ciao, kelkoo, thefind, google and so forth; built-in newsletter or at the very
least built-in Mailchimp support (with automatic setup); None of the above
features are going to be implemented in Magento 2.0. What is the incentive to
move to Magento 2.0? There is none. Do merchants really need the latest
gimmicky "html5" technology? Mercahnts need a suite of sales and marketing
tools that help drive their business.

So again, like before Magento, there is a huge market potential for ecommerce
software that offers the right marketing tools. Magento is dead. But who will
bridge the gap? Shopfiy? Wordpress Woocommerce? Drupal Commerce? Each of these
new projects is gaining on Magento's lead. My prediction is that Magento 1.x
adoption has peaked and Magento 2.x adoption will never happen. Instead, The
People will switch to far more advanced alternatives. Advanced in terms of
marketing that is, not jQuery.

~~~
madaxe_again
The problem with Magento, like so many other OSS eCommerce platforms, is that
of extensibility (or lack thereof), and the ensuing technical debt.

We've been making eCommerce solutions (not just sites - CRM, warehouse
management, analytics, lots and lots of marketing tools) for nearly a decade
now. We started out with OsC, played with Magento, and saw, 8 years ago, that
the strategy of these platforms was, well, broken.

How? Well. Let's consider the typical scenario. Joe sells kites. Joe wants a
website that helps him sell kites. Magento looks like it does what he wants,
as it's got a cart and all that stuff. Joe finds a contractor who looks good,
and has decent references from his current clients. They start work. Part way
through the build, Joe realises that he wants to sell custom-printed kites,
and to do this, he needs to take a deposit, and then charge the customer the
balance. "Uh-oh", thinks the developer, "I'm on fixed costs, and there's no
plugin for that. The architecture is a nightmare... screw it, I'll just chuck
it in the core and worry about it later". Joe is happy, as his site does what
he needs it to, and the developer is happy because he got paid.

Six months later, Joe reads about a security update, and wants to apply it.
His developer sucks his teeth, and applies it, manually re-patching in his
previous hack, because making a plugin is hard, m'kay (never mind that in many
scenarios, you _can 't_ make a plugin to make whatever you need to happen,
happen). Joe wants another addition, and another hack is born.

This cycle continues for a while, until the developer fears looking at Joe's
code-base, and Joe is pissed off that everything takes a long time, and that
upgrades can't be done/take forever, because the developer is having to re-
implement, and re-implement, and re-implement, rather than move forwards.

The other side of this is that a magento install will run a magento site - not
ten, not two on different databases, and no mix-and-match of either, meaning
that you end up with a whole bunch of code-bases, many of which differ, even
if you're a shop exclusively running magento for your N clients.

It's not clear who Magento is built for. It's not for developers, as it's
painful to work with... it's not for the end user, as the front-end experience
is so-so at best, and again, hard to customise without screwing up
upgradability... and it's definitely not for the merchant, as it's
featureless, barren, slow, and ultimately expensive to run.

So what we did was build an eCommerce platform where everything is extensible
and overridable. Core method doesn't quite do what you want? Not a problem,
write a client-specific one, just keep your interfaces consistent, and you
won't break maintainability. You can upgrade the core with impunity. You can
hang as many sites as you can grind out off a single install. We deploy
continuously.

As a result, we've been able to focus on building features marketeers and
merchandisers want, by being able to build something once, respond quickly to
market and client demands, and roll it out widely with minimal effort - rather
than being stuck on the terminal treadmill of broken upgrade paths.

~~~
benmarks
_" It's not for developers, as it's painful to work with..."_

There _is_ a learning curve, made steep by the esoteric MVC approach and
initial lack of documentation. However, there is now a wealth of material
available for learning and reference. Magento is opinionated as a framework
and in its domain modeling. You mention your homegrown application; how easy
is it for developers to spin up on your application, and how well would it
satisfy & improve things as a drop-in app replacement for the hundreds of
thousands of Magento instances out there?

 _"...it's not for the end user, as the front-end experience is so-so at best,
and again, hard to customise without screwing up upgradability..."_

Frontend experience - I'd say mostly okay, but I'll not fight you on "so-so at
best". However for customizations, upgradability and obedience to DRY are the
underpinning of the theming architecture. Again, lack of documentation was an
issue at first (I remember duplicating the default themes for customization
purposes when I first started out), but there is ample documentation now. I am
most disappointed with the power given to templates, and I think this is the
only legitimate gripe.

 _" The other side of this is that a magento install will run a magento site -
not ten, not two on different databases, and no mix-and-match of either,
meaning that you end up with a whole bunch of code-bases, many of which
differ, even if you're a shop exclusively running magento for your N
clients."_

If this is an issue, you're doing it wrong. I would like to know more about
how Magento cannot be a library for you to manage in VCS for your clients.
There are SaaS offerings based on Magento, but at the point of building a SaaS
you are beyond the edge of the intent/target of the problems which Magento is
built to solve.

 _"...it's definitely not for the merchant, as it's featureless, barren..."_

/me looks at all the routes in the admin and at the Connect marketplace...

 _" [it's] slow, and ultimately expensive to run"_

Would like to know your numbers for this. Scalability _is_ a concern, as
Magento vertical and horizontal scaling are both costly.

