Published by Mijingo

movie icon image

ExpressionEngine How-to Articles

Topics range from beginner to advanced, but are all born out of real world, professional, day-to-day use of ExpressionEngine. Need more information? Get training videos and ebooks on ExpressionEngine from Mijingo.

Cartthrob: A Closer Look

A couple of weeks ago the latest attempt at e-commerce on ExpressionEngine—Cartthrob—was released. Anyone that has been using ExpressionEngine long enough knows that flexible e-commerce inside of EE has always been an elusive, slippery goal. Cartthrob is trying to change that.

The Getting Started screen in the Cartthrob admin interface.

The philosophy behind Cartthrob is to use ExpressionEngine as much as possible, therefore making the process of setting up a store as integrated into EE as possible.

Using the power of ExpressionEngine and CartThrob, your store looks and works exactly like you envision it. Create your unique shopping experience with EE’s built in templating system. Store orders and manage products using standard weblog entries.

CartThrob stores can look just like your site because they’re truly integrated. CartThrob lets you make the most of your ExpressionEngine website.

The Simple Commerce Manager (SCM) that comes with ExpressionEngine also tried to do something similar: your products were created with entries. But SCM was, well, simple. You could only use Paypal to checkout and it didn’t support much beyond a very basic store.

Mapping product data to ExpressionEngine custom fields and weblogs.

Just like with SCM, you store all of your products as entries when using Cartthrob. But you also store coupons, orders and products as EE entries. Cartthrob, outside of its settings and configuration, is using ExpressionEngine for all of its data. This has the pleasant side-effect of allowing you to use standard EE tags and templates for your store. There are some Cartthrob-specific tags, but they’re used just like you would tags for any third-party module.

Store item listed as weblog entry in EE.

Taxes, Shipping and Currency

Cartthrob will also calculate shipping and taxes for you based on your specific settings. There are four different shipping options available: per product, by weight, by weight-threshold and flat rates.

Taxes can be configured for multiple locations (states, countries and regions) and are customizable in the Cartthrob control panel interface. You also have the option of whether or not to tax shipping.

You can also set the default currency for your store and the format of the prices (commas versus periods for the thousands separator).

Payment Processing

With Cartthrob you have the choice of several payment gateways like PayPal Pro,, Sage Payment Gateway and more. You are responsible for setting up accounts with those services but hooking Cartthrob up to them is straight-forward. If you want to interface with a service that Cartthrob doesn’t currently support there is a gateway API available and their documentation contains an example of how it is done.

There is also an internal sandbox mode available that randomly approves or denies transactions to help you test the functionality of your templates (like error and success messages) without having to set up a payment gateway.

Samples and Documentation

Before Cartthrob was released I read through almost all of the documentation to get a better idea of how the software worked. Immediately I was impressed with how thoughtful and thorough the documentation is. The explanations are in-depth and they offer plenty of examples.

The best example is the ability to pre-populate your EE install with some sample templates, weblogs and settings. This allows you to quickly get up and running and grasp how the Cartthrob e-commerce add-on works. Cartthrob nails the “out-of-the-box experience” with the documentation and starter data. I wish more add-ons were are well-documented and offered a quick way to get up and running.

Installing templates and weblogs to get started with Cartthrob.

I wanted to use my t-shirt store as a test for implementing Cartthrob. Much to my surprise one of the sample templates was for a simple t-shirt store. Well, that was easy!

Code from a Cartthrob template for the simple t-shirt store.

Thoughts and Observations

Cartthrob is an extension/module combo that sports its own user interface. A while back I reviewed the (now defunct) Boomerang module and noted that I had wished the user interface was more in keeping with the rest of the Control Panel. I have the same feeling with Cartthrob but to a lesser extent. I could also do without all of the seizure-inducing jquery transitions when loading different parts of the settings panel. But, really, those are minor quibbles.

In my limited testing of Cartthrob (I did not set up a production site with it), I found it straight-forward to use and elegant to impelement. This is because it uses ExpressionEngine, so other than some configuration and specialized template code, you manage your e-commerce products like you do your blog entries.

Cartthrob isn’t priced out of the range of even the smallest project budget. At $129 (currently $99 as an introductory price) per site license (not including any costs associated with setting up a merchant account, transaction fees or obtaining an SSL certificate) it’s worth picking up a license just to try it out and see if it is a solution you can use for your projects. If I ever have the need for an e-commerce store (currently all of my products, like screencasts and books are sold through my publisher), I will definitely try Cartthrob first. I will also add it to my list of e-commerce solutions for client projects.

The add-on is currently only available for EE 1.6 but they have plans to release a version for EE 2.

Disclosure: Cartthrob provided me with a promo copy of the software for purposes of this review.

Posted on Apr 19, 2010

Filed Under: How-To, E-Commerce,

Ryan Irelan
About Ryan Irelan

Ryan Irelan is the Technology and Development Director at Happy Cog, a web design and development firm. He is a noted ExpressionEngine expert, having created a wildly popular video training series on ExpressionEngine. Additionally, Ryan is the publisher of EE Insider, a well-known news and information site for the ExpressionEngine community. In his spare time, Ryan is the production director of A List Apart Magazine, which is one of the most popular ExpressionEngine-powered sites on the web. Recently, Ryan published a book on ExpressionEngine 2 called "ExpressionEngine 2: A Quick-Start Guide."