I've been having some discussions with Travis from Hop Studios about ecommerce. Hop Studios are ExpressionEngine experts, and also good friends of mine. EE, as I've written about before, is a very capable CMS with a custom data builder much like Drupal's content construction kit (CCK). Its only failing is that it's not open source :P
I've been Twittering a bit about ecommerce, so people have been asking what I'm up to. The motivation is that I've recently had occasion to dig into ecommerce with two clients -- one where it looks like their current 'store' will need to be replaced, the other has just some simple PayPal buttons today.
I put 'store' in quotes, because it's not really a store today ... it's kind of a glorified cart. I did a presentation a year ago where I talked about the 3 Stages of Dynamic Web Sites, and this got me to thinking about ecommerce tools. I have very little experience running or implementing ecommerce, but as I began to look around, it's clear that they roughly break down into 3 stages as well.
1) Hosted pay buttons
This is the PayPal "Buy Now" or Google Checkout. In those hosted systems, you define a "product" and it generates code you can stick on your site. No inventory, limited or no "dynamic" options, no ability to "keep shopping" or anything like that. The plus side is that it works everywhere and has little to no set up costs -- it's all per transaction.
Use this if you have a handful of products. It's great to get up and running IMMEDIATELY -- if you have product to sell, don't wait: start trying to sell it and refine your techniques and workflow. Anything else like automation, fulfillment, etc. can wait -- start selling and shipping your stuff to see if it sells. If you have high traffic that you are overwhelmed...you've also got the money from selling to invest in better tools.
These can be little scripts you install locally, or be hosted as well (e.g. FoxyCart, which is something I found through Travis because it integrates with EE as FoxEE). There are a probably hundreds of options, with integration with many different system. They are again different levels of integration into sites -- the critical factor is often trying to make sure there is one login rather than a dual login system. Carts that can support a single login or login integration with the "host" dynamic system (EE, WordPress, etc.) start edging up into the category of full stores.
Use a cart if you have a larger number of products, especially complimentary products where you might want to buy two items together, or keep browsing the site and let people buy multiple items. The lower end carts are only a bit more sophisticated than pay now buttons, and as I mentioned, the higher end carts are similar to full stores. Carts don't usually have the full analytics, specials, inventory, and full member logins that stores do.
There are many full store scripts as well. I'm most interested in the mid range stores. They are open source or low cost, are relatively full featured with memberships, have good extensibility so you can customize them or integrate them as needed. They are platforms that can grow with you. Oh, and as per usual, I'm biased towards open source solutions :P
I had heard lots of good things about Elastic Path (they're a local Vancouver success story). So I headed over to their site. Luckily, they have a very good sales guide, and their cost page answered all my questions in two easy sentences. One was "If your annual online revenue is less than $5 million, Elastic Path Commerce is probably too expensive for you", and secondly "If you're looking for free (or nearly free) open-source platforms or entry-level hosted solutions, Elastic Path Commerce is probably not for you". Great -- I think it's fantastic when companies help you self select AWAY from them.
osCommerce is the grand daddy here -- it has had a bad rap for design and funky code. I think I can safely say its built with "older" techniques, and I don't see a from the ground rewrite happening any time soon. I've toyed with it in the past, and I just don't see it as anything other than a legacy app.
Magento Ecommerce is the company / software I've had my eye on. The front page says "fastest growing ecommerce package" with 525K downloads. It's licensed under the Open Software License (OSL) 3.0. And yep, I hadn't heard of it before either -- there's an explanatory PDF with more info if you're interested in open source licensing details.
There's a WordPress integration plugin, and a large community of extensions from open source to commercial in the Magento Connect marketplace. While Magento is open source, it's mixed license and stewardship by one commercial company may make less technical users feel more comfortable. You can even buy support contracts starting at $42 / month -- this is a no brainer both for consultants deploying Magento, and for customers whose livelihood depends on the software.
Lastly, Drupal-based solutions. Drupal's strength at a very high level has always been two things: 1) you can get a single login and access many different functions from community to ecommerce and 2) it's really extensible, so either through configuration or clean programming, you can customize the base solutions. Both of these are good features for ecommerce stores. There is the original Drupal Ecommerce package, and the newer Ubercart team.
The downside is that Drupal is not, at this point, a drop in and configure your store. I can see Ubercart edging in that direction. I've been bugging them for quite some time to do an install profile...the next piece of "just" an install profile would be an install profile "wizard" that walks you through setting up different types of stores. That being said, there are lots of examples of Ubercart-powered stores.
Update 2: I got lots of feedback from Drupal folks that read my site. @gheydon, author of the Drupal Ecommerce package, said on Twitter "I have been working a lot on e-Commerce and it is trimmed down a lot, and will have a very basic store by def ault, and expand on it" There is also a list of Drupal Ecommerce showcase sites.
@mikey_p pointed out another advantage of a full Drupal solution on Twitter "The downside as a developer 4 dual platform CMS + Store is learning 2 systems. w/ Drupal solutions, I cn theme th e store & site both."
When should you run a full store solution? Well, you've got a mix of content and community, you sell a larger number of products, you need inventory control, and you intend to keep investing in the technology that runs your store.
In a fourth category, you've got many different ways to sell items on various hosted services. For examples, lots of artists and craftspeople use Etsy to run a store and sell their products. The newly launched Foodzie specializes in being a sort of mall for "artisanal" food-related stores and products. Actually, there are probably again a couple of hundred more in this category -- Shopify in Calgary, etc. etc.
I'm specifically not very interested in these types of hosted "mall" systems (in this article) unless you can map a CNAME or otherwise use a web address under your own control: ecommerce is all about driving web traffic across buy buttons, and pushing that traffic to someone else's domain may not be in your best interest. The best of these would offer APIs to have the benefits of a full store functionality that is maintained for you, as well as integration directly into your own site / domain.
Update: got some feedback from @jbillingsley (thanks!) that I should probably include eBay and Amazon in this fourth area, since you can do a variety of hosted stores and other types of sales. Again, this area I'm specifically not really focusing on -- I want stuff that you can integrate extensively into your own site and domain.
To me, ecommerce feels like there is still a lot of room for innovation. There is now little to no hesitancy about buying online (compared to earlier times). Once your store is up and running, you can use marketing and analytics to costly be tuning how much money you make: you are in control. It kind of feels like the early days of online advertising.
I'm leaning towards Magento as something worthwhile to spend more time with. It's open source (although I really do need to know what exactly the OSL means to me), it is a full out of the box store solution (I installed it via their public SVN repository, which impressed me), and it has a history of integration with content management systems.
I'd like to hear about other people's experience with ecommerce scripts, especially if they are open source stores.