October 10, 2005

Shopping cart comparison: Drupal's E-Commerce vs. Mambo's mambo-phpShop

Author: Glenn Mullikin

Open source Web site content management systems (CMS) don't provide a full solution for the needs of many Web site administrators because they lacked a shopping cart. But thanks to projects like Drupal's E-Commerce shopping cart and Mambo's mambo-phpShop, things are getting easier: The shopping carts integrate directly into the core of the system, providing an acceptable shopping experience without requiring multiple logins, and they keep the theme of the Web site intact.

Drupal's shopping cart module is called E-Commerce. Its features include selling not only physical products but also file downloads, as well as running auctions with an extra auction module installed. It has basic inventory management capability with a fairly good administrative backend, allowing an administrator to print invoices, send out shipping notifications by email, and update the status of orders. Customers can also see a list of their recent orders when they are logged in.

mambo-phpShop is a shopping cart module based on the venerable phpShop. It installs smoothly and can be used to its full potential right away without a steep learning curve. It has a long list of features, covering almost everything Drupal's E-Commerce has and then some. Perhaps the most compelling reason to use this package is that it makes everything easy for both the administrator and the customer. Some of its most notable features include integrated sales tax support, sophisticated shipping cost calculation capabilities, and attribute list support.

mambo-phpShop will be changing its name to VirtueMart in the very near future.

Both shopping carts are very usable. I created a table to illustrate how they stack up against one another. Both products are offered under the GNU General Public License.

Both products do an excellent job of communicating with the customer by sending automated email messages. For instance, in mambo-phpShop, when a customer places an order that includes a downloadable item, the administrator collects the payment and changes the status of the order to "confirmed." The software automatically sends an email message that tells the customer the information needed to download the file. The customer can then go to the download area on the Web site and enter the ID number given in the email. E-Commerce also sends out automated shipping notices and order confirmations in a similar fashion.

Although I found some small issues while testing each product, I was either able to figure them out on my own or take advantage of the user communities to help solve the problem. For instance, when I first installed mambo-phpShop and tested placing an order, it would not add items to the shopping cart. This problem occurred because I wasn't running a secure server that provided SSL. I noticed that if I set ssl_redirect to 0 instead of the default of 1, it worked. I modified this variable in the text file administrator/components/com_phpshop/html/shop.cart.php.

For support, you can't just pick up the phone and call the vendor. When it comes to active projects like Drupal and Mambo, though, the user communities often outperform a vendor in providing useful and helpful free information, though the support is not necessarily the most formal or guaranteed.

One of the Drupal Web site's main tabs is called Support, which links to a page outlining all the different ways a user can take advantage of the online documentation, the forums, support mailing lists, and even an IRC channel called #drupal-support. I used the search feature in the forums as my main way of researching issues. I visited the IRC channel and found about 30 or 40 users present. There wasn't much conversation, but I did get some advice concerning an issue I was having with the Drupal software that helped me solve a problem.

For mambo-phpShop, the most useful help will probably come from mambo-phpshop.net. It hosts a set of forums, as well as documentation and a demo that you can log into either as a shopper or as the admin. In the documentation section, you'll find two manuals: a User Manual, which most users will consult, and a Developer's Manual, which advanced users may want to explore. There is a Live Shops section that provides a list of sites that run mambo-phpShop. If you plan to use mambo-phpShop, you might consider registering at mambo-phpShop.net and joining the forums either as a lurker or a contributor.

Sample sites

One interesting Web site that runs mambo-phpShop is Australian BlackFire Technology, which sells Apple Macintosh computer equipment. If you take a look at this product listing, you'll see how they make use of product attribute lists in order to allow the customer to select additional RAM (512 is the default; 1GB adds $189 extra), wireless capability (none, Airport Extreme for $117 extra, Bluetooth + Airport Extreme for $194 extra), AppleCare (none or 3 year extended service agreement which adds on $229 to total price), or a surge protector option for $39. Each of these things adds a certain amount to the base cost of AUD$1,329.05, and the shopping cart shows all the options chosen so the customer sees exactly what features they chose and how much extra each feature adds onto the cost. Take a look at this product, the Apple Pro Speaker adapter/amplifier. Notice how at the bottom of the page, additional products are displayed that the company believes you would be interested in if you are looking at the Apple Pro Speaker adapter/amplifier. And it's easy to click on it to add it to your shopping cart, thanks to mambo-phpShop's ability to set up related products for each product.

The Council of Writing Program Administrators serves as a nice example of what you can do with Drupal+E-Commerce. The entire shopping cart consists of only three products, but these are not shippable items; they are subscriptions that must be renewed by the customer on an annual basis. The FAQ section explains to the customer that he can register for free to use the site, but to get the most out of it, including access to archives in the last two years, he will have to pay a membership fee. The FAQ section explains that the customer will be sent a reminder email when it is time to renew. This type of functionality is possible thanks to Drupal's Taxonomy Access Control module, which protects content from unauthorized registered users. E-Commerce's support for recurring payments provides the ability for the administrator to send out automated notices to customers, informing them that their subscriptions will be expiring soon. E-Commerce's "role inheritance" allows users to automatically be authorized when their payment is received. If their subscription expires, they are automatically removed from that authorization level until another payment is received.


Making a choice between Drupal's E-Commerce and Mambo's mambo-phpShop requires you to also choose a CMS. Both systems have their strengths and weaknesses, but if you want to get a powerful shopping cart system up and running quickly, mambo-phpShop is the way to go, especially if a main goal of your Web site is to sell lots of products.

At the present time, Drupal's E-Commerce shopping cart just isn't quite as nice as mambo-phpShop. But if the pace of development continues and sales taxes make it into the next release, then its only real weakness will be a lack of a function to calculate shipping costs based on shipment weight. If that can be remedied, it will have pretty much everything it needs to compete with mambo-phpShop with the exception of a few small niceties, such as product attribute lists, which depending upon your shopping cart needs may or may not be important.

People who aren't too technically minded and aren't looking for a long learning process should be pleasantly surprised by how much they can do with the Mambo and mambo-phpShop combination. Drupal users have a lot to be proud of too, as E-Commerce helps them stay with the CMS they know and love.

Click Here!