This blog was originally intended as a comment on Maxime's medium post. It got long, and I am loath to create content for mega-sites. As such, I responded with a post of my own, which is exactly what Maxime did to Robert Douglass' original Facebook post... I guess we all have our competing standards ;-)
I’m sorry Maxime, I really think your premise is silly. The notion that GPL Commerce isn’t a thing because it is not yet a thing is circular reasoning.
Robert's argument resonates with me a lot because I worked for Commerce Guys for 4 years and am currently at about the 2.5 year mark with Acquia. Robert of course is the opposite... he worked for Acquia for many years and now Platform.sh (but was there before the split thus Commerce Guys). I can’t and won’t speak for Acquia, but I will say that I understand Robert’s frustration. I also understand Acquia's strategy. I'm not happy about either, but I do understand them both. Maxime, your message is basically “pack it up and go home Drupal Commerce”. This is ridiculous at best and destructive at worst. You yourself cite that DC is especially useful when commerce and content have a tight coupling… that’s of course because its damn near impossible to get this kind of behavior out of any of the other commerce solutions that exist. Clearly, that's beneficial, especially to the Drupal community.
Drupal is important… it allows for content management, strategy, architecture and display in a way that other solutions simply DO NOT. Drupal Commerce, by way of its relation to Drupal, gets ALL of these benefits for free just by being part of the ecosystem. Drupal is a literal army of web developers, most of whom would understand 80%+ of Drupal Commerce at first blush by virtue of the fact that it's built the same way Drupal is. Of course I'd love to see the engine that is Acquia pumping out more Drupal Commerce and helping to mobilize that army of Drupal developers to invest more heavily in Drupal Commerce, but I feel this may be a bit of a race condition:
Until we have a capable Drupal-specific commerce solution that can compete feature for feature with the big 3, enterprise re-platforms will be few and far between. Of course, we may not see a Drupal-specific commerce solution with that level of capability until we have some Enterprise re-platforms to help fund it.
Maybe with Migrate now in core the Drupal Commerce team could consider building Demandware, Hybris and Magento migrations to ease the pain of re-platforming and perhaps attract those clients. I'm not certain that is even possible or if it would change anything when face to face with enterprise clients invested in one of those platforms, but then, none of that is likely to end up on my list of todos regardless so I am totally spitballing at this point.
When a client comes with their commerce solution already in place and wants to do an integration... Drupal's REALLY good at that. But if a client comes to you a.) looking to re-platform their commerce or b.) without a commerce solution in place, then you have some soul searching to do. A lot of Drupal's money is generated from enterprise development these days, but I worked with Drupal in SMB for 5 years at my parent's Drupal company before joining Commerce Guys (yes, my family runs a Drupal company) and I can tell you... most of SMB doesn't have the money to do Hybris or Demandware... and even if they did, they'd consider it a complete waste of resources. This leaves Magento, WooCommerce, a smattering of PaaS/SaaS solutions and of course Drupal Commerce. Now if I'm putting a Drupal site in place... well the solution is pretty obvious. I can dismiss Woo out of hand because it's WP, I can dismiss Magento because it's non-trivial to integrate with, I can spend some time considering the various PaaS/SaaS solutions, but really only if there's a Drupal module that integrates with them already, or I can just implement Drupal Commerce, have all the configuration options my customer might need and really... move on with life. Oh and if they happen to have a non-standard commerce need, then Drupal Commerce was already the correct solution, and Drupal Commerce does traditional commerce just fine, so I'm good regardless of where this goes.
Is Drupal Commerce a magic bullet? Of course not. 4 years of experience exclusively creating DC sites and I still run into issues from time to time that are new territory for me. Integrating with Hybris, Demandware or Magento would be exponentially more fraught with stuff I've never seen and architectural weirdness... so enterprise only please. All of that to say this: GPL Commerce is DEFINITELY a thing. Suggesting otherwise seems silly to me. None of my arguments above invalidate choosing to NOT re-platforming a customer's commerce in the middle of a site re-platform. Having done simultaneous re-platforms of both before, I can say it's a daunting task. The bigger question for me is whether or not a re-platform is more/less expensive than an integration and what the benefits to the business are in both scenarios. If integration is cheaper and endows more capability, then you should pick integration EVERY TIME.
Sorry for being silly :)
My whole idea was to say :
- Acquia is right to invest more in partneships rather than investing in DC. It may be frustrating, but from a pure business strategy point of view, it's the right choice.
- DC is a very powerful tool as it comes to content integration or specific business rules, it may be easily integrated with ERP back-ends, and should be the only choice for any business that are not simply selling SKUs.
- Big 3 e-commerce platforms have a very rich set of features, costly to replicate and all needed by large customers. Incremental growth module by module is complex to achieve. But they all 3 lack of flexibility and are suitable for mainstream e-commerce sites only.
"The notion that GPL Commerce isn’t a thing because it is not yet a thing is circular reasoning."
It's not what I wanted to say, maybe was not clear enough. We have GPL since 25 years, all major open source projects started around 90'-95'. Why we don't have a viable and strong GPL project for Commerce ? We have several major CMF / CMS, we have OS, databases, etc...
Some areas are abandonned by GPL : ERP, DAM, CRM, e-commerce.
There is a reason why we do not have largely adopted GPL CRM, ERP, DAM or e-commerce. If you have an editor solution that fills 80% of your needs out of the box, you'll take editor solution, because it cost you less money. On the other hand each time you create something very unique as a website, entreprise application, collaborative portal, you'll spend 50% or more of your budget on customization, then open-source solutions is a better choice.
"most of SMB doesn't have the money to do Hybris or Demandware... and even if they did, they'd consider it a complete waste of resources."
Of course, but we're talking about large entreprise platforms, those targeted by Acquia (Robert's orginal post was about Acquia not investing enough in DC).
Why we don't have a viable and strong GPL project for Commerce?
Great question, and this feels way way more valid to me. So a couple of observations.
- We do have a number. OSCommerce, DC and Ubercart, Joomla has a commerce solution (Though I guess that's probably not GPL, same with Woo). If I expand to simply "Open Source" then there are a lot. If we're exclusive to GPL, obviously there are fewer.
- I think it's a question about the nature of commerce and how best to implement it.
I'd like to focus on my second point here a bit as answer to your question. Commerce solutions have essentially 2 starting points. They can:
- Start from scratch
- Piggyback an existing solution
Anything dependent on WP/Joomla/Drupal/etc immediately has the "drawback" of being dependent on those solutions. They also have all the benefits that entails. This includes "captive" audience, abstracting security to someone else (at the platform level) and a number of other benefits. The two big drawbacks of this approach are limited target audience and (and Drupal Commerce suffers big on this one) version upgrades. Upgrades are both good and bad since they hurt us from the perspective of upgrading out code base, and help us by keeping things fresh, and adopting new best practices.
On the other end of the spectrum we have the Magentos, Hybris, Demandware, etc of the world who have varying levels of success. They all chose to build their OWN platform which negates a bunch of the benefits and drawbacks of depending on another solution. It also means that since they weren't necessarily GPL or even OpenSource to begin with... they can monetize their product. I won't go into the evils of closed-source here, but we are a community familiar with it obviously. Focussing on what I see as the "big pain" of Drupal Commerce, this means solutions that choose this route don't have to contend with the platform they're dependent upon upgrading and forcing them to spend hundreds or thousands of hours upgrading their code base to match.
To me, none of this speaks to a failure on the part of GPL'd commerce solutions, rather it speaks to me about the difficulty of maintaining code that is dependent on a DEEP stack of other code you don't control. To this end, I've been VERY vocal about the need for Drupal to extensively decouple its various components and more clearly document dependencies within the system. Where this is difficult to do, we should be rewriting code to better componentize it. This opens up systems like Drupal Commerce to more explicitly depend on components of Drupal rather than Drupal itself, narrowing their dependency tree which in turn improves how quickly they can adapt to changes. And doing this means that in order to get a system like Drupal Commerce, you don't actually have to adopt all of Drupal... you can just adopt the dependencies, and mix in any other PHP components you want/need. Of course DRUPAL wants you to adopt the whole stack, but increasingly, we should allow for that to NOT be the case.
Componentized Commerce is the future imo. I truly hope it will be based on components extracted from the Drupal code base because that takes our (the Drupal community)'s knowledge and expertise and opens it up to the other 80%+ of the web running vanilla PHP.
David McCan (not verified)
Componentized Commerce - a very interesting idea. Do you think such a project could gain enough momentum to be viable?
Not sure what you were intending to say parenthetically, but WooCommerce is GPL.
Yes, I believe firmly that Drupal (AND Commerce, not to mention EVERY other contrib module) can be re-organized into this paradigm in the long run, and that positions both Drupal and the community in a position of great power with regard to influencing the rest of the PHP world for the better. I have given talks about this in the more general sense at a number of Drupal events including Drupalcon Amsterdam. I think it's amongst the most important goals the Drupal community could possibly have.
As far as WP/Woo go, my understanding was that WP is GPL, but weirdness seems to abound with their plugins, so I stopped trying to guess. :-D