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, Authorize.net, 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

Steven Grant09:30 on 04.19.2010

Anyone else getting no images in this post?

Ryan Irelan09:33 on 04.19.2010

Steven, I reset the permissions on the images. Do they appear for you now?

Steven Grant09:42 on 04.19.2010

fraid not Ryan

mahuti09:59 on 04.19.2010

BTW. The cost is per install. Not per site. So 5 MSM sites can run on one license.

And yes, we love seizure inducing jquery effects. Unlike Boomerang however, CartThrob is set and forget. You set it up once, and never look at it again, unlike Boomerang where you’d actually have to use the interface on a regular basis. If CartThrob’s interface was something you’d need to work with over and over, we wouldn’t have built it with animations. Because there are so many settings we thought it would be faster and easier to have one page with jQuery effects than to have multiple page loads. We also wanted people to understand that when they chose a different navigation option, those settings were still within the CartThrob extension and not anywhere else… which is why we added a bit of animation to the transitions.

So, I think we could have lived without jQuery, but there were valid reasons for doing things the way we did.

Lastly, I’d like to point out for anyone interested that like our Payment Gateways, shipping and coupons are also API driven. Though those two APIs are not fully documented yet, CartThrob users are able to create their own shipping and coupon systems without altering the core.

e-man10:03 on 04.19.2010

Not seeing any images as well. Definitely trying out Cartthrob, I’ve heard nothing but good things so far.

Ryan Irelan10:21 on 04.19.2010

Sorry about the mix up on the images. If I could blame Kenny Meyers I would, but it was my fault. Everyone should be seeing the images now.

moogaloo22:47 on 04.19.2010

looks truely awesome!
we had quoted for a project a month or two ago for a full on ecommerce site and had to quote based on the ecommerce module ($99) plus foxy cart ($15 / mo) which i then learnt was a bit rubbish… this is just perfect - cant wait to try it!

out of interest does it also manage secure downloads and membership access too?  and what about micropayments?

mahuti06:39 on 05.23.2010

In response to the last comment: It handles encrypted downloads (and you can also use LinkLocker). You can use it to sell membership, but it doesn’t (currently) do recurrent billing, or membership management. Micropayments… not yet. We’re working on it though.

moogaloo07:32 on 05.23.2010

Ah cool.
recurrent billing would be awesomely useful, as a site with lots of paid members must be a nightmare to manage if it doesnt automate the monthly / yearly payment process.
Looks really good tho.

Chuck Norton16:29 on 06.25.2010

This looks great, btw. I’m really anxious to use it even for a client now.

I’m curious about 2 things:

1) Inventory by attributes? For stuff like clothing this is huge.

2) ‘Out of the box’ REPORTING. I hate the thought of creating custom SAEeditF templates for every sort of query a client might want. And my gut feeling is that I’d always forget some report a client would later ask about. How does reporting work??

Thanks in advance!

Chuck Norton16:38 on 06.25.2010

PS - (@mahuti) I keep trying to contact cartthrob directly via the contact page - & it keeps erring out for me (“You are not authorized to perform this action” ) Just fyi.

mahuti17:36 on 06.25.2010

1. This is in the current “testing” version. It will be released very soon.

2. I also hate the thought of creating templates for every sort of query YOUR client might want… especially considering I don’t know anything about their business. There’s a template sample, but yes, you’ll have to make your own reports. If we had a consensus from our customers about what reports were considered standard, we’d of course make some good general reports, but for now it’s very basic. If your site is focused on content, CT + EE is great. If your store is ONLY a store… use something like Magento where everything is figured out for you in advance.

The good news is that the data is stored as weblog entries, so the data is easy to get at.

Chuck Norton21:19 on 06.25.2010

Thanks Mahuti - & for tweets. This is for a clothing line - so this might not be well suited.

We’ve used & liked magento. But [dang it] I was really hoping you’d be the answer to our FASTER & MORE FUN DEVELOPMENT prayers.

Thanks for quick response!

wink

Stephen Pratley02:21 on 06.29.2010

You can get round the inventory issue in the same way as magento. Set up individual products in one weblog, then group them together under another one that has all the data that will show on the page. I agree it’s a bit of a faff though.

For stores with relatively small / similar inventory and high design requirements Carthrob is definitely the way to go. Given that we’ll re-use the back end stuff the reporting & order processing is something we’re getting stuck into now.

Post a Comment
Commenting is not available in this section entry.

Hosting by EngineHosting

ExpressionEngine Training Videos and Screencasts