Shan asks,

Hi folks- I am looking for an out of box eCommerce solution that meets the following criteria and hope to get some pointers on few solutions that's already available in the market.

There are certainly some decent self-hosted e-commerce solutions on the market, but I wouldn't really say any are "out of the box" -- all are going to require a fair amount of setup and configuration, not to mention provisioning a secure environment. A SaaS offering handles a lot of the hard work for you, and is as "out of the box" as you can get. Anything else opens you up to a lot more work to do it right, and not expose yourself to a bunch of risk.

That said, we do a lot of custom e-commerce, and our platform of choice is Drupal Commerce. The big news is, Drupal Commerce 2.0, for Drupal 8, just reached Beta last month, which means there is an supported upgrade path from here on. And it's looking like a great solution, though there's still quite a bit of work to be done.

First, to answer your questions:

Visually appealing site. I have checked number of templates from themeforest/squarespace, etc but would love to see a fresh approach/look & feel beyond the traditional templates.

The flagship, launch customer for Drupal Commerce 2 is https://www.obermeyer.com/ .



Drupal has no limitations on how a site can be styled or themed. There are not that many custom themes for Drupal 8 yet available on the theme sharing sites, but Bootstrap is fully baked and ready, and we've deployed several Drupal 8 sites using a bootstrap-based custom theme. The theme system for Drupal 8 is much improved from previous versions, using the Twig template system...



Basically anything that can be done on the web can be done in Drupal. And for Commerce, you just have some more elements to theme (add-to-cart buttons, order templates, emails, etc).

Hosted solution so we can expand the capabilities to meet our long term needs than a SaaS solution.

Drupal can be hosted at a huge number of hosts. For e-commerce, we would highly recommend hosting with a host that has appropriate PCI compliance, and use a dedicated virtual server. We put most of our e-commerce clients on a virtual server in Amazon AWS or Google GCE. (See our hosting guide for more...)

Native App: This vertical doesn't need a mobile app yet for MVP but would love to keep that as an option and expand eventually beyond the desktop version. The platform should be scalable to build a native app eventually.

Drupal 8 has great mobile-responsiveness in its core -- it's a pretty decent experience to administer content from your cell phone. With a well-done theme, you may not need an app. If you want a native app, Drupal 8 has a decent web API for interacting with everything -- there are more and more "headless" Drupal sites that are simply a back end for a native app or an Angular/React/etc app.



Regarding scaling, Drupal 8 is blowing away other PHP-based systems on performance benchmarks, largely through some very intelligent caching. There's a new "BigPipe" module that loads "expensive" parts of the page after the rest of the page has rendered, allowing the site to feel really fast, while loading the user-specific shopping cart after the rest of the page has rendered. In addition to being extremely snappy, the caching layers greatly reduce server load, allowing it to handle a lot more traffic -- and the same caching mechanisms are used for web service calls as well as rendered HTML, and for authenticated users as well as anonymous. (Ok, not quite as well, but far better than competing systems).

Product Images: Need ways to provide better viewing tools to look at the product images more clearly, true color, 3D views, drop the product to the room and experience it, etc.

Drupal 8's Media initiative provides some best-of-breed media management tools. See https://drupal-media.gitbooks.io/drupal8-guide/content/ for documentation of what's easy to do now -- slideshows, video, cropping, embedding any content in another page, etc.



For an example in action, check out https://www.obermeyer.com/catalog/womens/payton-down-jacket?v=6065 to see several different display options for photos. For True Color/3D, you're limited by what web browsers can do... if you have a plugin of some kind that will accomplish what you're after in a web browser, it can be used in Drupal.



Now, for the other stuff -

Why Drupal Commerce?

Drupal Commerce, compared to other shopping cart systems, is not a stand-alone e-commerce solution. Instead, it's basically a library that adds e-commerce support to Drupal, including: Shopping cart workflow, product entities that can be attached to any other Drupal entity, orders, payment gateways, shipping/tax/fulfillment modules, reports.



There are two big reasons why this is great:

Commerce becomes a fully-integrated part of a much broader content management system. This means you can easily show products related to a blog post, product reviews, ratings, etc. And turn just about anything in Drupal to something that can be sold in the cart -- memberships (roles), event registrations, hotel bookings, physical goods, web service calls, digital downloads, content creation credits. Most other commerce packages may be great for the shopping cart and fulfillment side of things, but they end up not having a great content management user experience, and often are entirely separate applications that only share a theme with the rest of your site.

Flexibility and a great user experience is why you should consider Drupal Commerce, either 1 or 2.

Why Drupal 8?

If you haven't looked at Drupal recently, you should check out Drupal 8. While it shares a lot of concepts with earlier versions of Drupal, under the hood it's an entirely different system. It's now completely object-oriented, built upon the Symfony framework and uses modern dependency-injection patterns instead of the old mystifying hook system. If you like building on a modern framework, it's that -- but with a lot of the stuff you need already done, such as an authentication/authorization layer, a robust form API, a powerful theme/templating system.



Compared to earlier versions, the biggest win is the upgrade path -- Drupal has matured to the point where we're able to handle upgrades as a part of routine maintenance, instead of having to do a major upgrade project. We've already had significant new functionality added to 8.1 and 8.2, and if you stay current, the jump to 9.0 will not be drastic (just a housecleaning to remove stuff that's been deprecated along the way).



Stuff that used to be ridiculously hard in Drupal has gotten far easier, thanks to the OO framework. The UX is vastly improved. The mobile support is top notch. And there's a built-in migration framework, which, combined with the web services, makes it very easy to get any kind of data into or out of Drupal, when integrating with other systems.

Why Commerce 2?

Drupal Commerce 1 was built for Drupal 7, and while it epitomizes the benefits outlined above, the biggest downside was how much work you had to do to get it functional. There's a "kickstarter" that will get you up and running quickly, though it made some decisions for you that we found problematic later, so we generally had to put together everything from scratch (or our own base). This means defining all the order states and transitions, building all the email notifications, programming rules for what happens at checkout/payment fully received, creating report templates and sales dashboards, creating the cart displays, etc.



Drupal Commerce 2 is built for Drupal 8, and they have, much like Drupal 8 itself, started completely over with the benefit of experience. They took the opportunity to compare the user experience of all the other major shopping carts -- Magento, WooCommerce, Shopify, Squarespace, BigCommerce, etc -- and implemented a "best of breed" base user experience for the shopping cart, taking away a big chunk of the setup work necessary for Commerce 1.



But there's some other big improvements, too:

Multi-vendor/multi-store straight out of the gate. You can define a single store -- or a whole shopping mall -- out of the same Drupal instance.

Multiple checkout workflows. The Obermeyer site supports 3 different checkout user experiences -- retail customer, wholesale, and loyalty customers -- with entirely different shopping cart workflows, all under the same store.

Fully internationalized Address and Tax libraries. Instead of building these solely for Drupal Commerce, the Commerce team factored out this functionality into PHP libraries that are now used by other shopping carts to handle the needs of stores that sell internationally.

Migration support. You can migrate data from Ubercart and Commerce 1 today, and migrations from other popular carts such as Magento, OS Commerce, WooCommerce, Wix, etc are planned -- and not difficult for somebody experienced in Drupal migrations to build.

Why not Drupal Commerce?

The biggest reasons would be cost, and the amount of effort it takes to get a great user experience. Which is really the same thing.



For Commerce 1, pretty much everything you might need is there -- but you're building on a platform with no more than 3 or 4 years of remaining life before you would need to do a substantial upgrade (to Commerce 2). And there's quite a bit of setup to do to get a nice user experience...



For Commerce 2, the main thing is that not everything is quite there yet. Shipping, for example, is being worked on today, as I write this. There are only a couple payment gateways implemented just yet (though those are pretty easy to code). I don't think anyone is tackling fulfillment modules just yet (if you want to integrate with an external fulfillment vendor, for example), and a lot of the glue for memberships and event management still needs to be done.



If you are looking for the flexibility of a custom solution, need robust e-commerce, and want a solution that is going to be solid and current for the next decade, you won't find a better fit than Drupal Commerce, especially if you're willing to deal with some early implementation pain.





Let us know if you have any questions, or need a partner to help you get started with Drupal Commerce!

And kudos to the Commerce Guys for all their great work getting this out the door!